diff options
Diffstat (limited to 'extra/scripts/gen_bits_syscall_h.sh')
| -rwxr-xr-x | extra/scripts/gen_bits_syscall_h.sh | 56 |
1 files changed, 35 insertions, 21 deletions
diff --git a/extra/scripts/gen_bits_syscall_h.sh b/extra/scripts/gen_bits_syscall_h.sh index c0b4c25f5..bfd06b832 100755 --- a/extra/scripts/gen_bits_syscall_h.sh +++ b/extra/scripts/gen_bits_syscall_h.sh @@ -8,39 +8,53 @@ # June 27, 2001 Manuel Novoa III # -# This script expects top_builddir and CC (as used in the Makefiles) to be set -# in the environment, and outputs the appropriate -# $top_builddir/include/bits/sysnum.h # corresponding to -# $top_builddir/include/asm/unistd.h to stdout. +# This script expects CC (as used in the Makefiles) to be set +# in the environment, and outputs the appropriate bits/sysnum.h # +# corresponding to asm/unistd.h to stdout. # # Warning!!! This does _no_ error checking!!! -INCLUDE_OPTS="-nostdinc -I${KERNEL_HEADERS}" +if [ "${KERNEL_HEADERS:-/}" != "/" ] ; then + INCLUDE_OPTS="-nostdinc -I${KERNEL_HEADERS}" +else + # Let the toolchain use its configure paths. + INCLUDE_OPTS= +fi case $CC in *icc*) CC_SYSNUM_ARGS="-dM" ;; +*clang*) CC_SYSNUM_ARGS="-dM" ;; *) CC_SYSNUM_ARGS="-dN" ;; esac ( 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 -n -r \ + -e 's/^[ ]*#define[ ]*(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/UCLIBC\1\2 \1\2/gp' \ + -e 's/^[ ]*#undef[ ]*(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/UNDEFUCLIBC\1\2 \1\2/gp' # needed to strip out any kernel-internal defines ) | $CC -E $INCLUDE_OPTS - | -( echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" ; - echo ; - echo "#ifndef _BITS_SYSNUM_H" ; - echo "#define _BITS_SYSNUM_H" ; - echo ; - 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' - echo ; - echo "#endif" ; +( + cat <<-EOF +/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */ +/* See $0 for more information. */ + +#ifndef _BITS_SYSNUM_H +#define _BITS_SYSNUM_H + +#ifndef _SYSCALL_H +# error "Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead." +#endif + +EOF + sed -n -r -e 's/^UCLIBC(__ARM_NR_|__NR_)([A-Za-z0-9_]*) *(.*)/#undef \1\2\ +#define \1\2 \3\ +#define SYS_\2 \1\2/gp' \ + -e 's/^UNDEFUCLIBC(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/#undef \1\2\ +#undef SYS_\2/gp' + cat <<-EOF + +#endif +EOF ) |
