about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--NEWS2
-rw-r--r--conform/Makefile4
-rw-r--r--include/unistd.h2
-rw-r--r--login/getlogin_r.c6
-rw-r--r--posix/glob.c2
-rw-r--r--sysdeps/mach/hurd/getlogin_r.c6
-rw-r--r--sysdeps/unix/getlogin_r.c6
-rw-r--r--sysdeps/unix/sysv/linux/getlogin_r.c10
9 files changed, 39 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index ba9f629452..9403f2883c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2015-06-12  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #18527]
+	* login/getlogin_r.c (getlogin_r): Rename to __getlogin_r and
+	define as weak alias of __getlogin_r.  Use libc_hidden_weak.
+	* sysdeps/mach/hurd/getlogin_r.c (getlogin_r): Likewise.
+	* sysdeps/unix/getlogin_r.c (getlogin_r): Likewise.
+	* sysdeps/unix/sysv/linux/getlogin_r.c (getlogin_r): Likewise.
+	* include/unistd.h (__getlogin_r): Declare.  Use
+	libc_hidden_proto.
+	* posix/glob.c (glob): Call __getlogin_r instead of getlogin_r.
+	* conform/Makefile (test-xfail-XPG3/glob.h/linknamespace): Remove
+	variable.
+	(test-xfail-XPG3/wordexp.h/linknamespace): Likewise.
+	(test-xfail-XPG4/glob.h/linknamespace): Likewise.
+	(test-xfail-XPG4/wordexp.h/linknamespace): Likewise.
+
 2015-06-12  Martin Sebor  <msebor@redhat.com>
 
 	[BZ #18512]
diff --git a/NEWS b/NEWS
index da8bccfef3..b9b4ce2a3c 100644
--- a/NEWS
+++ b/NEWS
@@ -21,7 +21,7 @@ Version 2.22
   18211, 18217, 18220, 18221, 18234, 18244, 18247, 18287, 18319, 18324,
   18333, 18346, 18397, 18409, 18410, 18412, 18418, 18422, 18434, 18444,
   18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498, 18507,
-  18512, 18519, 18520, 18522.
+  18512, 18519, 18520, 18522, 18527.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
diff --git a/conform/Makefile b/conform/Makefile
index 8c11dc41c8..57dbc9225e 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -345,15 +345,11 @@ test-xfail-XOPEN2K/ndbm.h/linknamespace = yes
 test-xfail-XOPEN2K8/ndbm.h/linknamespace = yes
 
 # Unsorted expected failures.
-test-xfail-XPG3/glob.h/linknamespace = yes
 test-xfail-XPG3/unistd.h/linknamespace = yes
-test-xfail-XPG3/wordexp.h/linknamespace = yes
 test-xfail-XPG4/fmtmsg.h/linknamespace = yes
-test-xfail-XPG4/glob.h/linknamespace = yes
 test-xfail-XPG4/netdb.h/linknamespace = yes
 test-xfail-XPG4/syslog.h/linknamespace = yes
 test-xfail-XPG4/unistd.h/linknamespace = yes
-test-xfail-XPG4/wordexp.h/linknamespace = yes
 test-xfail-POSIX/mqueue.h/linknamespace = yes
 test-xfail-POSIX/semaphore.h/linknamespace = yes
 test-xfail-UNIX98/fmtmsg.h/linknamespace = yes
diff --git a/include/unistd.h b/include/unistd.h
index 762acc079a..61df3af357 100644
--- a/include/unistd.h
+++ b/include/unistd.h
@@ -14,6 +14,8 @@ libc_hidden_proto (execvp)
 libc_hidden_proto (getpid)
 libc_hidden_proto (getsid)
 libc_hidden_proto (getdomainname)
+extern __typeof (getlogin_r) __getlogin_r  __nonnull ((1));
+libc_hidden_proto (__getlogin_r)
 libc_hidden_proto (getlogin_r)
 libc_hidden_proto (seteuid)
 libc_hidden_proto (setegid)
diff --git a/login/getlogin_r.c b/login/getlogin_r.c
index a49fb4a0df..8848b61544 100644
--- a/login/getlogin_r.c
+++ b/login/getlogin_r.c
@@ -23,13 +23,15 @@
    If it cannot be determined or some other error occurred, return the error
    code.  Otherwise return 0.  */
 int
-getlogin_r (name, name_len)
+__getlogin_r (name, name_len)
      char *name;
      size_t name_len;
 {
   __set_errno (ENOSYS);
   return errno;
 }
-libc_hidden_def (getlogin_r)
+libc_hidden_def (__getlogin_r)
+weak_alias (__getlogin_r, getlogin_r)
+libc_hidden_weak (getlogin_r)
 
 stub_warning (getlogin_r)
diff --git a/posix/glob.c b/posix/glob.c
index 5b927763c4..d65e55dcd6 100644
--- a/posix/glob.c
+++ b/posix/glob.c
@@ -619,7 +619,7 @@ glob (pattern, flags, errfunc, pglob)
 		buflen = 20;
 	      name = alloca_account (buflen, alloca_used);
 
-	      success = getlogin_r (name, buflen) == 0;
+	      success = __getlogin_r (name, buflen) == 0;
 	      if (success)
 		{
 		  struct passwd *p;
diff --git a/sysdeps/mach/hurd/getlogin_r.c b/sysdeps/mach/hurd/getlogin_r.c
index f1c2951b39..9c66f865ab 100644
--- a/sysdeps/mach/hurd/getlogin_r.c
+++ b/sysdeps/mach/hurd/getlogin_r.c
@@ -25,7 +25,7 @@
    If it cannot be determined or some other error occurred, return the error
    code.  Otherwise return 0.  */
 int
-getlogin_r (name, name_len)
+__getlogin_r (name, name_len)
      char *name;
      size_t name_len;
 {
@@ -45,4 +45,6 @@ getlogin_r (name, name_len)
   memcpy (name, login, len);
   return 0;
 }
-libc_hidden_def (getlogin_r)
+libc_hidden_def (__getlogin_r)
+weak_alias (__getlogin_r, getlogin_r)
+libc_hidden_weak (getlogin_r)
diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c
index 4a31d254ee..8bb3de5e75 100644
--- a/sysdeps/unix/getlogin_r.c
+++ b/sysdeps/unix/getlogin_r.c
@@ -34,7 +34,7 @@
 STATIC
 #endif
 int
-getlogin_r (name, name_len)
+__getlogin_r (name, name_len)
      char *name;
      size_t name_len;
 {
@@ -99,5 +99,7 @@ getlogin_r (name, name_len)
   return result;
 }
 #ifndef STATIC
-libc_hidden_def (getlogin_r)
+libc_hidden_def (__getlogin_r)
+weak_alias (__getlogin_r, getlogin_r)
+libc_hidden_weak (getlogin_r)
 #endif
diff --git a/sysdeps/unix/sysv/linux/getlogin_r.c b/sysdeps/unix/sysv/linux/getlogin_r.c
index 2c52b2183b..aa61f6134d 100644
--- a/sysdeps/unix/sysv/linux/getlogin_r.c
+++ b/sysdeps/unix/sysv/linux/getlogin_r.c
@@ -21,9 +21,9 @@
 
 #define STATIC static
 static int getlogin_r_fd0 (char *name, size_t namesize);
-#define getlogin_r getlogin_r_fd0
+#define __getlogin_r getlogin_r_fd0
 #include <sysdeps/unix/getlogin_r.c>
-#undef getlogin_r
+#undef __getlogin_r
 
 
 /* Try to determine login name from /proc/self/loginuid and return 0
@@ -109,7 +109,7 @@ __getlogin_r_loginuid (name, namesize)
    code.  Otherwise return 0.  */
 
 int
-getlogin_r (name, namesize)
+__getlogin_r (name, namesize)
      char *name;
      size_t namesize;
 {
@@ -119,4 +119,6 @@ getlogin_r (name, namesize)
 
   return getlogin_r_fd0 (name, namesize);
 }
-libc_hidden_def (getlogin_r)
+libc_hidden_def (__getlogin_r)
+weak_alias (__getlogin_r, getlogin_r)
+libc_hidden_weak (getlogin_r)