I've been building Python with --enable-unicode=ucs4 ever since I upgraded to RedHat 9. IIUC, this option is required to get Python and RH9's default Tk to play nicely together.
The Python cvs trunk (i.e. 2.4) is broken when using this option. The pain starts immediately:
gcc -pthread -c -fno-strict-aliasing -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -I. -I./Include -DPy_BUILD_CORE -o Modules/python.o Modules/python.c In file included from Include/Python.h:82, from Modules/python.c:3: Include/unicodeobject.h:73:2: #error Must define Py_UNICODE_SIZE In file included from Include/Python.h:82, from Modules/python.c:3: Include/unicodeobject.h:131: parse error before "Py_UNICODE" Include/unicodeobject.h:131: warning: type defaults to `int' in declaration of `Py_UNICODE' Include/unicodeobject.h:131: warning: data definition has no type or storage class Include/unicodeobject.h:370: parse error before "Py_UNICODE" Include/unicodeobject.h:370: warning: no semicolon at end of struct or union Include/unicodeobject.h:375: parse error before '}' token Include/unicodeobject.h:375: warning: type defaults to `int' in declaration of `PyUnicodeObject' Include/unicodeobject.h:375: warning: data definition has no type or storage class [...continuing on for seemingly ever...]
Without this switch, the compilation appears to work. I don't have time right now to investigate further, but if no one else can reproduce (or fix) this, I'll try to help out later.