mksigtab.sh: recurse once when adding signals to SIGLIST

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.

Change-Id: I1a1e547c0af8ff93e906f6bbaa8f1a5704a1dfaf
Reviewed-on: https://go-review.googlesource.com/43252
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
index 22547ff..c331970 100755
--- a/libgo/mksigtab.sh
+++ b/libgo/mksigtab.sh
@@ -28,7 +28,12 @@
 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}_"
 }