Fix getlogin_r namespace (bug 18527).
commit5371d99e8766f25864ddf20fb0866e57fc0b7991
authorJoseph Myers <joseph@codesourcery.com>
Fri, 12 Jun 2015 20:02:30 +0000 (12 20:02 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 12 Jun 2015 20:02:30 +0000 (12 20:02 +0000)
tree7da25c486c5cee518ba959fd05f3629a0479b253
parenta82a3db95077c8343b988a6f1b03adea3d40f6d4
Fix getlogin_r namespace (bug 18527).

Various functions in XPG4 bring in references to getlogin_r, which is
not in XPG4; this is also a bug for some older POSIX versions which
aren't yet covered by the linknamespace tests.  This patch fixes this
by making getlogin_r into a weak alias for __getlogin_r and using
__getlogin_r as needed.

Tested for x86_64 and x86 (testsuite, and that disassembly of
installed stripped shared libraries is unchanged by the patch).

[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.
ChangeLog
NEWS
conform/Makefile
include/unistd.h
login/getlogin_r.c
posix/glob.c
sysdeps/mach/hurd/getlogin_r.c
sysdeps/unix/getlogin_r.c
sysdeps/unix/sysv/linux/getlogin_r.c