aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-16 14:40:32 +0200
committerCorinna Vinschen <corinna@vinschen.de>2019-06-03 10:20:15 +0200
commit66e75b696133e889f514415a259d8d8d56f35d16 (patch)
tree3ff9f4edcc091c1d328d08c260abf8b5e75c6583
parentd79aa0f5939be2640b90971d022b98054b86d249 (diff)
downloadnewlib-66e75b696133e889f514415a259d8d8d56f35d16.zip
newlib-66e75b696133e889f514415a259d8d8d56f35d16.tar.gz
newlib-66e75b696133e889f514415a259d8d8d56f35d16.tar.bz2
Avoid cyclic header dependencies
RTEMS uses a considerable part of FreeBSD kernel and user space sources. These sources are compiled with a __FreeBSD__ define. On 2018-06-26 Gerald Pfeifer changed the GCC provided <stddef.h> so that it includes <sys/_types.h> if __FreeBSD__ is defined. The Newlib <sys/_types.h> included <sys/lock.h> which includes <sys/cdefs.h> on RTEMS which includes <stddef.h>. To get rid of this cyclic dependency move the optional _flock_t definition to <sys/reent.h>. Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
-rw-r--r--newlib/libc/include/sys/_types.h5
-rw-r--r--newlib/libc/include/sys/reent.h5
2 files changed, 5 insertions, 5 deletions
diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h
index fc10531..90383b0 100644
--- a/newlib/libc/include/sys/_types.h
+++ b/newlib/libc/include/sys/_types.h
@@ -22,7 +22,6 @@
#include <newlib.h>
#include <sys/config.h>
#include <machine/_types.h>
-#include <sys/lock.h>
#ifndef __machine_blkcnt_t_defined
typedef long __blkcnt_t;
@@ -171,10 +170,6 @@ typedef struct
} _mbstate_t;
#endif
-#ifndef __machine_flock_t_defined
-typedef _LOCK_RECURSIVE_T _flock_t;
-#endif
-
#ifndef __machine_iconv_t_defined
/* Iconv descriptor type */
typedef void *_iconv_t;
diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index 6e55e1c..7f8124d 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -30,6 +30,11 @@ typedef unsigned __Long __ULong;
#include <sys/types.h>
#endif
+#ifndef __machine_flock_t_defined
+#include <sys/lock.h>
+typedef _LOCK_RECURSIVE_T _flock_t;
+#endif
+
#ifndef __Long
#define __Long __int32_t
typedef __uint32_t __ULong;