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: I38a87b053c1399fa7762b4843555d6e2afc20427master
parent
3f62a5d6bb
commit
f0bb724211
|
@ -227,7 +227,10 @@ bootstrapping more recent compilers written in D.")
|
||||||
"ldc2-unittest" "all-test-runners"))
|
"ldc2-unittest" "all-test-runners"))
|
||||||
((#:configure-flags _ #~'())
|
((#:configure-flags _ #~'())
|
||||||
`(list "-GNinja"
|
`(list "-GNinja"
|
||||||
"-DBUILD_SHARED_LIBS=ON"))
|
"-DBUILD_SHARED_LIBS=ON"
|
||||||
|
,@(if (target-riscv64?)
|
||||||
|
`("-DCMAKE_EXE_LINKER_FLAGS=-latomic")
|
||||||
|
'())))
|
||||||
((#:phases phases)
|
((#:phases phases)
|
||||||
`(modify-phases ,phases
|
`(modify-phases ,phases
|
||||||
(add-after 'unpack 'fix-compiler-rt-library-discovery
|
(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"
|
(substitute* "runtime/phobos/std/socket.d"
|
||||||
(("assert\\(ih.addrList\\[0\\] == 0x7F_00_00_01\\);.*")
|
(("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
|
;; The GDB tests suite fails; there are a few bug reports about
|
||||||
;; it upstream.
|
;; it upstream.
|
||||||
(for-each delete-file (find-files "tests" "gdb.*\\.(c|d|sh)$"))
|
(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_noerror.d"
|
||||||
"sanitizers/msan_uninitialized.d"
|
"sanitizers/msan_uninitialized.d"
|
||||||
"dmd/runnable_cxx/cppa.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 '())))))
|
(#t '())))))
|
||||||
(add-before 'configure 'set-cc-and-cxx-to-use-clang
|
(add-before 'configure 'set-cc-and-cxx-to-use-clang
|
||||||
;; The tests require to be built with Clang; build everything
|
;; 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"
|
"ctest" "--output-on-failure" "-j" job-count "-E"
|
||||||
(string-append
|
(string-append
|
||||||
"dmd-testsuite|lit-tests|ldc2-unittest"
|
"dmd-testsuite|lit-tests|ldc2-unittest"
|
||||||
,@(if (target-aarch64?)
|
,@(cond
|
||||||
`((string-append
|
((target-aarch64?)
|
||||||
|
`(,(string-append
|
||||||
"|std.internal.math.gammafunction-shared"
|
"|std.internal.math.gammafunction-shared"
|
||||||
"|std.math.exponential-shared"
|
"|std.math.exponential-shared"
|
||||||
"|std.internal.math.gammafunction-debug-shared"
|
"|std.internal.math.gammafunction-debug-shared"
|
||||||
"|druntime-test-exceptions-debug"))
|
"|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"
|
||||||
|
"|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
|
(native-inputs
|
||||||
(append (delete "llvm"
|
(append (delete "llvm"
|
||||||
(alist-replace "ldc" (list ldc-bootstrap)
|
(alist-replace "ldc" (list ldc-bootstrap)
|
||||||
|
|
Reference in New Issue