diff options
author | Khem Raj <kraj@mvista.com> | 2008-07-10 00:12:29 +0000 |
---|---|---|
committer | Khem Raj <kraj@mvista.com> | 2008-07-10 00:12:29 +0000 |
commit | 431377ede96b5e8a84c231366cbb8b6667675a3f (patch) | |
tree | d09ebe4766222f8569596fbe9f83ec4bbaae55f0 | |
parent | c776700c71250f0666f5f23ba198f6c3d03974c6 (diff) | |
download | uClibc-alpine-431377ede96b5e8a84c231366cbb8b6667675a3f.tar.bz2 uClibc-alpine-431377ede96b5e8a84c231366cbb8b6667675a3f.tar.xz |
Handle system call names like __ARM_NR_set_tls
-rwxr-xr-x | extra/scripts/gen_bits_syscall_h.sh | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/extra/scripts/gen_bits_syscall_h.sh b/extra/scripts/gen_bits_syscall_h.sh index c0b4c25f5..d4adb0fad 100755 --- a/extra/scripts/gen_bits_syscall_h.sh +++ b/extra/scripts/gen_bits_syscall_h.sh @@ -22,11 +22,16 @@ case $CC in *) CC_SYSNUM_ARGS="-dN" ;; esac +# Most syscall numbers have names like '__NR_open', which become names +# like 'SYS_open'. Some of the ARM syscalls have names like +# '__ARM_NR_set_tls', which we transform into names like +# 'SYS_ARM_set_tls'. + ( echo "#include <asm/unistd.h>"; echo "#include <asm/unistd.h>" | $CC -E $CC_SYSNUM_ARGS $INCLUDE_OPTS - | - sed -ne 's/^[ ]*#define[ ]*__NR_\([A-Za-z0-9_]*\).*/UCLIBC_\1 __NR_\1/gp' \ - -e 's/^[ ]*#undef[ ]*__NR_\([A-Za-z0-9_]*\).*/UNDEFUCLIBC_\1 __NR_\1/gp' # needed to strip out any kernel-internal defines + sed -ne 's/^[ ]*#define[ ]*__\([A-Za-z0-9_]*\)NR_\([A-Za-z0-9_]*\).*/UCLIBC_\1NR_\2 __\1NR_\2/gp' \ + -e 's/^[ ]*#undef[ ]*__\([A-Za-z0-9_]*\)NR_\([A-Za-z0-9_]*\).*/UNDEFUCLIBC_\1NR_\2 __\1NR_\2/gp' # needed to strip out any kernel-internal defines ) | $CC -E $INCLUDE_OPTS - | ( echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" ; @@ -37,10 +42,10 @@ $CC -E $INCLUDE_OPTS - | echo "#ifndef _SYSCALL_H" ; echo "# error \"Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead.\"" ; echo "#endif" ; echo ; - sed -ne 's/^UCLIBC_\([A-Za-z0-9_]*\) *\(.*\)/#undef __NR_\1\ -#define __NR_\1 \2\ -#define SYS_\1 __NR_\1/gp' \ - -e 's/^UNDEFUCLIBC_\([A-Za-z0-9_]*\).*/#undef __NR_\1/gp' + sed -ne 's/^UCLIBC_\([A-Za-z0-9_]*\)NR_\([A-Za-z0-9_]*\) *\(.*\)/#undef __\1NR_\2\ +#define __\1NR_\2 \3\ +#define SYS_\1\2 __\1NR_\2/gp' \ + -e 's/^UNDEFUCLIBC_\([A-Za-z0-9_]*\)NR_\([A-Za-z0-9_]*\).*/#undef __\1NR_\2/gp' echo ; echo "#endif" ; ) |