diff options
author | Sören Tempel <soeren+git@soeren-tempel.net> | 2022-04-15 11:04:15 +0200 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2022-04-18 15:17:16 -0700 |
commit | ace4928a29b79ac6aa0c84d6fd78f5dce5fa6190 (patch) | |
tree | 64aa57e81be8fd8f39d9e9395929dd11c976f55c | |
parent | 208b7d85d73cbd166e207f0e062cccbdfbf52bb3 (diff) | |
download | gcc-ace4928a29b79ac6aa0c84d6fd78f5dce5fa6190.zip gcc-ace4928a29b79ac6aa0c84d6fd78f5dce5fa6190.tar.gz gcc-ace4928a29b79ac6aa0c84d6fd78f5dce5fa6190.tar.bz2 |
libgo: only add signum to siglist if it doesn't exist yet
This fixes a build issue on musl libc where the same signal number
is used for SIGIO and SIGPOLL. This causes a compilation error since
the signal numbers must be unique for the signal table.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/400595
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | libgo/mksigtab.sh | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index eeff61d..2321f67 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -8336fe4a5da68d9188dfbc4fb647ccbbe4d60ba4 +22b0ccda3aa4d16f770a26a3eb251f8da615c318 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh index cdf6fcd8..bea8739 100644 --- a/libgo/mksigtab.sh +++ b/libgo/mksigtab.sh @@ -26,7 +26,6 @@ SIGLIST="" # Handle signals valid on all Unix systems. addsig() { - echo " $1: $2," # Get the signal number and add it to SIGLIST signum=`grep "const $1 = " gen-sysinfo.go | sed -e 's/.* = //'` if echo "$signum" | grep '^_SIG[A-Z0-9_]*$' >/dev/null 2>&1; then @@ -34,7 +33,12 @@ addsig() { # This is needed for some MIPS signals defined as aliases of other signals signum=`grep "const $signum = " gen-sysinfo.go | sed -e 's/.* = //'` fi - SIGLIST=$SIGLIST"_${signum}_" + # Only add signal if the signal number isn't in the list yet. + # For example, musl libc uses signal 29 for both SIGIO and SIGPOLL. + if ! echo "$SIGLIST" | grep "_${signum}_" >/dev/null 2>&1; then + echo " $1: $2," + SIGLIST=$SIGLIST"_${signum}_" + fi } echo ' 0: {0, "SIGNONE: no trap"},' |