summaryrefslogtreecommitdiff
path: root/lang/gcc48
diff options
context:
space:
mode:
authorrichard <richard@pkgsrc.org>2014-05-10 14:14:58 +0000
committerrichard <richard@pkgsrc.org>2014-05-10 14:14:58 +0000
commitd28357d354abea911ee528bcdcb690b19729cac9 (patch)
tree1191a58f768e5bdb0fae25c42c39f53dd8e689cb /lang/gcc48
parent61849e35090c6868aab93f7e45ff9cb440628db9 (diff)
downloadpkgsrc-d28357d354abea911ee528bcdcb690b19729cac9.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/Makefile4
-rw-r--r--lang/gcc48/distinfo7
-rw-r--r--lang/gcc48/patches/patch-gcc_config_sol2.h26
-rw-r--r--lang/gcc48/patches/patch-gcc_testsuite_g++.dg_eh_unwind-direct.C20
-rw-r--r--lang/gcc48/patches/patch-libgcc_config_t-slibgcc-sld28
-rw-r--r--lang/gcc48/patches/patch-libgo_config_ltmain.sh13
-rw-r--r--lang/gcc48/patches/patch-ltmain.sh13
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=:
+ ;;