diff options
author | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-11-20 22:45:09 +0100 |
---|---|---|
committer | Janneke Nieuwenhuizen <janneke@gnu.org> | 2024-12-03 08:39:01 +0100 |
commit | a41f2bdc19fc97a4866336be183f53e929f8b79e (patch) | |
tree | 65bf784f38ea138b0418e47a4a698018c505255a | |
parent | 265c54ed03f49f26729d7d1b570c0c4440fc98ca (diff) | |
download | guix-a41f2bdc19fc97a4866336be183f53e929f8b79e.tar guix-a41f2bdc19fc97a4866336be183f53e929f8b79e.tar.gz |
gnu: commencement: gcc-final: Support the 64bit Hurd.
* gnu/packages/commencement.scm (gcc-final)[arguments]: When building for the
64bit Hurd, create a gcc wrapper in phase "create-stage-wrapper", use it
by adding STAGE_CC_WRAPPER to #:make-flags, and CC to #:configure-flags
to convince configure gmp that gcc and g++ work.
Change-Id: I939c03c6c0fd9698efc4b293e59cf576249e3b77
-rw-r--r-- | gnu/packages/commencement.scm | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 3dbd27b660..4368893f4d 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -3255,13 +3255,32 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" ;; Since $LIBRARY_PATH is not honored, add the relevant flags. #~(let ((zlib (assoc-ref %build-inputs "zlib"))) (map (lambda (flag) - (if (string-prefix? "LDFLAGS=" flag) + (if #$(if (target-hurd64?) + #~(and (string? flag) + (string-prefix? "LDFLAGS=" flag)) + #~(string-prefix? "LDFLAGS=" flag)) (string-append flag " -L" (assoc-ref %build-inputs "libstdc++") "/lib -L" zlib "/lib -Wl,-rpath=" zlib "/lib") flag)) - #$flags))) + #$(if (target-hurd64?) + `(cons + (string-append + ;;Convince gmp's configure that gcc works + "STAGE_CC_WRAPPER=" (getcwd) "/build/gcc.sh") + ,flags) + flags)))) + ((#:configure-flags flags) + (if (target-hurd64?) + #~(append + #$flags + (list #$(string-append + ;;Convince gmp's configure that gcc works + "CC=gcc" + " -Wno-implicit-function-declaration") + "--disable-plugin")) + flags)) ;; Build again GMP & co. within GCC's build process, because it's hard ;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus ;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.) @@ -3306,7 +3325,19 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (getenv "CPLUS_INCLUDE_PATH") #\:)) ":") - "\nAM_CXXFLAGS = "))))))))))) + "\nAM_CXXFLAGS = ")))))) + #$@(if (target-hurd64?) + #~((add-after 'configure 'create-stage-wrapper + (lambda _ + (with-output-to-file "gcc.sh" + (lambda _ + (format #t "#! ~a/bin/bash +exec \"$@\" \ + -Wno-error \ + -Wno-implicit-function-declaration" + #$static-bash-for-glibc))) + (chmod "gcc.sh" #o555)))) + #~())))))) ;; This time we want Texinfo, so we get the manual. Add ;; STATIC-BASH-FOR-GLIBC so that it's used in the final shebangs of |