Fix <sys/_types.h> issues with <stddef.h>

A commit from 2016 tried to address this GCC provided <stddef.h> issue

    #if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
      || defined(__DragonFly__) \
      || defined(__FreeBSD_kernel__)
    /* __size_t is a typedef on FreeBSD 5, must not trash it. */
    #elif defined (__VMS__)
    /* __size_t is also a typedef on VMS.  */
    #else
    #define __size_t
    #endif

with an include of <stddef.h> before <sys/_types.h> in <sys/types.h>.
Is is not robust enough.  Do the include of <stddef.h> in <sys/_types.h>
directly and request only the necessary types.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>
This commit is contained in:
Sebastian Huber 2019-05-16 14:40:34 +02:00 committed by Corinna Vinschen
parent 86809750bb
commit f5a5a23ea8
2 changed files with 3 additions and 5 deletions

View File

@ -19,6 +19,9 @@
#ifndef _SYS__TYPES_H
#define _SYS__TYPES_H
#define __need_size_t
#define __need_wint_t
#include <stddef.h>
#include <newlib.h>
#include <sys/config.h>
#include <machine/_types.h>
@ -154,9 +157,6 @@ typedef long _ssize_t;
typedef _ssize_t __ssize_t;
#define __need_wint_t
#include <stddef.h>
#ifndef __machine_mbstate_t_defined
/* Conversion state information. */
typedef struct

View File

@ -42,8 +42,6 @@ typedef __intptr_t register_t;
#ifndef __need_inttypes
#define _SYS_TYPES_H
/* <stddef.h> must be before <sys/_types.h> for __size_t considerations */
#include <stddef.h>
#include <sys/_types.h>
#include <sys/_stdint.h>