On Thu, Jul 28, 2022 at 11:15 AM <soe...@soeren-tempel.net> wrote: > > From: Sören Tempel <soeren+...@soeren-tempel.net> > > On 32-bit systems, musl only defines SYS_timer_settime32 not > SYS_timer_settime. This causes the following compilation error: > > os_linux.go:251:30: error: reference to undefined name > '_SYS_timer_settime' > 251 | return int32(syscall(_SYS_timer_settime, > uintptr(timerid), uintptr(flags), uintptr(unsafe.Pointer(new)), > uintptr(unsafe.Pointer(old)), 0, 0)) > | ^ > > This commit fixes this error by "aliasing" SYS_timer_settime to > SYS_timer_settime32 if the latter is defined. This is also what > musl does internally [1].
Committed a slight variant of this, as appended. Ian
f40686b01bdabba051e3b22165bb576e45ffca74 diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 2f2fafde1f1..ca797045d66 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -a62f20ae78ddd41be682dde8cab075ca4f5dbb2a +d53e8a0e94e34dc609e34dd5e404debda2640cfb The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c index fc0210992fa..180f5c31d74 100644 --- a/libgo/sysinfo.c +++ b/libgo/sysinfo.c @@ -354,6 +354,11 @@ enum { }; #endif +#if !defined(SYS_timer_settime) && defined(SYS_timer_settime32) +// musl defines SYS_timer_settim32 on 32-bit systems. +#define SYS_timer_settime SYS_timer_settime32 +#endif + #if defined(HAVE_LOFF_T) // loff_t can be defined as a macro; for -fgo-dump-spec make sure we // see a typedef.