uboot中编译器EABI问题相关说明

在使用新编译器构建旧版U-Boot(如1.1.6)时,可能会遇到`undefined reference to `raise'`错误。解决方法涉及修改配置文件中的编译选项,如禁用严格别名、设置浮点库调用等。文章讨论了不同编译选项的作用,如`-fno-strict-aliasing`、`-ffixed-reg`、`-msoft-float`等,并指出在某些情况下,降低编译器版本或使用特定的交叉编译工具(如crosstool)可以避免EABI问题。
摘要由CSDN通过智能技术生成

在用较新的编译器编译旧版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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值