f4d95ce43f
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
27 lines
621 B
C
27 lines
621 B
C
#include <stdarg.h>
|
|
#include <sys/types_internal.h>
|
|
|
|
// TODO: Can be implemented in rust when cbindgen supports "..." syntax
|
|
|
|
int sys_open(const char* filename, int flags, mode_t mode);
|
|
|
|
int open(const char* filename, int flags, ...) {
|
|
mode_t mode = 0;
|
|
va_list ap;
|
|
va_start(ap, flags);
|
|
mode = va_arg(ap, mode_t);
|
|
va_end(ap);
|
|
return sys_open(filename, flags, mode);
|
|
}
|
|
|
|
int sys_fcntl(int fildes, int cmd, int args);
|
|
|
|
int fcntl(int fildes, int cmd, ...) {
|
|
int args = 0;
|
|
va_list ap;
|
|
va_start(ap, cmd);
|
|
args = va_arg(ap, int);
|
|
va_end(ap);
|
|
return sys_fcntl(fildes, cmd, args);
|
|
}
|