summaryrefslogtreecommitdiff
path: root/gnu/packages/gcc.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-01-22 13:11:45 +0100
committerLudovic Courtès <ludo@gnu.org>2017-01-22 13:13:36 +0100
commit33ae7d43854d8e36f29892015d4ee172c7f518f6 (patch)
tree9a667f0260dcce1ab3b0b597335c73f8e8263350 /gnu/packages/gcc.scm
parentc8b44fc10717a106b305d66e95ea27d1a3be45f5 (diff)
downloadgnu-guix-33ae7d43854d8e36f29892015d4ee172c7f518f6.tar
gnu-guix-33ae7d43854d8e36f29892015d4ee172c7f518f6.tar.gz
gnu: gcc: Properly set the dynamic linker file name on GNU/Hurd.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: In 'pre-configure' phase, match 'GNU_USER_DYNAMIC_LINKER' in addition to 'GLIBC_DYNAMIC_LINKER'. This fixes GNU/Hurd cross-compilation as reported at <https://lists.gnu.org/archive/html/guix-devel/2017-01/msg01731.html>.
Diffstat (limited to 'gnu/packages/gcc.scm')
-rw-r--r--gnu/packages/gcc.scm11
1 files changed, 6 insertions, 5 deletions
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 206c67ed99..0cdef6dec9 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -205,17 +205,18 @@ where the OS part is overloaded to denote a specific ABI---into GCC
(for-each
(lambda (x)
(substitute* (find-files "gcc/config"
- "^linux(64|-elf|-eabi)?\\.h$")
- (("(#define GLIBC_DYNAMIC_LINKER.*)\\\\\n$" _ line)
+ "^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
+ (("(#define (GLIBC|GNU_USER)_DYNAMIC_LINKER.*)\\\\\n$" _ line)
line)))
'(1 2 3))
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
"^(linux|gnu|sysv4)(64|-elf|-eabi)?\\.h$")
- (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
- (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
- suffix
+ (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ ]*).*$"
+ _ gnu-user suffix)
+ (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
+ gnu-user suffix
(string-append libc ,(glibc-dynamic-linker)))))
;; Tell where to find libstdc++, libc, and `?crt*.o', except