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
This commit is contained in:
Sören Tempel 2022-04-15 11:04:15 +02:00 committed by Ian Lance Taylor
parent 208b7d85d7
commit ace4928a29
2 changed files with 7 additions and 3 deletions

View File

@ -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.

View File

@ -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"},'