diff options
author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-11-19 19:10:47 +0100 |
---|---|---|
committer | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-12-03 08:39:01 +0100 |
commit | 265c54ed03f49f26729d7d1b570c0c4440fc98ca (patch) | |
tree | 59d314d33761e02b6accd1c013538b8cfc254ba0 | |
parent | 62130a7f4dc6aa3c364b1eec1f33d5a5d6177795 (diff) | |
download | guix-265c54ed03f49f26729d7d1b570c0c4440fc98ca.tar guix-265c54ed03f49f26729d7d1b570c0c4440fc98ca.tar.gz |
gnu: commencement: gcc-boot0: Support the 64bit Hurd.
Asking gcc to "--disable-shared" is overridden for libcc1 by the build system,
which lateron fails with
install: cannot stat '.libs/libcc1.so.0.0.0': No such file or directory
because no shared libcc1.so.0.0.0 could actually be built.
* gnu/packages/commencement.scm (gcc-boot0)[arguments]: When building for the
64bit Hurd, add CC_FOR_BUILD to #:make-flags to convince gmp's configure that
gcc works. Also, add phase "patch-libcc1-static" to avoid attempting a shared
libcc1.
-rw-r--r-- | gnu/packages/commencement.scm | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 2a32485fc0..3dbd27b660 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2391,13 +2391,21 @@ exec " gcc "/bin/" program `(let* ((libc (assoc-ref %build-inputs "libc")) (libc-native (or (assoc-ref %build-inputs "libc-native") libc))) - `(,(string-append "LDFLAGS=" - "-Wl,-rpath=" libc-native "/lib " - "-Wl,-dynamic-linker " - "-Wl," libc-native ,(glibc-dynamic-linker - (match (%current-system) - ("x86_64-linux" "i686-linux") - (_ (%current-system)))))))) + `(,,@(append + `((string-append "LDFLAGS=" + "-Wl,-rpath=" libc-native "/lib " + "-Wl,-dynamic-linker " + "-Wl," libc-native + ,(glibc-dynamic-linker + (match (%current-system) + ("x86_64-linux" "i686-linux") + (_ (%current-system)))))) + (if (target-hurd64?) + ;;Convince gmp's configure that gcc works + (list (string-append + "CC_FOR_BUILD=gcc" + " -Wno-implicit-function-declaration")) + '()))))) ((#:phases phases) #~(modify-phases #$phases (add-after 'unpack 'unpack-gmp&co @@ -2421,6 +2429,20 @@ exec " gcc "/bin/" program char-set:letter) #$(package-name lib))) (list gmp-6.0 mpfr mpc))))) + #$@(if (target-hurd64?) + #~((add-after 'unpack 'patch-libcc1-static + (lambda _ + ;;Attempting to build libcc1 shared gives: + ;; install: cannot stat '.libs/libcc1.so.0.0.0': + ;; No such file or directory + ;;convince gcc harder to not build a shared libcc1 + (substitute* "Makefile.def" + (("module= libcc1; [^;]*;") "module= libcc1;")) + (substitute* "Makefile.in" + (("(--target=[$][{]target_alias[}]) --enable-shared \\\\" + all target) + (string-append target " \\")))))) + #~()) #$(match (%current-system) ((or "i686-linux" "x86_64-linux") #~(add-before 'configure 'fix-libcc1 |