On Feb 3, 2006, at 12:05 PM, Jeremy Kloth wrote: > On Friday, February 03, 2006 12:51 PM, Bob Ippolito wrote: >> Packages that do something with sys.byteorder at setup.py time are >> probably going to be broken also... but I've never seen that either. > > Any package that wraps Expat will probably be using sys.byteorder > as Expat > needs to know the byte order at compile time for its UTF-16 > functionality. > Packages that I know about are PyXML, cElementTree and 4Suite.
Ok, then they're all broken. They need to use the C preprocessor, not setup.py, to determine byteorder. Something like this (not yet tested) should work for cElementTree, for example: === cElementTree.c ================================================================== --- cElementTree.c (revision 54) +++ cElementTree.c (local) @@ -33,6 +33,7 @@ * 2005-08-11 fl added runtime test for copy workaround (1.0.3) * 2005-12-13 fl added expat_capi support (for xml.etree) (1.0.4) * 2005-12-16 fl added support for non-standard encodings + * 2006-02-03 bi determine endian from Python.h, not sys.byteorder * * Copyright (c) 1999-2005 by Secret Labs AB. All rights reserved. * Copyright (c) 1999-2005 by Fredrik Lundh. === setup.py ================================================================== --- setup.py (revision 54) +++ setup.py (local) @@ -49,10 +49,7 @@ defines.append((feature_macro, "1")) defines.append(("XML_NS", "1")) defines.append(("XML_DTD", "1")) - if sys.byteorder == "little": - defines.append(("BYTEORDER", "1234")) - else: - defines.append(("BYTEORDER", "4321")) + defines.append(("HAVE_EXPAT_CONFIG_H", "1")) defines.append(("XML_CONTEXT_BYTES", "1024")) === expat_config.h ================================================================== --- expat_config.h (revision 54) +++ expat_config.h (local) @@ -0,0 +1,9 @@ +#include "Python.h" +#ifdef BYTEORDER +#undef BYTEORDER +#endif +#ifdef WORDS_BIGENDIAN +#define BYTEORDER 4321 +#else +#define BYTEORDER 1234 +#endif -bob _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig