[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/01: gnu: gcc: Improve dynamic linker patching code.
From: |
Mark H. Weaver |
Subject: |
01/01: gnu: gcc: Improve dynamic linker patching code. |
Date: |
Wed, 07 Jan 2015 00:38:39 +0000 |
mhw pushed a commit to branch core-updates
in repository guix.
commit 91c47befb889ec2242078776cf58541eba8f938a
Author: Mark H Weaver <address@hidden>
Date: Tue Jan 6 19:37:04 2015 -0500
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.
---
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 4733fc1..a510af4 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."