This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Apr 14 13:54, Sebastian Huber wrote: > Use __uint32_t to avoid the use of GCC-specific _ST_INT32. > > Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de> > --- > newlib/libc/include/sys/_types.h | 16 +++++++++ > newlib/libc/include/sys/types.h | 50 ++++---------------------- > newlib/libc/sys/rtems/include/machine/_types.h | 2 +- > winsup/cygwin/include/cygwin/types.h | 4 --- > winsup/cygwin/include/machine/_types.h | 3 ++ > 5 files changed, 26 insertions(+), 49 deletions(-) > > diff --git a/newlib/libc/include/sys/_types.h b/newlib/libc/include/sys/_types.h > index ad322b1..af32bcb 100644 > --- a/newlib/libc/include/sys/_types.h > +++ b/newlib/libc/include/sys/_types.h > @@ -56,6 +56,22 @@ typedef unsigned short __ino_t; > #endif > #endif > > +#ifndef __machine_mode_t_defined > +#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__)) > +typedef int __mode_t; > +#else > +#if defined(__sparc__) && !defined(__sparc_v9__) > +#ifdef __svr4__ > +typedef unsigned long __mode_t; > +#else > +typedef unsigned short __mode_t; > +#endif > +#else > +typedef __uint32_t __mode_t; > +#endif > +#endif > +#endif > + > #ifndef __machine_off64_t_defined > __extension__ typedef long long _off64_t; > #endif > diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h > index 2bf9eb5..e48c2f2 100644 > --- a/newlib/libc/include/sys/types.h > +++ b/newlib/libc/include/sys/types.h > @@ -59,27 +59,8 @@ typedef quad_t * qaddr_t; > #include <sys/_types.h> > #include <sys/_stdint.h> > > -#ifdef __i386__ > -#if defined (GO32) || defined (__MSDOS__) > -#define __MS_types__ > -#endif > -#endif > - > # include <stddef.h> > > -/* To ensure the stat struct's layout doesn't change when sizeof(int), etc. > - changes, we assume sizeof short and long never change and have all types > - used to define struct stat use them and not int where possible. > - Where not possible, _ST_INTxx are used. It would be preferable to not have > - such assumptions, but until the extra fluff is necessary, it's avoided. > - No 64 bit targets use stat yet. What to do about them is postponed > - until necessary. */ > -#ifdef __GNUC__ > -#define _ST_INT32 __attribute__ ((__mode__ (__SI__))) > -#else > -#define _ST_INT32 > -#endif > - > #if __BSD_VISIBLE > #include <sys/select.h> > # define physadr physadr_t > @@ -144,7 +125,8 @@ typedef __ino_t ino_t; /* inode number */ > #define _INO_T_DECLARED > #endif > > -#ifdef __MS_types__ > +#if defined(__i386__) && (defined(GO32) || defined(__MSDOS__)) > +typedef char * addr_t; > typedef unsigned long vm_offset_t; > typedef unsigned long vm_size_t; > > @@ -159,7 +141,7 @@ typedef unsigned int u_int32_t; > typedef long long int64_t; > typedef unsigned long long u_int64_t; > typedef int32_t register_t; > -#endif /* __MS_types__ */ > +#endif /* __i386__ && (GO32 || __MSDOS__) */ > > /* > * All these should be machine specific - right now they are all broken. > @@ -190,10 +172,6 @@ typedef __pid_t pid_t; /* process id */ > #define _PID_T_DECLARED > #endif > > -#if defined(__rtems__) > -typedef _mode_t mode_t; > -#endif > - > #ifndef _KEY_T_DECLARED > typedef __key_t key_t; /* IPC key */ > #define _KEY_T_DECLARED > @@ -204,29 +182,13 @@ typedef _ssize_t ssize_t; > #define _SSIZE_T_DECLARED > #endif > > -#if !defined(__CYGWIN__) && !defined(__rtems__) > -#ifdef __MS_types__ > -typedef char * addr_t; > -typedef int mode_t; > -#else > -#if defined (__sparc__) && !defined (__sparc_v9__) > -#ifdef __svr4__ > -typedef unsigned long mode_t; > -#else > -typedef unsigned short mode_t; > +#ifndef _MODE_T_DECLARED > +typedef __mode_t mode_t; /* permissions */ > +#define _MODE_T_DECLARED > #endif > -#else > -typedef unsigned int mode_t _ST_INT32; > -#endif > -#endif /* ! __MS_types__ */ > -#endif /*__CYGWIN__*/ > > typedef unsigned short nlink_t; > > -#undef __MS_types__ > -#undef _ST_INT32 > - > - > #ifndef __clockid_t_defined > typedef _CLOCKID_T_ clockid_t; > #define __clockid_t_defined > diff --git a/newlib/libc/sys/rtems/include/machine/_types.h b/newlib/libc/sys/rtems/include/machine/_types.h > index 76a6841..15de3ce 100644 > --- a/newlib/libc/sys/rtems/include/machine/_types.h > +++ b/newlib/libc/sys/rtems/include/machine/_types.h > @@ -22,7 +22,7 @@ typedef _off_t _fpos_t; > typedef unsigned long __ino_t; > #define __machine_ino_t_defined > > -typedef __uint32_t _mode_t; > +typedef __uint32_t __mode_t; > #define __machine_mode_t_defined > > #endif /* _MACHINE__TYPES_H */ > diff --git a/winsup/cygwin/include/cygwin/types.h b/winsup/cygwin/include/cygwin/types.h > index c785fb2..2a9580e 100644 > --- a/winsup/cygwin/include/cygwin/types.h > +++ b/winsup/cygwin/include/cygwin/types.h > @@ -104,10 +104,6 @@ typedef __int32_t register_t; > typedef char *addr_t; > #endif > > -#ifndef __mode_t_defined > -#define __mode_t_defined > -typedef unsigned mode_t; ^^^^^^^^^^^^^^^^^^^^^^^^ Whoever did that way back when, should be shot (may be me). Can we get rid of that Cygwin special entirely, please? Unsigned and __uint32_t are equivalent anyway on Cygwin, so I'd rather use the definition from sys/_types.h in future :} Thanks, Corinna -- Corinna Vinschen Cygwin Maintainer Red Hat
Attachment:
signature.asc
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |