diff options
author | Sören Tempel <soeren@soeren-tempel.net> | 2021-12-14 18:07:47 -0500 |
---|---|---|
committer | Jeff Law <jeffreyalaw@gmail.com> | 2021-12-14 18:08:50 -0500 |
commit | 85a438fc78dd12249ca854a3e5c577fefeb1a5cd (patch) | |
tree | 2023203989d92649f05d0de354a2b34b4f7c72b7 /gcc/stack-ptr-mod.c | |
parent | a888259a71fbbb7f14923751251e056829d76342 (diff) | |
download | gcc-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