about summary refs log tree commit diff
path: root/misc/sys/cdefs.h
diff options
context:
space:
mode:
Diffstat (limited to 'misc/sys/cdefs.h')
-rw-r--r--misc/sys/cdefs.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index bacfe2f63f..6b2a4fd881 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,7 +282,10 @@
 
 /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
    inline semantics, unless -fgnu89-inline is used.  */
-#if !defined __cplusplus || __GNUC_PREREQ (4,3)
+#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
+    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
+	&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
+	&& __GNUC_RH_RELEASE__ >= 23)
 # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
 #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
 #  define __extern_always_inline \
@@ -294,8 +298,12 @@
 
 /* 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)
+#if __GNUC_PREREQ (4,3) \
+    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
+	&& __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
+	&& __GNUC_RH_RELEASE__ >= 23)
 # 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