aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/commencement.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-08-31 17:40:40 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-09-01 12:58:47 +0200
commit3469a5ea47ba7481bda9b2ff144bc13efd943c87 (patch)
tree7cf98e2d9e0223e99e02823e4f89efa9d05bc413 /gnu/packages/commencement.scm
parenta446cf26d7f386a81b8667f5ec75fb5f6232d202 (diff)
downloadguix-3469a5ea47ba7481bda9b2ff144bc13efd943c87.tar
guix-3469a5ea47ba7481bda9b2ff144bc13efd943c87.tar.gz
gnu: gcc@4.9: Fix FTBFS with Glibc >= 2.28.
* gnu/packages/commencement.scm (gcc-for-libstdc++): New variable. (libstdc++-boot0): Inherit from GCC-FOR-LIBSTDC++ instead of GCC-4.9. * gnu/packages/gcc.scm (gcc-4.9)[source](patches): Add "gcc-4.9-libsanitizer-ustat.patch". * gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu/packages/commencement.scm')
-rw-r--r--gnu/packages/commencement.scm15
1 files changed, 14 insertions, 1 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index 30a0ffcec9..0aa65fe638 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -186,12 +186,25 @@
,cf)))))
(inputs %boot0-inputs))))
+;; Use a "fixed" package source for this early libstdc++ variant so we can
+;; update GCC 4.9 without triggering a full rebuild.
+(define gcc-for-libstdc++
+ (package
+ (inherit gcc-4.9)
+ (source (origin
+ (inherit (package-source gcc-4.9))
+ (patches (search-patches "gcc-4.9-libsanitizer-fix.patch"
+ "gcc-arm-bug-71399.patch"
+ "gcc-asan-missing-include.patch"
+ "gcc-libvtv-runpath.patch"
+ "gcc-fix-texi2pod.patch"))))))
+
(define libstdc++-boot0
;; GCC's libcc1 is always built as a shared library (the top-level
;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer
;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on
;; C++14 features missing in some of our bootstrap compilers.
- (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9))))
+ (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-for-libstdc++))))
(package
(inherit lib)
(name "libstdc++-boot0")