From a41f2bdc19fc97a4866336be183f53e929f8b79e Mon Sep 17 00:00:00 2001 From: Janneke Nieuwenhuizen Date: Wed, 20 Nov 2024 22:45:09 +0100 Subject: 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 --- gnu/packages/commencement.scm | 37 ++++++++++++++++++++++++++++++++++--- 1 file 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 @@ (define gcc-final ;; 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 @@ (define gcc-final (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 -- cgit v1.2.3