about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/make-syscalls.sh29
-rw-r--r--sysdeps/unix/sysv/linux/i386/syscalls.list2
3 files changed, 21 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 447d4a0f9e..c659fb1e42 100644
--- 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]
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index a8b8a262a7..ff452d6780 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 e3bcabac10..149d432347 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