diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2001-06-28 01:59:07 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2001-06-28 01:59:07 +0000 |
commit | e53f70e1e1fc250c060d3432844fb222e32754b1 (patch) | |
tree | 9e9dba365596e9ce3ebdea9245ccfa173236c76c /extra/scripts/gen_bits_syscall_h.sh | |
parent | 2d95d9f12e8d4a711671411e9d9db6e6866cd4ac (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-x | extra/scripts/gen_bits_syscall_h.sh | 25 |
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' +) |