diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-06-26 23:02:49 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-06-26 23:02:49 +0200 |
commit | ca16cb96066e29b32df924df9e1446efcc58c87f (patch) | |
tree | ebb649e621ecaf36202c8462b8d4a8ee86dfec9e /gnu/packages/gcc.scm | |
parent | 58ab9f9b8e80f9f0eb1e1e1c2e41e97533b65371 (diff) | |
download | guix-ca16cb96066e29b32df924df9e1446efcc58c87f.tar.gz |
gnu: gcc: Use `gcc-configure-flags-for-triplet' when cross-compiling GCC.
* gnu/packages/cross-base.scm (gcc-configure-flags-for-triplet): Move to... * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): ... here. New procedure. (gcc-4.7): Use it when (%current-target-system) is true.
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r-- | gnu/packages/gcc.scm | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index b297ef1fb1..bba35901a2 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -25,12 +25,27 @@ #:use-module (gnu packages multiprecision) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix build-system gnu)) + #:use-module (guix build-system gnu) + #:use-module (ice-9 regex)) (define %gcc-infrastructure ;; Base URL for GCC's infrastructure. "ftp://gcc.gnu.org/pub/gcc/infrastructure/") +(define-public (gcc-configure-flags-for-triplet target) + "Return a list of additional GCC `configure' flags for TARGET, a GNU triplet. + +The purpose of this procedure is to translate extended GNU triplets---e.g., +where the OS part is overloaded to denote a specific ABI---into GCC +`configure' options. We take extended GNU triplets that glibc recognizes." + (cond ((string-match "^mips64el.*gnuabin?64$" target) + ;; Triplets recognized by glibc as denoting the N64 ABI; see + ;; ports/sysdeps/mips/preconfigure. + '("--with-abi=64")) + (else + ;; TODO: Add `armel.*gnueabi', `hf', etc. + '()))) + (define-public gcc-4.7 (let* ((stripped? #t) ; TODO: make this a parameter (maybe-target-tools @@ -64,6 +79,12 @@ "/include") "--without-headers"))) + ;; When cross-compiling GCC, pass the right options for the + ;; target triplet. + (or (and=> (%current-target-system) + gcc-configure-flags-for-triplet) + '()) + (maybe-target-tools)))))) (package (name "gcc") |