diff options
author | Mark H Weaver <mhw@netris.org> | 2015-01-06 19:37:04 -0500 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-01-06 19:37:04 -0500 |
commit | 91c47befb889ec2242078776cf58541eba8f938a (patch) | |
tree | 3bfa340af0f112603541c4911ba98840f0c0cf59 | |
parent | fd19df72528a6ee7abd934da08c669094006fa2a (diff) | |
download | guix-91c47befb889ec2242078776cf58541eba8f938a.tar guix-91c47befb889ec2242078776cf58541eba8f938a.tar.gz |
gnu: gcc: Improve dynamic linker patching code.
* gnu/packages/gcc.scm (gcc-4.7): Join multi-line definitions of
GLIBC_DYNAMIC_LINKER* before attempting substitutions.
(gcc-4.9)[arguments]: Remove arguments override.
-rw-r--r-- | gnu/packages/gcc.scm | 34 |
1 files changed, 11 insertions, 23 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 4733fc1af6..a510af48a0 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -178,6 +178,16 @@ where the OS part is overloaded to denote a specific ABI---into GCC ;; The following is not performed for `--without-headers' ;; cross-compiler builds. + ;; Join multi-line definitions of GLIBC_DYNAMIC_LINKER* into a + ;; single line, to allow the next step to work properly. + (for-each + (lambda (x) + (substitute* (find-files "gcc/config" + "^linux(64|-elf)?\\.h$") + (("(#define GLIBC_DYNAMIC_LINKER.*)\\\\\n$" _ line) + line))) + '(1 2 3)) + ;; Fix the dynamic linker's file name. (substitute* (find-files "gcc/config" "^linux(64|-elf)?\\.h$") @@ -279,29 +289,7 @@ Go. It also includes runtime support libraries for these languages.") version "/gcc-" version ".tar.bz2")) (sha256 (base32 - "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810")))) - - ;; TODO: In core-updates, improve the 'pre-configure phase of the main - ;; 'gcc' package so that the 'join-two-line-dynamic-linker-defns phase is - ;; no longer needed here. Then the entire 'arguments' override below can - ;; be removed. - (arguments - (substitute-keyword-arguments (package-arguments gcc-4.7) - ((#:phases phases) - `(alist-cons-before - 'pre-configure 'join-two-line-dynamic-linker-defns - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "libc"))) - (when libc - ;; Join two-line definitions of GLIBC_DYNAMIC_LINKER* into a - ;; single line, to allow the 'pre-configure phase to work - ;; properly. - (substitute* (find-files "gcc/config" - "^linux(64|-elf)?\\.h$") - (("(#define GLIBC_DYNAMIC_LINKER[^ ]*.*)\\\\\n$" _ line) - line))) - #t)) - ,phases)))))) + "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810")))))) (define* (custom-gcc gcc name languages #:key (separate-lib-output? #t)) "Return a custom version of GCC that supports LANGUAGES." |