Fix syslog dprintf namespace (bug 18534).
commitbe7dc2b77e368daad6f81e272fc41f1b86166240
authorJoseph Myers <joseph@codesourcery.com>
Wed, 17 Jun 2015 20:10:50 +0000 (17 20:10 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 17 Jun 2015 20:10:50 +0000 (17 20:10 +0000)
tree5cb0cc1d4c59e767c291a629aa4d35a9fd3688a3
parenta97e5e25576cb5e207b1e49f1eb4e52e6354daa7
Fix syslog dprintf namespace (bug 18534).

syslog functions bring in references to dprintf, which wasn't added to
POSIX until the 2008 edition and so isn't in various standards
containing the syslog functions.  This patch fixes this by making
dprintf into a weak alias of __dprintf and using __dprintf as
appropriate.

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

[BZ #18534]
* stdio-common/dprintf.c (__dprintf): Use libc_hidden_def.
(dprintf): Define as a weak alias of __dprintf, not a strong
alias.
* include/stdio.h (__dprintf): Declare.  Use libc_hidden_proto.
* misc/syslog.c (__vsyslog_chk): Call __dprintf instead of
dprintf.
* conform/Makefile (test-xfail-XPG4/syslog.h/linknamespace):
Remove variable.
(test-xfail-UNIX98/syslog.h/linknamespace): Likewise.
(test-xfail-XOPEN2K/syslog.h/linknamespace): Likewise.
ChangeLog
NEWS
conform/Makefile
include/stdio.h
misc/syslog.c
stdio-common/dprintf.c