Python programming language is used in several open source projects such as Sugar OS and Xibo. Let’s see if we can cross-compile it in Ubuntu 10.10 using a mips compiler. I’ll use the instructions given at http://randomsplat.com/id5-cross-compiling-python-for-embedded-linux.html. Let’s download Python 2.7.1 first and extract the source code:
1 |
tar xjvf Python-2.7.1.tar.bz2 |
Then run the following command in Python-2.7.1 in order to build some tools for the host:
1 2 3 4 5 |
./configure make python Parser/pgen mv python hostpython mv Parser/pgen Parser/hostpgen make distclean |
There is no patch for Python 2.7.1 cross-compilation in the link above, so let’s just try to configure and build it:
1 2 |
CC=mipsel-linux-gcc CXX=mipsel-linux-g++ AR=mipsel-linux-ar RANLIB=mipsel-linux-ranlib ./configure --host=mipsel-linux --target=mipsel-linux --prefix=/python make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="mipsel-linux-gcc -shared" CROSS_COMPILE=mipsel-linux- CROSS_COMPILE_TARGET=yes |
If we don’t use a patch the first error is:
1 |
Include/pyport.h:243:13: error: #error "This platform's pyconfig.h needs to define PY_FORMAT_LONG_LONG" |
So I used some older patch to create a new patch: http://www.cnx-software.com/patch/python-2.7.1-cross-compile.patch. You can download it an apply it as follows:
1 |
patch -p1 < python-2.7.1-cross-compile.patch |
And repeat the step above to configure and cross-compile Python for mips. Finally install Python in ~/Python-2.7.1/install for example:
1 |
make install HOSTPYTHON=./hostpython BLDSHARED="mipsel-linux-gcc -shared" CROSS_COMPILE=mipsel-linux- CROSS_COMPILE_TARGET=yes prefix=~/Python-2.7.1/install |
After that copy all necessary files in ~/Python-2.7.1/install to your […]