[U-Boot-Users] u-boot compile problem
Rainer Brestan (VI/SEA)
rainer.brestan at ericsson.com
Tue Oct 12 12:03:14 CEST 2004
>Hi all,
>I've downloaded the latest u-boot-1.1.1 and I'm trying to compile,
>but I get this error at the end... any idea?
>Toolchain: cross-3.2 (from arm linux)
>regards
>
>
>
>arm-linux-gcc -g -Os -fno-strict-aliasing -fno-common -ffixed-r8
>-mshort-load-bytes -msoft-float -D__KERNEL__ -DTEXT_BASE=0x33F80000
>-I/root/audiotel/u-boot-1.1.1nand/include -fno-builtin -ffreestanding
>-nostdinc -isystem
>/usr/local/arm/current/bin/../lib/gcc-lib/arm-linux/3.2/include -pipe
>-DCONFIG_ARM -D__ARM__ -mapcs-32 -march=armv4 -Wall -Wstrict-prototypes
>-g -Os -fno-strict-aliasing -fno-common -ffixed-r8
>-mshort-load-bytes -msoft-float -D__KERNEL__ -DTEXT_BASE=0x33F80000
>-I/root/audiotel/u-boot-1.1.1nand/include -fno-builtin -ffreestanding
>-nostdinc -isystem
>/usr/local/arm/current/bin/../lib/gcc-lib/arm-linux/3.2/include -pipe
>-DCONFIG_ARM -D__ARM__ -mapcs-32 -march=armv4 -I.. -Bstatic -T
>/root/audiotel/u-boot-1.1.1nand/board/smdk2410/u-boot.lds -Ttext
>0x33F80000 hello_world.c -o hello_world
>/usr/local/arm/current/bin/../lib/gcc-lib/arm-linux/3.2/../../../../arm-linux/bin/ld:
>cannot find -lfloat
>collect2: ld returned 1 exit status
>make[1]: *** [hello_world] Error 1
>make[1]: Leaving directory `/root/audiotel/u-boot-1.1.1nand/examples'
>make: *** [examples] Error 2
>[root at tecne184 u-boot-1.1.1nand]#
>
You run into the same problem i had.
It is not a problem with the toolchain, it is due to the fact how the makefile
in examples is written.
When you first run make without arm-linux-gcc in the path make does a lot, but it
created only empty .depend files (because of compiler not found).
Afterwards you include arm-linux-gcc in the path and run make again.
Everything is running then except the examples directory.
Make does not compile hello_world.c, instead it uses a builtin implicit rule to
make hello_world (there is no dependency from OBJS and the explicit dependency for
hello_world.o is missing, because of empty .depend). When you run make -r (no
builtin implicit rules) it works.
Work around:
make clobber (deletes your wrong .depend)
mkconfig ...
adding arm-linux-gcc to your path
make
Hint to Wolfgang:
If you add OBJS to the all rule in Makefile for examples, it will work in any case.
all: .depend $(LIB) $(OBJS) $(SREC) $(BIN)
Rainer
More information about the U-Boot
mailing list