updated Cygwin x86 linker script to match its x86_64 counterpart

This commit is contained in:
Christian Kroll 2014-03-01 09:30:23 +01:00
parent 2191f1be0d
commit 5a5824ad37
1 changed files with 76 additions and 1 deletions

View File

@ -24,6 +24,7 @@ SECTIONS
/* ??? Why is .gcc_exc here? */ /* ??? Why is .gcc_exc here? */
*(.gcc_exc) *(.gcc_exc)
PROVIDE (etext = .); PROVIDE (etext = .);
PROVIDE (_etext = .);
*(.gcc_except_table) *(.gcc_except_table)
} }
/* The Cygwin32 library uses a section to avoid copying certain data /* The Cygwin32 library uses a section to avoid copying certain data
@ -120,12 +121,18 @@ SECTIONS
*(SORT(.CRT$XT*)) /* Termination */ *(SORT(.CRT$XT*)) /* Termination */
___crt_xt_end__ = . ; ___crt_xt_end__ = . ;
} }
/* Windows TLS expects .tls$AAA to be at the start and .tls$ZZZ to be
at the end of section. This is important because _tls_start MUST
be at the beginning of the section to enable SECREL32 relocations with TLS
data. */
.tls BLOCK(__section_alignment__) : .tls BLOCK(__section_alignment__) :
{ {
___tls_start__ = . ; ___tls_start__ = . ;
*(.tls$AAA)
*(.tls) *(.tls)
*(.tls$) *(.tls$)
*(SORT(.tls$*)) *(SORT(.tls$*))
*(.tls$ZZZ)
___tls_end__ = . ; ___tls_end__ = . ;
} }
.endjunk BLOCK(__section_alignment__) : .endjunk BLOCK(__section_alignment__) :
@ -161,72 +168,140 @@ SECTIONS
{ {
*(.debug_aranges) *(.debug_aranges)
} }
.zdebug_aranges BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_aranges)
}
.debug_pubnames BLOCK(__section_alignment__) (NOLOAD) : .debug_pubnames BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_pubnames) *(.debug_pubnames)
} }
.zdebug_pubnames BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_pubnames)
}
.debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) : .debug_pubtypes BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_pubtypes) *(.debug_pubtypes)
} }
.zdebug_pubtypes BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_pubtypes)
}
/* DWARF 2. */ /* DWARF 2. */
.debug_info BLOCK(__section_alignment__) (NOLOAD) : .debug_info BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_info .gnu.linkonce.wi.*) *(.debug_info .gnu.linkonce.wi.*)
} }
.zdebug_info BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_info .zdebug.gnu.linkonce.wi.*)
}
.debug_abbrev BLOCK(__section_alignment__) (NOLOAD) : .debug_abbrev BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_abbrev) *(.debug_abbrev)
} }
.zdebug_abbrev BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_abbrev)
}
.debug_line BLOCK(__section_alignment__) (NOLOAD) : .debug_line BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_line) *(.debug_line)
} }
.zdebug_line BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_line)
}
.debug_frame BLOCK(__section_alignment__) (NOLOAD) : .debug_frame BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_frame*) *(.debug_frame*)
} }
.zdebug_frame BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_frame*)
}
.debug_str BLOCK(__section_alignment__) (NOLOAD) : .debug_str BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_str) *(.debug_str)
} }
.zdebug_str BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_str)
}
.debug_loc BLOCK(__section_alignment__) (NOLOAD) : .debug_loc BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_loc) *(.debug_loc)
} }
.zdebug_loc BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_loc)
}
.debug_macinfo BLOCK(__section_alignment__) (NOLOAD) : .debug_macinfo BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_macinfo) *(.debug_macinfo)
} }
.zdebug_macinfo BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_macinfo)
}
/* SGI/MIPS DWARF 2 extensions. */ /* SGI/MIPS DWARF 2 extensions. */
.debug_weaknames BLOCK(__section_alignment__) (NOLOAD) : .debug_weaknames BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_weaknames) *(.debug_weaknames)
} }
.zdebug_weaknames BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_weaknames)
}
.debug_funcnames BLOCK(__section_alignment__) (NOLOAD) : .debug_funcnames BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_funcnames) *(.debug_funcnames)
} }
.zdebug_funcnames BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_funcnames)
}
.debug_typenames BLOCK(__section_alignment__) (NOLOAD) : .debug_typenames BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_typenames) *(.debug_typenames)
} }
.zdebug_typenames BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_typenames)
}
.debug_varnames BLOCK(__section_alignment__) (NOLOAD) : .debug_varnames BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_varnames) *(.debug_varnames)
} }
.zdebug_varnames BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_varnames)
}
.debug_macro BLOCK(__section_alignment__) (NOLOAD) : .debug_macro BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_macro) *(.debug_macro)
} }
.zdebug_macro BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_macro)
}
/* DWARF 3. */ /* DWARF 3. */
.debug_ranges BLOCK(__section_alignment__) (NOLOAD) : .debug_ranges BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_ranges) *(.debug_ranges)
} }
.zdebug_ranges BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_ranges)
}
/* DWARF 4. */ /* DWARF 4. */
.debug_types BLOCK(__section_alignment__) (NOLOAD) : .debug_types BLOCK(__section_alignment__) (NOLOAD) :
{ {
*(.debug_types .gnu.linkonce.wt.*) *(.debug_types .gnu.linkonce.wt.*)
} }
.zdebug_types BLOCK(__section_alignment__) (NOLOAD) :
{
*(.zdebug_types .gnu.linkonce.wt.*)
}
} }