summaryrefslogtreecommitdiff
path: root/lang/gcc5
diff options
context:
space:
mode:
authormaya <maya@pkgsrc.org>2019-08-06 06:16:14 +0000
committermaya <maya@pkgsrc.org>2019-08-06 06:16:14 +0000
commit4cdfcffb081236296e34099a12c0819b7f841332 (patch)
treec34268cb2a9edb0bf5085780561bcee9f0926411 /lang/gcc5
parenta4c8127224c7d25717ee9ffca0f22af8a6f271b6 (diff)
downloadpkgsrc-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/gcc5')
-rw-r--r--lang/gcc5/distinfo3
-rw-r--r--lang/gcc5/patches/patch-gcc_ginclude_stddef.h64
2 files changed, 66 insertions, 1 deletions
diff --git a/lang/gcc5/distinfo b/lang/gcc5/distinfo
index aaa112afe63..972b8a33262 100644
--- a/lang/gcc5/distinfo
+++ b/lang/gcc5/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.19 2018/07/18 22:42:57 maya Exp $
+$NetBSD: distinfo,v 1.20 2019/08/06 06:16:15 maya Exp $
SHA1 (gcc-5.5.0.tar.xz) = 0d985aaf6d63598916933a690cb902d47d385bea
RMD160 (gcc-5.5.0.tar.xz) = 63fdc006c2289f81df664d1fd9b4124f71732e7b
@@ -23,6 +23,7 @@ SHA1 (patch-gcc_config_t-netbsd) = 802ad5706aa7ca9629f8e237f08fbb1569d28846
SHA1 (patch-gcc_config_x-netbsd) = 6dc3d78e26df62054ea29f98ca51592858e671e3
SHA1 (patch-gcc_configure) = d6cc6a0bd257829ca2fd077a852fc447acaa63a0
SHA1 (patch-gcc_ggc-common.c) = a5d2dba635859f5d680c3f80d7c30b42461c752b
+SHA1 (patch-gcc_ginclude_stddef.h) = fb1f83801e0f5bcec110667dc868c47ff2d10343
SHA1 (patch-gcc_lto_lto.c) = 825b632e2a7ff5777d4fbfdcf6f0ea3f64c4742b
SHA1 (patch-gcc_system.h) = 4c959a6b1c4d524cbdf44cfb80f0e5758ec20783
SHA1 (patch-gcc_targhooks.c) = b4389cc6e2490e8ee3d4dd60d84e32dee8473648
diff --git a/lang/gcc5/patches/patch-gcc_ginclude_stddef.h b/lang/gcc5/patches/patch-gcc_ginclude_stddef.h
new file mode 100644
index 00000000000..e260e339149
--- /dev/null
+++ b/lang/gcc5/patches/patch-gcc_ginclude_stddef.h
@@ -0,0 +1,64 @@
+$NetBSD: patch-gcc_ginclude_stddef.h,v 1.1 2019/08/06 06:16:15 maya Exp $
+
+handle netbsd/arm not using the same include guards for
+ansi.h as other archs
+
+Upstreamed in 2018-06-20 (GCC 9.x)
+
+--- gcc/ginclude/stddef.h.orig 2017-01-01 12:07:43.000000000 +0000
++++ gcc/ginclude/stddef.h
+@@ -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>
+ #endif
+ /* On FreeBSD 5, machine/ansi.h does not exist anymore... */
+@@ -56,11 +54,7 @@ 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(__NetBSD__)
+ #if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_)
+ #define _SIZE_T
+ #endif
+@@ -87,7 +81,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. */
+@@ -359,11 +353,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_
+@@ -391,7 +381,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 */
+