sparc/shared/.../linkcmds.base: Correct C++ support

Add KEEP() for .eh_frame*, .ctor*, and .dtor*.
This commit is contained in:
Joel Sherrill
2014-04-02 11:39:20 -05:00
parent c6f0a4b7cb
commit 95cb09ed74

View File

@@ -63,7 +63,7 @@ SECTIONS
*(.text*) *(.text*)
. = ALIGN (16); . = ALIGN (16);
*(.eh_frame) KEEP(*(.eh_frame*))
. = ALIGN (16); . = ALIGN (16);
*(.gnu.linkonce.t*) *(.gnu.linkonce.t*)
@@ -87,13 +87,11 @@ SECTIONS
The .ctor section from the crtend file contains the The .ctor section from the crtend file contains the
end of ctors marker and it must be last */ end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
KEEP (*(SORT(.ctors.*))) KEEP (*(SORT(.ctors*)))
KEEP (*(.ctors))
KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors)) KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
KEEP (*(SORT(.dtors.*))) KEEP (*(SORT(.dtors*)))
KEEP (*(.dtors))
_rodata_start = . ; _rodata_start = . ;
*(.rodata*) *(.rodata*)
@@ -102,8 +100,8 @@ SECTIONS
etext = ALIGN(0x10); etext = ALIGN(0x10);
_etext = .; _etext = .;
KEEP(*(.init)) KEEP(*(.init*))
KEEP(*(.fini)) KEEP(*(.fini*))
*(.lit) *(.lit)
*(.shdata) *(.shdata)
. = ALIGN (16); . = ALIGN (16);
@@ -159,6 +157,7 @@ SECTIONS
_sdata = . ; _sdata = . ;
*(.data*) *(.data*)
*(.gnu.linkonce.d*) *(.gnu.linkonce.d*)
. = ALIGN(0x10);
*(.gcc_except_table*) *(.gcc_except_table*)
. = ALIGN(0x10); . = ALIGN(0x10);
edata = .; edata = .;