diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2024-06-04 20:02:48 +0300 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2024-06-05 09:35:40 +0300 |
commit | f0bb724211872cd6158fce6162e0b8c73efed126 (patch) | |
tree | 7e76bab5fd1a213f095b22d29d391ccf5211218b | |
parent | 3f62a5d6bb330eaf2404e536325af7391e1f17d2 (diff) | |
download | guix-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.scm | 50 |
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) |