[2/2] Avoid <sys/cdefs.h> dependency in <sys/_types.h>

Message ID 20190515065542.14146-2-sebastian.huber@embedded-brains.de
State Superseded
Headers show
Series
  • [1/2] Avoid cyclic header dependencies
Related show

Commit Message

Sebastian Huber May 15, 2019, 6:55 a.m.
Including <sys/cdefs.h> could result in cyclic header dependencies.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>

---
 newlib/libc/include/sys/_types.h | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

-- 
2.16.4

Patch

diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h
index 90383b083..0ed56ed44 100644
--- a/newlib/libc/include/sys/_types.h
+++ b/newlib/libc/include/sys/_types.h
@@ -210,10 +210,15 @@  typedef	unsigned short	__nlink_t;
 typedef	long		__suseconds_t;	/* microseconds (signed) */
 typedef	unsigned long	__useconds_t;	/* microseconds (unsigned) */
 
-#ifdef __GNUCLIKE_BUILTIN_VARARGS
+/*
+ * Must be identical to the __GNUCLIKE_BUILTIN_VAALIST definition in
+ * <sys/cdefs.h>.  The <sys/cdefs.h> must not be included here to avoid cyclic
+ * header dependencies.
+ */
+#if __GNUC_MINOR__ > 95 || __GNUC__ >= 3
 typedef	__builtin_va_list	__va_list;
 #else
 typedef	char *			__va_list;
-#endif /* __GNUCLIKE_BUILTIN_VARARGS */
+#endif
 
 #endif	/* _SYS__TYPES_H */