diff options
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r-- | gnu/packages/gcc.scm | 65 |
1 files changed, 45 insertions, 20 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index bb8a922d53..c07fdd2c80 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2015, 2016, 2017, 2018, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Carlos Sánchez de La Lama <csanchezdll@gmail.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; Copyright © 2018, 2020 Marius Bakke <mbakke@fastmail.com> +;;; Copyright © 2018, 2020, 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz> ;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org> ;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com> @@ -173,7 +173,7 @@ where the OS part is overloaded to denote a specific ABI---into GCC "lib" ;libgcc_s, libgomp, etc. (15+ MiB) "debug")) ;debug symbols of run-time libraries - (inputs (list gmp mpfr mpc libelf zlib)) + (inputs (list gmp mpfr mpc elfutils zlib)) ;; GCC < 5 is one of the few packages that doesn't ship .info files. ;; Newer texinfos fail to build the manual, so we use an older one. @@ -295,15 +295,13 @@ where the OS part is overloaded to denote a specific ABI---into GCC (substitute* "gcc/config/aarch64/t-aarch64-linux" (("lib64") "lib"))) - ;; TODO: Make this unconditional in core-updates. ;; The STARTFILE_PREFIX_SPEC prevents gcc from finding the ;; gcc:lib output, which causes ld to not find -lgcc_s. - ,@(if (target-riscv64?) - `((when (file-exists? "gcc/config/riscv") - (substitute* "gcc/config/riscv/linux.h" - (("define STARTFILE_PREFIX_SPEC") - "define __STARTFILE_PREFIX_SPEC")))) - '()) + (when (file-exists? "gcc/config/riscv") + (substitute* '("gcc/config/riscv/linux.h" + "gcc/config/riscv/riscv.h") ; GCC < 10 + (("define STARTFILE_PREFIX_SPEC") + "define __STARTFILE_PREFIX_SPEC"))) (when (file-exists? "libbacktrace") ;; GCC 4.8+ comes with libbacktrace. By default it builds @@ -658,16 +656,17 @@ It also includes runtime support libraries for these languages.") (define-public gcc-10 (package (inherit gcc-8) - (version "10.3.0") + (version "10.4.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gcc/gcc-" version "/gcc-" version ".tar.xz")) (sha256 (base32 - "0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34")) + "1wg4xdizkksmwi66mvv2v4pk3ja8x64m7v9gzhykzd3wrmdpsaf9")) (patches (search-patches "gcc-9-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")) + "gcc-5.0-libvtv-runpath.patch" + "gcc-10-tree-sra-union-handling.patch")) (modules '((guix build utils))) (snippet gcc-canadian-cross-objdump-snippet))) (properties @@ -688,7 +687,8 @@ It also includes runtime support libraries for these languages.") (base32 "0fdclcwf728wbq52vphfcjywzhpsjp3kifzj3pib3xcihs0z4z5l")) (patches (search-patches "gcc-9-strmov-store-file-names.patch" - "gcc-5.0-libvtv-runpath.patch")) + "gcc-5.0-libvtv-runpath.patch" + "gcc-10-tree-sra-union-handling.patch")) (modules '((guix build utils))) (snippet gcc-canadian-cross-objdump-snippet))) @@ -718,7 +718,7 @@ It also includes runtime support libraries for these languages.") ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions. -(define-public gcc gcc-10) +(define-public gcc gcc-11) ;;; @@ -821,8 +821,33 @@ using compilers other than GCC." (name "libstdc++") (arguments `(#:out-of-source? #t + #:modules ((srfi srfi-1) + (srfi srfi-26) + ,@%gnu-build-system-modules) #:phases (modify-phases %standard-phases + ,@(if (version>=? (package-version gcc) "11") + '((add-after 'unpack 'hide-gcc-headers + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (let ((gcc (assoc-ref (or native-inputs inputs) "gcc"))) + ;; Fix a regression in GCC 11 where the GCC headers + ;; shadows glibc headers when building libstdc++. An + ;; upstream fix was added in GCC 11.3.0, but it only + ;; hides system include directories, not those on + ;; CPLUS_INCLUDE_PATH. See discussion at + ;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100017> + ;; and the similar adjustment in GCC-FINAL. + (substitute* "libstdc++-v3/src/c++17/Makefile.in" + (("AM_CXXFLAGS = ") + (string-append "CPLUS_INCLUDE_PATH = " + (string-join + (remove (cut string-prefix? gcc <>) + (string-split + (getenv "CPLUS_INCLUDE_PATH") + #\:)) + ":") + "\nAM_CXXFLAGS = "))))))) + '()) ;; Force rs6000 (i.e., powerpc) libdir to be /lib and not /lib64. (add-before 'chdir 'fix-rs6000-libdir (lambda _ @@ -1128,7 +1153,7 @@ provides the GNU compiler for the Go programming language.")) (custom-gcc gcc-12 "gcc-objc" '("objc") %objc-search-paths)) -(define-public gcc-objc gcc-objc-10) +(define-public gcc-objc gcc-objc-11) (define %objc++-search-paths (list (search-path-specification @@ -1178,7 +1203,7 @@ provides the GNU compiler for the Go programming language.")) (custom-gcc gcc-12 "gcc-objc++" '("obj-c++") %objc++-search-paths)) -(define-public gcc-objc++ gcc-objc++-10) +(define-public gcc-objc++ gcc-objc++-11) (define (make-libstdc++-doc gcc) "Return a package with the libstdc++ documentation for GCC." @@ -1239,17 +1264,17 @@ provides the GNU compiler for the Go programming language.")) (define-public isl (package (name "isl") - (version "0.23") + (version "0.24") (source (origin (method url-fetch) ;; Used to be at isl.gforge.inria.fr. (uri (list (string-append "mirror://sourceforge/libisl/isl-" - version ".tar.bz2") + version ".tar.xz") (string-append %gcc-infrastructure - "isl-" version ".tar.bz2"))) + "isl-" version ".tar.xz"))) (sha256 (base32 - "0k91zck10zxs9sk3yrbb92y1j3w981w3fbwkfwd7kl779b0j52f5")))) + "1bgbk6n93qqn7w8v21kxf4x6dc3z0ypqrzvgfd46nhagak60ac84")))) (build-system gnu-build-system) (outputs '("out" "static")) (arguments |