~ruther/guix-local

f1f100b297fd0bf1fad4a1dc1b2764c6e85901db — Ludovic Courtès 13 years ago 6e0874d
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.
1 files changed, 6 insertions(+), 5 deletions(-)

M distro/base.scm
M distro/base.scm => distro/base.scm +6 -5
@@ 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"