Bug 463013

Summary: neochat fails to build/link on riscv64 on Debian and Ubuntu (libatomic)
Product: [Applications] NeoChat Reporter: Rik Mills <rikmills>
Component: GeneralAssignee: Tobias Fella <fella>
Status: REPORTED ---    
Severity: major CC: carl, jlp
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Rik Mills 2022-12-13 16:09:31 UTC
neochat fails to build/link on riscv64 on Debian and Ubuntu

https://buildd.debian.org/status/fetch.php?pkg=neochat&arch=riscv64&ver=22.11-2&stamp=1670510307&raw=0

https://launchpad.net/ubuntu/+source/neochat/22.11-2/+build/24910500

[100%] Linking CXX executable ../bin/neochat
cd /<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/src && /usr/bin/cmake -E cmake_link_script CMakeFiles/neochat-app.dir/link.txt --verbose=1
/usr/bin/c++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fno-operator-names -fno-exceptions -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 -Wsuggest-override -Wlogical-op -fcoroutines -Wl,--enable-new-dtags -Wl,-z,relro -Wl,-z,now "CMakeFiles/neochat-app.dir/neochat-app_autogen/mocs_compilation.cpp.o" "CMakeFiles/neochat-app.dir/main.cpp.o" "CMakeFiles/neochat-app.dir/neochat-app_autogen/EWIEGA46WW/qrc_res.cpp.o" "CMakeFiles/neochat-app.dir/neochat-app_autogen/EWIEGA46WW/qrc_res_desktop.cpp.o" -o ../bin/neochat  ../lib/libneochat.a /usr/lib/riscv64-linux-gnu/libKF5Kirigami2.so.5.100.0 /usr/lib/riscv64-linux-gnu/libQt5QuickControls2.so.5.15.6 /usr/lib/riscv64-linux-gnu/libQt5Quick.so.5.15.6 /usr/lib/riscv64-linux-gnu/libQt5QmlModels.so.5.15.6 /usr/lib/riscv64-linux-gnu/libQt5Qml.so.5.15.6 /usr/lib/riscv64-linux-gnu/libKF5Notifications.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5SonnetCore.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5ItemModels.so.5.100.0 /usr/lib/riscv64-linux-gnu/libQuotient.so.0.6.11 /usr/lib/riscv64-linux-gnu/libQt5Multimedia.so.5.15.6 /usr/lib/riscv64-linux-gnu/libcmark.so.0.30.2 /usr/lib/riscv64-linux-gnu/libqt5keychain.so.0.13.2 /usr/lib/riscv64-linux-gnu/libKF5KIOWidgets.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5ConfigWidgets.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5Codecs.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5Auth.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5KIOGui.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5WindowSystem.so.5.100.0 /usr/lib/riscv64-linux-gnu/libX11.so /usr/lib/riscv64-linux-gnu/libKF5KIOCore.so.5.100.0 /usr/lib/riscv64-linux-gnu/libQt5Network.so.5.15.6 /usr/lib/riscv64-linux-gnu/libKF5AuthCore.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5JobWidgets.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5Service.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5I18n.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5CoreAddons.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5Solid.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5Completion.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5ConfigGui.so.5.100.0 /usr/lib/riscv64-linux-gnu/libKF5ConfigCore.so.5.100.0 /usr/lib/riscv64-linux-gnu/libQt5Xml.so.5.15.6 /usr/lib/riscv64-linux-gnu/libKF5WidgetsAddons.so.5.100.0 /usr/lib/riscv64-linux-gnu/libQt5Widgets.so.5.15.6 /usr/lib/riscv64-linux-gnu/libQt5Gui.so.5.15.6 /usr/lib/riscv64-linux-gnu/libQt5Concurrent.so.5.15.6 /usr/lib/riscv64-linux-gnu/libKF5DBusAddons.so.5.100.0 /usr/lib/riscv64-linux-gnu/libQt5DBus.so.5.15.6 /usr/lib/riscv64-linux-gnu/libQt5Core.so.5.15.6 
/usr/bin/ld: ../lib/libneochat.a(neochatroom.cpp.o): undefined reference to symbol '__atomic_exchange_1@@LIBATOMIC_1.0'
/usr/bin/ld: /usr/lib/riscv64-linux-gnu/libatomic.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Comment 1 Tobias Fella 2022-12-13 16:30:57 UTC
Did you have successful builds of neochat for riscv before?
Does you have similar problems for other KDE projects?

Unfortunately none of the NeoChat developers has any RISC-V hardware to test this
Comment 2 Rik Mills 2022-12-13 16:58:49 UTC
(In reply to Tobias Fella from comment #1)
> Did you have successful builds of neochat for riscv before?
Debian did not AFAIK. Ubuntu did, but that was as a result of a patch to our cmake to solve a similar maridb issue. Need for that has now gone, and our cmake is the same as Debian's, hence this failure popping up. Patching our cmake again is not an option for this.
> Does you have similar problems for other KDE projects?
Nothing yet in big things like fw, plasma and gear. As smaller things get new releases or rebuilt, it could happen.

Since I reported this, we have had a packaging fix:

https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/neochat/commit/?h=kubuntu_lunar_archive

https://launchpad.net/ubuntu/+source/neochat/22.11-2ubuntu2/+build/24935398

Might be the basis for a fix here in KDE?
Comment 3 Tobias Fella 2022-12-13 17:05:17 UTC
(In reply to Rik Mills from comment #2)
> (In reply to Tobias Fella from comment #1)
> > Did you have successful builds of neochat for riscv before?
> Debian did not AFAIK. Ubuntu did, but that was as a result of a patch to our
> cmake to solve a similar maridb issue. Need for that has now gone, and our
> cmake is the same as Debian's, hence this failure popping up. Patching our
> cmake again is not an option for this.
> > Does you have similar problems for other KDE projects?
> Nothing yet in big things like fw, plasma and gear. As smaller things get
> new releases or rebuilt, it could happen.

I've seen patches for libAtomic problems in QCoro before, maybe it's related to that?
> 
> Since I reported this, we have had a packaging fix:
> 
> https://git.launchpad.net/~kubuntu-packagers/kubuntu-packaging/+git/neochat/
> commit/?h=kubuntu_lunar_archive
> 
> https://launchpad.net/ubuntu/+source/neochat/22.11-2ubuntu2/+build/24935398
> 
> Might be the basis for a fix here in KDE?

Yes, sounds like something that should be done transparently through ecm. My motivation to carry it in neochat itself is relatively low.
Comment 4 Rik Mills 2022-12-13 17:27:03 UTC
Looks like ecm already has a CheckAtomic.cmake, so guess just need to make use of it?
Comment 5 Rik Mills 2022-12-26 13:00:10 UTC
(In reply to Rik Mills from comment #4)
> Looks like ecm already has a CheckAtomic.cmake, so guess just need to make
> use of it?

Yes, appears all that might be needed is something like: https://invent.kde.org/network/neochat/-/snippets/2457