~ruther/guix-local

7e35b9dd3ddb6ec4b9bed3c01a99fe1638e96c66 — Ludovic Courtès 11 years ago b416c64
gnu: gcc: Add $libdir to the RUNPATH of libvtv.so.

* gnu/packages/gcc.scm (gcc-4.9): Inherit from GCC-4.8.
  [source]: Add 'gcc-libvtv-runpath.patch'.
  (gcc-5.1): Inherit from GCC-4.9.
  [source]: Use patches from GCC-4.9.
* gnu/packages/patches/gcc-libvtv-runpath.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
3 files changed, 41 insertions(+), 23 deletions(-)

M gnu-system.am
M gnu/packages/gcc.scm
A gnu/packages/patches/gcc-libvtv-runpath.patch
M gnu-system.am => gnu-system.am +1 -0
@@ 420,6 420,7 @@ dist_patch_DATA =						\
  gnu/packages/patches/gawk-shell.patch				\
  gnu/packages/patches/gcc-arm-link-spec-fix.patch		\
  gnu/packages/patches/gcc-cross-environment-variables.patch	\
  gnu/packages/patches/gcc-libvtv-runpath.patch			\
  gnu/packages/patches/geoclue-config.patch			\
  gnu/packages/patches/ghostscript-runpath.patch		\
  gnu/packages/patches/gitolite-openssh-6.8-compat.patch	\

M gnu/packages/gcc.scm => gnu/packages/gcc.scm +25 -23
@@ 307,37 307,39 @@ Go.  It also includes runtime support libraries for these languages.")
  (package (inherit gcc-4.7)
    (version "4.8.4")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gcc/gcc-"
                                 version "/gcc-" version ".tar.bz2"))
             (sha256
              (base32
               "15c6gwm6dzsaagamxkak5smdkf1rdfbqqjs9jdbrp3lbg4ism02a"))
             (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
              (method url-fetch)
              (uri (string-append "mirror://gnu/gcc/gcc-"
                                  version "/gcc-" version ".tar.bz2"))
              (sha256
               (base32
                "15c6gwm6dzsaagamxkak5smdkf1rdfbqqjs9jdbrp3lbg4ism02a"))
              (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))

(define-public gcc-4.9
  (package (inherit gcc-4.7)
  (package (inherit gcc-4.8)
    (version "4.9.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gcc/gcc-"
                                 version "/gcc-" version ".tar.bz2"))
             (sha256
              (base32
               "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))
             (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
              (method url-fetch)
              (uri (string-append "mirror://gnu/gcc/gcc-"
                                  version "/gcc-" version ".tar.bz2"))
              (sha256
               (base32
                "1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))
              (patches (map search-patch
                            '("gcc-arm-link-spec-fix.patch"
                              "gcc-libvtv-runpath.patch")))))))

(define-public gcc-5.1
  (package (inherit gcc-4.7)
  (package (inherit gcc-4.9)
    (version "5.1.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "mirror://gnu/gcc/gcc-"
                                 version "/gcc-" version ".tar.bz2"))
             (sha256
              (base32
               "1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp"))
             (patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
              (method url-fetch)
              (uri (string-append "mirror://gnu/gcc/gcc-"
                                  version "/gcc-" version ".tar.bz2"))
              (sha256
               (base32
                "1bd5vj4px3s8nlakbgrh38ynxq4s654m6nxz7lrj03mvkkwgvnmp"))
              (patches (origin-patches (package-source gcc-4.9)))))))

(define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
  "Return a custom version of GCC that supports LANGUAGES."

A gnu/packages/patches/gcc-libvtv-runpath.patch => gnu/packages/patches/gcc-libvtv-runpath.patch +15 -0
@@ 0,0 1,15 @@
GCC 4.9 and later have libvtv and, just like libstdc++ (see
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32354), it doesn't
have $libdir in its RUNPATH, but it NEEDs libgcc_s.  This patch
fixes that.

--- gcc-4.9.2/libvtv/Makefile.in	2014-10-30 09:28:58.000000000 +0100
+++ gcc-4.9.2/libvtv/Makefile.in	2015-04-30 09:51:04.161129705 +0200
@@ -15,6 +15,7 @@
 
 @SET_MAKE@
 
+AM_LDFLAGS = -Wl,-rpath=$(libdir)
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@