This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.16-ports-merge-103-g09c0ee5


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  09c0ee5f8c2e52ff64347c39a586e8a23b9421e5 (commit)
      from  7e66ee5142deda977163d0a858c3d2883cae3f07 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=09c0ee5f8c2e52ff64347c39a586e8a23b9421e5

commit 09c0ee5f8c2e52ff64347c39a586e8a23b9421e5
Author: Roland McGrath <roland@hack.frob.com>
Date:   Wed Aug 1 10:25:11 2012 -0700

    BZ#14138: Move getrlimit (ugetrlimit) syscall to syscalls.list.

diff --git a/ChangeLog b/ChangeLog
index 7d65ba6..cacc65c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2012-08-01  Roland McGrath  <roland@hack.frob.com>
+
+	[BZ #14138]
+	* sysdeps/unix/sysv/linux/syscalls.list: Add getrlimit/ugetrlimit line.
+	* sysdeps/unix/sysv/linux/i386/getrlimit.c: File removed.
+	* sysdeps/unix/sysv/linux/powerpc/getrlimit.c: File removed.
+	* sysdeps/unix/sysv/linux/sh/getrlimit.c: File removed.
+
+	* sysdeps/unix/make-syscalls.sh: Emit uses of the versioned_symbol and
+	compat_symbol macros from <shlib-compat.h> rather than the underlying
+	default_symbol_version and symbol_version macros, so that DEFAULT
+	lines in shlib-versions are respected.
+	* sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Likewise.
+
 2012-08-01  Florian Weimer  <fweimer@redhat.com>
 
 	* posix/unistd.h (setuid, setreuid, seteuid, setresuid):
diff --git a/ports/ChangeLog.am33 b/ports/ChangeLog.am33
index d14f722..2adcc22 100644
--- a/ports/ChangeLog.am33
+++ b/ports/ChangeLog.am33
@@ -1,3 +1,8 @@
+2012-08-01  Roland McGrath  <roland@hack.frob.com>
+
+	[BZ #14138]
+	* sysdeps/unix/sysv/linux/am33/getrlimit.c: File removed.
+
 2012-03-09  Paul Eggert  <eggert@cs.ucla.edu>
 
 	[BZ #13673]
diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm
index 6a33c42..2b109db 100644
--- a/ports/ChangeLog.arm
+++ b/ports/ChangeLog.arm
@@ -1,3 +1,8 @@
+2012-08-01  Roland McGrath  <roland@hack.frob.com>
+
+	[BZ #14138]
+	* sysdeps/unix/sysv/linux/arm/getrlimit.c: File removed.
+
 2012-07-30  Roland McGrath  <roland@hack.frob.com>
 
 	* sysdeps/arm/preconfigure: Don't refuse configurations with
diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k
index fe2e059..84260c0 100644
--- a/ports/ChangeLog.m68k
+++ b/ports/ChangeLog.m68k
@@ -1,3 +1,8 @@
+2012-08-01  Roland McGrath  <roland@hack.frob.com>
+
+	[BZ #14138]
+	* sysdeps/unix/sysv/linux/m68k/getrlimit.c: File removed.
+
 2012-08-01  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Update.
diff --git a/ports/sysdeps/unix/sysv/linux/am33/getrlimit.c b/ports/sysdeps/unix/sysv/linux/am33/getrlimit.c
deleted file mode 100644
index fc06dbd..0000000
--- a/ports/sysdeps/unix/sysv/linux/am33/getrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
diff --git a/ports/sysdeps/unix/sysv/linux/arm/getrlimit.c b/ports/sysdeps/unix/sysv/linux/arm/getrlimit.c
deleted file mode 100644
index fc06dbd..0000000
--- a/ports/sysdeps/unix/sysv/linux/arm/getrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
diff --git a/ports/sysdeps/unix/sysv/linux/m68k/getrlimit.c b/ports/sysdeps/unix/sysv/linux/m68k/getrlimit.c
deleted file mode 100644
index fc06dbd..0000000
--- a/ports/sysdeps/unix/sysv/linux/m68k/getrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
diff --git a/sysdeps/unix/Makefile b/sysdeps/unix/Makefile
index 9e95b56..dda3a3e 100644
--- a/sysdeps/unix/Makefile
+++ b/sysdeps/unix/Makefile
@@ -37,23 +37,29 @@ $(objpfx)stub-syscalls.c: $(common-objpfx)sysd-syscalls \
 			  $(..)sysdeps/unix/Makefile
 	$(make-target-directory)
 	(for call in $(unix-stub-syscalls); do \
+	   call=$${call%%@*}; \
 	   echo "#define $$call RENAMED_$$call"; \
 	 done; \
 	 echo '#include <errno.h>'; \
+	 echo '#include <shlib-compat.h>'; \
 	 for call in $(unix-stub-syscalls); do \
+	   call=$${call%%@*}; \
 	   echo "#undef $$call"; \
 	 done; \
 	 echo 'long int _no_syscall (void)'; \
 	 echo '{ __set_errno (ENOSYS); return -1L; }'; \
 	 for call in $(unix-stub-syscalls); do \
 	   case $$call in \
-	   *@@*) ver=$${call##*@}; call=$${call%%*@}; \
-		 echo "strong_alias (_no_syscall, $${call}_$${ver})"; \
-		 echo "default_symbol_version \
-		         ($${call}_$${ver}, $$call, $$ver);" ;; \
-	   *@*) ver=$${call##*@}; call=$${call%%*@}; \
-		echo "strong_alias (_no_syscall, $${call}_$${ver})"; \
-		echo "symbol_version ($${call}_$${ver}, $$call, $$ver);" ;; \
+	   *@@*) \
+	     ver=$${call##*@}; call=$${call%%@*}; ver=$${ver//./_}; \
+	     echo "strong_alias (_no_syscall, __$${call}_$${ver})"; \
+	     echo "versioned_symbol (libc, __$${call}_$${ver}, $$call, $$ver);"\
+	     ;; \
+	   *@*) \
+	     ver=$${call##*@}; call=$${call%%@*}; ver=$${ver//./_}; \
+	     echo "strong_alias (_no_syscall, __$${call}_$${ver})"; \
+	     echo "compat_symbol (libc, __$${call}_$${ver}, $$call, $$ver);" \
+	     ;; \
 	   *) echo "weak_alias (_no_syscall, $$call)"; \
 	      echo "stub_warning ($$call)"; \
 	      echo "weak_alias (_no_syscall, __GI_$$call)" ;; \
diff --git a/sysdeps/unix/make-syscalls.sh b/sysdeps/unix/make-syscalls.sh
index 2bc7cc0..7e7de65 100644
--- a/sysdeps/unix/make-syscalls.sh
+++ b/sysdeps/unix/make-syscalls.sh
@@ -64,18 +64,30 @@ done`
 # Any calls left?
 test -n "$calls" || exit 0
 
-# This uses variables $weak and $strong.
+# This uses variables $weak, $strong, and $any_versioned.
 emit_weak_aliases()
 {
   # A shortcoming in the current gas is that it will only allow one
   # version-alias per symbol.  So we create new strong aliases as needed.
   vcount=""
 
+  # We use the <shlib-compat.h> macros to generate the versioned aliases
+  # so that the version sets can be mapped to the configuration's
+  # minimum version set as per shlib-versions DEFAULT lines.  But note
+  # we don't generate any "#if SHLIB_COMPAT (...)" conditionals.  To do
+  # that we'd need to change the syscalls.list format so that it can
+  # list the "obsoleted" version set too.  If it ever arises that we
+  # have a syscall entry point that is obsoleted by a newer version set,
+  # we'll have to revamp all this.
+  if [ $any_versioned = t ]; then
+    echo "	 echo '#include <shlib-compat.h>'; \\"
+  fi
+
   for name in $weak; do
     case $name in
       *@@*)
 	base=`echo $name | sed 's/@@.*//'`
-	ver=`echo $name | sed 's/.*@@//'`
+	ver=`echo $name | sed 's/.*@@//;s/\./_/g'`
 	echo "	 echo '#ifndef NOT_IN_libc'; \\"
 	if test -z "$vcount" ; then
 	  source=$strong
@@ -85,14 +97,14 @@ emit_weak_aliases()
 	  vcount=`expr $vcount + 1`
 	  echo "	 echo 'strong_alias ($strong, $source)'; \\"
 	fi
-	echo "	 echo 'default_symbol_version($source, $base, $ver)'; \\"
+	echo "	 echo 'versioned_symbol (libc, $source, $base, $ver)'; \\"
 	echo "	 echo '#else'; \\"
 	echo "	 echo 'strong_alias ($strong, $base)'; \\"
 	echo "	 echo '#endif'; \\"
 	;;
       *@*)
 	base=`echo $name | sed 's/@.*//'`
-	ver=`echo $name | sed 's/.*@//'`
+	ver=`echo $name | sed 's/.*@//;s/\./_/g'`
 	echo "	 echo '#ifndef NOT_IN_libc'; \\"
 	if test -z "$vcount" ; then
 	  source=$strong
@@ -102,7 +114,7 @@ emit_weak_aliases()
 	  vcount=`expr $vcount + 1`
 	  echo "	 echo 'strong_alias ($strong, $source)'; \\"
 	fi
-	echo "	 echo 'symbol_version ($source, $base, $ver)'; \\"
+	echo "	 echo 'compat_symbol (libc, $source, $base, $ver)'; \\"
 	echo "	 echo '#endif'; \\"
 	;;
       !*)
@@ -175,10 +187,11 @@ while read file srcfile caller syscall args strong weak; do
 
   # If there are versioned aliases the entry is only generated for the
   # shared library, unless it is a default version.
+  any_versioned=f
   shared_only=f
   case $weak in
-    *@@*) ;;
-    *@*) shared_only=t;;
+    *@@*) any_versioned=t ;;
+    *@*) any_versioned=t shared_only=t ;;
   esac
 
  case x$srcfile"$callnum" in
diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit.c b/sysdeps/unix/sysv/linux/i386/getrlimit.c
deleted file mode 100644
index e18f9de..0000000
--- a/sysdeps/unix/sysv/linux/i386/getrlimit.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 1999-2012 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sys/resource.h>
-
-#include <sysdep.h>
-#include <sys/syscall.h>
-#include <shlib-compat.h>
-#include <bp-checks.h>
-
-extern int __new_getrlimit (enum __rlimit_resource resource,
-			    struct rlimit *__unbounded rlimits);
-
-/* Consider moving to syscalls.list.  */
-
-int
-__new_getrlimit (enum __rlimit_resource resource, struct rlimit *rlimits)
-{
-  return INLINE_SYSCALL (ugetrlimit, 2, resource, CHECK_1 (rlimits));
-}
-
-weak_alias (__new_getrlimit, __getrlimit);
-versioned_symbol (libc, __new_getrlimit, getrlimit, GLIBC_2_2);
diff --git a/sysdeps/unix/sysv/linux/powerpc/getrlimit.c b/sysdeps/unix/sysv/linux/powerpc/getrlimit.c
deleted file mode 100644
index fc06dbd..0000000
--- a/sysdeps/unix/sysv/linux/powerpc/getrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
diff --git a/sysdeps/unix/sysv/linux/sh/getrlimit.c b/sysdeps/unix/sysv/linux/sh/getrlimit.c
deleted file mode 100644
index fc06dbd..0000000
--- a/sysdeps/unix/sysv/linux/sh/getrlimit.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <sysdeps/unix/sysv/linux/i386/getrlimit.c>
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 9ec0028..6343272 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -25,6 +25,7 @@ getpmsg		-	getpmsg		i:ipppp	getpmsg
 getppid		-	getppid		Ei:	__getppid	getppid
 getresuid	-	getresuid	i:ppp	getresuid
 getresgid	-	getresgid	i:ppp	getresgid
+getrlimit	-	ugetrlimit	i:ip	__new_getrlimit __getrlimit getrlimit@@GLIBC_2.2
 getsid		-	getsid		i:i	getsid
 init_module	EXTRA	init_module	5	init_module
 inotify_add_watch	EXTRA	inotify_add_watch	i:isi	inotify_add_watch

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                      |   14 +++++++++
 ports/ChangeLog.am33                           |    5 +++
 ports/ChangeLog.arm                            |    5 +++
 ports/ChangeLog.m68k                           |    5 +++
 ports/sysdeps/unix/sysv/linux/am33/getrlimit.c |    1 -
 ports/sysdeps/unix/sysv/linux/arm/getrlimit.c  |    1 -
 ports/sysdeps/unix/sysv/linux/m68k/getrlimit.c |    1 -
 sysdeps/unix/Makefile                          |   20 ++++++++----
 sysdeps/unix/make-syscalls.sh                  |   27 ++++++++++++----
 sysdeps/unix/sysv/linux/i386/getrlimit.c       |   38 ------------------------
 sysdeps/unix/sysv/linux/powerpc/getrlimit.c    |    1 -
 sysdeps/unix/sysv/linux/sh/getrlimit.c         |    1 -
 sysdeps/unix/sysv/linux/syscalls.list          |    1 +
 13 files changed, 63 insertions(+), 57 deletions(-)
 delete mode 100644 ports/sysdeps/unix/sysv/linux/am33/getrlimit.c
 delete mode 100644 ports/sysdeps/unix/sysv/linux/arm/getrlimit.c
 delete mode 100644 ports/sysdeps/unix/sysv/linux/m68k/getrlimit.c
 delete mode 100644 sysdeps/unix/sysv/linux/i386/getrlimit.c
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/getrlimit.c
 delete mode 100644 sysdeps/unix/sysv/linux/sh/getrlimit.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]