Fix missing vm86 symbol
authorAndreas Schwab <schwab@linux-m68k.org>
Sun, 29 Apr 2012 13:17:36 +0000 (15:17 +0200)
committerAndreas Schwab <schwab@linux-m68k.org>
Fri, 4 May 2012 10:46:23 +0000 (12:46 +0200)
ChangeLog
sysdeps/unix/make-syscalls.sh
sysdeps/unix/sysv/linux/i386/syscalls.list

index 447d4a0..c659fb1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
 
        [BZ #14049]
index a8b8a26..ff452d6 100644 (file)
@@ -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
  ;;
index e3bcaba..149d432 100644 (file)
@@ -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