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-99-g4017615
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 Feb 2015 17:19:25 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.21-99-g4017615
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 40176158f1bfcf4fd1621169221c1aa8f0c3c300 (commit)
from 4629c866ad79167d60ca9bf263d871eabb59d3d9 (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=40176158f1bfcf4fd1621169221c1aa8f0c3c300
commit 40176158f1bfcf4fd1621169221c1aa8f0c3c300
Author: Joseph Myers <joseph@codesourcery.com>
Date: Thu Feb 19 17:18:51 2015 +0000
Fix scandir scandirat namespace (bug 17999).
The POSIX function scandir calls scandirat, which is not a POSIX
function. This patch fixes this by making it use __scandirat and
making scandirat a weak alias. There are no changes for scandir64 /
scandirat64 because those are both _GNU_SOURCE-only functions so no
namespace issue arises for them.
Tested for x86_64 that the disassembly of installed shared libraries
is unchanged by this patch.
[BZ #17999]
* dirent/scandir.c [!SCANDIR] (SCANDIRAT): Define to __scandirat
instead of scandirat.
* dirent/scandirat.c [!SCANDIRAT] (SCANDIRAT): Likewise.
[!SCANDIRAT] (SCANDIRAT_WEAK_ALIAS): Define.
[SCANDIRAT_WEAK_ALIAS] (scandirat): Define as weak alias of
__scandirat.
* include/dirent.h (scandirat): Do not use libc_hidden_proto.
(__scandirat): Declare. Use libc_hidden_proto.
* conform/Makefile (test-xfail-POSIX2008/dirent.h/linknamespace):
Remove variable.
(test-xfail-XOPEN2K8/dirent.h/linknamespace): Likewise.
diff --git a/ChangeLog b/ChangeLog
index 8b6dd07..b09206c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2015-02-19 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #17999]
+ * dirent/scandir.c [!SCANDIR] (SCANDIRAT): Define to __scandirat
+ instead of scandirat.
+ * dirent/scandirat.c [!SCANDIRAT] (SCANDIRAT): Likewise.
+ [!SCANDIRAT] (SCANDIRAT_WEAK_ALIAS): Define.
+ [SCANDIRAT_WEAK_ALIAS] (scandirat): Define as weak alias of
+ __scandirat.
+ * include/dirent.h (scandirat): Do not use libc_hidden_proto.
+ (__scandirat): Declare. Use libc_hidden_proto.
+ * conform/Makefile (test-xfail-POSIX2008/dirent.h/linknamespace):
+ Remove variable.
+ (test-xfail-XOPEN2K8/dirent.h/linknamespace): Likewise.
+
2015-02-18 Joseph Myers <joseph@codesourcery.com>
[BZ #15319]
diff --git a/NEWS b/NEWS
index 0501d51..8d2c51b 100644
--- a/NEWS
+++ b/NEWS
@@ -10,7 +10,7 @@ Version 2.22
* The following bugs are resolved with this release:
4719, 15319, 15467, 15790, 16560, 17569, 17792, 17912, 17932, 17944,
- 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996.
+ 17949, 17964, 17965, 17967, 17969, 17978, 17987, 17991, 17996, 17999.
Version 2.21
diff --git a/conform/Makefile b/conform/Makefile
index 39f41bd..3f9721a 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -393,13 +393,11 @@ test-xfail-XOPEN2K/syslog.h/linknamespace = yes
test-xfail-XOPEN2K/ucontext.h/linknamespace = yes
test-xfail-XOPEN2K/unistd.h/linknamespace = yes
test-xfail-XOPEN2K/wordexp.h/linknamespace = yes
-test-xfail-POSIX2008/dirent.h/linknamespace = yes
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/unistd.h/linknamespace = yes
-test-xfail-XOPEN2K8/dirent.h/linknamespace = yes
test-xfail-XOPEN2K8/fmtmsg.h/linknamespace = yes
test-xfail-XOPEN2K8/grp.h/linknamespace = yes
test-xfail-XOPEN2K8/netdb.h/linknamespace = yes
diff --git a/dirent/scandir.c b/dirent/scandir.c
index 1039b9b..99c9681 100644
--- a/dirent/scandir.c
+++ b/dirent/scandir.c
@@ -28,7 +28,7 @@
#ifndef SCANDIR
# define SCANDIR scandir
-# define SCANDIRAT scandirat
+# define SCANDIRAT __scandirat
# define DIRENT_TYPE struct dirent
#endif
diff --git a/dirent/scandirat.c b/dirent/scandirat.c
index 1147cee..004b152 100644
--- a/dirent/scandirat.c
+++ b/dirent/scandirat.c
@@ -30,9 +30,10 @@
#include <bits/libc-lock.h>
#ifndef SCANDIRAT
-# define SCANDIRAT scandirat
+# define SCANDIRAT __scandirat
# define READDIR __readdir
# define DIRENT_TYPE struct dirent
+# define SCANDIRAT_WEAK_ALIAS
#endif
#ifndef SKIP_SCANDIR_CANCEL
@@ -148,6 +149,9 @@ SCANDIRAT (dfd, dir, namelist, select, cmp)
return c.cnt;
}
libc_hidden_def (SCANDIRAT)
+#ifdef SCANDIRAT_WEAK_ALIAS
+weak_alias (__scandirat, scandirat)
+#endif
#ifdef _DIRENT_MATCHES_DIRENT64
weak_alias (scandirat, scandirat64)
diff --git a/include/dirent.h b/include/dirent.h
index e8e9e42..2e797ae 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -50,7 +50,8 @@ extern void __scandir_cancel_handler (void *arg);
extern __typeof (rewinddir) __rewinddir;
libc_hidden_proto (__rewinddir)
-libc_hidden_proto (scandirat)
+extern __typeof (scandirat) __scandirat;
+libc_hidden_proto (__scandirat)
libc_hidden_proto (scandirat64)
# endif
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 15 +++++++++++++++
NEWS | 2 +-
conform/Makefile | 2 --
dirent/scandir.c | 2 +-
dirent/scandirat.c | 6 +++++-
include/dirent.h | 3 ++-
6 files changed, 24 insertions(+), 6 deletions(-)
hooks/post-receive
--
GNU C Library master sources