Привет Я пытаюсь определить пользовательский раздел в моем сценарии компоновки в следующем виде:Добавление раздела в GNU сценарии компоновки
.version_section(__custom_data__) :
{
KEEP (*version_info.o (.rodata* .data* .sdata*))
}
Я компиляции файл C, который содержит структуру, и я хочу эту структуру всегда сохраняться в этой версии.
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 in readelf
[11] .version_section PROGBITS 00011088 004088 001044 00 WA 0 0 8
Что я здесь делаю неправильно?
В этом случае означает «записываемый» W? Если это так, вы можете сделать это «A», добавив 'const' в определение структуры. – ldav1s
Спасибо, чувак. Это сработало. Вы должны добавить это как ответ. –
ОК. Я добавил его в качестве ответа. – ldav1s