aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/gcc.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-07-06 08:50:31 +0200
committerLudovic Courtès <ludo@gnu.org>2021-07-06 08:50:31 +0200
commiteeedb328dadc215f332f5446bc9a34cd4c2789e7 (patch)
tree602267b112b729e0c253cdacdf4884a76f8f7485 /gnu/packages/gcc.scm
parentdbacdb8c03596c09e00a9f8627dae23aea7f30e4 (diff)
downloadguix-eeedb328dadc215f332f5446bc9a34cd4c2789e7.tar
guix-eeedb328dadc215f332f5446bc9a34cd4c2789e7.tar.gz
gnu: gcc: Fix cross-compilation.
This fixes cross-compilation of GCC, as in: guix build --target=aarch64-linux-gnu -e '(@ (gnu packages gcc) gcc-10)' * gnu/packages/gcc.scm (gcc-canadian-cross-objdump-snippet): New variable. (gcc-5)[source]: Use it instead of inline 'snippet'. (gcc-8)[source]: Add 'modules' and 'snippet'. (gcc-9)[source]: Likewise. (gcc-10)[source]: Likewise. (gcc-11)[source]: Likewise.
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r--gnu/packages/gcc.scm42
1 files changed, 26 insertions, 16 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index ba691010bb..35f7d9a2e5 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
@@ -46,6 +46,7 @@
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
+ #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (ice-9 regex))
@@ -457,6 +458,17 @@ Go. It also includes runtime support libraries for these languages.")
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))))))))))
+(define gcc-canadian-cross-objdump-snippet
+ ;; Fix 'libcc1/configure' error when cross-compiling GCC. Without that,
+ ;; 'libcc1/configure' wrongfully determines that '-rdynamic' support is
+ ;; missing because $gcc_cv_objdump is empty:
+ ;;
+ ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67590
+ ;; http://cgit.openembedded.org/openembedded-core/commit/?id=f6e47aa9b12f9ab61530c40e0343f451699d9077
+ #~(substitute* "libcc1/configure"
+ (("\\$gcc_cv_objdump -T")
+ "$OBJDUMP_FOR_TARGET -T")))
+
(define-public gcc-5
;; Note: GCC >= 5 ships with .info files but 'make install' fails to install
;; them in a VPATH build.
@@ -479,17 +491,7 @@ Go. It also includes runtime support libraries for these languages.")
"gcc-fix-texi2pod.patch"
"gcc-5-hurd.patch"))
(modules '((guix build utils)))
- (snippet
- ;; Fix 'libcc1/configure' error when cross-compiling GCC.
- ;; Without that, 'libcc1/configure' wrongfully determines that
- ;; '-rdynamic' support is missing because $gcc_cv_objdump is
- ;; empty:
- ;;
- ;; https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67590
- ;; http://cgit.openembedded.org/openembedded-core/commit/?id=f6e47aa9b12f9ab61530c40e0343f451699d9077
- '(substitute* "libcc1/configure"
- (("\\$gcc_cv_objdump -T")
- "$OBJDUMP_FOR_TARGET -T")))))
+ (snippet gcc-canadian-cross-objdump-snippet)))
(inputs
`(;; GCC5 needs <isl/band.h> which is removed in later versions.
("isl" ,isl-0.18)
@@ -557,7 +559,9 @@ It also includes runtime support libraries for these languages.")))
"0l7d4m9jx124xsk6xardchgy2k5j5l2b15q322k31f0va4d8826k"))
(patches (search-patches "gcc-8-strmov-store-file-names.patch"
"gcc-5.0-libvtv-runpath.patch"
- "gcc-8-sort-libtool-find-output.patch"))))))
+ "gcc-8-sort-libtool-find-output.patch"))
+ (modules '((guix build utils)))
+ (snippet gcc-canadian-cross-objdump-snippet)))))
(define-public gcc-9
(package
@@ -572,7 +576,9 @@ It also includes runtime support libraries for these languages.")))
"13l3p6g2krilaawbapmn9zmmrh3zdwc36mfr3msxfy038hps6pf9"))
(patches (search-patches "gcc-9-strmov-store-file-names.patch"
"gcc-9-asan-fix-limits-include.patch"
- "gcc-5.0-libvtv-runpath.patch"))))))
+ "gcc-5.0-libvtv-runpath.patch"))
+ (modules '((guix build utils)))
+ (snippet gcc-canadian-cross-objdump-snippet)))))
(define-public gcc-10
(package
@@ -586,7 +592,9 @@ It also includes runtime support libraries for these languages.")))
(base32
"0i6378ig6h397zkhd7m4ccwjx5alvzrf2hm27p1pzwjhlv0h9x34"))
(patches (search-patches "gcc-9-strmov-store-file-names.patch"
- "gcc-5.0-libvtv-runpath.patch"))))))
+ "gcc-5.0-libvtv-runpath.patch"))
+ (modules '((guix build utils)))
+ (snippet gcc-canadian-cross-objdump-snippet)))))
(define-public gcc-11
(package
@@ -600,7 +608,9 @@ It also includes runtime support libraries for these languages.")))
(base32
"1pwxrjhsymv90xzh0x42cxfnmhjinf2lnrrf3hj5jq1rm2w6yjjc"))
(patches (search-patches "gcc-9-strmov-store-file-names.patch"
- "gcc-5.0-libvtv-runpath.patch"))))))
+ "gcc-5.0-libvtv-runpath.patch"))
+ (modules '((guix build utils)))
+ (snippet gcc-canadian-cross-objdump-snippet)))))
;; Note: When changing the default gcc version, update
;; the gcc-toolchain-* definitions.