summaryrefslogtreecommitdiff
path: root/extra/scripts/gen_bits_syscall_h.sh
diff options
context:
space:
mode:
Diffstat (limited to 'extra/scripts/gen_bits_syscall_h.sh')
-rwxr-xr-xextra/scripts/gen_bits_syscall_h.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/extra/scripts/gen_bits_syscall_h.sh b/extra/scripts/gen_bits_syscall_h.sh
new file mode 100755
index 000000000..51f68fcf7
--- /dev/null
+++ b/extra/scripts/gen_bits_syscall_h.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+#
+# June 27, 2001 Manuel Novoa III
+#
+# This script expects TOPDIR and CC (as used in the Makefiles) to be set in
+# the environment, and outputs the appropriate $TOPDIR/include/bits/syscall.h
+# corresponding to $TOPDIR/include/asm/unistd.h to stdout.
+#
+# Warning!!! This does _no_ error checking!!!
+
+UNISTD_H_PATH=$TOPDIR/include/asm/unistd.h
+
+( echo "#include \"$UNISTD_H_PATH\"" ;
+ $CC -E -dN $UNISTD_H_PATH | # needed to strip out any kernel-internal defines
+ sed -ne 's/^[ ]*#define[ ]*__NR_\([A-Za-z0-9_]*\).*/UCLIBC_\1 __NR_\1/gp'
+) |
+$CC -E - |
+( echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" ; echo ;
+ echo "#ifndef _SYSCALL_H" ;
+ echo "# error \"Never use <bits/syscall.h> directly; include <sys/syscall.h> instead.\"" ;
+ echo "#endif" ; echo ;
+ sed -ne 's/^UCLIBC_\([A-Za-z0-9_]*\) *\([^ ]*\)/#define SYS_\1 \2\
+#define __NR_\1 \2\
+#define __STR_NR_\1 \"\2\"/gp'
+)