diff options
author | ryoon <ryoon@pkgsrc.org> | 2017-10-14 14:46:00 +0000 |
---|---|---|
committer | ryoon <ryoon@pkgsrc.org> | 2017-10-14 14:46:00 +0000 |
commit | 7e5a5c63853bff92659218d4ac5e0760898f7b1a (patch) | |
tree | 07984f51b3fa601e9e236cafd95f8885ae758f77 /lang | |
parent | c55f886f04d7394291e785d2a70d645f26500464 (diff) | |
download | pkgsrc-7e5a5c63853bff92659218d4ac5e0760898f7b1a.tar.gz |
Fix __stack_chk_fail_local undefined error in PIE case, bump PKGREVISION
* Port from NetBSD src
Fix __stack_chk_fail_local undefined reference error
from "gcc test.c -fstack-protector-all -fPIE".
* As a result, pkgsrc/www/firefox build under NetBSD/i386 7.1 is fixed
Diffstat (limited to 'lang')
-rw-r--r-- | lang/gcc49/Makefile | 4 | ||||
-rw-r--r-- | lang/gcc49/distinfo | 3 | ||||
-rw-r--r-- | lang/gcc49/patches/patch-gcc_targhooks.c | 26 |
3 files changed, 30 insertions, 3 deletions
diff --git a/lang/gcc49/Makefile b/lang/gcc49/Makefile index 8de2fbca3d4..00540312161 100644 --- a/lang/gcc49/Makefile +++ b/lang/gcc49/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.21 2017/07/28 23:41:51 maya Exp $ +# $NetBSD: Makefile,v 1.22 2017/10/14 14:46:00 ryoon Exp $ GCC_PKGNAME= gcc49 .include "version.mk" @@ -9,7 +9,7 @@ PKGNAME= ${GCC_PKGNAME}-${GCC49_DIST_VERSION} ## When bumping the PKGREVISION of this package the PKGREVISION of ## lang/gcc49-libs needs to be bump to be at least 1 more than the ## PKGREVISION of this package! -PKGREVISION= 4 +PKGREVISION= 5 CATEGORIES= lang MASTER_SITES= ${MASTER_SITE_GNU:=gcc/gcc-${GCC49_DIST_VERSION}/} EXTRACT_SUFX= .tar.bz2 diff --git a/lang/gcc49/distinfo b/lang/gcc49/distinfo index f9ace309915..1e0770ee20d 100644 --- a/lang/gcc49/distinfo +++ b/lang/gcc49/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.14 2017/07/28 23:41:51 maya Exp $ +$NetBSD: distinfo,v 1.15 2017/10/14 14:46:00 ryoon Exp $ SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a @@ -26,6 +26,7 @@ SHA1 (patch-gcc_fortran_f95-lang.c) = 9dbac16c146821eed9b06e1e9f0da85ff5c4ee75 SHA1 (patch-gcc_ggc-common.c) = fa577bc25260d7e6304f166686ba51c0b677d7f6 SHA1 (patch-gcc_ginclude_stddef.h) = 8af3e4b4058fc623c61e91f5771699f0ce679957 SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783 +SHA1 (patch-gcc_targhooks.c) = ac5bf5f201389f5bb79866d9e0dc93ee28af51f2 SHA1 (patch-include_libiberty.h) = 5254c6a421ae16c71571820f6f07906367f042ba SHA1 (patch-libcilkrts_runtime_os-unix.c) = 165e736decbc6e0e3d905d418d71cf4873927925 SHA1 (patch-libcilkrts_runtime_signal_node.c) = e12fd7c9f109db568c46e915bd1bae28fae7b95a diff --git a/lang/gcc49/patches/patch-gcc_targhooks.c b/lang/gcc49/patches/patch-gcc_targhooks.c new file mode 100644 index 00000000000..6aa68f1cde3 --- /dev/null +++ b/lang/gcc49/patches/patch-gcc_targhooks.c @@ -0,0 +1,26 @@ +$NetBSD: patch-gcc_targhooks.c,v 1.1 2017/10/14 14:46:00 ryoon Exp $ + +* Port from NetBSD src + Fix __stack_chk_fail_local undefined reference error + from "gcc test.c -fstack-protector-all -fPIE". + +--- gcc/targhooks.c.orig 2014-03-03 21:51:58.000000000 +0000 ++++ gcc/targhooks.c +@@ -738,7 +738,17 @@ default_hidden_stack_protect_fail (void) + DECL_ARTIFICIAL (t) = 1; + DECL_IGNORED_P (t) = 1; + DECL_VISIBILITY_SPECIFIED (t) = 1; ++#if defined(__NetBSD__) ++ /* ++ * This is a hack: ++ * It appears that our gas does not generate @PLT for hidden ++ * symbols. It could be that we need a newer version, or that ++ * this local function is handled differently on linux. ++ */ ++ DECL_VISIBILITY (t) = VISIBILITY_DEFAULT; ++#else + DECL_VISIBILITY (t) = VISIBILITY_HIDDEN; ++#endif + + stack_chk_fail_decl = t; + } |