gnu: ldc: Work towards building on aarch64-linux.

* gnu/packages/dlang.scm (ldc)[arguments]: Adjust configure-flags to not
dynamically compile. Adjust custom 'fix-compiler-rt-library-discovery
phase to add a case for aarch64. Adjust custom'disable-problematic-tests
phase to remove some tests for aarch64-linux.
This commit is contained in:
Efraim Flashner 2022-06-26 14:33:12 +03:00
parent 25e5daf1b1
commit daa83c69f6
No known key found for this signature in database
GPG key ID: 41AAE7DCCA3D8351

View file

@ -227,7 +227,8 @@ (define-public ldc
"ldc2-unittest" "all-test-runners"))
((#:configure-flags flags)
`(,@flags "-DBUILD_SHARED_LIBS=ON"
"-DLDC_LINK_MANUALLY=OFF"))
"-DLDC_LINK_MANUALLY=OFF"
"-DLDC_DYNAMIC_COMPILE=OFF"))
((#:tests? _) #t)
((#:phases phases)
`(modify-phases ,phases
@ -248,7 +249,8 @@ (define (gnu-triplet->clang-arch system)
system)))))
(matches ("x86_64" => "x86_64")
("i686" => "i386")
("armhf" => "armhf"))))
("armhf" => "armhf")
("aarch64" => "aarch64"))))
;; Coax LLVM into agreeing with Clang about system target
;; naming.
(substitute* "driver/linker-gcc.cpp"
@ -313,6 +315,12 @@ (define (gnu-triplet->clang-arch system)
"sanitizers/msan_noerror.d"
"sanitizers/msan_uninitialized.d"
"d2/dmd-testsuite/runnable_cxx/cppa.d")))
(,(target-aarch64?)
(for-each delete-file
'("d2/dmd-testsuite/runnable/ldc_cabi1.d"
"sanitizers/fuzz_basic.d"
"sanitizers/msan_noerror.d"
"sanitizers/msan_uninitialized.d")))
(#t '())))))
(add-before 'configure 'set-cc-and-cxx-to-use-clang
;; The tests require to be built with Clang; build everything