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.21-93-g1a2325c


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  1a2325c06cf309d1d8b4aafcfb1a3d43905baf9b (commit)
      from  8ae4bb5a3882331a2a8d0828a35b89965310fc76 (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://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1a2325c06cf309d1d8b4aafcfb1a3d43905baf9b

commit 1a2325c06cf309d1d8b4aafcfb1a3d43905baf9b
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Feb 18 00:26:35 2015 +0000

    Fix posix_spawn getrlimit64 namespace (bug 17991).
    
    posix_spawn (a standard POSIX function) brings in a use of getrlimit64
    (not a standard POSIX function).  This patch fixes this by using
    __getrlimit64 and making getrlimit64 a weak alias.
    
    This is more complicated than some such changes because of files that
    define getrlimit64 in their own way using symbol versioning after
    including the main sysdeps/unix/sysv/linux/getrlimit64.c with a
    getrlimit macro defined.  There are various existing patterns for such
    cases in glibc; the one I've used here is that a getrlimit64 macro
    disables the weak_alias / libc_hidden_weak calls, leaving it to the
    including file to define the getrlimit64 name in whatever way is
    appropriate.
    
    Tested for x86_64 and x86 that installed stripped shared libraries are
    unchanged by this patch.
    
    	[BZ #17991]
    	* include/sys/resource.h (__getrlimit64): Declare.  Use
    	libc_hidden_proto.
    	* resource/getrlimit64.c (getrlimit64): Rename to __getrlimit64
    	and define as weak alias of __getrlimit64.  Use libc_hidden_weak.
    	* sysdeps/posix/spawni.c (__spawni): Call __getrlimit64 instead of
    	getrlimit64.
    	* sysdeps/unix/sysv/linux/getrlimit64.c (getrlimit64): Rename to
    	__getrlimit64.
    	[!getrlimit64] (getrlimit64): Define as weak alias of
    	__getrlimit64.  Use libc_hidden_weak.
    	* sysdeps/unix/sysv/linux/i386/getrlimit64.c (getrlimit64): Define
    	using __getrlimit64 not __new_getrlimit64.
    	(__GI_getrlimit64): Likewise.
    	* sysdeps/unix/sysv/linux/mips/getrlimit64.c (getrlimit64):
    	Likewise.
    	(__GI_getrlimit64): Likewise.
    	(__old_getrlimit64): Use __getrlimit64 not __new_getrlimit64.
    	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
    	(getrlimit): Add __getrlimit64 alias.
    	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (getrlimit):
    	Likewise.
    	* conform/Makefile (test-xfail-XOPEN2K/spawn.h/linknamespace):
    	Remove variable.
    	(test-xfail-POSIX2008/spawn.h/linknamespace): Likewise.
    	(test-xfail-XOPEN2K8/spawn.h/linknamespace): Likewise.

diff --git a/ChangeLog b/ChangeLog
index ee0a822..068ed1b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2015-02-17  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #17991]
+	* include/sys/resource.h (__getrlimit64): Declare.  Use
+	libc_hidden_proto.
+	* resource/getrlimit64.c (getrlimit64): Rename to __getrlimit64
+	and define as weak alias of __getrlimit64.  Use libc_hidden_weak.
+	* sysdeps/posix/spawni.c (__spawni): Call __getrlimit64 instead of
+	getrlimit64.
+	* sysdeps/unix/sysv/linux/getrlimit64.c (getrlimit64): Rename to
+	__getrlimit64.
+	[!getrlimit64] (getrlimit64): Define as weak alias of
+	__getrlimit64.  Use libc_hidden_weak.
+	* sysdeps/unix/sysv/linux/i386/getrlimit64.c (getrlimit64): Define
+	using __getrlimit64 not __new_getrlimit64.
+	(__GI_getrlimit64): Likewise.
+	* sysdeps/unix/sysv/linux/mips/getrlimit64.c (getrlimit64):
+	Likewise.
+	(__GI_getrlimit64): Likewise.
+	(__old_getrlimit64): Use __getrlimit64 not __new_getrlimit64.
+	* sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
+	(getrlimit): Add __getrlimit64 alias.
+	* sysdeps/unix/sysv/linux/wordsize-64/syscalls.list (getrlimit):
+	Likewise.
+	* conform/Makefile (test-xfail-XOPEN2K/spawn.h/linknamespace):
+	Remove variable.
+	(test-xfail-POSIX2008/spawn.h/linknamespace): Likewise.
+	(test-xfail-XOPEN2K8/spawn.h/linknamespace): Likewise.
+
 2015-02-17  Paul Pluzhnikov  <ppluzhnikov@google.com>
 
 	* libio/fileops.c: Add missing sys/mman.h
diff --git a/NEWS b/NEWS
index 1c5e590..29af3e9 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.22
 * The following bugs are resolved with this release:
 
   4719, 15467, 15790, 16560, 17569, 17792, 17912, 17932, 17944, 17949,
-  17964, 17965, 17967, 17969, 17978, 17987.
+  17964, 17965, 17967, 17969, 17978, 17987, 17991.
 
 Version 2.21
 
diff --git a/conform/Makefile b/conform/Makefile
index 331590a..c0c0db7 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -391,7 +391,6 @@ test-xfail-XOPEN2K/netdb.h/linknamespace = yes
 test-xfail-XOPEN2K/regex.h/linknamespace = yes
 test-xfail-XOPEN2K/search.h/linknamespace = yes
 test-xfail-XOPEN2K/signal.h/linknamespace = yes
-test-xfail-XOPEN2K/spawn.h/linknamespace = yes
 test-xfail-XOPEN2K/stdlib.h/linknamespace = yes
 test-xfail-XOPEN2K/sys/wait.h/linknamespace = yes
 test-xfail-XOPEN2K/syslog.h/linknamespace = yes
@@ -403,7 +402,6 @@ test-xfail-POSIX2008/grp.h/linknamespace = yes
 test-xfail-POSIX2008/netdb.h/linknamespace = yes
 test-xfail-POSIX2008/regex.h/linknamespace = yes
 test-xfail-POSIX2008/semaphore.h/linknamespace = yes
-test-xfail-POSIX2008/spawn.h/linknamespace = yes
 test-xfail-POSIX2008/unistd.h/linknamespace = yes
 test-xfail-XOPEN2K8/dirent.h/linknamespace = yes
 test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes
@@ -412,6 +410,5 @@ test-xfail-XOPEN2K8/netdb.h/linknamespace = yes
 test-xfail-XOPEN2K8/pwd.h/linknamespace = yes
 test-xfail-XOPEN2K8/regex.h/linknamespace = yes
 test-xfail-XOPEN2K8/search.h/linknamespace = yes
-test-xfail-XOPEN2K8/spawn.h/linknamespace = yes
 test-xfail-XOPEN2K8/syslog.h/linknamespace = yes
 test-xfail-XOPEN2K8/unistd.h/linknamespace = yes
diff --git a/include/sys/resource.h b/include/sys/resource.h
index 1ce190f..7622da9 100644
--- a/include/sys/resource.h
+++ b/include/sys/resource.h
@@ -5,6 +5,8 @@
 libc_hidden_proto (getpriority)
 libc_hidden_proto (setpriority)
 libc_hidden_proto (getrlimit64)
+extern __typeof (getrlimit64) __getrlimit64;
+libc_hidden_proto (__getrlimit64);
 
 /* Now define the internal interfaces.  */
 extern int __getrlimit (enum __rlimit_resource __resource,
diff --git a/resource/getrlimit64.c b/resource/getrlimit64.c
index 6d22eca..cb494cc 100644
--- a/resource/getrlimit64.c
+++ b/resource/getrlimit64.c
@@ -22,7 +22,7 @@
 /* Put the soft and hard limits for RESOURCE in *RLIMITS.
    Returns 0 if successful, -1 if not (and sets errno).  */
 int
-getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
+__getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
 {
   struct rlimit rlimits32;
 
@@ -40,4 +40,6 @@ getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
 
   return 0;
 }
-libc_hidden_def (getrlimit64)
+libc_hidden_def (__getrlimit64)
+weak_alias (__getrlimit64, getrlimit64)
+libc_hidden_weak (getrlimit64)
diff --git a/sysdeps/posix/spawni.c b/sysdeps/posix/spawni.c
index 4a25c89..eee9331 100644
--- a/sysdeps/posix/spawni.c
+++ b/sysdeps/posix/spawni.c
@@ -188,7 +188,7 @@ __spawni (pid_t *pid, const char *file,
 		{
 		  if (! have_fdlimit)
 		    {
-		      getrlimit64 (RLIMIT_NOFILE, &fdlimit);
+		      __getrlimit64 (RLIMIT_NOFILE, &fdlimit);
 		      have_fdlimit = true;
 		    }
 
diff --git a/sysdeps/unix/sysv/linux/getrlimit64.c b/sysdeps/unix/sysv/linux/getrlimit64.c
index 461d345..100ba62 100644
--- a/sysdeps/unix/sysv/linux/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/getrlimit64.c
@@ -24,7 +24,7 @@
 /* Put the soft and hard limits for RESOURCE in *RLIMITS.
    Returns 0 if successful, -1 if not (and sets errno).  */
 int
-getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
+__getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
 {
 #ifdef __ASSUME_PRLIMIT64
   return INLINE_SYSCALL (prlimit64, 4, 0, resource, NULL, rlimits);
@@ -51,4 +51,8 @@ getrlimit64 (enum __rlimit_resource resource, struct rlimit64 *rlimits)
   return 0;
 #endif
 }
-libc_hidden_def (getrlimit64)
+libc_hidden_def (__getrlimit64)
+#ifndef getrlimit64
+weak_alias (__getrlimit64, getrlimit64)
+libc_hidden_weak (getrlimit64)
+#endif
diff --git a/sysdeps/unix/sysv/linux/i386/getrlimit64.c b/sysdeps/unix/sysv/linux/i386/getrlimit64.c
index a771584..8bd3bd9 100644
--- a/sysdeps/unix/sysv/linux/i386/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/i386/getrlimit64.c
@@ -21,5 +21,5 @@
 
 #undef getrlimit64
 #include <shlib-compat.h>
-versioned_symbol (libc, __new_getrlimit64, getrlimit64, GLIBC_2_2);
-strong_alias (__new_getrlimit64, __GI_getrlimit64)
+versioned_symbol (libc, __getrlimit64, getrlimit64, GLIBC_2_2);
+strong_alias (__getrlimit64, __GI_getrlimit64)
diff --git a/sysdeps/unix/sysv/linux/mips/getrlimit64.c b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
index 7080f77..751b11a 100644
--- a/sysdeps/unix/sysv/linux/mips/getrlimit64.c
+++ b/sysdeps/unix/sysv/linux/mips/getrlimit64.c
@@ -25,8 +25,8 @@
 # include <sysdeps/unix/sysv/linux/getrlimit64.c>
 # undef getrlimit64
 
-versioned_symbol (libc, __new_getrlimit64, getrlimit64, GLIBC_2_19);
-strong_alias (__new_getrlimit64, __GI_getrlimit64)
+versioned_symbol (libc, __getrlimit64, getrlimit64, GLIBC_2_19);
+strong_alias (__getrlimit64, __GI_getrlimit64)
 
 # if SHLIB_COMPAT (libc, GLIBC_2_2, GLIBC_2_19)
 
@@ -45,7 +45,7 @@ __old_getrlimit64 (enum __rlimit_resource resource,
 {
   struct rlimit64 krlimits;
 
-  if (__new_getrlimit64 (resource, &krlimits) < 0)
+  if (__getrlimit64 (resource, &krlimits) < 0)
     return -1;
 
   if (krlimits.rlim_cur == RLIM64_INFINITY)
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list b/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
index aee60bf..6ba6f9b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/syscalls.list
@@ -1,3 +1,3 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-getrlimit	-	ugetrlimit	i:ip	__getrlimit	getrlimit getrlimit64
+getrlimit	-	ugetrlimit	i:ip	__getrlimit	getrlimit getrlimit64 __getrlimit64
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list b/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
index 77aa246..2876bbd 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/wordsize-64/syscalls.list
@@ -10,7 +10,7 @@ statfs		-	statfs		i:sp	__statfs	statfs statfs64
 mmap		-	mmap		b:aniiii __mmap		mmap __mmap64 mmap64
 ftruncate	-	ftruncate	i:ii	__ftruncate	ftruncate ftruncate64 __ftruncate64
 truncate	-	truncate	i:si	truncate	truncate64
-getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit getrlimit64
+getrlimit	-	getrlimit	i:ip	__getrlimit	getrlimit getrlimit64 __getrlimit64
 setrlimit	-	setrlimit	i:ip	__setrlimit	setrlimit setrlimit64
 readahead	-	readahead	i:iii	__readahead	readahead
 sendfile	-	sendfile	i:iipi	sendfile	sendfile64

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

Summary of changes:
 ChangeLog                                          |   29 ++++++++++++++++++++
 NEWS                                               |    2 +-
 conform/Makefile                                   |    3 --
 include/sys/resource.h                             |    2 +
 resource/getrlimit64.c                             |    6 +++-
 sysdeps/posix/spawni.c                             |    2 +-
 sysdeps/unix/sysv/linux/getrlimit64.c              |    8 ++++-
 sysdeps/unix/sysv/linux/i386/getrlimit64.c         |    4 +-
 sysdeps/unix/sysv/linux/mips/getrlimit64.c         |    6 ++--
 .../sysv/linux/powerpc/powerpc64/syscalls.list     |    2 +-
 sysdeps/unix/sysv/linux/wordsize-64/syscalls.list  |    2 +-
 11 files changed, 50 insertions(+), 16 deletions(-)


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]