c++ - Extra bytes between sections by GNU gcc/ld -
i use arm-eabi-gcc (ver 4.6.4 / binutils 2.24)
newlib (ver 2.1.0)
(without angelswi
).
i not use exception
nor rtti
.
linker script same default.
in linked file, there 32k space after section .eh_frame
.
can remove space?
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 generated sun/oracle c++ compiler. */ .exception_ranges : only_if_ro { *(.exception_ranges .exception_ranges*) } /* adjust address data segment. want adjust same address within page on 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 = .); }
regards.
Comments
Post a Comment