Source: opentracing-cpp Version: 1.6.0-2 Severity: normal Tags: ftbfs patch Justification: fails to build from source (but built successfully in the past) X-Debbugs-Cc: i...@hack3r.moe
Dear maintainer, opentracing-cpp failed to build on riscv64 due to not linking libatomic: ``` [ 81%] Linking CXX executable ../../output/mocktracer_propagation_test cd /<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/mocktracer/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/mocktracer_propagation_test.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 -Wall -Wextra -Wl,-z,relro -Wl,-z,now -rdynamic CMakeFiles/mocktracer_propagation_test.dir/propagation_test.cpp.o -o ../../output/mocktracer_propagation_test -Wl,-rpath,/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu/output ../../output/libopentracing_mocktracer.so.1.6.0 ../../output/libopentracing.so.1.6.0 -ldl /usr/bin/ld: ../../output/libopentracing_mocktracer.so.1.6.0: undefined reference to `__atomic_exchange_1' collect2: error: ld returned 1 exit status make[3]: *** [mocktracer/test/CMakeFiles/mocktracer_tracer_factory_test.dir/build.make:102: output/mocktracer_tracer_factory_test] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu' make[2]: *** [CMakeFiles/Makefile2:1097: mocktracer/test/CMakeFiles/mocktracer_tracer_factory_test.dir/all] Error 2 make[2]: *** Waiting for unfinished jobs.... /usr/bin/ld: ../../output/libopentracing_mocktracer.so.1.6.0: undefined reference to `__atomic_exchange_1' collect2: error: ld returned 1 exit status make[3]: *** [mocktracer/test/CMakeFiles/mocktracer_json_test.dir/build.make:102: output/mocktracer_json_test] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu' make[2]: *** [CMakeFiles/Makefile2:1151: mocktracer/test/CMakeFiles/mocktracer_json_test.dir/all] Error 2 /usr/bin/ld: ../../output/libopentracing_mocktracer.so.1.6.0: undefined reference to `__atomic_exchange_1' collect2: error: ld returned 1 exit status make[3]: *** [mocktracer/test/CMakeFiles/mocktracer_tracer_test.dir/build.make:102: output/mocktracer_tracer_test] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu' make[2]: *** [CMakeFiles/Makefile2:1070: mocktracer/test/CMakeFiles/mocktracer_tracer_test.dir/all] Error 2 /usr/bin/ld: ../../output/libopentracing_mocktracer.so.1.6.0: undefined reference to `__atomic_exchange_1' collect2: error: ld returned 1 exit status make[3]: *** [mocktracer/test/CMakeFiles/mocktracer_propagation_test.dir/build.make:102: output/mocktracer_propagation_test] Error 1 make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu' make[2]: *** [CMakeFiles/Makefile2:1124: mocktracer/test/CMakeFiles/mocktracer_propagation_test.dir/all] Error 2 make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu' make[1]: *** [Makefile:169: all] Error 2 make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj-riscv64-linux-gnu' dh_auto_build: error: cd obj-riscv64-linux-gnu && make -j4 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2 make: *** [debian/rules:6: binary-arch] Error 25 dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2 ``` Full buildd log: https://buildd.debian.org/status/fetch.php?pkg=opentracing-cpp&arch=riscv64&ver=1.6.0-3&stamp=1661892134&raw=0 I've attached a patch that fixes FTBFS on riscv64. Please let me know if I missed anything. Cheers, Eric -- System Information: Debian Release: bookworm/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 5.18.0-4-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
Description: Link libatomic on riscv64 and fix FTBFS Author: Eric Long <i...@hack3r.moe> Last-Update: 2022-09-03 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -155,6 +155,9 @@ list(APPEND LIBRARIES ${CMAKE_DL_LIBS}) endif() +if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "riscv64") + list(APPEND LIBRARIES atomic) +endif() if (BUILD_SHARED_LIBS) add_library(opentracing SHARED ${SRCS})