On Tuesday 03 February 2009 03:59, John Harper wrote:

> Before I try to reverse engineer completely setup.py, is there
> something obvious that needs to be done to get it to use the right tool
> chain?

I think it's more complicated than that, though in an ideal world it
wouldn't have to be that way.

I created some patches for Python 2.4.4 a while ago to make it slightly
easier to cross-compile it:

  http://chaos.troll.no/~dboddie/Python/Greenphone/

There were patches to solve similar issues with the build system floating
around in the Python bug tracker. I had intended to help push those along
a bit, but lack of time prevented me from doing so.

The magic incantation that worked for me was this:

export HOST_PLATFORM=i386
export TARGET_TOOLS=$SOME_DIR/gcc-4.1.1-glibc-2.3.6/arm-linux/bin
export TARGET_PLATFORM=arm-linux

CC=$TARGET_TOOLS/$TARGET_PLATFORM-gcc \
    CXX=$TARGET_TOOLS/$TARGET_PLATFORM-g++ \
    ./configure --prefix=$TARGETDIR --enable-shared --enable-unicode=ucs4 \
    --build=$TARGET_PLATFORM --host=$HOST_PLATFORM

where SOME_DIR and TARGETDIR are appropriately set, of course. I did
experience issues with some extension modules, though.

> More generally, it seems like this would be something that lots of
> people would want to do. I'm surprised there isn't support for it built
> into the distributed version of Python, without having to hack all the
> setup files...?

I suppose people don't explicitly configure projects for cross-compilation
anymore, especially now that things like Scratchbox are used to fake the
build environment:

  http://www.scratchbox.org/

That might also be worth looking at, but you really have to buy in to its
way of working to use it fully, in my experience.

David
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to