There are places in Python which assume bytes have 8-bits.  Formalize that a
bit by checking the value of UCHAR_MAX in Include/Python.h.  There was a
check in Objects/stringobject.c.  Remove that.  (Note that we don't define
UCHAR_MAX if it's not defined as the old test did.)
diff --git a/Include/Python.h b/Include/Python.h
index 9379c66..c28c23c 100644
--- a/Include/Python.h
+++ b/Include/Python.h
@@ -21,6 +21,14 @@
 #error "limits.h is required by std C -- why isn't HAVE_LIMITS_H defined?"
 #endif
 
+#ifndef UCHAR_MAX
+#error "Something's broken.  UCHAR_MAX should be defined in limits.h."
+#endif
+
+#if UCHAR_MAX != 255
+#error "Python's source code currently assumes 8-bit characters."
+#endif
+
 #if defined(__sgi) && defined(WITH_THREAD) && !defined(_SGI_MP_SOURCE)
 #define _SGI_MP_SOURCE
 #endif
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 9512059..2d69570 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -8,10 +8,6 @@
 int null_strings, one_strings;
 #endif
 
-#if !defined(HAVE_LIMITS_H) && !defined(UCHAR_MAX)
-#define UCHAR_MAX 255
-#endif
-
 static PyStringObject *characters[UCHAR_MAX + 1];
 static PyStringObject *nullstring;