> When writing a python c extension for needs to be compiled for > Windows, Linux, and the Mac, > what cross-platform differences need to be accounted for?#
>From a Python point of view, it's primarily the difference in the size of types. For example, long may vary across platforms, and so changes the result value range for PyInt_AsLong. Another issue is the mechanism to export things from a shared library; on Windows, you have to use __declspec(export). Yet another issue the question what basic functions are available in the system (e.g. whether strdup is available) > Are there > functions in the python api to deal with the differences? For > example, byte ordering, how is that controlled? Not functions, no, but macros and typedefs. For example, there is now a typedef Py_ssize_t that you should use if you measure the number of bytes (or, more generally, things in a collection). For the __declspec(export) thing, there are the PyAPI_FUNC and PyMODINIT_FUNC macros. For detecting platform-specific details, autoconf is used, which defines things like HAVE_STRDUP. autoconf also defines WORDS_BIGENDIAN if the system uses the bigendian byte order. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list