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

Re: Help cross-compiling kernel from x86



On Sun, Jul 14, 2002 at 01:50:00PM -0400, Matt Zimmerman wrote:

> I am trying to cross-compile Sharp's kernel for the Zaurus, and the build
> fails here:
> 
> arm-linux-ld  -r -o sa1100.o generic.o irq.o dma-sa1100.o collie.o m62332.o collie_battery.o collie_led.o collie_buzzer.o collie_apm.o power.o suspend.o
> arm-linux-ld: ERROR: suspend.o uses hardware FP, whereas sa1100.o uses software FP
> File format not recognized: failed to merge target specific data of file suspend.o
> 
> This makes no sense to me, since ld seems to be complaining about software FP
> in sa1100.o, which doesn't even exist yet (it is the output).  Most of the
> objects being linked were compiled like this:
> 
> arm-linux-gcc -D__KERNEL__ -I/space/tmp/mdz/zaurus/debian/kernel/linux-sharp/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2  -fno-strict-aliasing -fno-common -pipe -mapcs-32 -march=armv4 -mtune=strongarm1100 -mshort-load-bytes -msoft-float    -c -o power.o power.c
> 
> while suspend.o came from assembler:
> 
> arm-linux-gcc -D__ASSEMBLY__ -D__KERNEL__ -I/space/tmp/mdz/zaurus/debian/kernel/linux-sharp/include -mapcs-32 -march=armv4 -mno-fpu   -c -o suspend.o suspend.S

It looks like -msoft-float works, and does the right thing, while -mno-fpu
is ignored (not passed to the assembler).  Changing -mno-fpu to -msoft-float
caused -msoft-float to be passed to the assembler, and this stage worked.

Now, I get this:

arm-linux-ld -p -X -T arch/arm/vmlinux.lds arch/arm/kernel/head-armv.o arch/arm/kernel/init_task.o init/main.o init/version.o \
        --start-group \
        arch/arm/kernel/kernel.o arch/arm/mm/mm.o arch/arm/mach-sa1100/sa1100.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
         drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/ide/idedriver.o drivers/sound/sounddrivers.o drivers/mtd/mtdlink.o drivers/pcmcia/pcmcia.o drivers/net/pcmcia/pcmcia_net.o drivers/video/video.o drivers/net/irda/irda.o \
        net/network.o \
        arch/arm/nwfpe/math-emu.o arch/arm/lib/lib.a /space/tmp/mdz/zaurus/debian/kernel/linux-sharp/lib/lib.a /usr/lib/gcc-lib/arm-linux/3.1/libgcc.a \
        --end-group \
        -o vmlinux
arm-linux-ld: ERROR: /usr/lib/gcc-lib/arm-linux/3.1/libgcc.a(_udivsi3.oS) uses hardware FP, whereas vmlinux uses software FP
[a whole bunch more errors with libgcc)

Fine, so I need to build gcc for software FP.  But I can't seem to get it to
cooperate.  I see --without-fp in several places, but it doesn't seem to do
anything.  Same with --nofp.  I get the same errors after rebuilding gcc
with these options.

Hints?

-- 
 - mdz


-- 
To UNSUBSCRIBE, email to debian-arm-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: