summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/pyport.h13
-rw-r--r--Objects/intobject.c8
2 files changed, 13 insertions, 8 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__
/*
diff --git a/Objects/intobject.c b/Objects/intobject.c
index 8477a02..b88a05d 100644
--- a/Objects/intobject.c
+++ b/Objects/intobject.c
@@ -4,14 +4,6 @@
#include "Python.h"
#include <ctype.h>
-#ifndef CHAR_BIT
-#define CHAR_BIT 8
-#endif
-
-#ifndef LONG_BIT
-#define LONG_BIT (CHAR_BIT * sizeof(long))
-#endif
-
long
PyInt_GetMax(void)
{