summaryrefslogtreecommitdiffstats
path: root/Include/pyport.h
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2000-10-05 01:42:25 (GMT)
committerTim Peters <tim.peters@gmail.com>2000-10-05 01:42:25 (GMT)
commitd57731f74bdaaf6bb5ce190b5ccebadad218ed2b (patch)
treee4e7344c3395601191e836abd313bbb06565767e /Include/pyport.h
parentc85eb0bd4b3cfaa6a110d0d7d40553f3e02d02af (diff)
downloadcpython-d57731f74bdaaf6bb5ce190b5ccebadad218ed2b.zip
cpython-d57731f74bdaaf6bb5ce190b5ccebadad218ed2b.tar.gz
cpython-d57731f74bdaaf6bb5ce190b5ccebadad218ed2b.tar.bz2
Move LONG_BIT from intobject.c to pyport.h. #error if it's already been
#define'd to an unreasonable value (several recent gcc systems have misdefined it, causing bogus overflows in integer multiplication). Nuke CHAR_BIT entirely.
Diffstat (limited to 'Include/pyport.h')
-rw-r--r--Include/pyport.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/Include/pyport.h b/Include/pyport.h
index 4914886..f35d8e6 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -374,6 +374,19 @@ typedef struct fd_set {
#define LONG_MIN (-LONG_MAX-1)
#endif
+#ifndef LONG_BIT
+#define LONG_BIT (8 * SIZEOF_LONG)
+#endif
+
+#if LONG_BIT != 8 * SIZEOF_LONG
+/* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent
+ * 32-bit platforms using gcc. We try to catch that here at compile-time
+ * rather than waiting for integer multiplication to trigger bogus
+ * overflows.
+ */
+#error "LONG_BIT definition appears wrong for platform (bad gcc config?)."
+#endif
+
#ifdef __NeXT__
#ifdef __sparc__
/*