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.20-172-g2f5c1b0
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 12 Nov 2014 16:24:39 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.20-172-g2f5c1b0
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 2f5c1b000aaeb2c25b1df52453bba8de7f9453e2 (commit)
from 5a6fa4d7ed465c2f7da9d73004c972519dc2100e (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=2f5c1b000aaeb2c25b1df52453bba8de7f9453e2
commit 2f5c1b000aaeb2c25b1df52453bba8de7f9453e2
Author: Joseph Myers <joseph@codesourcery.com>
Date: Wed Nov 12 16:24:16 2014 +0000
Fix __getcwd rewinddir namespace (bug 17584).
__getcwd is called from dcigettext.o (brought in by various ISO C
functionality), but calls rewinddir, which is not an ISO C function.
This patch makes __getcwd call __rewinddir instead and makes rewinddir
a weak alias for __rewinddir.
Since getcwd.c is shared with gnulib (albeit not merged in either
direction for a long time, and omitted from gnulib's
config/srclist.txt list of shared files) I put in a #ifndef _LIBC
define of __rewinddir to rewinddir, although a future merged version
of getcwd could end up looking significantly different.
Tested for x86_64 (testsuite, and that disassembly of installed shared
libraries is unchanged by this patch).
[BZ #17584]
* dirent/rewinddir.c (rewinddir): Rename to __rewinddir and define
as weak alias of __rewinddir. Don't use libc_hidden_def.
(__rewinddir): Use libc_hidden_def.
* sysdeps/mach/hurd/rewinddir.c: Rename to __rewinddir and define
as weak alias of __rewinddir. Don't use libc_hidden_def.
(__rewinddir): Use libc_hidden_def.
* sysdeps/posix/rewinddir.c: Rename to __rewinddir and define as
weak alias of __rewinddir. Don't use libc_hidden_def.
(__rewinddir): Use libc_hidden_def.
* include/dirent.h (rewinddir): Don't use libc_hidden_proto.
(__rewinddir): Use libc_hidden_proto.
* sysdeps/posix/getcwd.c [!_LIBC] (__rewinddir): Define to
rewinddir.
(__getcwd): Use __rewinddir instead of rewinddir.
diff --git a/ChangeLog b/ChangeLog
index ee9f312..42a3e82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,21 @@
2014-11-12 Joseph Myers <joseph@codesourcery.com>
+ [BZ #17584]
+ * dirent/rewinddir.c (rewinddir): Rename to __rewinddir and define
+ as weak alias of __rewinddir. Don't use libc_hidden_def.
+ (__rewinddir): Use libc_hidden_def.
+ * sysdeps/mach/hurd/rewinddir.c: Rename to __rewinddir and define
+ as weak alias of __rewinddir. Don't use libc_hidden_def.
+ (__rewinddir): Use libc_hidden_def.
+ * sysdeps/posix/rewinddir.c: Rename to __rewinddir and define as
+ weak alias of __rewinddir. Don't use libc_hidden_def.
+ (__rewinddir): Use libc_hidden_def.
+ * include/dirent.h (rewinddir): Don't use libc_hidden_proto.
+ (__rewinddir): Use libc_hidden_proto.
+ * sysdeps/posix/getcwd.c [!_LIBC] (__rewinddir): Define to
+ rewinddir.
+ (__getcwd): Use __rewinddir instead of rewinddir.
+
[BZ #17583]
* libio/fileno.c (fileno): Rename to __fileno and define as weak
alias of __fileno. Use libc_hidden_weak.
diff --git a/NEWS b/NEWS
index 4727ea2..63b0a86 100644
--- a/NEWS
+++ b/NEWS
@@ -11,7 +11,7 @@ Version 2.21
6652, 12926, 14132, 14138, 14171, 15215, 15884, 17266, 17344, 17363,
17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522,
- 17555, 17583.
+ 17555, 17583, 17584.
* New locales: tu_IN, bh_IN.
diff --git a/dirent/rewinddir.c b/dirent/rewinddir.c
index 86d9fbd..ba5b002 100644
--- a/dirent/rewinddir.c
+++ b/dirent/rewinddir.c
@@ -22,13 +22,14 @@
/* Rewind DIRP to the beginning of the directory. */
void
-rewinddir (dirp)
+__rewinddir (dirp)
DIR *dirp;
{
__set_errno (ENOSYS);
/* No way to indicate failure. */
}
-libc_hidden_def (rewinddir)
+libc_hidden_def (__rewinddir)
+weak_alias (__rewinddir, rewinddir)
stub_warning (rewinddir)
diff --git a/include/dirent.h b/include/dirent.h
index 096a977..e8e9e42 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -47,8 +47,9 @@ extern DIR *__alloc_dir (int fd, bool close_fd, int flags,
const struct stat64 *statp)
internal_function;
extern void __scandir_cancel_handler (void *arg);
+extern __typeof (rewinddir) __rewinddir;
-libc_hidden_proto (rewinddir)
+libc_hidden_proto (__rewinddir)
libc_hidden_proto (scandirat)
libc_hidden_proto (scandirat64)
# endif
diff --git a/sysdeps/mach/hurd/rewinddir.c b/sysdeps/mach/hurd/rewinddir.c
index bccd549..284a48b 100644
--- a/sysdeps/mach/hurd/rewinddir.c
+++ b/sysdeps/mach/hurd/rewinddir.c
@@ -22,9 +22,10 @@
/* Rewind DIRP to the beginning of the directory. */
void
-rewinddir (dirp)
+__rewinddir (dirp)
DIR *dirp;
{
seekdir (dirp, (off_t) 0L);
}
-libc_hidden_def (rewinddir)
+libc_hidden_def (__rewinddir)
+weak_alias (__rewinddir, rewinddir)
diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c
index 6201916..92cb22e 100644
--- a/sysdeps/posix/getcwd.c
+++ b/sysdeps/posix/getcwd.c
@@ -195,6 +195,10 @@ extern char *alloca ();
#ifndef __GNU_LIBRARY__
# define __lstat64 stat64
#endif
+
+#ifndef _LIBC
+# define __rewinddir rewinddir
+#endif
#ifndef _LIBC
# define __getcwd getcwd
@@ -390,7 +394,7 @@ __getcwd (buf, size)
if (use_d_ino)
{
use_d_ino = false;
- rewinddir (dirstream);
+ __rewinddir (dirstream);
continue;
}
diff --git a/sysdeps/posix/rewinddir.c b/sysdeps/posix/rewinddir.c
index 5a4a715..e9bc78d 100644
--- a/sysdeps/posix/rewinddir.c
+++ b/sysdeps/posix/rewinddir.c
@@ -23,7 +23,7 @@
/* Rewind DIRP to the beginning of the directory. */
void
-rewinddir (dirp)
+__rewinddir (dirp)
DIR *dirp;
{
#ifndef NOT_IN_libc
@@ -38,4 +38,5 @@ rewinddir (dirp)
__libc_lock_unlock (dirp->lock);
#endif
}
-libc_hidden_def (rewinddir)
+libc_hidden_def (__rewinddir)
+weak_alias (__rewinddir, rewinddir)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 16 ++++++++++++++++
NEWS | 2 +-
dirent/rewinddir.c | 5 +++--
include/dirent.h | 3 ++-
sysdeps/mach/hurd/rewinddir.c | 5 +++--
sysdeps/posix/getcwd.c | 6 +++++-
sysdeps/posix/rewinddir.c | 5 +++--
7 files changed, 33 insertions(+), 9 deletions(-)
hooks/post-receive
--
GNU C Library master sources