diff options
author | Christopher Faylor <me@cgf.cx> | 2014-02-11 10:27:57 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2014-02-11 10:27:57 +0400 |
commit | 026a2445d17e937996ae582f6875fb66b6ac7186 (patch) | |
tree | dde4365ec256959e2e5f76249e811505ef65ab7f /winsup/cygwin/cygwin.sc.in | |
parent | 85827fa6856b5bb3af42453780d61427e2e230b0 (diff) |
* winsup.h (Interlocked*): Use intrinsic versions of Interlocked functions.
* cygwin.sc.in: More closely emulate default pe/i386 linker script.
Diffstat (limited to 'winsup/cygwin/cygwin.sc.in')
-rw-r--r-- | winsup/cygwin/cygwin.sc.in | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/winsup/cygwin/cygwin.sc.in b/winsup/cygwin/cygwin.sc.in index db64a80e4..279da858f 100644 --- a/winsup/cygwin/cygwin.sc.in +++ b/winsup/cygwin/cygwin.sc.in @@ -59,9 +59,17 @@ SECTIONS { *(.rdata) *(SORT(.rdata$*)) - *(.eh_frame) *(.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*) @@ -87,11 +95,6 @@ SECTIONS { *(.edata) } - .rsrc BLOCK(__section_alignment__) : - { - *(.rsrc) - *(SORT(.rsrc$*)) - } .reloc BLOCK(__section_alignment__) : { *(.reloc) @@ -100,6 +103,20 @@ SECTIONS { *(.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): { BYTE(0) /* c */ @@ -116,19 +133,10 @@ SECTIONS BYTE(0) /* \0 */ LONG(0) /* checksum */ } - .idata ALIGN(__section_alignment__) : + .rsrc BLOCK(__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); + *(.rsrc) + *(SORT(.rsrc$*)) _SYM (_cygheap_start) = ABSOLUTE(.); } .cygheap ALIGN(__section_alignment__) : |