mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
be7dc2b77e
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.
41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
/* Copyright (C) 1991-2015 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C Library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C Library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
|
|
#include <libioP.h>
|
|
#define vdprintf(d, f, a) _IO_vdprintf (d, f, a)
|
|
|
|
/* Write formatted output to D, according to the format string FORMAT. */
|
|
/* VARARGS2 */
|
|
int
|
|
__dprintf (int d, const char *format, ...)
|
|
{
|
|
va_list arg;
|
|
int done;
|
|
|
|
va_start (arg, format);
|
|
done = vdprintf (d, format, arg);
|
|
va_end (arg);
|
|
|
|
return done;
|
|
}
|
|
libc_hidden_def (__dprintf)
|
|
ldbl_hidden_def (__dprintf, dprintf)
|
|
ldbl_weak_alias (__dprintf, dprintf)
|