From f1f100b297fd0bf1fad4a1dc1b2764c6e85901db Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 1 Sep 2012 00:35:12 +0200 Subject: distro: gcc: Allow `libstdc++' to be found. * distro/base.scm (gcc-4.7): Add `-rpath' arguments to `LIB_SPEC' to allow `libstdc++' to be found by users. --- distro/base.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'distro') diff --git a/distro/base.scm b/distro/base.scm index 83aec380ec..44ee059748 100644 --- a/distro/base.scm +++ b/distro/base.scm @@ -609,8 +609,9 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.") #:phases (alist-cons-before 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "libc"))) + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (libc (assoc-ref inputs "libc"))) ;; Fix the dynamic linker's file name. (substitute* "gcc/config/i386/linux64.h" (("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix) @@ -618,14 +619,14 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.") suffix (string-append libc "/lib/ld-linux-x86-64.so.2")))) - ;; Tell where to find libc and `?crt*.o', except + ;; Tell where to find libstdc++, libc, and `?crt*.o', except ;; `crt{begin,end}.o', which come with GCC. (substitute* ("gcc/config/gnu-user.h" "gcc/config/i386/gnu-user.h" "gcc/config/i386/gnu-user64.h") (("#define LIB_SPEC (.*)$" _ suffix) - (format #f "#define LIB_SPEC \"-L~a/lib \" ~a~%" - libc suffix)) + (format #f "#define LIB_SPEC \"-L~a/lib -rpath=~a/lib64 -rpath=~a/lib \" ~a~%" + libc out out suffix)) (("^.*crt([^\\.])\\.o.*$" line) (regexp-substitute/global #f "([a-zA-Z]?)crt([^\\.])\\.o" -- cgit 1.4.1