summaryrefslogtreecommitdiff
path: root/sysdeps/unix/make-syscalls.sh
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2009-08-23 17:43:21 -0700
committerRoland McGrath <roland@redhat.com>2009-08-24 11:40:15 -0700
commit036e46b655557f9a17784e502f694a80abfd68dc (patch)
tree13d443cd242f9e7a26465894b8d0d24442cfd0e1 /sysdeps/unix/make-syscalls.sh
parent7b943af6cf2bfd4b94be271877a10128c32d03da (diff)
downloadglibc-036e46b655557f9a17784e502f694a80abfd68dc.tar.gz
Add sysdeps/unix/syscall-template.S; build syscall stubs with deps and -g pointing to it.
Diffstat (limited to 'sysdeps/unix/make-syscalls.sh')
-rw-r--r--sysdeps/unix/make-syscalls.sh33
1 files changed, 20 insertions, 13 deletions
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 8abb0349bf..a8b8a262a7 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -83,12 +83,13 @@ while read file srcfile caller syscall args strong weak; do
;;
esac
- cancellable=
- noerrno=
+ cancellable=0
+ noerrno=0
+ errval=0
case $args in
- C*) cancellable=-cancel; args=`echo $args | sed 's/C:\?//'`;;
- E*) noerrno=_NOERRNO; args=`echo $args | sed 's/E:\?//'`;;
- V*) noerrno=_ERRVAL; args=`echo $args | sed 's/V:\?//'`;;
+ C*) cancellable=1; args=`echo $args | sed 's/C:\?//'`;;
+ E*) noerrno=1; args=`echo $args | sed 's/E:\?//'`;;
+ V*) errval=1; args=`echo $args | sed 's/V:\?//'`;;
esac
# Derive the number of arguments from the argument signature
@@ -115,7 +116,7 @@ while read file srcfile caller syscall args strong weak; do
x--)
# Undefined callnum for an extra syscall.
if [ x$caller != x- ]; then
- if [ x$noerrno != x ]; then
+ if [ $noerrno != 0 ]; then
echo >&2 "$0: no number for $fileno, no-error syscall ($strong $weak)"
exit 2
fi
@@ -151,7 +152,7 @@ shared-only-routines += $file
;;
esac
- echo " \$(common-objpfx)s-proto$cancellable.d"
+ echo " \$(..)sysdeps/unix/make-syscalls.sh"
case x"$callnum" in
x_)
echo "\
@@ -161,11 +162,17 @@ shared-only-routines += $file
x*)
echo "\
\$(make-target-directory)
- (echo '#include <sysdep$cancellable.h>'; \\
- echo 'PSEUDO$noerrno ($strong, $syscall, $nargs)'; \\
- echo ' ret$noerrno'; \\
- echo 'PSEUDO_END$noerrno($strong)'; \\
- echo 'libc_hidden_def ($strong)'; \\"
+ (echo '#define SYSCALL_NAME $syscall'; \\
+ echo '#define SYSCALL_NARGS $nargs'; \\
+ echo '#define SYSCALL_SYMBOL $strong'; \\"
+ [ $cancellable = 0 ] || echo "\
+ echo '#define SYSCALL_CANCELLABLE 1'; \\"
+ [ $noerrno = 0 ] || echo "\
+ echo '#define SYSCALL_NOERRNO 1'; \\"
+ [ $errval = 0 ] || echo "\
+ echo '#define SYSCALL_ERRVAL 1'; \\"
+ echo "\
+ echo '#include <syscall-template.S>'; \\"
;;
esac
@@ -201,7 +208,7 @@ shared-only-routines += $file
vcount=`expr $vcount + 1`
echo " echo 'strong_alias ($strong, $source)'; \\"
fi
- echo " echo 'symbol_version($source, $base, $ver)'; \\"
+ echo " echo 'symbol_version ($source, $base, $ver)'; \\"
;;
!*)
name=`echo $name | sed 's/.//'`