From b810a85019ab3c4ee1f889d0751b8eb06157dadc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 12 Dec 2016 01:01:13 +0100 Subject: gnu: Default to GCC 5. This reinstates and adjusts commit e3d0fcbf7e55e8cbe8d0a1c5a24d73f341d7243b. * gnu/packages/patches/gcc-libiberty-printf-decl.patch: New file. * gnu/packages/gcc.scm (gcc-5)[source]: Use it. [patches]: Add "gcc-arm-bug-71399.patch". (gcc): Switch to GCC-5. * gnu/packages/commencement.scm (libstdc++-boot0): New variable. (gcc-boot0)[inputs]: Add it. (gcc-toolchain-4.9): Switch to GCC-4.9. (gcc-toolchain-5): Switch to GCC-FINAL. * gnu/local.mk (dist_patch_DATA): Add 'gcc-libiberty-printf-decl.patch'. --- gnu/packages/commencement.scm | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'gnu/packages/commencement.scm') diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 2431babcad..1238f5cf5b 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -172,6 +172,26 @@ ,cf))))) (inputs %boot0-inputs)))) +(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 our bootstrap compiler. + (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9)))) + (package + (inherit lib) + (name "libstdc++-boot0") + (arguments + `(#:guile ,%bootstrap-guile + #:implicit-inputs? #f + + ;; XXX: libstdc++.so NEEDs ld.so for some reason. + #:validate-runpath? #f + + ,@(package-arguments lib))) + (inputs %boot0-inputs) + (native-inputs '())))) + (define gcc-boot0 (package-with-bootstrap-guile (package (inherit gcc) @@ -257,6 +277,9 @@ ("mpc-source" ,(package-source mpc)) ("binutils-cross" ,binutils-boot0) + ;; The libstdc++ that libcc1 links against. + ("libstdc++" ,libstdc++-boot0) + ;; Call it differently so that the builder can check whether ;; the "libc" input is #f. ("libc-native" ,@(assoc-ref %boot0-inputs "libc")) @@ -986,10 +1009,10 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.") (gcc-toolchain gcc-4.8)) (define-public gcc-toolchain-4.9 - (gcc-toolchain gcc-final)) + (gcc-toolchain gcc-4.9)) (define-public gcc-toolchain-5 - (gcc-toolchain gcc-5)) + (gcc-toolchain gcc-final)) (define-public gcc-toolchain-6 (gcc-toolchain gcc-6)) -- cgit v1.2.3