aboutsummaryrefslogtreecommitdiffstats
path: root/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch')
-rw-r--r--main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch106
1 files changed, 0 insertions, 106 deletions
diff --git a/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch b/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
deleted file mode 100644
index af7717683a8..00000000000
--- a/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From aeef0ee2aac43d89ae26c6a3559aae4f8a1d53da 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.35.1
-