Possible ARM binutils/gcc errors...

Steven J. Hill sjhill@cotw.com
Sat Jul 28 06:27:00 GMT 2001


Philip Blundell wrote:
> 
> @@ -39,7 +38,7 @@ tune-$(CONFIG_CPU_SA110)      :=-mtune=strong
>  tune-$(CONFIG_CPU_SA1100)      :=-mtune=strongarm1100
> 
>  CFLAGS         += -mapcs-32 $(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float
> -AFLAGS         += -mapcs-32 $(apcs-y) $(arch-y) -mno-fpu
> +AFLAGS         += -mapcs-32 $(apcs-y) $(arch-y) -mno-fpu -msoft-float
> 
>  LIBGCC         := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
> 
Well, that doesn't do it completely. When the final link stage happens 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 kernel/kernel.o mm/mm.o
fs/fs.o ipc/ipc.o \
        drivers/block/block.o drivers/char/char.o drivers/misc/misc.o
drivers/net/net.o drivers/media/media.o  drivers/mtd/mtdlink.o
drivers/video/video.o drivers/acorn/char/acorn-char.o \
        net/network.o \
        arch/arm/nwfpe/math-emu.o arch/arm/lib/lib.a /opt/pteclinux/lib/lib.a
/opt/toolchains/arm/lib/gcc-lib/arm-linux/3.0/libgcc.a \
        --end-group \
        -o vmlinux
arm-linux-ld: Error: _udivsi3.o uses hard floating point, whereas vmlinux uses
soft floating point
No more archived files: failed to merge target specific data of file
/opt/toolchains/arm/lib/gcc-lib/arm-linux/3.0/libgcc.a(_udivsi3.o)
arm-linux-ld: Error: _divsi3.o uses hard floating point, whereas vmlinux uses
soft floating point
No more archived files: failed to merge target specific data of file
/opt/toolchains/arm/lib/gcc-lib/arm-linux/3.0/libgcc.a(_divsi3.o)
arm-linux-ld: Error: _umodsi3.o uses hard floating point, whereas vmlinux uses
soft floating point
************************

Here are the configure lines used for binutils and gcc:

../binutils-2.11.90.0.24/configure --prefix=/opt/toolchains/arm
--target=arm-linux i686-pc-linux-gnu --enable-shared

../gcc-3.0/configure --prefix=/opt/toolchains/arm --target=arm-linux
i686-pc-linux-gnu --disable-shared --enable-languages=c --disable-threads
--with-newlib --with-headers=/opt/toolchains/arm/arm-linux/include

I did not do the -Dinhibit_libc hack in 'gcc/config/arm/t-linux' which I did not
think would make a difference. Also, why is it that I need the header files for
a stage 1 gcc to build only kernels? If I build a cross compiler for MIPS, I
don't
need the kernel headers unless I go to build glibc. Thanks Phil.

-Steve

-- 
 Steven J. Hill - Embedded SW Engineer



More information about the Binutils mailing list