On 02/08/2015 12:22 AM, Ludovic Courtès wrote:
Would this slightly more concise approach work:
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 6143f5b..5cb7f8b 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -202,10 +202,11 @@ where the OS part is overloaded to denote a specific
ABI---into GCC
;; Fix the dynamic linker's file name.
(substitute* (find-files "gcc/config"
- "^linux(64|-elf|-eabi)?\\.h$")
- (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
- (format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
- suffix
+ "^(gnu|linux)(64|-elf|-eabi)?\\.h$")
+ (("#define (GLIBC|GNU_USER)_DYNAMIC_LINKER([^ ]*).*$" _
+ kind suffix)
+ (format #f "#define ~a_DYNAMIC_LINKER~a \"~a\"~%"
+ kind suffix
(string-append libc ,(glibc-dynamic-linker)))))
;; Tell where to find libstdc++, libc, and `?crt*.o', except
Most probably yes, but the previous part of the code (which joins the
lines defining a dynamic linker) will also need to be modified to take
GNU_USER_DYNAMIC_LINKER into account, as the code also substitutes some
entries in the linux.h files, which are usually multiline (most of the
time, a CHOOSE_DYNAMIC_LINKER macro)...
Sorry, I'm way too weak of a schemer to do that, even though it's
probably incredibly simple...
Thanks,
Ludo’.
--
Marek.