summaryrefslogtreecommitdiff
path: root/gnu/packages/gcc.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r--gnu/packages/gcc.scm65
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