summaryrefslogtreecommitdiff
path: root/lang/gcc45
diff options
context:
space:
mode:
authorpho <pho@pkgsrc.org>2014-05-08 10:14:46 +0000
committerpho <pho@pkgsrc.org>2014-05-08 10:14:46 +0000
commit542ce75cf135eb9b4c01141870f396ffc6e9a087 (patch)
tree8277f1ed27691887b1e3f4e2e8971ca08de7d265 /lang/gcc45
parentcc18335b6dc8a9d014e305d975ad3eb0c765a9cb (diff)
downloadpkgsrc-542ce75cf135eb9b4c01141870f396ffc6e9a087.tar.gz
Darwin: Fix an issue that gcc producing binaries linked with a wrong libgcc_s
If we don't install libgcc_s.10.[45].dylib, our gcc links binaries with *both* /usr/lib/libgcc_s.1.dylib and ${GCC_PREFIX}/lib/libgcc_s.1.dylib, which is certainly a bad thing. The problem was already reported to the upstream but it caught seemingly no attention: http://gcc.gnu.org/ml/gcc-help/2010-07/msg00164.html
Diffstat (limited to 'lang/gcc45')
-rw-r--r--lang/gcc45/distinfo3
-rw-r--r--lang/gcc45/patches/patch-libgcc_config_t-slibgcc-darwin26
2 files changed, 28 insertions, 1 deletions
diff --git a/lang/gcc45/distinfo b/lang/gcc45/distinfo
index c503ba9af69..0e616a37c2c 100644
--- a/lang/gcc45/distinfo
+++ b/lang/gcc45/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.9 2014/05/08 02:03:58 pho Exp $
+$NetBSD: distinfo,v 1.10 2014/05/08 10:14:46 pho Exp $
SHA1 (gcc-4.5.3.tar.bz2) = 73c45dfda5eef6b124be53e56828b5925198cc1b
RMD160 (gcc-4.5.3.tar.bz2) = d07aa90f2186b4e082dfd5ad5d5188c097fb6247
@@ -15,5 +15,6 @@ SHA1 (patch-ak) = 3d8a859ba436a4b204bb99f59cd5331d695aa811
SHA1 (patch-gcc_doc_cppopts.texi) = fba9b651bdef12f9034e75cb43533b50c2c94540
SHA1 (patch-gcc_doc_generic.texi) = b255fb30f889a415318a29c50ac0510ccece0bc4
SHA1 (patch-gcc_doc_invoke.texi) = 7418eddc7e4d39fab3da1922ff86965240661fb4
+SHA1 (patch-libgcc_config_t-slibgcc-darwin) = 2ddda2dd979f27c623e47db70c5abb3befdb68c9
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = e328bc56bbb9c3e0a76c8d98a7c0a7b8b8eda22e
SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__noninline.h) = 38dd700202d741de1eeee01c44eee6e2e363b9c5
diff --git a/lang/gcc45/patches/patch-libgcc_config_t-slibgcc-darwin b/lang/gcc45/patches/patch-libgcc_config_t-slibgcc-darwin
new file mode 100644
index 00000000000..d786fb45240
--- /dev/null
+++ b/lang/gcc45/patches/patch-libgcc_config_t-slibgcc-darwin
@@ -0,0 +1,26 @@
+$NetBSD: patch-libgcc_config_t-slibgcc-darwin,v 1.1 2014/05/08 10:14:46 pho Exp $
+
+If we don't install libgcc_s.10.[45].dylib, our gcc links binaries
+with *both* /usr/lib/libgcc_s.1.dylib and
+${GCC_PREFIX}/lib/libgcc_s.1.dylib, which is certainly a bad thing.
+
+The problem was already reported to the upstream but it caught
+seemingly no attention:
+http://gcc.gnu.org/ml/gcc-help/2010-07/msg00164.html
+
+--- libgcc/config/t-slibgcc-darwin.orig 2010-02-02 08:18:48.000000000 +0000
++++ libgcc/config/t-slibgcc-darwin
+@@ -26,13 +26,7 @@ SHLIB_MKMAP = $(gcc_srcdir)/mkmap-flat.a
+ SHLIB_MKMAP_OPTS = -v leading_underscore=1
+ SHLIB_MAPFILES += $(gcc_srcdir)/libgcc-std.ver $(gcc_srcdir)/libgcc-libsystem.ver
+
+-# we're only going to build the stubs if the target slib is /usr/lib
+-# there is no other case in which they're useful in a live system.
+-ifeq (/usr/lib,$(shlib_slibdir))
+ LGCC_STUBS = libgcc_s.10.4.dylib libgcc_s.10.5.dylib
+-else
+-LGCC_STUBS =
+-endif
+
+ LGCC_FILES = libgcc_s.$(SHLIB_SOVERSION)$(SHLIB_EXT)
+ LGCC_FILES += $(LGCC_STUBS)