diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 0c85cd7af..f57047251 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2014-04-08 Corinna Vinschen + + * cygwin.sc.in: (Temporarily?) workaround serious ld bug which + truncates symbols in certain computations to 32 bit. See + https://sourceware.org/bugzilla/show_bug.cgi?id=16821 + 2014-04-07 Corinna Vinschen * cygserver_ipc.h (ipc_set_proc_info): Add bool parameter to specify diff --git a/winsup/cygwin/cygwin.sc.in b/winsup/cygwin/cygwin.sc.in index 279da858f..134ae3f76 100644 --- a/winsup/cygwin/cygwin.sc.in +++ b/winsup/cygwin/cygwin.sc.in @@ -60,16 +60,12 @@ SECTIONS *(.rdata) *(SORT(.rdata$*)) *(.rdata_cygwin_nocopy) - __rt_psrelocs_start = .; + ___RUNTIME_PSEUDO_RELOC_LIST__ = .; + __RUNTIME_PSEUDO_RELOC_LIST__ = .; *(.rdata_runtime_pseudo_reloc) - __rt_psrelocs_end = .; - + ___RUNTIME_PSEUDO_RELOC_LIST_END__ = .; + __RUNTIME_PSEUDO_RELOC_LIST_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*) @@ -137,7 +133,7 @@ SECTIONS { *(.rsrc) *(SORT(.rsrc$*)) - _SYM (_cygheap_start) = ABSOLUTE(.); + _SYM (_cygheap_start) = .; } .cygheap ALIGN(__section_alignment__) : { @@ -147,7 +143,7 @@ SECTIONS . = . + (2048 * 1024); #endif . = ALIGN(0x10000); - _SYM (_cygheap_end) = ABSOLUTE(.); + _SYM (_cygheap_end) = .; } /DISCARD/ : {