This is the mail archive of the newlib@sources.redhat.com 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]

Re: RTEMS patch sweep: *types.h


On Fri, 2005-02-25 at 17:35 -0500, Jeff Johnston wrote:
> Ralf Corsepius wrote:
> > On Thu, 2005-02-24 at 13:52 -0500, Jeff Johnston wrote:
> > 
> >>Patch checked in.
> > 
> > 
> > Thanks.
> > 
> > What's your opinion on generalizing this patch?
> > 
> > I.e. to move libc/sys/rtems/machine/_types.h to libc/include/machine
> > and remove the first "#if !defined (__rtems__)"'ed block from
> > lib/include/sys/types.h in favor of the corresponding "#else /*
> > __rtems__ */" block.

I am proposing the patch below, which is supposed to do what I described
above.

I tried to test with linux (FC3), but as mentioned before, I am not able
to build any version of newlib-0.13.x.

I did not test with Cygwin, but I am confident this patch won't change
or break anything for Cygwin.

Ralf


Index: newlib/libc/include/machine/_types.h
===================================================================
RCS file: newlib/libc/include/machine/_types.h
diff -N newlib/libc/include/machine/_types.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ newlib/libc/include/machine/_types.h	4 Mar 2005 09:27:30 -0000
@@ -0,0 +1,121 @@
+/*
+ *  $Id: _types.h,v 1.1 2005/02/24 18:29:31 jjohnstn Exp $
+ */
+
+#ifndef _MACHINE__TYPES_H
+#define _MACHINE__TYPES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Guess on types by examining *_MIN/*_MAX defines.
+ */
+#if defined(__GNUC__) && (__GNUC__ >= 3 ) \
+  && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 ) 
+/* GCC >= 3.3.0 has __<val>__ implicitly defined. */
+#define __EXP(x) __##x##__
+#else
+/* Fall back to POSIX versions from <limits.h> */
+#define __EXP(x) x
+#include <limits.h>
+#endif
+
+#if __EXP(SCHAR_MAX) == 0x7f
+typedef signed char __int8_t ;
+typedef unsigned char __uint8_t ;
+#define ___int8_t_defined 1
+#endif
+
+#if __EXP(INT_MAX) == 0x7fff
+typedef signed int __int16_t;
+typedef unsigned int __uint16_t;
+#define ___int16_t_defined 1
+#elif __EXP(SHRT_MAX) == 0x7fff
+typedef signed short __int16_t;
+typedef unsigned short __uint16_t;
+#define ___int16_t_defined 1
+#elif __EXP(SCHAR_MAX) == 0x7fff
+typedef signed char __int16_t;
+typedef unsigned char __uint16_t;
+#define ___int16_t_defined 1
+#endif
+
+#if ___int16_t_defined
+typedef __int16_t __int_least16_t;
+typedef __uint16_t __uint_least16_t;
+#define ___int_least16_t_defined 1
+
+#if !___int8_t_defined
+typedef __int16_t __int_least8_t;
+typedef __uint16_t __uint_least8_t;
+#define ___int_least8_t_defined 1
+#endif
+#endif
+
+#if __EXP(INT_MAX) == 0x7fffffffL
+typedef signed int __int32_t;
+typedef unsigned int __uint32_t;
+#define ___int32_t_defined 1
+#elif __EXP(LONG_MAX) == 0x7fffffffL
+typedef signed long __int32_t;
+typedef unsigned long __uint32_t;
+#define ___int32_t_defined 1
+#elif __EXP(SHRT_MAX) == 0x7fffffffL
+typedef signed short __int32_t;
+typedef unsigned short __uint32_t;
+#define ___int32_t_defined 1
+#elif __EXP(SCHAR_MAX) == 0x7fffffffL
+typedef signed char __int32_t;
+typedef unsigned char __uint32_t;
+#define ___int32_t_defined 1
+#endif
+
+#if ___int32_t_defined
+typedef __int32_t __int_least32_t;
+typedef __uint32_t __uint_least32_t;
+#define ___int_least32_t_defined 1
+
+#if !___int8_t_defined
+typedef __int32_t __int_least8_t;
+typedef __uint32_t __uint_least8_t;
+#define ___int_least8_t_defined 1
+#endif
+#if !___int16_t_defined
+typedef __int32_t __int_least16_t;
+typedef __uint32_t __uint_least16_t;
+#define ___int_least16_t_defined 1
+#endif
+#endif
+
+#if __EXP(LONG_MAX) > 0x7fffffff
+typedef signed long __int64_t;
+typedef unsigned long __uint64_t;
+#define ___int64_t_defined 1
+
+/* GCC has __LONG_LONG_MAX__ */
+#elif  defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff)
+typedef signed long long __int64_t;
+typedef unsigned long long __uint64_t;
+#define ___int64_t_defined 1
+
+/* POSIX mandates LLONG_MAX in <limits.h> */
+#elif  defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff)
+typedef signed long long __int64_t;
+typedef unsigned long long __uint64_t;
+#define ___int64_t_defined 1
+
+#elif  __EXP(INT_MAX) > 0x7fffffff
+typedef signed int __int64_t;
+typedef unsigned int __uint64_t;
+#define ___int64_t_defined 1
+#endif
+
+#undef __EXP
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MACHINE__TYPES_H */
Index: newlib/libc/include/sys/types.h
===================================================================
RCS file: /cvs/src/src/newlib/libc/include/sys/types.h,v
retrieving revision 1.20
diff -u -r1.20 types.h
--- newlib/libc/include/sys/types.h	24 Feb 2005 18:29:31 -0000	1.20
+++ newlib/libc/include/sys/types.h	4 Mar 2005 09:27:30 -0000
@@ -22,35 +22,15 @@
 #ifndef __INTTYPES_DEFINED__
 #define __INTTYPES_DEFINED__
 
-#if !defined (__rtems__)
-typedef short int __int16_t;
-typedef unsigned short int __uint16_t;
-
-#if __INT_MAX__ == 32767
-typedef long int __int32_t;
-typedef unsigned long int __uint32_t;
-#else
-typedef int __int32_t;
-typedef unsigned int __uint32_t;
-#endif
-
-#if __LONG_MAX__ > 2147483647 || !defined(__GNUC__)
-typedef long int __int64_t;
-typedef unsigned long int __uint64_t;
-#else
-__extension__ typedef long long __int64_t;
-__extension__ typedef unsigned long long __uint64_t;
-#endif
-#else /* __rtems__ */
+#include <machine/_types.h>
 
+#if defined(__rtems__)
 /*
  *  The following section is RTEMS specific and is needed to more
  *  closely match the types defined in the BSD sys/types.h.
  *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
  */
 
-#include <machine/_types.h>
-
 /* deprecated */
 #if ___int8_t_defined
 typedef __uint8_t	u_int8_t;
Index: newlib/libc/sys/rtems/machine/_types.h
===================================================================
RCS file: newlib/libc/sys/rtems/machine/_types.h
diff -N newlib/libc/sys/rtems/machine/_types.h
--- newlib/libc/sys/rtems/machine/_types.h	24 Feb 2005 18:29:31 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,121 +0,0 @@
-/*
- *  $Id: _types.h,v 1.1 2005/02/24 18:29:31 jjohnstn Exp $
- */
-
-#ifndef _MACHINE__TYPES_H
-#define _MACHINE__TYPES_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Guess on types by examining *_MIN/*_MAX defines.
- */
-#if defined(__GNUC__) && (__GNUC__ >= 3 ) \
-  && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ > 2 ) 
-/* GCC >= 3.3.0 has __<val>__ implicitly defined. */
-#define __EXP(x) __##x##__
-#else
-/* Fall back to POSIX versions from <limits.h> */
-#define __EXP(x) x
-#include <limits.h>
-#endif
-
-#if __EXP(SCHAR_MAX) == 0x7f
-typedef signed char __int8_t ;
-typedef unsigned char __uint8_t ;
-#define ___int8_t_defined 1
-#endif
-
-#if __EXP(INT_MAX) == 0x7fff
-typedef signed int __int16_t;
-typedef unsigned int __uint16_t;
-#define ___int16_t_defined 1
-#elif __EXP(SHRT_MAX) == 0x7fff
-typedef signed short __int16_t;
-typedef unsigned short __uint16_t;
-#define ___int16_t_defined 1
-#elif __EXP(SCHAR_MAX) == 0x7fff
-typedef signed char __int16_t;
-typedef unsigned char __uint16_t;
-#define ___int16_t_defined 1
-#endif
-
-#if ___int16_t_defined
-typedef __int16_t __int_least16_t;
-typedef __uint16_t __uint_least16_t;
-#define ___int_least16_t_defined 1
-
-#if !___int8_t_defined
-typedef __int16_t __int_least8_t;
-typedef __uint16_t __uint_least8_t;
-#define ___int_least8_t_defined 1
-#endif
-#endif
-
-#if __EXP(INT_MAX) == 0x7fffffffL
-typedef signed int __int32_t;
-typedef unsigned int __uint32_t;
-#define ___int32_t_defined 1
-#elif __EXP(LONG_MAX) == 0x7fffffffL
-typedef signed long __int32_t;
-typedef unsigned long __uint32_t;
-#define ___int32_t_defined 1
-#elif __EXP(SHRT_MAX) == 0x7fffffffL
-typedef signed short __int32_t;
-typedef unsigned short __uint32_t;
-#define ___int32_t_defined 1
-#elif __EXP(SCHAR_MAX) == 0x7fffffffL
-typedef signed char __int32_t;
-typedef unsigned char __uint32_t;
-#define ___int32_t_defined 1
-#endif
-
-#if ___int32_t_defined
-typedef __int32_t __int_least32_t;
-typedef __uint32_t __uint_least32_t;
-#define ___int_least32_t_defined 1
-
-#if !___int8_t_defined
-typedef __int32_t __int_least8_t;
-typedef __uint32_t __uint_least8_t;
-#define ___int_least8_t_defined 1
-#endif
-#if !___int16_t_defined
-typedef __int32_t __int_least16_t;
-typedef __uint32_t __uint_least16_t;
-#define ___int_least16_t_defined 1
-#endif
-#endif
-
-#if __EXP(LONG_MAX) > 0x7fffffff
-typedef signed long __int64_t;
-typedef unsigned long __uint64_t;
-#define ___int64_t_defined 1
-
-/* GCC has __LONG_LONG_MAX__ */
-#elif  defined(__LONG_LONG_MAX__) && (__LONG_LONG_MAX__ > 0x7fffffff)
-typedef signed long long __int64_t;
-typedef unsigned long long __uint64_t;
-#define ___int64_t_defined 1
-
-/* POSIX mandates LLONG_MAX in <limits.h> */
-#elif  defined(LLONG_MAX) && (LLONG_MAX > 0x7fffffff)
-typedef signed long long __int64_t;
-typedef unsigned long long __uint64_t;
-#define ___int64_t_defined 1
-
-#elif  __EXP(INT_MAX) > 0x7fffffff
-typedef signed int __int64_t;
-typedef unsigned int __uint64_t;
-#define ___int64_t_defined 1
-#endif
-
-#undef __EXP
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MACHINE__TYPES_H */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]