diff options
author | Jakub Jelinek <jakub@redhat.com> | 2007-09-18 19:57:24 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2007-09-18 19:57:24 +0000 |
commit | 7913ba4d91b848ec4e5698c59d43198a3ef9215d (patch) | |
tree | afc73f6e0376ae6d07526c5efa9e941641ce1f6d /misc | |
parent | cedf9b89dd3b436ff7fad4c75d3f288ee4cd4ecd (diff) | |
download | glibc-7913ba4d91b848ec4e5698c59d43198a3ef9215d.tar glibc-7913ba4d91b848ec4e5698c59d43198a3ef9215d.tar.gz glibc-7913ba4d91b848ec4e5698c59d43198a3ef9215d.tar.bz2 glibc-7913ba4d91b848ec4e5698c59d43198a3ef9215d.zip |
Updated to fedora-glibc-20070918T1931cvs/fedora-glibc-2_6_90-14
Diffstat (limited to 'misc')
-rw-r--r-- | misc/bits/syslog-ldbl.h | 2 | ||||
-rw-r--r-- | misc/bits/syslog.h | 19 | ||||
-rw-r--r-- | misc/sys/cdefs.h | 28 | ||||
-rw-r--r-- | misc/sys/syslog.h | 2 |
4 files changed, 39 insertions, 12 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 diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h index ab7d327c59..6056dbab6a 100644 --- a/misc/sys/cdefs.h +++ b/misc/sys/cdefs.h @@ -132,6 +132,7 @@ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) #define __bos0(ptr) __builtin_object_size (ptr, 0) #define __warndecl(name, msg) extern void name (void) +#define __errordecl(name, msg) extern void name (void) /* Support for flexible arrays. */ @@ -281,13 +282,28 @@ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 inline semantics, unless -fgnu89-inline is used. */ -#ifdef __GNUC_STDC_INLINE__ -# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) -# define __extern_always_inline \ +#if !defined __cplusplus || __GNUC_PREREQ (4,3) \ + || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ + && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ + && __GNUC_RH_RELEASE__ >= 24) +# if defined __GNUC_STDC_INLINE__ || defined __cplusplus +# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +# define __extern_always_inline \ extern __always_inline __attribute__ ((__gnu_inline__)) -#else -# define __extern_inline extern __inline -# define __extern_always_inline extern __always_inline +# else +# define __extern_inline extern __inline +# define __extern_always_inline extern __always_inline +# endif +#endif + +/* GCC 4.3 and above allow passing all anonymous arguments of an + __extern_always_inline function to some other vararg function. */ +#if __GNUC_PREREQ (4,3) \ + || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \ + && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \ + && __GNUC_RH_RELEASE__ >= 24) +# define __va_arg_pack() __builtin_va_arg_pack () +# define __va_arg_pack_len() __builtin_va_arg_pack_len () #endif /* It is possible to compile containing GCC extensions even if GCC is diff --git a/misc/sys/syslog.h b/misc/sys/syslog.h index 4ed57c2787..22da1ce3e9 100644 --- a/misc/sys/syslog.h +++ b/misc/sys/syslog.h @@ -203,7 +203,7 @@ extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap) /* Define some macros helping to catch buffer overflows. */ -#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus +#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline # include <bits/syslog.h> #endif #ifdef __LDBL_COMPAT |