mksigtab.sh: recurse once when adding signals to SIGLIST
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 12 May 2017 01:09:42 +0000 (01:09 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 12 May 2017 01:09:42 +0000 (01:09 +0000)
    On MIPS, SIGABRT is defined like this:
     #define SIGIOT   6
     #define SIGABRT  SIGIOT

    This breaks addsig which tries to append __SIGIOT_ to SIGLIST. Signal
    number 6 is later added to the output and go complains about a
    duplicate signal number.

    Fix by recursing once when obtaining the signal number from
    gen-sysinfo.go if the signal is defined as an alias of another signal.
    Also modify the sed expression to 's/.* = //' which is equivalent to
    the original expression but is less misleading given that it might not
    match a number.

    Reviewed-on: https://go-review.googlesource.com/43252

From-SVN: r247948

gcc/go/gofrontend/MERGE
libgo/mksigtab.sh

index 27f42275e0d75a50024e883fae19a923f5db2086..557e270527c317be2011e07338aa538ccf86a297 100644 (file)
@@ -1,4 +1,4 @@
-fc3d6af694c518d73a126bcbd90d79982524f9f6
+3c1258156a2ae483c5cc523cb7a3c3374cbe7c2c
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 22547ffadc3a2e9b700aec368b12395985e9e689..c3319705b81180405a701aa5b1f50b14603f29c1 100644 (file)
@@ -28,7 +28,12 @@ SIGLIST=""
 addsig() {
     echo "     $1: $2,"
     # Get the signal number and add it to SIGLIST
-    signum=`grep "const $1 = " gen-sysinfo.go | sed -e 's/.* = \([0-9]*\)/\1/'`
+    signum=`grep "const $1 = " gen-sysinfo.go | sed -e 's/.* = //'`
+    if echo "$signum" | grep -q '^_SIG[A-Z0-9_]*$'; then
+        # Recurse once to obtain signal number
+        # 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}_"
 }