я использую 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 = .);
}
С уважением.
Задача ещё не решена.