diff options
author | maya <maya@pkgsrc.org> | 2019-08-06 06:16:14 +0000 |
---|---|---|
committer | maya <maya@pkgsrc.org> | 2019-08-06 06:16:14 +0000 |
commit | 4cdfcffb081236296e34099a12c0819b7f841332 (patch) | |
tree | c34268cb2a9edb0bf5085780561bcee9f0926411 /lang/gcc49 | |
parent | a4c8127224c7d25717ee9ffca0f22af8a6f271b6 (diff) | |
download | pkgsrc-4cdfcffb081236296e34099a12c0819b7f841332.tar.gz |
gcc{48,49,5,6}: add patch to avoid fragile include guard logic
for ansi.h on netbsd.
gcc{7,8}: document same patch that already existed was upstreamed.
This patch is necessary to build GCC on NetBSD >= 9.0, since changes
to ansi.h resulted in not using the same include guards.
Fixes PR toolchain/54362
Diffstat (limited to 'lang/gcc49')
-rw-r--r-- | lang/gcc49/distinfo | 4 | ||||
-rw-r--r-- | lang/gcc49/patches/patch-gcc_ginclude_stddef.h | 79 |
2 files changed, 61 insertions, 22 deletions
diff --git a/lang/gcc49/distinfo b/lang/gcc49/distinfo index 1e0770ee20d..e5c4622477d 100644 --- a/lang/gcc49/distinfo +++ b/lang/gcc49/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.15 2017/10/14 14:46:00 ryoon Exp $ +$NetBSD: distinfo,v 1.16 2019/08/06 06:16:15 maya Exp $ SHA1 (ecj-4.5.jar) = 58c1d79c64c8cd718550f32a932ccfde8d1e6449 RMD160 (ecj-4.5.jar) = d3f4da657f086b6423f74e93f001132f4855368a @@ -24,7 +24,7 @@ SHA1 (patch-gcc_config_x-netbsd) = 6dc3d78e26df62054ea29f98ca51592858e671e3 SHA1 (patch-gcc_configure) = b925cb971ec547a9c25b518927493a168391d7da 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_ginclude_stddef.h) = d1141d2f8b0e4975bbcf90c84836f410e65d39bc SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783 SHA1 (patch-gcc_targhooks.c) = ac5bf5f201389f5bb79866d9e0dc93ee28af51f2 SHA1 (patch-include_libiberty.h) = 5254c6a421ae16c71571820f6f07906367f042ba diff --git a/lang/gcc49/patches/patch-gcc_ginclude_stddef.h b/lang/gcc49/patches/patch-gcc_ginclude_stddef.h index c24c63bde45..5f69f55d8af 100644 --- a/lang/gcc49/patches/patch-gcc_ginclude_stddef.h +++ b/lang/gcc49/patches/patch-gcc_ginclude_stddef.h @@ -1,34 +1,51 @@ -$NetBSD: patch-gcc_ginclude_stddef.h,v 1.1 2014/09/04 18:43:11 jperkin Exp $ +$NetBSD: patch-gcc_ginclude_stddef.h,v 1.2 2019/08/06 06:16:15 maya Exp $ -Fix build on NetBSD i386/amd64 after the ansi.h header include protection -name change. +Avoid relying on fragile include guard logic from ansi.h (it breaks again +on NetBSD 9.0). Add DragonFly support. ---- gcc/ginclude/stddef.h.orig 2014-01-02 22:23:26.000000000 +0000 +Both already upstreamed (GCC 9.0, GCC 5.x respectively). + +--- gcc/ginclude/stddef.h.orig 2019-08-06 05:51:50.808043034 +0000 +++ gcc/ginclude/stddef.h -@@ -50,12 +50,21 @@ see the files COPYING3 and COPYING.RUNTI - one less case to deal with in the following. */ - #if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__) +@@ -46,9 +46,7 @@ see the files COPYING3 and COPYING.RUNTI + /* This avoids lossage on SunOS but only if stdtypes.h comes first. + There's no way to win with the other order! Sun lossage. */ + +-/* On 4.3bsd-net2, make sure ansi.h is included, so we have +- one less case to deal with in the following. */ +-#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__) ++#if defined(__NetBSD__) #include <machine/ansi.h> -+#if !defined(_MACHINE_ANSI_H_) -+#if defined(_I386_ANSI_H_) || defined(_X86_64_ANSI_H_) -+#define _MACHINE_ANSI_H_ -+#endif -+#endif #endif /* On FreeBSD 5, machine/ansi.h does not exist anymore... */ - #if defined (__FreeBSD__) && (__FreeBSD__ >= 5) +@@ -56,11 +54,11 @@ see the files COPYING3 and COPYING.RUNTI #include <sys/_types.h> #endif +-/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are +- defined if the corresponding type is *not* defined. +- FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_. +- NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */ +-#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) +#if defined(__DragonFly__) +#include <sys/types.h> +#endif + - /* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are - defined if the corresponding type is *not* defined. - FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_. -@@ -133,6 +142,7 @@ _TYPE_wchar_t; ++#if defined(__NetBSD__) + #if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_) + #define _SIZE_T + #endif +@@ -87,7 +85,7 @@ see the files COPYING3 and COPYING.RUNTI + #undef _WCHAR_T_ + #undef _BSD_WCHAR_T_ + #endif +-#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) */ ++#endif /* defined(__NetBSD__) */ + + /* Sequent's header files use _PTRDIFF_T_ in some conflicting way. + Just ignore it. */ +@@ -133,6 +131,7 @@ _TYPE_wchar_t; #ifndef _BSD_PTRDIFF_T_ #ifndef ___int_ptrdiff_t_h #ifndef _GCC_PTRDIFF_T @@ -36,7 +53,7 @@ Add DragonFly support. #define _PTRDIFF_T #define _T_PTRDIFF_ #define _T_PTRDIFF -@@ -141,10 +151,12 @@ _TYPE_wchar_t; +@@ -141,10 +140,12 @@ _TYPE_wchar_t; #define _BSD_PTRDIFF_T_ #define ___int_ptrdiff_t_h #define _GCC_PTRDIFF_T @@ -49,7 +66,7 @@ Add DragonFly support. #endif /* _GCC_PTRDIFF_T */ #endif /* ___int_ptrdiff_t_h */ #endif /* _BSD_PTRDIFF_T_ */ -@@ -198,6 +210,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; +@@ -198,6 +199,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t; #define _GCC_SIZE_T #define _SIZET_ #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \ @@ -57,7 +74,7 @@ Add DragonFly support. || defined(__FreeBSD_kernel__) /* __size_t is a typedef on FreeBSD 5, must not trash it. */ #elif defined (__VMS__) -@@ -306,7 +319,7 @@ typedef _BSD_RUNE_T_ rune_t; +@@ -306,7 +308,7 @@ typedef _BSD_RUNE_T_ rune_t; /* FreeBSD 5 can't be handled well using "traditional" logic above since it no longer defines _BSD_RUNE_T_ yet still desires to export rune_t in some cases... */ @@ -66,3 +83,25 @@ Add DragonFly support. #if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE) #if __BSD_VISIBLE #ifndef _RUNE_T_DECLARED +@@ -355,11 +357,7 @@ typedef __WINT_TYPE__ wint_t; + #undef __need_wint_t + #endif + +-/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc. +- are already defined. */ +-/* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */ +-/* NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here. */ +-#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) ++#if defined(__NetBSD__) + /* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_ + are probably typos and should be removed before 2.8 is released. */ + #ifdef _GCC_PTRDIFF_T_ +@@ -387,7 +385,7 @@ typedef __WINT_TYPE__ wint_t; + #undef _WCHAR_T_ + #undef _BSD_WCHAR_T_ + #endif +-#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ || _X86_64_ANSI_H_ || _I386_ANSI_H_ */ ++#endif /* __NetBSD__ */ + + #endif /* __sys_stdtypes_h */ + |