aboutsummaryrefslogtreecommitdiff
path: root/gcc/stack-ptr-mod.c
diff options
context:
space:
mode:
authorSören Tempel <soeren@soeren-tempel.net>2021-12-14 18:07:47 -0500
committerJeff Law <jeffreyalaw@gmail.com>2021-12-14 18:08:50 -0500
commit85a438fc78dd12249ca854a3e5c577fefeb1a5cd (patch)
tree2023203989d92649f05d0de354a2b34b4f7c72b7 /gcc/stack-ptr-mod.c
parenta888259a71fbbb7f14923751251e056829d76342 (diff)
downloadgcc-85a438fc78dd12249ca854a3e5c577fefeb1a5cd.zip
gcc-85a438fc78dd12249ca854a3e5c577fefeb1a5cd.tar.gz
gcc-85a438fc78dd12249ca854a3e5c577fefeb1a5cd.tar.bz2
[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 stdlib.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 Alpine Linux Edge (which uses musl libc) with the following error: 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/ChangeLog: * ginclude/stddef.h (__DEFINED_ptrdiff_t): Add support for musl libc typedef macro guard. (__DEFINED_size_t): Ditto. (__DEFINED_wchar_t): Ditto.
Diffstat (limited to 'gcc/stack-ptr-mod.c')
0 files changed, 0 insertions, 0 deletions