X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=ld%2Fscripttempl%2Fpep.sc;h=e6d594c2bbe267827bf6837b743e8b3fccca3f87;hb=603490bf53fe1885ef45f9d0fb783b32f8ef6049;hp=7237832e72b842b12dd62ab8f561021741383820;hpb=5f294ed6805ce3931f9c04cfedff38e20010c819;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc index 7237832e72..e6d594c2bb 100644 --- a/ld/scripttempl/pep.sc +++ b/ld/scripttempl/pep.sc @@ -1,4 +1,10 @@ # Linker script for PE. +# +# Copyright (C) 2014-2019 Free Software Foundation, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. if test -z "${RELOCATEABLE_OUTPUT_FORMAT}"; then RELOCATEABLE_OUTPUT_FORMAT=${OUTPUT_FORMAT} @@ -13,37 +19,63 @@ fi # use grouped sections instead). if test "${RELOCATING}"; then R_TEXT='*(SORT(.text$*))' - R_DATA='*(SORT(.data$*))' - R_RDATA='*(SORT(.rdata$*))' - R_IDATA=' - SORT(*)(.idata$2) - SORT(*)(.idata$3) + if test "x$LD_FLAG" = "xauto_import" ; then + R_DATA='*(SORT(.data$*)) + *(.rdata) + *(SORT(.rdata$*))' + R_RDATA='' + else + R_DATA='*(SORT(.data$*))' + R_RDATA='*(.rdata) + *(SORT(.rdata$*))' + fi + R_IDATA234=' + KEEP (SORT(*)(.idata$2)) + KEEP (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)' - R_CRT_XC='*(SORT(.CRT$XC*)) /* C initialization */' - R_CRT_XI='*(SORT(.CRT$XI*)) /* C++ initialization */' - R_CRT_XL='*(SORT(.CRT$XL*)) /* TLS callbacks */' - R_CRT_XP='*(SORT(.CRT$XP*)) /* Pre-termination */' - R_CRT_XT='*(SORT(.CRT$XT*)) /* Termination */' + KEEP (SORT(*)(.idata$4))' + R_IDATA5='SORT(*)(.idata$5)' + R_IDATA67=' + KEEP (SORT(*)(.idata$6)) + KEEP (SORT(*)(.idata$7))' + R_CRT_XC='KEEP (*(SORT(.CRT$XC*))) /* C initialization */' + R_CRT_XI='KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */' + R_CRT_XL='KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */' + R_CRT_XP='KEEP (*(SORT(.CRT$XP*))) /* Pre-termination */' + R_CRT_XT='KEEP (*(SORT(.CRT$XT*))) /* Termination */' R_TLS=' - *(.tls) - *(.tls$) - *(SORT(.tls$*))' - R_RSRC='*(SORT(.rsrc$*))' + KEEP (*(.tls$AAA)) + KEEP (*(.tls)) + KEEP (*(.tls$)) + KEEP (*(SORT(.tls$*))) + KEEP (*(.tls$ZZZ))' + R_RSRC=' + KEEP (*(.rsrc)) + KEEP (*(.rsrc$*))' else R_TEXT= R_DATA= - R_RDATA= - R_IDATA= - R_CRT= - R_RSRC= + R_RDATA='*(.rdata)' + R_IDATA234= + R_IDATA5= + R_IDATA67= + R_CRT_XC= + R_CRT_XI= + R_CRT_XL= + R_CRT_XP= + R_CRT_XT= + R_TLS='*(.tls)' + R_RSRC='*(.rsrc)' fi cat <