summaryrefslogtreecommitdiff
path: root/extra/scripts/gen_bits_syscall_h.sh
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2001-06-28 01:59:07 +0000
committerManuel Novoa III <mjn3@codepoet.org>2001-06-28 01:59:07 +0000
commite53f70e1e1fc250c060d3432844fb222e32754b1 (patch)
tree9e9dba365596e9ce3ebdea9245ccfa173236c76c /extra/scripts/gen_bits_syscall_h.sh
parent2d95d9f12e8d4a711671411e9d9db6e6866cd4ac (diff)
Added a script to create bits/syscall.h for each arch.
NOTE!!! This is run by "make -C libc/sysdeps/linux/$(TARGET_ARCH) headers" in the main Makefile, but I only changed libc/sysdeps/linux/i386/Makefile as I had no way of testing it for the other archs. Various arch maintainers, please check and update the corresponding Makefile... or report bugs ;-)... appropriately. You'll also want to "cvs del" syscall.h and add it to a .cvsignore in $(ARCH)/bits. Also added a define to uClibc_config.h, __UCLIBC_USE_UNIFIED_SYSCALL__, and moved i386 unified syscall stuff out of common and into i386/bits/syscalls.h.
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'
+)