您好我正在尝试以下列方式在我的链接描述文件中定义自定义部分:
.version_section(__custom_data__) :
{
KEEP (*version_info.o (.rodata* .data* .sdata*))
}
我正在编译一个包含结构的C文件,我希望该结构始终存储在这个version_section中。
version_info ver_info __attribute__ ((section(".version_section"))) = {7, 10, 2013, 17, 17, "some_type", "some_sw_version", "some_version"} ;
现在,直到这个阶段一切正常。但是这样生成的部分有标志“AW”但是我需要标记为“A”。
所以我使用的汇编程序文件将此部分定义为具有“A”标志,如下所示:
.section .version_section,"a", @progbits
.align 8
.globl __custom_data__
.type __custom_data__, @function
__custom_data__:
.word 0
.size __custom_data__, .-__custom_data__
.space (0x1024-0x4), 0
但我仍然看到version_section的默认标志,即。 AW在readelf中
[11] .version_section PROGBITS 00011088 004088 001044 00 WA 0 0 8
我在这里做错了什么?
答案 0 :(得分:0)
似乎“W”在readelf
输出中意味着可写,正如我所怀疑的那样。将const
限定符添加到ver_info
的定义会将其移至内存中的所需段。