]> gcc.gnu.org Git - gcc.git/commit
runtime: portable access to sigev_notify_thread_id
authorIan Lance Taylor <iant@golang.org>
Mon, 26 Sep 2022 19:03:53 +0000 (15:03 -0400)
committerIan Lance Taylor <iant@golang.org>
Tue, 27 Sep 2022 16:30:23 +0000 (09:30 -0700)
commite73d9fcafbd07bc3714fbaf8a82db71d50015c92
tree44d8382e7696a4aa4ecbc6e116b2654775215402
parentf38162977e2b7efaa75233a0cba2a30a2b7f5132
runtime: portable access to sigev_notify_thread_id

Previously, libgo relied on the _sigev_un implementation-specific
field in struct sigevent, which is only available on glibc.
This patch uses the sigev_notify_thread_id macro instead which is
mandated by timer_create(2). In theory, this should work with any libc
implementation for Linux. Unfortunately, there is an open glibc bug
as glibc does not define this macro. For this reason, a glibc-specific
workaround is required. Other libcs (such as musl) define the macro
and don't require the workaround.

See https://sourceware.org/bugzilla/show_bug.cgi?id=27417

This makes libgo compatible with musl libc.

Based on patch by Sören Tempel.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/434755
gcc/go/gofrontend/MERGE
libgo/go/runtime/os_linux.go
libgo/runtime/go-signal.c
This page took 0.048487 seconds and 5 git commands to generate.