Fix ttyslot namespace (bug 18547).
commitabccad04b4172d552dbdae948c0e567ba266ad76
authorJoseph Myers <joseph@codesourcery.com>
Wed, 17 Jun 2015 20:21:19 +0000 (17 20:21 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 17 Jun 2015 20:21:19 +0000 (17 20:21 +0000)
tree2de82b0b360a2a1003e1fe0e92c00fef92e8d79f
parent0595c98494c25f8eaa1a3298e8fa032ad5e4405e
Fix ttyslot namespace (bug 18547).

ttyslot (XPG4) calls the non-XPG4 functions endttyent, getttyent and
setttyent, which in turn bring in references to fgets_unlocked and
getttynam.  This patch fixes this by making these functions into weak
aliases and calling the __* names as needed.

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

[BZ #18547]
* misc/getttyent.c (getttynam): Rename to __getttynam and define
as weak alias of __getttynam.  Use prototype function definition.
Call __setttyent, __getttyent and __endttyent instead of
setttyent, getttyent and endttyent.
(getttyent): Rename to __getttyent and define as weak alias of
__getttyent.  Call __setttyent instead of setttyent.  Call
__fgets_unlocked instead of fgets_unlocked.
(setttyent): Rename to __setttyent and define as weak alias of
__setttyent.
(endttyent): Rename to __endttyent and define as weak alias of
__endttyent.
* include/ttyent.h (__getttyent): Declare.  Use libc_hidden_proto.
(__setttyent): Likewise.
(__endttyent): Likewise.
(getttyent): Don't use libc_hidden_proto.
(setttyent): Likewise.
(endttyent): Likewise.
* misc/ttyslot.c (ttyslot): Call __setttyent, __getttyent and
__endttyent instead of setttyent, getttyent and endttyent.
* conform/Makefile (test-xfail-XPG4/unistd.h/linknamespace):
Remove variable.
ChangeLog
NEWS
conform/Makefile
include/ttyent.h
misc/getttyent.c
misc/ttyslot.c