uidivmod是uint32, ldivmod是long long (64位), 所以就是库里缺少64位的__aeabi_l
divmod函数. u-boot有对应的patch:
http://patchwork.ozlabs.org/project/uboot/patch/1457317732-18406-3-git-send-
email-sjg@chromium.org/
我感觉, 反正这是debug里才出现, 如果这数值不太可能到64位, 直接转换为32位做%就
完了
ps: 你的编译器后面带了个RC1, 这是非正式版, 用在嵌入式系统不太靠谱吧?
【 在 sxmman 的大作中提到: 】
: 背景:编译arm平台上的uboot,可以正常编译,反汇编查看运算符%对应的语句,为__aeabi_uidivmod,看前缀应该是编译链工具自带库中的函数?
: 之后,在makefile文件中,手动添加编译参数-DDEBUG,编译报错,在某个包含%的assert语句中,提示undefined reference __aeabi_ldivmod。因为打开了debug选项,所以该assert宏生效, 会进行编译。
: 为什么添加debug后,编译器翻译运算符会出现差异呢?
: ...................
--
FROM 113.116.30.*