From f8a2c51bf3b85bf86bff905dd1232299d333dafe Mon Sep 17 00:00:00 2001
From: David 'Digit' Turner <digit@android.com>
Date: Thu, 13 Sep 2012 17:14:00 +0200
Subject: [PATCH] LONG_LONG_MIN/MAX: Move declarations to <limits.h>

LONG_LONG_MIN, LONG_LONG_MAX and ULONG_LONG_MAX are
GLibc-specific macros that are better defined in <limits.h>
instead of the current exotic location (<pthread.h>).

Note that GCC's <limits.h> only defines these macros
when __GNU_LIBRARY__ is also defined. This is only the
case when building against GLibc, so manually redefine
the macros here.

Note that using LLONG_MIN/LLONG_MAX/ULLONG_MAX is the
C99-compliant way to get these values, but it's easier
to define these compatibility macros for the sake of
porting existing code.

Change-Id: I8023918d73b4685238054932f94a4006c1ca7d03
---
 libc/include/limits.h  | 16 ++++++++++++++++
 libc/include/pthread.h |  5 -----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/libc/include/limits.h b/libc/include/limits.h
index d691a8f01..b9d435450 100644
--- a/libc/include/limits.h
+++ b/libc/include/limits.h
@@ -89,6 +89,22 @@
 #include <sys/syslimits.h>
 #endif
 
+/* GLibc compatibility definitions.
+   Note that these are defined by GCC's <limits.h>
+   only when __GNU_LIBRARY__ is defined, i.e. when
+   targetting GLibc. */
+#ifndef LONG_LONG_MIN
+#define LONG_LONG_MIN  LLONG_MIN
+#endif
+
+#ifndef LONG_LONG_MAX
+#define LONG_LONG_MAX  LLONG_MAX
+#endif
+
+#ifndef ULONG_LONG_MAX
+#define ULONG_LONG_MAX  ULLONG_MAX
+#endif
+
 #ifndef PAGESIZE
 #include <asm/page.h>
 #define  PAGESIZE  PAGE_SIZE
diff --git a/libc/include/pthread.h b/libc/include/pthread.h
index 2015ac08a..ef6b80e75 100644
--- a/libc/include/pthread.h
+++ b/libc/include/pthread.h
@@ -310,9 +310,4 @@ extern void  __pthread_cleanup_pop(__pthread_cleanup_t*  c,
 } /* extern "C" */
 #endif
 
-/************ TO FIX ************/
-
-#define LONG_LONG_MAX __LONG_LONG_MAX__
-#define LONG_LONG_MIN (-__LONG_LONG_MAX__ - 1)
-
 #endif /* _PTHREAD_H_ */