Fix missing vm86 symbol

This commit is contained in:
Andreas Schwab 2012-04-29 15:17:36 +02:00
parent 8f203e6cb6
commit 6fef930cf3
3 changed files with 21 additions and 15 deletions

View File

@ -1,3 +1,8 @@
2012-05-04 Andreas Schwab <schwab@linux-m68k.org>
* 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 <joseph@codesourcery.com> 2012-05-04 Joseph Myers <joseph@codesourcery.com>
[BZ #14049] [BZ #14049]

View File

@ -112,6 +112,14 @@ while read file srcfile caller syscall args strong weak; do
echo '' echo ''
echo "#### CALL=$file NUMBER=$callnum ARGS=$args SOURCE=$srcfile" 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 case x$srcfile"$callnum" in
x--) x--)
# Undefined callnum for an extra syscall. # Undefined callnum for an extra syscall.
@ -127,30 +135,25 @@ while read file srcfile caller syscall args strong weak; do
x-*) x-*)
echo "ifeq (,\$(filter $file,\$(unix-syscalls)))" echo "ifeq (,\$(filter $file,\$(unix-syscalls)))"
case $weak in if test $shared_only = t; then
*@*)
# The versioned symbols are only in the shared library. # The versioned symbols are only in the shared library.
echo "ifneq (,\$(filter .os,\$(object-suffixes)))" echo "ifneq (,\$(filter .os,\$(object-suffixes)))"
;; fi
esac
# Accumulate the list of syscall files for this directory. # Accumulate the list of syscall files for this directory.
echo "unix-syscalls += $file" echo "unix-syscalls += $file"
test x$caller = x- || echo "unix-extra-syscalls += $file" test x$caller = x- || echo "unix-extra-syscalls += $file"
# Emit a compilation rule for this syscall. # 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. # The versioned symbols are only in the shared library.
echo "\ echo "\
shared-only-routines += $file shared-only-routines += $file
\$(objpfx)${file}.os: \\" \$(objpfx)${file}.os: \\"
;; else
*)
echo "\ echo "\
\$(foreach p,\$(sysd-rules-targets),\ \$(foreach p,\$(sysd-rules-targets),\
\$(foreach o,\$(object-suffixes),\$(objpfx)\$(patsubst %,\$p,$file)\$o)): \\" \$(foreach o,\$(object-suffixes),\$(objpfx)\$(patsubst %,\$p,$file)\$o)): \\"
;; fi
esac
echo " \$(..)sysdeps/unix/make-syscalls.sh" echo " \$(..)sysdeps/unix/make-syscalls.sh"
case x"$callnum" in case x"$callnum" in
@ -226,12 +229,10 @@ shared-only-routines += $file
echo ' ) | $(compile-syscall) '"\ echo ' ) | $(compile-syscall) '"\
\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))" \$(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. # The versioned symbols are only in the shared library.
echo endif echo endif
;; fi
esac
echo endif echo endif
;; ;;

View File

@ -2,7 +2,7 @@
modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt modify_ldt EXTRA modify_ldt i:ipi __modify_ldt modify_ldt
vm86old EXTRA vm86old i:p __vm86old vm86@GLIBC_2.0 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 oldgetrlimit EXTRA getrlimit i:ip __old_getrlimit getrlimit@GLIBC_2.0
oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0 oldsetrlimit EXTRA setrlimit i:ip __old_setrlimit setrlimit@GLIBC_2.0
waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid waitpid - waitpid Ci:ipi __waitpid waitpid __libc_waitpid