[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Cross compilation error



On Mon, Jan 03, 2005 at 03:15:50PM +0100, Rani Khalil wrote:
> To whom it may concern
> 
>  
> 
> I am currently working on my Thesis project where I have to set in operation
> a Linux distribution on a computer with an
> 
> Xscale processor(IXC1100). I have been trying to build and compile a kernel
> that I can use (unfortunately I have failed).
> 
> I am working on an i686 machine with debian installed.
> 
>  
> 
> The kernel that I have downloaded is the 2.6.8.1 kernel (supports the IXP4xx
> architecture - similar to IXC1100)
> 
> I have also downloaded the 2.95.3 and 3.0 cross-compilers (have used both -
> same error)
> 
>  
> 
> I have unpacked the kernel in my home directory
> (/home/rani/kernel/linux-2.6.8.1)
> 
> The cross compiler is in /usr/local/arm
> 
>  
> 
> I have changed the Makefile in the llinux-2.6.8.1 directory so that it looks
> like this
> 
>  
> 
> ARCH                  ?= arm
> 
> CROSS_COMPILE         ?= /usr/local/arm/3.0/bin/arm-linux- (I have also
> tried to add the compiler to the path and just write arm-linux-)
> 
>  
> 
> After that I do the "make menuconfig" and change the processor type to
> IXP4xx.
> 
>  
> 
> The thing is that when I try to "make" - I get the following error
> 
>  
> 
> debian:/home/rani/kernel/linux-2.6.8.1# make
> 
>   CHK     include/linux/version.h
> 
>   SPLIT   include/linux/autoconf.h -> include/config/*
> 
>   CC      scripts/mod/empty.o
> 
> Assembler messages:
> 
> Error: Invalid processor variant -mcpu=xscale
> 
> make[2]: *** [scripts/mod/empty.o] Error 1
> 
> make[1]: *** [scripts/mod] Error 2
> 
> make: *** [scripts] Error 2

gcc 2.95 (and probably 3.0) don't have support for xscale.  You can tune
for strongarm instead, or start using gcc 3.2 or 3.3 (I use 3.3.4 from
sarge) and it will work much better.  I haven't actually measured it,
but from using the resulting kernel the xscale optimized kernel feels
much faster than the strongarm optimized kernel (on PXA255 in this
case).

Building a cross compiler from the source deb is very easy on Debian
sarge.

Here are the instructions I wrote for someone recently:
----
Here are the instructions for setting up an arm cross compiler on Debian
Sarge.  It assumes you are running sarge on your machine, and have
deb-src as well as deb lines in your /etc/apt/sources.list pointing at
sarge.

Download from http://zigzag.lvk.cs.msu.su/~nikita/debian/sid/
binutils-arm-linux_2.15-5_i386.deb
libc6-arm-cross_2.3.2.ds1-18_all.deb
libc6-dev-arm-cross_2.3.2.ds1-18_all.deb
libdb1-compat-arm-cross_2.1.3-7_all.deb
linux-kernel-headers-arm-cross_2.5.999-test7-bk-17_all.deb

Those can probably also be made using dpkg-cross if you don't want to
use those.

Install all of those using dpkg -i

Then build the compiler:
mkdir gcc-arm-cross
cd gcc-arm-cross
apt-get source gcc-3.3 (or apt-get source gcc-3.3=1:3.3.4-17)
cd gcc-3.3-3.3.4
export GCC_TARGET=arm
debian/rules control
dpkg-buildpackage -us -uc -b

Install the resulting packages using dpkg -i that you need (most likely
gcc packages, cpp packages and perhaps g++/c++ packages if any C++ code
is involved).
----

Len Sorensen



Reply to: