
In message 4791E710007FEB4BBF83775D787F462F070D41F0@az33exm22.fsl.freescale.net you wrote:
And ``$(CC)'' and ``$(CROSS_COMPILE)gcc'' should be really the same
here. Sorry for the confusion, and yes both $(CC) and $(CROSS_COMPILE)gcc are the same. It is unsolvable behavior in ifeq (...) where $(shell $(CC) --version) does not match 4.2 and caused linking error.
Original: ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) PLATFORM_CPPFLAGS += -mcpu=54455 -fPIC else PLATFORM_CPPFLAGS += -m5407 -fPIC endif
I'm sorry, but I don't understand. If we agree, that "yes both $(CC) and $(CROSS_COMPILE)gcc are the same", then why would changing one for the other in above lines make any difference?
As you can see below captured, -mcpu=54455 was selected in compiling when gcc version is 4.2. When it comes to linking, the $(shell $(CC)
Yes, I can see the -mcpu=54455 flag.
--version) becomes other value and select the -m5407 option with different libgcc.
But no, I cannot see the "-m5407" string anywhere in your output.
...
/opt/freescale/usr/local/gcc-4.2.47-uclibc-0.9.47/m68k-uclinux/bin/m68k- uclinux-ld -Bstatic -T /proj/u-boot/uboot133/u-boot-test/board/freescale/m54455evb/u-boot.lds -n -Ttext 0x04000000 $UNDEF_SYM cpu/mcf5445x/start.o \ --start-group lib_generic/libgeneric.a board/freescale/common/libfreescale.a board/freescale/m54455evb/libm54455evb.a cpu/mcf5445x/libmcf5445x.a lib_m68k/libm68k.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a net/libnet.a disk/libdisk.a drivers/bios_emulator/libatibiosemu.a drivers/block/libblock.a drivers/dma/libdma.a drivers/hwmon/libhwmon.a drivers/i2c/libi2c.a drivers/input/libinput.a drivers/misc/libmisc.a drivers/mtd/libmtd.a drivers/mtd/nand/libnand.a drivers/mtd/nand_legacy/libnand_legacy.a drivers/mtd/onenand/libonenand.a drivers/net/libnet.a drivers/net/sk98lin/libsk98lin.a drivers/pci/libpci.a drivers/pcmcia/libpcmcia.a drivers/spi/libspi.a drivers/rtc/librtc.a drivers/serial/libserial.a drivers/usb/libusb.a drivers/video/libvideo.a common/libcommon.a libfdt/libfdt.a api/libapi.a post/libpost.a --end-group -L /opt/freescale/usr/local/gcc-4.2.47-uclibc-0.9.47/m68k-uclinux/lib/gcc/m 68k-uclinux/4.2.1/m5407/msep-data -lgcc \
------------------^^^^^^^^
-Map u-boot.map -o u-boot
I can see the "m5407" string here; this comes from the PLATFORM_LIBS variable, which gets set in the Makefile as follows:
# Add GCC lib PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc
But here you don't replace the $(CC), so this cannot be the culprit.
Sorry, I do not understand what you are trying to tell me.
Best regards,
Wolfgang Denk