This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.21-93-g1a2325c
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 18 Feb 2015 00:27:00 -0000
- Subject: 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