On Thu, Nov 09, 2006 at 04:42:48PM +0100, David Boddie wrote: > On Thu Nov 9 07:45:30 CET 2006, Anthony Baxter wrote: > > > On Thursday 09 November 2006 16:30, Martin v. Löwis wrote: > > > Patch #841454 takes a stab at cross-compilation > > > (for MingW32 on a Linux system, in this case), > > > and proposes to use SCons instead of setup.py > > > to compile extension modules. Usage of SCons > > > would be restricted to cross-compilation (for > > > the moment). > > > > > > What do you think? > > > > So we'd now have 3 places to update when things change (setup.py, PCbuild > > area, SCons)? How does this deal with the problems that autoconf has with > > cross-compilation? It would seem to me that just fixing the extension > > module > > building is a tiny part of the problem... or am I missing something? > > I've been working on adding cross-compiling support to Python's build system, > too, though I've had the luxury of building on Linux for a target platform > that also runs Linux. Since the build system originally came from the GCC > project, it shouldn't surprise anyone that there's already a certain level > of support for cross-compilation built in. Simply setting the --build and > --host options is a good start, for example. > > It seems that Martin's patch solves some problems I encountered more cleanly > (in certain respects) than the solutions I came up with. Here are some > issues I encountered (from memory): > > * The current system assumes that Parser/pgen will be built using the > compiler being used for the rest of the build. This obviously isn't > going to work when the executable is meant for the target platform. > At the same time, the object files for pgen need to be compiled for > the interpreter for the target platform. > > * The newly-compiled interpreter is used to compile the standard library, > run tests and execute the setup.py file. Some of these things should > be done by the interpreter, but it won't work on the host platform. > On the other hand, the setup.py script should be run by the host's > Python interpreter, but using information about the target interpreter's > configuration. > > * There are various extensions defined in the setup.py file that are > found and erroneously included if you execute it using the host's > interpreter. Ideally, it would be possible to use the target's > configuration to disable extensions, but a more configurable build > process would also be welcome. > This pretty much covers the difficulties I encountered. For what it's worth, my experiences with Python 2.5 are documented here: <http://whatschrisdoing.com/blog/2006/10/06/howto-cross-compile-python-25/>
I am also interested in pursuing solutions that make it easier to both build python and third party extensions in cross compile environment. > I'll try to look at Martin's patch at some point. I hope these observations > and suggestions help explain the current issues with the build system when > cross-compiling. > > David > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > http://mail.python.org/mailman/options/python-dev/chris%40kateandchris.net _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com