summaryrefslogtreecommitdiff
path: root/misc/sys
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-09-18 19:57:24 +0000
committerJakub Jelinek <jakub@redhat.com>2007-09-18 19:57:24 +0000
commit7913ba4d91b848ec4e5698c59d43198a3ef9215d (patch)
treeafc73f6e0376ae6d07526c5efa9e941641ce1f6d /misc/sys
parentcedf9b89dd3b436ff7fad4c75d3f288ee4cd4ecd (diff)
Updated to fedora-glibc-20070918T1931cvs/fedora-glibc-2_6_90-14
Diffstat (limited to 'misc/sys')
-rw-r--r--misc/sys/cdefs.h28
-rw-r--r--misc/sys/syslog.h2
2 files changed, 23 insertions, 7 deletions
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