diff options
Diffstat (limited to 'ld/scripttempl')
-rw-r--r-- | ld/scripttempl/i386go32.sc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ld/scripttempl/i386go32.sc b/ld/scripttempl/i386go32.sc index 999aa05..60171fc 100644 --- a/ld/scripttempl/i386go32.sc +++ b/ld/scripttempl/i386go32.sc @@ -43,15 +43,21 @@ SECTIONS ${RELOCATING+etext = . ; PROVIDE(_etext = .) ;} ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} } + .data ${RELOCATING+ ${DATA_ALIGNMENT}} : { ${RELOCATING+djgpp_first_ctor = . ; *(SORT(.ctors.*)) *(.ctor) + *(.ctors) djgpp_last_ctor = . ;} ${RELOCATING+djgpp_first_dtor = . ; *(SORT(.dtors.*)) *(.dtor) + *(.dtors) djgpp_last_dtor = . ;} + __environ = . ; + PROVIDE(_environ = .) ; + LONG(0) ; *(.data) ${RELOCATING+*(.data.*)} @@ -65,8 +71,10 @@ SECTIONS ${RELOCATING+edata = . ; PROVIDE(_edata = .) ;} ${RELOCATING+. = ALIGN(${SEGMENT_SIZE});} } + ${CONSTRUCTING+${RELOCATING-$CTOR}} ${CONSTRUCTING+${RELOCATING-$DTOR}} + .bss ${RELOCATING+ SIZEOF(.data) + ADDR(.data)} : { *(.bss${RELOCATING+ .bss.* .gnu.linkonce.b.*}) @@ -74,6 +82,10 @@ SECTIONS ${RELOCATING+ end = . ; PROVIDE(_end = .) ;} ${RELOCATING+ . = ALIGN(${SEGMENT_SIZE});} } + + /* Discard LTO sections. */ + /DISCARD/ : { *(.gnu.lto_*) } + /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } |