Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-04-20 03:52:48 +0400
committerJeff Johnston <jjohnstn@redhat.com>2002-04-20 03:52:48 +0400
commit2dd4c4dc18707380351de8dd7eeef630bf6a60ab (patch)
tree6e18e08348c6c5291663c65093d0ad7f26a3e8ca
parent0d844014bfbcab4e48718b787c268d052f773197 (diff)
2002-04-19 Alexandre Oliva <aoliva@redhat.com>
* libc/include/sys/config.h: Remove include of <limits.h>. (__INT_MAX__, __LONG_MAX__): Define like GCC's limits.h would define INT_MAX and LONG_MAX. Use them in tests.
-rw-r--r--newlib/ChangeLog6
-rw-r--r--newlib/libc/include/sys/config.h35
2 files changed, 36 insertions, 5 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 45a3ec0ed..eccba1b74 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,9 @@
+2002-04-19 Alexandre Oliva <aoliva@redhat.com>
+
+ * libc/include/sys/config.h: Remove include of <limits.h>.
+ (__INT_MAX__, __LONG_MAX__): Define like GCC's limits.h would
+ define INT_MAX and LONG_MAX. Use them in tests.
+
2002-04-19 Jeff Johnston <jjohnstn@redhat.com>
* configure.host: Add support for powerpc-eabialtivec*.
diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h
index b5a95bfa2..05ba2681c 100644
--- a/newlib/libc/include/sys/config.h
+++ b/newlib/libc/include/sys/config.h
@@ -129,9 +129,34 @@
typedef short int __int16_t;
typedef unsigned short int __uint16_t;
-#include <limits.h>
-
-#if INT_MAX == 32767
+/* This block should be kept in sync with GCC's limits.h. The point
+ of having these definitions here is to not include limits.h, which
+ would pollute the user namespace, while still using types of the
+ the correct widths when deciding how to define __int32_t and
+ __int64_t. */
+#ifndef __INT_MAX__
+# ifdef INT_MAX
+# define __INT_MAX__ INT_MAX
+# else
+# define __INT_MAX__ 2147483647
+# endif
+#endif
+
+#ifndef __LONG_MAX__
+# ifdef LONG_MAX
+# define __LONG_MAX__ LONG_MAX
+# else
+# if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
+ || defined (__sparcv9)
+# define __LONG_MAX__ 9223372036854775807L
+# else
+# define __LONG_MAX__ 2147483647L
+# endif /* __alpha__ || sparc64 */
+# endif
+#endif
+/* End of block that should be kept in sync with GCC's limits.h. */
+
+#if __INT_MAX__ == 32767
typedef long int __int32_t;
typedef unsigned long int __uint32_t;
#else
@@ -139,7 +164,7 @@ typedef int __int32_t;
typedef unsigned int __uint32_t;
#endif
-#if LONG_MAX > 2147483647 || !defined(__GNUC__)
+#if __LONG_MAX__ > 2147483647 || !defined(__GNUC__)
typedef long int __int64_t;
typedef unsigned long int __uint64_t;
#else
@@ -152,7 +177,7 @@ __extension__ typedef unsigned long long __uint64_t;
#endif
#undef __RAND_MAX
-#if INT_MAX == 32767
+#if __INT_MAX__ == 32767
#define __RAND_MAX 32767
#else
#define __RAND_MAX 0x7fffffff