diff options
-rw-r--r-- | gnu/packages/commencement.scm | 39 | ||||
-rw-r--r-- | gnu/packages/gcc.scm | 27 |
2 files changed, 32 insertions, 34 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 07530adaa5..d63e812e64 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2399,13 +2399,7 @@ exec " gcc "/bin/" program ,(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")) - '()))))) + (_ (%current-system)))))))))) ((#:phases phases) #~(modify-phases #$phases (add-after 'unpack 'unpack-gmp&co @@ -3275,24 +3269,14 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" "/lib -L" zlib "/lib -Wl,-rpath=" zlib "/lib") flag)) - #$(if (or (target-hurd64?) - (and (target-x86?) (target-linux?))) - `(cons - (string-append - ;;Convince gmp's configure that gcc works - "STAGE_CC_WRAPPER=" (getcwd) "/build/gcc.sh") - ,flags) - flags)))) + #$flags))) ((#:configure-flags flags) + ;; XXX FIXME: Does this need to stay separate? (if (or (target-hurd64?) (and (target-x86?) (target-linux?))) #~(append #$flags - (list #$(string-append - ;;Convince gmp's configure that gcc works - "CC=gcc" - " -Wno-implicit-function-declaration") - "--disable-plugin")) + (list "--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 @@ -3338,20 +3322,7 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" (getenv "CPLUS_INCLUDE_PATH") #\:)) ":") - "\nAM_CXXFLAGS = ")))))) - #$@(if (or (target-hurd64?) - (and (target-x86?) (target-linux?))) - #~((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)))) - #~())))))) + "\nAM_CXXFLAGS = "))))))))))) ;; 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 diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index ad3c52e4a1..cc9f2d109e 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -241,6 +241,33 @@ where the OS part is overloaded to denote a specific ABI---into GCC #:phases (modify-phases %standard-phases + (add-before 'configure 'relax-gcc-14s-strictness + (lambda* (#:key inputs #:allow-other-keys) + (let ((bash (assoc-ref inputs "bash")) + (wrapper (string-append (getcwd) "/gcc.sh")) + (stage-wrapper (string-append (getcwd) "/stage-gcc.sh"))) + (with-output-to-file wrapper + (lambda _ + (format #t "#! ~a/bin/bash +exec gcc \"$@\" \ + -Wno-error=implicit-function-declaration" + bash))) + (chmod wrapper #o555) + (with-output-to-file stage-wrapper + (lambda _ + (format #t "#! ~a/bin/bash +exec \"$@\" \ + -Wno-error=implicit-function-declaration" + bash))) + (chmod stage-wrapper #o555) + ;; Rather than adding CC to #:configure-flags and + ;; STAGE_CC_WRAPPER to #:make-flags, we add them to the + ;; environment in this easily removable stage. + (cond (,(%current-target-system) ;cross-build? + (setenv "CC_FOR_BUILD" wrapper)) + (else + (setenv "CC" wrapper) + (setenv "STAGE_CC_WRAPPER" stage-wrapper)))))) (add-before 'configure 'pre-configure (lambda* (#:key inputs outputs #:allow-other-keys) (let ((libdir ,(libdir)) |