diff options
Diffstat (limited to 'misc/bits')
-rw-r--r-- | misc/bits/syslog-ldbl.h | 2 | ||||
-rw-r--r-- | misc/bits/syslog.h | 19 |
2 files changed, 16 insertions, 5 deletions
diff --git a/misc/bits/syslog-ldbl.h b/misc/bits/syslog-ldbl.h index d153c8f8cd..714e70c201 100644 --- a/misc/bits/syslog-ldbl.h +++ b/misc/bits/syslog-ldbl.h @@ -27,7 +27,7 @@ __LDBL_REDIR_DECL (syslog) __LDBL_REDIR_DECL (vsyslog) #endif -#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus +#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline __LDBL_REDIR_DECL (__syslog_chk) # ifdef __USE_BSD diff --git a/misc/bits/syslog.h b/misc/bits/syslog.h index c0427214e3..f8c81dd9e4 100644 --- a/misc/bits/syslog.h +++ b/misc/bits/syslog.h @@ -1,5 +1,5 @@ /* Checking macros for syslog functions. - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2007 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 @@ -25,8 +25,16 @@ extern void __syslog_chk (int __pri, int __flag, __const char *__fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4))); -#define syslog(pri, ...) \ +#ifdef __va_arg_pack +__extern_always_inline void +syslog (int __pri, int __flag, __const char *__fmt, ...) +{ + return __syslog_chk (__pri, __flag, __fmt, __va_arg_pack ()); +} +#elif !defined __cplusplus +# define syslog(pri, ...) \ __syslog_chk (pri, __USE_FORTIFY_LEVEL - 1, __VA_ARGS__) +#endif #ifdef __USE_BSD @@ -34,6 +42,9 @@ extern void __vsyslog_chk (int __pri, int __flag, __const char *__fmt, __gnuc_va_list __ap) __attribute__ ((__format__ (__printf__, 3, 0))); -# define vsyslog(pri, fmt, ap) \ - __vsyslog_chk (pri, __USE_FORTIFY_LEVEL - 1, fmt, ap) +__extern_always_inline void +vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap) +{ + return __vsyslog_chk (__pri, __USE_FORTIFY_LEVEL - 1, __fmt, __ap); +} #endif |