summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2011-12-11 08:28:21 -0800
committerH.J. Lu <hjl.tools@gmail.com>2011-12-11 08:32:22 -0800
commit8f77ec14b3aa1f5fd0e477a88a427d17e8044148 (patch)
treef0a865c6ecc8e51a110fd231115f3d0afd6ac7c8
parent0b2126ef1a525863dadcb7b0cb6c2ac763c23784 (diff)
downloadgcc-hjl/x32/gcc-4_6-branch+ada+java+go.tar.gz
Properly handle system call numbers in lingohjl/x32/gcc-4_6-branch+ada+java+go
2011-12-09 H.J. Lu <hongjiu.lu@intel.com> * mksysinfo.sh: Handle system call numbers "(0x40000000 | (234))".
-rw-r--r--libgo/ChangeLog.x323
-rwxr-xr-xlibgo/mksysinfo.sh16
2 files changed, 19 insertions, 0 deletions
diff --git a/libgo/ChangeLog.x32 b/libgo/ChangeLog.x32
new file mode 100644
index 00000000000..62baff814d3
--- /dev/null
+++ b/libgo/ChangeLog.x32
@@ -0,0 +1,3 @@
+2011-12-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ * mksysinfo.sh: Handle system call numbers "(0x40000000 | (234))".
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
index e29febfa619..17661361b38 100755
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -118,6 +118,22 @@ grep '^const _SYS_' gen-sysinfo.go | \
echo "const $sup = _$sys" >> ${OUT}
done
+# Handle system call numbers like "(0x40000000 | (234))"
+if grep '^// unknowndefine SYS_[a-z]' gen-sysinfo.go >/dev/null 2>&1; then
+ rm -f unknown-syscalls.c
+ echo "#include \"sysinfo.c\"" > unknown-syscalls.c
+ grep '^// unknowndefine SYS_[a-z]' gen-sysinfo.go | \
+ grep __NR_ | \
+ awk '{ print $3 }' | \
+ while read sys; do
+ sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
+ echo "const $sup = $sys"
+ done >> unknown-syscalls.c
+ ${CC} -E unknown-syscalls.c | \
+ grep "^const SYS_.*=" | \
+ grep -v __NR_ >> ${OUT}
+fi
+
# Stat constants.
grep '^const _S_' gen-sysinfo.go | \
sed -e 's/^\(const \)_\(S_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}