From 552f8272ccb1bcbce23dc62c6e701bde2236cd24 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Tue, 22 Jun 2004 21:38:34 +0000 Subject: [PATCH] * ld/scripttemp/pe.sc (.CRT): Define ___crt_xc_start__, ___crt_xc_end__, ___crt_xi_start__, ___crt_xi_end__, ___crt_xl_start__, ___crt_xp_start__, ___crt_xp_end__, ___crt_xt_start__ and ___crt_xt_end__. (.tls): Define ___tls_start__ and ___tls_end__. --- ld/ChangeLog | 8 ++++++++ ld/scripttempl/pe.sc | 24 ++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 07003df163..c3927de4ee 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,11 @@ +2004-06-22 Aaron W. LaFramboise + + * ld/scripttemp/pe.sc (.CRT): Define ___crt_xc_start__, + ___crt_xc_end__, ___crt_xi_start__, ___crt_xi_end__, ___crt_xl_start__, + ___crt_xp_start__, ___crt_xp_end__, ___crt_xt_start__ and + ___crt_xt_end__. + (.tls): Define ___tls_start__ and ___tls_end__. + 2004-06-21 Alexandre Oliva * emulparams/elf32frvfd.sh (GENERATE_PIE_SCRIPT): Set to yes. diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc index 60d4ed143c..c6e25f50be 100644 --- a/ld/scripttempl/pe.sc +++ b/ld/scripttempl/pe.sc @@ -24,7 +24,11 @@ if test "${RELOCATING}"; then SORT(*)(.idata$5) SORT(*)(.idata$6) SORT(*)(.idata$7)' - R_CRT='*(SORT(.CRT$*))' + 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 */' R_TLS=' *(.tls) *(.tls$) @@ -130,12 +134,28 @@ SECTIONS } .CRT ${RELOCATING+BLOCK(__section_alignment__)} : { - ${R_CRT} + ${RELOCATING+___crt_xc_start__ = . ;} + ${R_CRT_XC} + ${RELOCATING+___crt_xc_end__ = . ;} + ${RELOCATING+___crt_xi_start__ = . ;} + ${R_CRT_XI} + ${RELOCATING+___crt_xi_end__ = . ;} + ${RELOCATING+___crt_xl_start__ = . ;} + ${R_CRT_XL} + /* ___crt_xl_end__ is defined in the TLS Directory support code */ + ${RELOCATING+___crt_xp_start__ = . ;} + ${R_CRT_XP} + ${RELOCATING+___crt_xp_end__ = . ;} + ${RELOCATING+___crt_xt_start__ = . ;} + ${R_CRT_XT} + ${RELOCATING+___crt_xt_end__ = . ;} } .tls ${RELOCATING+BLOCK(__section_alignment__)} : { + ${RELOCATING+___tls_start__ = . ;} ${R_TLS} + ${RELOCATING+___tls_end__ = . ;} } .endjunk ${RELOCATING+BLOCK(__section_alignment__)} :