Browse Source

gnu: gcc-static: Make sure #:modules is not overridden by the inherited GCC.

This fixes a regression introduced by 56c833ea28
and 25bc0f34c6 where #:modules became ineffective.

* gnu/packages/make-bootstrap.scm (%gcc-static)[arguments]: Prepend the
required modules to those inherited from GCC-5.  While at it, do not splice in
the inherited arguments.
gn-latest-20200725
Marius Bakke 2 years ago
parent
commit
313bf502b5
No known key found for this signature in database GPG Key ID: A2A06DF2A33A54FA
  1. 96
      gnu/packages/make-bootstrap.scm

96
gnu/packages/make-bootstrap.scm

@ -464,54 +464,54 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
(name "gcc-static")
(outputs '("out")) ; all in one
(arguments
`(#:modules ((guix build utils)
(guix build gnu-build-system)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 regex))
,@(substitute-keyword-arguments (package-arguments gcc-5)
((#:guile _) #f)
((#:implicit-inputs? _) #t)
((#:configure-flags flags)
`(append (list
;; We don't need a full bootstrap here.
"--disable-bootstrap"
;; Make sure '-static' is passed where it matters.
"--with-stage1-ldflags=-static"
;; GCC 4.8+ requires a C++ compiler and library.
"--enable-languages=c,c++"
;; Make sure gcc-nm doesn't require liblto_plugin.so.
"--disable-lto"
"--disable-shared"
"--disable-plugin"
"--disable-libmudflap"
"--disable-libatomic"
"--disable-libsanitizer"
"--disable-libitm"
"--disable-libgomp"
"--disable-libcilkrts"
"--disable-libvtv"
"--disable-libssp"
"--disable-libquadmath")
(remove (cut string-match "--(.*plugin|enable-languages)" <>)
,flags)))
((#:phases phases)
`(modify-phases ,phases
(add-after 'pre-configure 'remove-lgcc_s
(lambda _
;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in
;; the 'pre-configure phase of our main gcc package, because
;; that shared library is not present in this static gcc. See
;; <https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00008.html>.
(substitute* (cons "gcc/config/rs6000/sysv4.h"
(find-files "gcc/config"
"^gnu-user.*\\.h$"))
((" -lgcc_s}}") "}}"))
#t)))))))
(substitute-keyword-arguments (package-arguments gcc-5)
((#:modules modules %gnu-build-system-modules)
`((srfi srfi-1)
(srfi srfi-26)
(ice-9 regex)
,@modules))
((#:guile _) #f)
((#:implicit-inputs? _) #t)
((#:configure-flags flags)
`(append (list
;; We don't need a full bootstrap here.
"--disable-bootstrap"
;; Make sure '-static' is passed where it matters.
"--with-stage1-ldflags=-static"
;; GCC 4.8+ requires a C++ compiler and library.
"--enable-languages=c,c++"
;; Make sure gcc-nm doesn't require liblto_plugin.so.
"--disable-lto"
"--disable-shared"
"--disable-plugin"
"--disable-libmudflap"
"--disable-libatomic"
"--disable-libsanitizer"
"--disable-libitm"
"--disable-libgomp"
"--disable-libcilkrts"
"--disable-libvtv"
"--disable-libssp"
"--disable-libquadmath")
(remove (cut string-match "--(.*plugin|enable-languages)" <>)
,flags)))
((#:phases phases)
`(modify-phases ,phases
(add-after 'pre-configure 'remove-lgcc_s
(lambda _
;; Remove the '-lgcc_s' added to GNU_USER_TARGET_LIB_SPEC in
;; the 'pre-configure phase of our main gcc package, because
;; that shared library is not present in this static gcc. See
;; <https://lists.gnu.org/archive/html/guix-devel/2015-01/msg00008.html>.
(substitute* (cons "gcc/config/rs6000/sysv4.h"
(find-files "gcc/config"
"^gnu-user.*\\.h$"))
((" -lgcc_s}}") "}}"))
#t))))))
(inputs
`(("zlib:static" ,zlib "static")
("isl:static" ,isl-0.18 "static")

Loading…
Cancel
Save