From e8a3d363f4db70a4ee55c8fb15e88650d00084ad Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 9 Jun 2025 10:08:00 +0300 Subject: [PATCH] gnu: cppdap: Link with libatomic. * gnu/packages/debug.scm (cppdap)[arguments]: Remove configure-flag linking the executable with libatomic when building for riscv64-linux. Add a phase to link with libatomic. Change-Id: I16c899d921967caafa159d11d30d6c81a6d67729 --- gnu/packages/debug.scm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index d558cbd503e..d454bceb409 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -220,10 +220,20 @@ tools that process C/C++ code.") ;; Only one of the following three can be enabled at the same time ;; "-DCPPDAP_USE_EXTERNAL_RAPIDJSON_PACKAGE=ON" ;; "-DCPPDAP_USE_EXTERNAL_JSONCPP_PACKAGE=ON" - "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON" - #$@(if (target-riscv64?) - '("-DCMAKE_EXE_LINKER_FLAGS=-latomic") - '())))) + "-DCPPDAP_USE_EXTERNAL_NLOHMANN_JSON_PACKAGE=ON") + #:phases + (if (target-riscv64?) + #~(modify-phases %standard-phases + ;; We need to unconditionally link with libatomic on some + ;; architectures to successfully build cmake. + (add-after 'unpack 'link-with-libatomic + (lambda _ + (substitute* "CMakeLists.txt" + (("cppdap_set_target_options\\(cppdap\\)" all) + (string-append + all "\n\n" + "target_link_libraries(cppdap PRIVATE atomic)")))))) + #~%standard-phases))) (native-inputs (list googletest)) ;; see lib/cmake/cppdap/cppdapConfig.cmake