GCC 版本之间的变量属性更改 - "nobits"



我的项目arm处理器使用的是较旧版本的GCC(版本6.3.0(。然后我转到了一个更新的版本(版本10.2.1 20201103(-arm处理器。

当我希望一个特定的部分将仅仅是一个";空间保持器";,例如,对于工作内存,我使用了属性

__attribute__((section(".sctionName,"aw",@nobits#")))

当使用新的GCC版本时,我得到一个错误:

Error: junk at end of line, first unrecognized character is `,'

在新的GCC版本中有这样的选项吗?

节属性语法在gcc 6和gcc 10之间没有更改。section的参数只是部分名称;CCD_ 2部分看起来是";肮脏的把戏;(根据section属性中的"aw"标志的含义?(将限定符注入生成的汇编代码中。然而,gcc 10显然在检查有效的节名,其中gcc 6允许任何旧文本,并简单地将其插入到代码中。

你可能需要更多的";官方的";定义截面行为的方法。也许是通过链接器脚本?

最新更新