11.1 EDK - GCC 4.1.1支持PowerPC

问题描述

使用GCC 4.1.1 for PowerPC时有哪些问题?

解决/修复方法

PowerPC Binutils

- powerpc-eabi-strip可能会伪装可执行文件,这可能会导致更大的文件。没有解决这个问题的方法。

- 新的C ++编译器创建名称为.sdata *。*的节。 BSB生成的链接器脚本以及EDK 8.2i及更早版本中的其他工具没有针对此类节的节分配,因此无法正确分配这些新节。 Rev-up会自动更新链接描述文件并添加缺少的部分分配。

- powerpc-eabi-objdump -S不会在反汇编中混合源和汇编。您可以使用以下其中一项来解决此问题:

- 从包含源的目录中调用powerpc-eabi-objdump。

- 使用-gstabs编译应用程序。但是,不建议使用此选项,因为它可能会影响调试。

PowerPC GCC

- 编译器为内置函数生成新警告,这些函数在没有包含适当头文件的情况下使用(例如,memcpy,printf)。要消除警告,必须将相应的头文件添加到包含列表中。

- 根据C标准,GCC-4.1.1中删除了对广义左值的支持。以下类型的代码应更改如下:

从:

(char *)var =“STRING”;

至:

var =(char *)“STRING”;

PowerPC Newlib

- atexit()支持最多只注册32个退出函数。这可以防止不使用atexit()的程序中不必要的代码膨胀。此外,C标准只需要atexit()支持32个退出函数。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-18 20:50:51 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它