summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-04-30 13:31:59 +0200
committerLudovic Courtès <ludo@gnu.org>2015-04-30 13:31:59 +0200
commit7e35b9dd3ddb6ec4b9bed3c01a99fe1638e96c66 (patch)
tree20aa00e6a1ee3203549ec5e702418f2d5a8b3d10
parentb416c647e934c1a086a3cb534d31968e7ea53808 (diff)
downloadguix-7e35b9dd3ddb6ec4b9bed3c01a99fe1638e96c66.tar.gz
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.
-rw-r--r--gnu-system.am1
-rw-r--r--gnu/packages/gcc.scm48
-rw-r--r--gnu/packages/patches/gcc-libvtv-runpath.patch15
3 files changed, 41 insertions, 23 deletions
diff --git a/gnu-system.am b/gnu-system.am
index 820e1e1e79..b2f5bbe833 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -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	\
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index dbce52e2f2..8804f3b12a 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -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."
diff --git a/gnu/packages/patches/gcc-libvtv-runpath.patch b/gnu/packages/patches/gcc-libvtv-runpath.patch
new file mode 100644
index 0000000000..df74363c83
--- /dev/null
+++ b/gnu/packages/patches/gcc-libvtv-runpath.patch
@@ -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@