diff options
author | richard <richard> | 2014-05-10 14:14:58 +0000 |
---|---|---|
committer | richard <richard> | 2014-05-10 14:14:58 +0000 |
commit | 0cd350e1ed9f7b7a24f5bba7d11cc8c8abc7264b (patch) | |
tree | 9fee0b89c328340ae03893679deb4b03a6448814 /lang/gcc48 | |
parent | a7780bb435ee1d20484d0334846fc1f78c6f181d (diff) | |
download | pkgsrc-0cd350e1ed9f7b7a24f5bba7d11cc8c8abc7264b.tar.gz |
x86-64 sunos fix for g++ and -Wl,-Bdirect involving libtool
references:http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
backport to gcc47 and gcc48
Diffstat (limited to 'lang/gcc48')
-rw-r--r-- | lang/gcc48/Makefile | 4 | ||||
-rw-r--r-- | lang/gcc48/distinfo | 7 | ||||
-rw-r--r-- | lang/gcc48/patches/patch-gcc_config_sol2.h | 26 | ||||
-rw-r--r-- | lang/gcc48/patches/patch-gcc_testsuite_g++.dg_eh_unwind-direct.C | 20 | ||||
-rw-r--r-- | lang/gcc48/patches/patch-libgcc_config_t-slibgcc-sld | 28 | ||||
-rw-r--r-- | lang/gcc48/patches/patch-libgo_config_ltmain.sh | 13 | ||||
-rw-r--r-- | lang/gcc48/patches/patch-ltmain.sh | 13 |
7 files changed, 108 insertions, 3 deletions
diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile index 24222eef01a..b494e6b503e 100644 --- a/lang/gcc48/Makefile +++ b/lang/gcc48/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.12 2014/04/22 20:46:41 ryoon Exp $ +# $NetBSD: Makefile,v 1.13 2014/05/10 14:14:58 richard Exp $ GCC_PKGNAME= gcc48 .include "version.mk" @@ -8,7 +8,7 @@ PKGNAME= ${GCC_PKGNAME}-${GCC48_DIST_VERSION} ## When bumping the PKGREVISION of this package the PKGREVISION of ## lang/gcc48-libs needs to be bump to be at least 1 more than the ## PKGREVISION of this package! -PKGREVISION= 2 +PKGREVISION= 3 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC48_DIST_VERSION}/} EXTRACT_SUFX= .tar.bz2 diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo index f6855426c42..59ef383d77e 100644 --- a/lang/gcc48/distinfo +++ b/lang/gcc48/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.15 2014/04/22 20:46:41 ryoon Exp $ +$NetBSD: distinfo,v 1.16 2014/05/10 14:14:58 richard Exp $ SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a @@ -18,18 +18,22 @@ SHA1 (patch-gcc_config_dragonfly.opt) = 92f615c73c2e94664bae5b5935ab8b09bca15f73 SHA1 (patch-gcc_config_host-netbsd.c) = 8f13b09dd7006d456cd1c66e895be504e9537880 SHA1 (patch-gcc_config_i386_dragonfly.h) = 0d3f785434c02beb9c4561fe59842a970e8f7896 SHA1 (patch-gcc_config_netbsd-stdint.h) = 025fc883101a187e84ed4c0772406720d645d550 +SHA1 (patch-gcc_config_sol2.h) = de6455ee88f281737501287759b7a83b8db05398 SHA1 (patch-gcc_config_x-netbsd) = 6dc3d78e26df62054ea29f98ca51592858e671e3 SHA1 (patch-gcc_configure) = a4b670d0c54c410d38715b7a2a572a7048e3ec5e SHA1 (patch-gcc_fortran_f95-lang.c) = 945aacf6b307f2120a4105c833b45a40feced68e SHA1 (patch-gcc_ggc-common.c) = fa577bc25260d7e6304f166686ba51c0b677d7f6 SHA1 (patch-gcc_ginclude_stddef.h) = 220ec23aecffca81337ae4c06afc18051da89b9a SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783 +SHA1 (patch-gcc_testsuite_g++.dg_eh_unwind-direct.C) = fd85ccee102e9618a8010d2dcbb2d9916b28f1cc SHA1 (patch-include_libiberty.h) = ad2c64e9a14405c89b02ff68811b1c889405d0a1 SHA1 (patch-libgcc_config.host) = 1807e784c9808243d1a99b19534d94752d81ce6d SHA1 (patch-libgcc_config_i386_dragonfly-unwind.h) = 9d77252dd982495e90f95b82706bab29e581df9f +SHA1 (patch-libgcc_config_t-slibgcc-sld) = 1b3ae1dc03eaad16a51311049ffc9e42c44dfcbc SHA1 (patch-libgcc_crtstuff.c) = 88500ea895cd683608f8f2b7177149f11947e3b4 SHA1 (patch-libgcc_unwind-dw2-fde-dip.c) = 770f04f3cbeb0d794fa297b328f06f6e687419c0 SHA1 (patch-libgo_Makefile.in) = 612987541f745c7be6835ce7fb7119884db294c3 +SHA1 (patch-libgo_config_ltmain.sh) = 703a27554e479cc2e48410a6bb0e5f5b4be2c150 SHA1 (patch-libjava_boehm.cc) = b18bc9d410a62543583c77e011f50b86f41ca18a SHA1 (patch-libjava_configure) = 9c83d60e155d6a9aac542d65ff195a99c5c764ff SHA1 (patch-libjava_contrib_rebuild-gcj-db.in) = bb01d738fc7db05046ae37e8ade32574de1d8297 @@ -46,3 +50,4 @@ SHA1 (patch-libstdc++-v3_config_os_bsd_netbsd_ctype__inline.h) = 626fc1f9c035ac5 SHA1 (patch-libstdc++-v3_configure) = 3821275fa698221d7665ea3c98b0a24f33954a5a SHA1 (patch-libstdc++-v3_configure.host) = 7426ea4a9735e5f886f4a3ffb4a9ba62734178c4 SHA1 (patch-libstdc++-v3_libsupc++_unwind-cxx.h) = 9784bfa4323f8498b36565d0fea28fce69ffdbb1 +SHA1 (patch-ltmain.sh) = 86c1511bd8ff133ba208ec8ec7e206d77ce85d01 diff --git a/lang/gcc48/patches/patch-gcc_config_sol2.h b/lang/gcc48/patches/patch-gcc_config_sol2.h new file mode 100644 index 00000000000..84e6f0f8e15 --- /dev/null +++ b/lang/gcc48/patches/patch-gcc_config_sol2.h @@ -0,0 +1,26 @@ +$NetBSD: patch-gcc_config_sol2.h,v 1.1 2014/05/10 14:14:59 richard Exp $ + +--- gcc/config/sol2.h.orig 2013-01-10 20:38:27.000000000 +0000 ++++ gcc/config/sol2.h +@@ -171,12 +171,20 @@ along with GCC; see the file COPYING3. + #define RDYNAMIC_SPEC "--export-dynamic" + #endif + ++#ifndef USE_GLD ++/* With Sun ld, use mapfile to enforce direct binding to libgcc_s unwinder. */ ++#define LINK_LIBGCC_MAPFILE_SPEC "-M %slibgcc-unwind.map" ++#else ++/* GNU ld doesn't support direct binding. */ ++#define LINK_LIBGCC_MAPFILE_SPEC "" ++#endif ++ + #undef LINK_SPEC + #define LINK_SPEC \ + "%{h*} %{v:-V} \ + %{!shared:%{!static:%{rdynamic: " RDYNAMIC_SPEC "}}} \ + %{static:-dn -Bstatic} \ +- %{shared:-G -dy %{!mimpure-text:-z text}} \ ++ %{shared:-G -dy %{!mimpure-text:-z text} " LINK_LIBGCC_MAPFILE_SPEC "} \ + %{symbolic:-Bsymbolic -G -dy -z text} \ + %(link_arch) \ + %{Qy:} %{!Qn:-Qy}" diff --git a/lang/gcc48/patches/patch-gcc_testsuite_g++.dg_eh_unwind-direct.C b/lang/gcc48/patches/patch-gcc_testsuite_g++.dg_eh_unwind-direct.C new file mode 100644 index 00000000000..5ea2cbaf924 --- /dev/null +++ b/lang/gcc48/patches/patch-gcc_testsuite_g++.dg_eh_unwind-direct.C @@ -0,0 +1,20 @@ +$NetBSD: patch-gcc_testsuite_g++.dg_eh_unwind-direct.C,v 1.1 2014/05/10 14:14:59 richard Exp $ + +--- gcc/testsuite/g++.dg/eh/unwind-direct.C.orig 2014-01-18 17:52:15.019246553 +0000 ++++ gcc/testsuite/g++.dg/eh/unwind-direct.C +@@ -0,0 +1,15 @@ ++// PR target/59788 ++// { dg-do run { target { *-*-solaris2* && { ! gld } } } } ++// { dg-options "-Wl,-Bdirect" } ++ ++#include <stdexcept> ++ ++int ++main(void) ++{ ++ try ++ { throw std::runtime_error( "Catch me if you can!"); } ++ catch(...) ++ { return 0; } ++ return 1; ++} diff --git a/lang/gcc48/patches/patch-libgcc_config_t-slibgcc-sld b/lang/gcc48/patches/patch-libgcc_config_t-slibgcc-sld new file mode 100644 index 00000000000..d711872437f --- /dev/null +++ b/lang/gcc48/patches/patch-libgcc_config_t-slibgcc-sld @@ -0,0 +1,28 @@ +$NetBSD: patch-libgcc_config_t-slibgcc-sld,v 1.1 2014/05/10 14:14:59 richard Exp $ + +--- libgcc/config/t-slibgcc-sld.orig 2011-06-01 14:39:17.000000000 +0000 ++++ libgcc/config/t-slibgcc-sld +@@ -3,3 +3,23 @@ + + SHLIB_LDFLAGS = -Wl,-h,$(SHLIB_SONAME) -Wl,-z,text -Wl,-z,defs \ + -Wl,-M,$(SHLIB_MAP) ++ ++# Linker mapfile to enforce direct binding to libgcc_s unwinder ++# (PR target/59788). ++libgcc-unwind.map: libgcc-std.ver ++ @(echo "{"; \ ++ for f in `grep _Unwind_ $< | sort`; do \ ++ echo " $$f = EXTERN DIRECT;"; \ ++ done; \ ++ echo "};" ) > $@ ++ ++# Copy libgcc-unwind.map to the place where gcc will look for it at build-time. ++install-libgcc-unwind-map-forbuild: libgcc-unwind.map ++ $(INSTALL_DATA) $< $(gcc_objdir) ++ ++all: install-libgcc-unwind-map-forbuild ++ ++install-libgcc-unwind-map: libgcc-unwind.map ++ $(INSTALL_DATA) $< $(DESTDIR)$(slibdir) ++ ++install: install-libgcc-unwind-map diff --git a/lang/gcc48/patches/patch-libgo_config_ltmain.sh b/lang/gcc48/patches/patch-libgo_config_ltmain.sh new file mode 100644 index 00000000000..b89a96bfb28 --- /dev/null +++ b/lang/gcc48/patches/patch-libgo_config_ltmain.sh @@ -0,0 +1,13 @@ +$NetBSD: patch-libgo_config_ltmain.sh,v 1.1 2014/05/10 14:14:59 richard Exp $ + +--- libgo/config/ltmain.sh.orig 2010-11-12 20:52:54.000000000 +0000 ++++ libgo/config/ltmain.sh +@@ -976,7 +976,7 @@ func_enable_tag () + + + case $host in +- *cygwin* | *mingw* | *pw32* | *cegcc*) ++ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* ) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; diff --git a/lang/gcc48/patches/patch-ltmain.sh b/lang/gcc48/patches/patch-ltmain.sh new file mode 100644 index 00000000000..ed5446b8438 --- /dev/null +++ b/lang/gcc48/patches/patch-ltmain.sh @@ -0,0 +1,13 @@ +$NetBSD: patch-ltmain.sh,v 1.1 2014/05/10 14:14:59 richard Exp $ + +--- ltmain.sh.orig 2011-01-13 18:51:10.000000000 +0000 ++++ ltmain.sh +@@ -976,7 +976,7 @@ func_enable_tag () + + + case $host in +- *cygwin* | *mingw* | *pw32* | *cegcc*) ++ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* ) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; |