* cygwin.sc.in: More closely emulate default pe/i386 linker script.

This commit is contained in:
Christopher Faylor 2014-02-21 21:34:16 +00:00
parent faaad5ff1a
commit e427836cc6
2 changed files with 30 additions and 18 deletions

View File

@ -33,6 +33,10 @@
when !winpid. Simplify logic. Don't do duplicate detection for when !winpid. Simplify logic. Don't do duplicate detection for
winpid. winpid.
2014-02-11 Christopher Faylor <me.cygwin2014@cgf.cx>
* cygwin.sc.in: More closely emulate default pe/i386 linker script.
2014-02-10 Corinna Vinschen <corinna@vinschen.de> 2014-02-10 Corinna Vinschen <corinna@vinschen.de>
* cygheap.cc (cwcsdup): Change parameter to correct PWCSTR. * cygheap.cc (cwcsdup): Change parameter to correct PWCSTR.

View File

@ -59,9 +59,17 @@ SECTIONS
{ {
*(.rdata) *(.rdata)
*(SORT(.rdata$*)) *(SORT(.rdata$*))
*(.eh_frame)
*(.rdata_cygwin_nocopy) *(.rdata_cygwin_nocopy)
__rt_psrelocs_start = .;
*(.rdata_runtime_pseudo_reloc)
__rt_psrelocs_end = .;
} }
__rt_psrelocs_size = __rt_psrelocs_end - __rt_psrelocs_start;
___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
__RUNTIME_PSEUDO_RELOC_LIST_END__ = .;
___RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
__RUNTIME_PSEUDO_RELOC_LIST__ = . - __rt_psrelocs_size;
.eh_frame ALIGN(__section_alignment__) : .eh_frame ALIGN(__section_alignment__) :
{ {
*(.eh_frame*) *(.eh_frame*)
@ -87,11 +95,6 @@ SECTIONS
{ {
*(.edata) *(.edata)
} }
.rsrc BLOCK(__section_alignment__) :
{
*(.rsrc)
*(SORT(.rsrc$*))
}
.reloc BLOCK(__section_alignment__) : .reloc BLOCK(__section_alignment__) :
{ {
*(.reloc) *(.reloc)
@ -100,6 +103,20 @@ SECTIONS
{ {
*(.cygwin_dll_common) *(.cygwin_dll_common)
} }
.idata ALIGN(__section_alignment__) :
{
/* This cannot currently be handled with grouped sections.
See pe.em:sort_sections. */
SORT(*)(.idata$2)
SORT(*)(.idata$3)
/* These zeroes mark the end of the import list. */
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
SORT(*)(.idata$4)
SORT(*)(.idata$5)
SORT(*)(.idata$6)
SORT(*)(.idata$7)
. = ALIGN(16);
}
.gnu_debuglink_overlay ALIGN(__section_alignment__) (NOLOAD): .gnu_debuglink_overlay ALIGN(__section_alignment__) (NOLOAD):
{ {
BYTE(0) /* c */ BYTE(0) /* c */
@ -116,19 +133,10 @@ SECTIONS
BYTE(0) /* \0 */ BYTE(0) /* \0 */
LONG(0) /* checksum */ LONG(0) /* checksum */
} }
.idata ALIGN(__section_alignment__) : .rsrc BLOCK(__section_alignment__) :
{ {
/* This cannot currently be handled with grouped sections. *(.rsrc)
See pe.em:sort_sections. */ *(SORT(.rsrc$*))
SORT(*)(.idata$2)
SORT(*)(.idata$3)
/* These zeroes mark the end of the import list. */
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
SORT(*)(.idata$4)
SORT(*)(.idata$5)
SORT(*)(.idata$6)
SORT(*)(.idata$7)
. = ALIGN(16);
_SYM (_cygheap_start) = ABSOLUTE(.); _SYM (_cygheap_start) = ABSOLUTE(.);
} }
.cygheap ALIGN(__section_alignment__) : .cygheap ALIGN(__section_alignment__) :