问题描述
使用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个退出函数。
没有回复内容