Add sys/select.h to sys/types.h
This was triggered by gcc for some reason It included sys/types.h and assumed sys/select.h to be there. And that seams to be the case in musl. The problem with relibc here is that sys/types.h is are part of relibc "include/*.h" files, while sys/select.h is generated by cbindgen. That makes it impossible to #include select.h in types.h epsecially that there are files like fcntl.c that uses types.h. They would complain about missing headers. I fixed this by renaming sys/types.h to sys/types_internal.h and then generating types.h using cbindgen as well except for that. however fcntl and dlmalloc can include types_internal instead of types.h
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#ifndef _SYS_TYPES_H
|
||||
#define _SYS_TYPES_H
|
||||
#ifndef _SYS_TYPES_INTERNAL_H
|
||||
#define _SYS_TYPES_INTERNAL_H
|
||||
#include <stddef.h>
|
||||
|
||||
typedef long blksize_t;
|
||||
@@ -31,5 +31,4 @@ typedef unsigned long u_long, ulong;
|
||||
typedef long long quad_t;
|
||||
typedef unsigned long long u_quad_t;
|
||||
typedef char *caddr_t;
|
||||
|
||||
#endif /* _SYS_TYPES_H */
|
||||
#endif /* _SYS_TYPES_INTERNAL_H */
|
||||
+1
-1
@@ -613,7 +613,7 @@ void *memset(void *s, int c, size_t n);
|
||||
#endif /* DARWIN */
|
||||
|
||||
#ifndef LACKS_SYS_TYPES_H
|
||||
#include <sys/types.h> /* For size_t */
|
||||
#include <sys/types_internal.h> /* For size_t */
|
||||
#endif /* LACKS_SYS_TYPES_H */
|
||||
|
||||
/* The maximum possible size_t value has all bits set */
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
#include <stdarg.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/types_internal.h>
|
||||
|
||||
// TODO: Can be implemented in rust when cbindgen supports "..." syntax
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ pub mod arch_aarch64_user;
|
||||
pub mod arch_x64_user;
|
||||
pub mod sys_procfs;
|
||||
pub mod sys_random;
|
||||
pub mod sys_types;
|
||||
pub mod sys_uio;
|
||||
pub mod sys_un;
|
||||
pub mod sys_utsname;
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
sys_includes = ["stddef.h", "sys/types_internal.h", "sys/select.h"]
|
||||
include_guard = "_SYS_TYPES_H"
|
||||
language = "C"
|
||||
style = "Tag"
|
||||
|
||||
[enum]
|
||||
prefix_with_name = true
|
||||
@@ -0,0 +1,2 @@
|
||||
//! sys/types.h
|
||||
use crate::platform::types::*;
|
||||
Reference in New Issue
Block a user