0

こんにちは、リンカー スクリプトで次の方法でカスタム セクションを定義しようとしています。

  .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 へのデフォルトのフラグがまだ表示されます。readelf の AW

[11] .version_section  PROGBITS        00011088 004088 001044 00  WA  0   0  8

ここで何が間違っていますか?

4

1 に答える 1