Дополнительные байты между разделами по GNU gcc / ld

я использую arm-eabi-gcc (ver 4.6.4 / binutils 2.24) с newlib (ver 2.1.0) (без AngelSWI).

я не использую Exception ни RTTI,

Скрипт компоновщика практически такой же, как по умолчанию.

В связанном файле после раздела есть дополнительное пространство 32 КБ .eh_frame ,

Могу ли я удалить это дополнительное пространство?


Idx Name          Size      VMA       LMA       File off  Algn

4 .rodata       00000498  402f23a0  402f23a0  0000a3a0  2**3
CONTENTS, ALLOC, LOAD, READONLY, DATA
5 .ARM.exidx    00000008  402f2838  402f2838  0000a838  2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
6 .eh_frame     00000004  402f2840  402f2840  0000a840  2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
7 .init_array   00000004  402fa844  402fa844  0000a844  2**2
CONTENTS, ALLOC, LOAD, DATA
8 .fini_array   00000004  402fa848  402fa848  0000a848  2**2
CONTENTS, ALLOC, LOAD, DATA

  .rodata         : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1        : { *(.rodata1) }
.ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
PROVIDE_HIDDEN (__exidx_start = .);
.ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
PROVIDE_HIDDEN (__exidx_end = .);
.eh_frame_hdr : { *(.eh_frame_hdr) }
.eh_frame        : ONLY_IF_RO { KEEP (*(.eh_frame)) }
.gcc_except_table   : ONLY_IF_RO { *(.gcc_except_table
.gcc_except_table.*) }
/* These sections are generated by the Sun/Oracle C++ compiler.  */
.exception_ranges   : ONLY_IF_RO { *(.exception_ranges
.exception_ranges*) }
/* Adjust the address for the data segment.  We want to adjust up to
the same address within the page on the next page up.  */
. = ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1));
/* Exception handling  */
.eh_frame       : ONLY_IF_RW { KEEP (*(.eh_frame)) }
.gcc_except_table   : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
.exception_ranges   : ONLY_IF_RW { *(.exception_ranges .exception_ranges*) }
/* Thread Local Storage sections  */
.tdata      : { *(.tdata .tdata.* .gnu.linkonce.td.*) }
.tbss       : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
.preinit_array     :
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
}
.init_array     :
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT(.init_array.*)))
KEEP (*(.init_array ))
PROVIDE_HIDDEN (__init_array_end = .);
}
.fini_array     :
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT(.fini_array.*)))
KEEP (*(.fini_array ))
PROVIDE_HIDDEN (__fini_array_end = .);
}

С уважением.

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]