aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriadne Conill <ariadne@dereferenced.org>2021-11-29 00:58:14 +0000
committerAriadne Conill <ariadne@dereferenced.org>2021-11-29 00:58:14 +0000
commitdae75528cea4d8ea8e110dd4a2fbd454cc686d15 (patch)
treed0aeac878e1745c0e5fb4cf10637dbc35a34436b
parentad8e96ad6afef5ab83070cee5358541fbd3d7c75 (diff)
downloadaports-dae75528cea4d8ea8e110dd4a2fbd454cc686d15.tar.gz
aports-dae75528cea4d8ea8e110dd4a2fbd454cc686d15.tar.bz2
aports-dae75528cea4d8ea8e110dd4a2fbd454cc686d15.tar.xz
main/gcc: add missing go patch that got eaten by the rebase
-rw-r--r--main/gcc/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch106
-rw-r--r--main/gcc/APKBUILD2
2 files changed, 108 insertions, 0 deletions
diff --git a/main/gcc/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch b/main/gcc/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
new file mode 100644
index 0000000000..c22f7f43f3
--- /dev/null
+++ b/main/gcc/0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
@@ -0,0 +1,106 @@
+From 5a76cf60df5c9ba274f1d0dcd79fc0cbad9d0fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 25 Nov 2021 17:44:04 +0100
+Subject: [PATCH] stddef.h: add support for musl typedef macro guards
+
+The stddef.h header checks/sets various hardcoded toolchain/os specific
+macro guards to prevent redefining types such as ptrdiff_t, wchar_t, or
+size_t. However, without this patch, the file does not check/set the
+typedef macro guards for musl libc. This causes types such as size_t to
+be defined twice for files which include both musl's stddef.h as well as
+GCC's ginclude/stddef.h. This is, for example, the case for
+libgo/sysinfo.c. If libgo/sysinfo.c has multiple typedefs for size_t
+this confuses -fdump-go-spec and causes size_t not to be included in the
+generated type definitions thereby causing a gcc-go compilation failure
+on musl with the following error message:
+
+ sysinfo.go:7765:13: error: use of undefined type '_size_t'
+ 7765 | type Size_t _size_t
+ | ^
+ libcall_posix.go:49:35: error: non-integer len argument in make
+ 49 | b := make([]byte, len)
+ |
+
+This commit fixes this issue by ensuring that ptrdiff_t, wchar_t, and size_t
+are only defined once in the pre-processed libgo/sysinfo.c file by enhancing
+gcc/ginclude/stddef.h with musl-specific typedef macro guards.
+---
+ gcc/ginclude/stddef.h | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
+index 66619fe43b1..50d710a5ab9 100644
+--- a/gcc/ginclude/stddef.h
++++ b/gcc/ginclude/stddef.h
+@@ -128,6 +128,7 @@ _TYPE_wchar_t;
+ #ifndef ___int_ptrdiff_t_h
+ #ifndef _GCC_PTRDIFF_T
+ #ifndef _PTRDIFF_T_DECLARED /* DragonFly */
++#ifndef __DEFINED_ptrdiff_t /* musl libc */
+ #define _PTRDIFF_T
+ #define _T_PTRDIFF_
+ #define _T_PTRDIFF
+@@ -137,10 +138,12 @@ _TYPE_wchar_t;
+ #define ___int_ptrdiff_t_h
+ #define _GCC_PTRDIFF_T
+ #define _PTRDIFF_T_DECLARED
++#define __DEFINED_ptrdiff_t
+ #ifndef __PTRDIFF_TYPE__
+ #define __PTRDIFF_TYPE__ long int
+ #endif
+ typedef __PTRDIFF_TYPE__ ptrdiff_t;
++#endif /* __DEFINED_ptrdiff_t */
+ #endif /* _PTRDIFF_T_DECLARED */
+ #endif /* _GCC_PTRDIFF_T */
+ #endif /* ___int_ptrdiff_t_h */
+@@ -174,6 +177,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #ifndef _SIZE_T_DEFINED
+ #ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */
+ #ifndef _SIZE_T_DECLARED /* FreeBSD 5 */
++#ifndef __DEFINED_size_t /* musl libc */
+ #ifndef ___int_size_t_h
+ #ifndef _GCC_SIZE_T
+ #ifndef _SIZET_
+@@ -191,6 +195,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
+ #define _SIZE_T_DEFINED
+ #define _BSD_SIZE_T_DEFINED_ /* Darwin */
+ #define _SIZE_T_DECLARED /* FreeBSD 5 */
++#define __DEFINED_size_t /* musl libc */
+ #define ___int_size_t_h
+ #define _GCC_SIZE_T
+ #define _SIZET_
+@@ -215,6 +220,7 @@ typedef long ssize_t;
+ #endif /* _SIZET_ */
+ #endif /* _GCC_SIZE_T */
+ #endif /* ___int_size_t_h */
++#endif /* __DEFINED_size_t */
+ #endif /* _SIZE_T_DECLARED */
+ #endif /* _BSD_SIZE_T_DEFINED_ */
+ #endif /* _SIZE_T_DEFINED */
+@@ -251,6 +257,7 @@ typedef long ssize_t;
+ #ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */
+ #ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */
+ #ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
++#ifndef __DEFINED_wchar_t /* musl libc */
+ #ifndef _WCHAR_T_DEFINED_
+ #ifndef _WCHAR_T_DEFINED
+ #ifndef _WCHAR_T_H
+@@ -272,6 +279,7 @@ typedef long ssize_t;
+ #define __INT_WCHAR_T_H
+ #define _GCC_WCHAR_T
+ #define _WCHAR_T_DECLARED
++#define __DEFINED_wchar_t
+
+ /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
+ instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
+@@ -326,6 +334,7 @@ typedef __WCHAR_TYPE__ wchar_t;
+ #endif
+ #endif
+ #endif
++#endif /* __DEFINED_wchar_t */
+ #endif /* _WCHAR_T_DECLARED */
+ #endif /* _BSD_RUNE_T_DEFINED_ */
+ #endif
+--
+2.34.0
+
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD
index 2912f18be8..064c42161a 100644
--- a/main/gcc/APKBUILD
+++ b/main/gcc/APKBUILD
@@ -211,6 +211,7 @@ source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
0037-configure-fix-detection-of-atomic-builtins-in-libato.patch
0038-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
0039-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch
+ 0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
"
# we build out-of-tree
@@ -699,4 +700,5 @@ ca185b3e0644dab6a87bf524042c72069ffda0cde578e803bd59a9c5e40ba4d7d6f0be49836bc3aa
11f93cd928881264b2a2a78dd52001980dca26cb22d2207a3ff286d63deca81468daa649762ff27f1a6475c0334bc3135b7bb080ce1b152b0f1a1e8f81287c5f 0037-configure-fix-detection-of-atomic-builtins-in-libato.patch
7541d57f7c04571b3d60a2e40038245b33e68c4b53373f64d2827d106349546834f06eb77227194f950b570e15f4fe9e259238458d5be8f10c41c56404f7cfff 0038-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
2c5edf9e3fe6822a322c1dc75218062afb56799c304aa583c4e1e80136c6262cbd9bb950843f167b40639c6623a33a0475990c4452e03307af434dc8760d437d 0039-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch
+8e44678fc77094a2c0cbc78575759ee51d50ea53189cf4d651c8501eb1b46210bb6d5969b81f5f63532914320971e7a1e2e80b32cb679ab41af86f21742b4c19 0040-stddef.h-add-support-for-musl-typedef-macro-guards.patch
"