From 6fef930cf3dc937de0fd1050581d9c688f70af22 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 29 Apr 2012 15:17:36 +0200 Subject: [PATCH] Fix missing vm86 symbol --- ChangeLog | 5 +++++ sysdeps/unix/make-syscalls.sh | 29 +++++++++++++++-------------- sysdeps/unix/sysv/linux/i386/syscalls.list | 2 +- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 447d4a0..c659fb1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-05-04 Andreas Schwab + + * sysdeps/unix/make-syscalls.sh: Fix check for version aliases. + * sysdeps/unix/sysv/linux/i386/syscalls.list: Revert last change. + 2012-05-04 Joseph Myers [BZ #14049] diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh index a8b8a26..ff452d6 100644 --- a/sysdeps/unix/make-syscalls.sh +++ b/sysdeps/unix/make-syscalls.sh @@ -112,6 +112,14 @@ while read file srcfile caller syscall args strong weak; do echo '' echo "#### CALL=$file NUMBER=$callnum ARGS=$args SOURCE=$srcfile" + # If there are versioned aliases the entry is only generated for the + # shared library, unless it is a default version. + shared_only=f + case $weak in + *@@*) ;; + *@*) shared_only=t;; + esac + case x$srcfile"$callnum" in x--) # Undefined callnum for an extra syscall. @@ -127,30 +135,25 @@ while read file srcfile caller syscall args strong weak; do x-*) echo "ifeq (,\$(filter $file,\$(unix-syscalls)))" - case $weak in - *@*) + if test $shared_only = t; then # The versioned symbols are only in the shared library. echo "ifneq (,\$(filter .os,\$(object-suffixes)))" - ;; - esac + fi # Accumulate the list of syscall files for this directory. echo "unix-syscalls += $file" test x$caller = x- || echo "unix-extra-syscalls += $file" # Emit a compilation rule for this syscall. - case $weak in - *@*) + if test $shared_only = t; then # The versioned symbols are only in the shared library. echo "\ shared-only-routines += $file \$(objpfx)${file}.os: \\" - ;; - *) + else echo "\ \$(foreach p,\$(sysd-rules-targets),\ \$(foreach o,\$(object-suffixes),\$(objpfx)\$(patsubst %,\$p,$file)\$o)): \\" - ;; - esac + fi echo " \$(..)sysdeps/unix/make-syscalls.sh" case x"$callnum" in @@ -226,12 +229,10 @@ shared-only-routines += $file echo ' ) | $(compile-syscall) '"\ \$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))" - case $weak in - *@*) + if test $shared_only = t; then # The versioned symbols are only in the shared library. echo endif - ;; - esac + fi echo endif ;; diff --git a/sysdeps/unix/sysv/linux/i386/syscalls.list b/sysdeps/unix/sysv/linux/i386/syscalls.list index e3bcaba..149d432 100644 --- a/sysdeps/unix/sysv/linux/i386/syscalls.list +++ b/sysdeps/unix/sysv/linux/i386/syscalls.list @@ -2,7 +2,7 @@ modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt vm86old EXTRA vm86old i:p __vm86old vm86@GLIBC_2.0 -vm86 - vm86 i:ip __vm86 vm86 +vm86 - vm86 i:ip __vm86 vm86@@GLIBC_2.3.4 oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0 oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0 waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid -- 2.7.4