aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2024-06-04 20:02:48 +0300
committerEfraim Flashner <efraim@flashner.co.il>2024-06-05 09:35:40 +0300
commitf0bb724211872cd6158fce6162e0b8c73efed126 (patch)
tree7e76bab5fd1a213f095b22d29d391ccf5211218b
parent3f62a5d6bb330eaf2404e536325af7391e1f17d2 (diff)
downloadguix-f0bb724211872cd6158fce6162e0b8c73efed126.tar.gz
guix-f0bb724211872cd6158fce6162e0b8c73efed126.zip
gnu: ldc: Fix building on riscv64-linux.
* gnu/packages/dlang.scm (ldc)[arguments]: Add a configure-flag to link the executables with -latomic. Adjust the 'disable-problematic-tests phase to disable 2 tests which fail on riscv64-linux and delete some tests which fail on riscv64-linux. Adjust the custom 'check phase to skip several tests when building on riscv64-linux. Change-Id: I38a87b053c1399fa7762b4843555d6e2afc20427
-rw-r--r--gnu/packages/dlang.scm50
1 files changed, 45 insertions, 5 deletions
diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 9764599091..8bf0ee685e 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -227,7 +227,10 @@ bootstrapping more recent compilers written in D.")
"ldc2-unittest" "all-test-runners"))
((#:configure-flags _ #~'())
`(list "-GNinja"
- "-DBUILD_SHARED_LIBS=ON"))
+ "-DBUILD_SHARED_LIBS=ON"
+ ,@(if (target-riscv64?)
+ `("-DCMAKE_EXE_LINKER_FLAGS=-latomic")
+ '())))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'fix-compiler-rt-library-discovery
@@ -283,6 +286,15 @@ bootstrapping more recent compilers written in D.")
(substitute* "runtime/phobos/std/socket.d"
(("assert\\(ih.addrList\\[0\\] == 0x7F_00_00_01\\);.*")
""))
+
+ ;; These tests fail on riscv64-linux.
+ (substitute* "runtime/phobos/std/math/operations.d"
+ (("static assert\\(getNaNPayload\\(a\\)" all )
+ (string-append "// " all)))
+ (substitute* "runtime/phobos/std/math/traits.d"
+ (("static assert\\(signbit\\(-.*\\.nan" all)
+ (string-append "// " all)))
+
;; The GDB tests suite fails; there are a few bug reports about
;; it upstream.
(for-each delete-file (find-files "tests" "gdb.*\\.(c|d|sh)$"))
@@ -316,6 +328,12 @@ bootstrapping more recent compilers written in D.")
"sanitizers/msan_noerror.d"
"sanitizers/msan_uninitialized.d"
"dmd/runnable_cxx/cppa.d")))
+ (,(target-riscv64?)
+ (for-each delete-file
+ '("codegen/simd_alignment.d"
+ "dmd/runnable/argufilem.d"
+ "dmd/compilable/test23705.d"
+ "dmd/fail_compilation/diag7420.d")))
(#t '())))))
(add-before 'configure 'set-cc-and-cxx-to-use-clang
;; The tests require to be built with Clang; build everything
@@ -350,13 +368,35 @@ integration tests...\n")
"ctest" "--output-on-failure" "-j" job-count "-E"
(string-append
"dmd-testsuite|lit-tests|ldc2-unittest"
- ,@(if (target-aarch64?)
- `((string-append
+ ,@(cond
+ ((target-aarch64?)
+ `(,(string-append
+ "|std.internal.math.gammafunction-shared"
+ "|std.math.exponential-shared"
+ "|std.internal.math.gammafunction-debug-shared"
+ "|druntime-test-exceptions-debug")))
+ ((target-riscv64?)
+ `(,(string-append
+ "|std.internal.math.errorfunction-shared"
"|std.internal.math.gammafunction-shared"
"|std.math.exponential-shared"
+ "|std.math.trigonometry-shared"
+ "|std.mathspecial-shared"
+ "|std.socket-shared"
+ "|std.internal.math.errorfunction-debug-shared"
"|std.internal.math.gammafunction-debug-shared"
- "|druntime-test-exceptions-debug"))
- `(""))))))))))))
+ "|std.math.operations-debug-shared"
+ "|std.math.exponential-debug-shared"
+ "|std.math.traits-debug-shared"
+ "|std.mathspecial-debug-shared"
+ "|std.math.trigonometry-debug-shared"
+ "|std.socket-debug-shared"
+ ;; These four hang forever
+ "|core.thread.fiber-shared"
+ "|core.thread.osthread-shared"
+ "|core.thread.fiber-debug-shared"
+ "|core.thread.osthread-debug-shared")))
+ (#t `("")))))))))))))
(native-inputs
(append (delete "llvm"
(alist-replace "ldc" (list ldc-bootstrap)