From ca16cb96066e29b32df924df9e1446efcc58c87f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 26 Jun 2013 23:02:49 +0200 Subject: 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. --- gnu/packages/gcc.scm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'gnu/packages/gcc.scm') 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") -- cgit v1.2.3