Make sure to have full configuration info in sys/_types.h.

The following testcase:

  $ cat > test.c <<EOF
  #include <sys/select.h>
  #include <sys/time.h>
  EOF
  $ gcc -c test.c

emits the following error:

  /usr/include/sys/reent.h:276:3: error: expected specifier-qualifier-list befor
e ‘_fpos64_t’
     _fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int));
     ^

The reason is that the load order from sys/select.h includes sys/_types.h
before sys/config.h has been included from anywhere else.  sys/_types.h
defines _fpos64_t only if __LARGE64_FILES is defined, but it never is in
this scenario.  So sys/_types.h has to make sure to get the configuration
info by itself.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen 2016-05-18 21:05:31 +02:00
parent 5c02bcc086
commit 72ded59447
1 changed files with 2 additions and 0 deletions

View File

@ -19,6 +19,8 @@
#ifndef _SYS__TYPES_H #ifndef _SYS__TYPES_H
#define _SYS__TYPES_H #define _SYS__TYPES_H
#include <newlib.h>
#include <sys/config.h>
#include <machine/_types.h> #include <machine/_types.h>
#include <sys/lock.h> #include <sys/lock.h>