Uncertain if this is a bug or not (linker failure with 'plasma-nm' for armv7 target)

Hi all,

I’m currently trying to build ‘plasma-nm’ for Arch Linux ARM (specifically for armv7) as it hasn’t been updated in the ALARM repos for armv7 past 5.27 (and the same can be said for several of the Plasma packages on ALARM). The system I am building it on is an armv7h device.

I am currently trying to build ‘plasma-nm’ with this flag set: ‘-DBUILD_OPENCONNECT=OFF’ as building the OpenConnect feature requires Qt6 WebEngine (which I have building on a build server at the moment) and I’d like to have plasma-nm working while I wait on that.

I’ve tried both GCC and Clang to ensure that it isn’t my compiler and it seems like the linker failure I’ve been encountering is identical, I’ve been able to build several KDE 6 packages from unmodified regular Arch Linux PKGBUILDs without problem on Arch Linux ARM (armv7) and I can’t seem to figure out why I’m encountering the linker error with ‘plasma-nm’.

Here’s the log information that I’ve been able to gather:

[ 34%] Linking CXX shared library …/…/bin/libplasmanm_editor.so
cd /tmp/plasma-nm/src/build/libs/editor && /usr/bin/cmake -E cmake_link_script CMakeFiles/plasmanm_editor.dir/link.txt --verbose=1
/usr/bin/clang++ -fPIC -march=armv7-a -mfloat-abi=hard -mfpu=neon -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fno-omit-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -fno-operator-names -fno-exceptions -Wno-gnu-zero-variadic-macro-arguments -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wl,–no-undefined -Wl,–fatal-warnings -Wl,–enable-new-dtags -Wl,-O1 -Wl,–sort-common -Wl,–as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -shared -Wl,-soname,libplasmanm_editor.so -o …/…/bin/libplasmanm_editor.so CMakeFiles/plasmanm_editor.dir/plasmanm_editor_autogen/mocs_compilation.cpp.o CMakeFiles/plasmanm_editor.dir/configuration.cpp.o CMakeFiles/plasmanm_editor.dir/uiutils.cpp.o CMakeFiles/plasmanm_editor.dir/connectioneditorbase.cpp.o CMakeFiles/plasmanm_editor.dir/connectioneditordialog.cpp.o CMakeFiles/plasmanm_editor.dir/connectioneditortabwidget.cpp.o CMakeFiles/plasmanm_editor.dir/listvalidator.cpp.o CMakeFiles/plasmanm_editor.dir/settings/bondwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/bridgewidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/btwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/cdmawidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/connectionwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/gsmwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/infinibandwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/ipv4widget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/ipv6widget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/pppoewidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/pppwidget.cpp.o “CMakeFiles/plasmanm_editor.dir/settings/security802-1x.cpp.o” CMakeFiles/plasmanm_editor.dir/settings/teamwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/vlanwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wificonnectionwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wifisecurity.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wiredconnectionwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wiredsecurity.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wireguardinterfacewidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wireguardpeerwidget.cpp.o CMakeFiles/plasmanm_editor.dir/settings/wireguardtabwidget.cpp.o CMakeFiles/plasmanm_editor.dir/simpleiplistvalidator.cpp.o CMakeFiles/plasmanm_editor.dir/simpleipv4addressvalidator.cpp.o CMakeFiles/plasmanm_editor.dir/simpleipv6addressvalidator.cpp.o CMakeFiles/plasmanm_editor.dir/vpnuiplugin.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/advancedpermissionswidget.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/bssidcombobox.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/delegate.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/editlistdialog.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/hwaddrcombobox.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/intdelegate.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/ipv4delegate.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/ipv4routeswidget.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/ipv6delegate.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/ipv6routeswidget.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/passwordfield.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/settingwidget.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/ssidcombobox.cpp.o CMakeFiles/plasmanm_editor.dir/widgets/mobileconnectionwizard.cpp.o CMakeFiles/plasmanm_editor.dir/wireguardkeyvalidator.cpp.o CMakeFiles/plasmanm_editor.dir/mobileproviders.cpp.o CMakeFiles/plasmanm_editor.dir/interfacenamevalidator.cpp.o CMakeFiles/plasmanm_editor.dir/plasma_nm_editor.cpp.o /usr/lib/libKF6NetworkManagerQt.so.6.5.0 /usr/lib/libKF6ModemManagerQt.so.6.5.0 /usr/lib/libKF6KIOWidgets.so.6.5.0 /usr/lib/libKF6Wallet.so.6.5.0 /usr/lib/libqca-qt6.so.2.3.9 /usr/lib/libnm.so /usr/lib/libgio-2.0.so /usr/lib/libgobject-2.0.so /usr/lib/libglib-2.0.so /usr/lib/libKF6ColorScheme.so.6.5.0 /usr/lib/libKF6Completion.so.6.5.0 /usr/lib/libKF6KIOGui.so.6.5.0 /usr/lib/libKF6Solid.so.6.5.0 /usr/lib/libKF6KIOCore.so.6.5.0 /usr/lib/libKF6I18n.so.6.5.0 /usr/lib/libKF6JobWidgets.so.6.5.0 /usr/lib/libKF6WidgetsAddons.so.6.5.0 /usr/lib/libKF6Notifications.so.6.5.0 /usr/lib/libKF6Service.so.6.5.0 /usr/lib/libQt6Xml.so.6.7.2 /usr/lib/libKF6CoreAddons.so.6.5.0 /usr/lib/libKF6ConfigCore.so.6.5.0 /usr/lib/libQt6Widgets.so.6.7.2 /usr/lib/libQt6Gui.so.6.7.2 /usr/lib/libGLX.so /usr/lib/libOpenGL.so /usr/lib/libQt6DBus.so.6.7.2 /usr/lib/libQt6Network.so.6.7.2 /usr/lib/libQt6Core.so.6.7.2
/usr/bin/ld: warning: -z pack-relative-relocs ignored
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libs/editor/CMakeFiles/plasmanm_editor.dir/build.make:993: bin/libplasmanm_editor.so] Error 1
make[2]: Leaving directory ‘/tmp/plasma-nm/src/build’
make[1]: *** [CMakeFiles/Makefile2:1860: libs/editor/CMakeFiles/plasmanm_editor.dir/all] Error 2
make[1]: Leaving directory ‘/tmp/plasma-nm/src/build’
make: *** [Makefile:136: all] Error 2

==> ERROR: A failure occurred in build().
Aborting…

I’m not sure if this is a bug or if I need to try something else to get it to build. What should I try doing to see if this is a bug or something else? Help would genuinely be greatly appreciated.

It looks like the build failure has something to do with one or more of the parameters specified in the ‘makepkg.conf’ file for compiling. Using an older version of the file fixes this and it successfully builds now.