在用较新的编译器编译旧版uboot,例如uboot1.1.6时,会出现 【undefined reference to `raise'】这种问题,网上大部分的解决方法都是将相关cpu中的config.mk文件内的编译选项进行修改
提前说明一点,uboot和linux内核的编译中arm-linux-gcc的版本很重要
下面的这些代码中 += 为makefile的语法,意思是为前面的变量添在原有定义的基础上,再加上后面的定义
PLATFORM_CPPFLAGS += -march=armv4 PLATFORM_CPPFLAGS +=
PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8 \
-msoft-float
PLATFORM_RELFLAGS += -fno-strict-aliasing -fno-common -ffixed-r8
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32)
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
PLATFORM_RELFLAGS +=$(call cc-option,$(call cc-option,)
PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc