summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2022-06-22 09:23:28 +0300
committerEfraim Flashner <efraim@flashner.co.il>2022-06-22 09:43:27 +0300
commit0ea51a817784125a32bbc96a524b2fe95a26034a (patch)
tree6a2d85e48717c1ab701efbc3a7e6483ab9f38c32
parente4dde29e01d5041c0488e169f691b4ffa894e992 (diff)
downloadguix-0ea51a817784125a32bbc96a524b2fe95a26034a.tar.gz
gnu: llvm-9: Fix building on riscv64-linux.
* gnu/packages/llvm.scm (llvm-9)[arguments]: When building for
riscv64-linux add a phase to fix building one of the binaries.
-rw-r--r--gnu/packages/llvm.scm17
1 files changed, 16 insertions, 1 deletions
diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm
index 32625385ff..6e12c3ebde 100644
--- a/gnu/packages/llvm.scm
+++ b/gnu/packages/llvm.scm
@@ -878,7 +878,22 @@ of programming tools as well as libraries with equivalent functionality.")
        (patches (search-patches
                  "llvm-9-fix-bitcast-miscompilation.patch"
                  "llvm-9-fix-scev-miscompilation.patch"
-                 "llvm-9-fix-lpad-miscompilation.patch"))))))
+                 "llvm-9-fix-lpad-miscompilation.patch"))))
+    (arguments
+     (if (target-riscv64?)
+       (substitute-keyword-arguments (package-arguments llvm-10)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'patch-dsymutil-link
+               (lambda _
+                 (substitute* "tools/dsymutil/CMakeLists.txt"
+                   (("endif\\(APPLE\\)")
+                    (string-append
+                      "endif(APPLE)\n\n"
+                      "if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES \"riscv64\")\n"
+                      "  target_link_libraries(dsymutil PRIVATE atomic)\n"
+                      "endif()"))))))))
+       (package-arguments llvm-10)))))
 
 (define-public clang-runtime-9
   (clang-runtime-from-llvm