From 788fca5a32cb78de1e95f8a4d895c1db019e6aa6 Mon Sep 17 00:00:00 2001 From: Michael Meissner Date: Thu, 8 Mar 2001 02:20:25 +0000 Subject: Add support for -fdata-sections --- ld/ChangeLog | 6 ++++++ ld/scripttempl/elfd10v.sc | 21 ++++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) (limited to 'ld') diff --git a/ld/ChangeLog b/ld/ChangeLog index 73d3a21..f364024 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2001-03-07 Michael Meissner + + * scripttempl/elfd10v.sc (.rodata,.rodata1,.data1,.sdata): Deal + with sections created by -fdata-sections. + (.dynbss,.bss): Ditto. + 2001-03-05 Alan Modra * emultempl/m68kelf.em (m68k_elf_after_allocation): Call diff --git a/ld/scripttempl/elfd10v.sc b/ld/scripttempl/elfd10v.sc index 4dca63c..3d69755 100644 --- a/ld/scripttempl/elfd10v.sc +++ b/ld/scripttempl/elfd10v.sc @@ -77,7 +77,9 @@ SECTIONS { ${RELOCATING+${TEXT_START_SYMBOLS}} KEEP (*(.init)) + KEEP (*(.init.*)) KEEP (*(.fini)) + KEEP (*(.fini.*)) *(.text) *(.text.*) /* .gnu.warning sections are handled specially by elf32.em. */ @@ -88,9 +90,15 @@ SECTIONS } ${RELOCATING+ >INSN} =${NOP-0} .rodata ${RELOCATING-0} : { - *(.rodata) *(.gnu.linkonce.r*) + *(.rodata) + *(.gnu.linkonce.r*) + *(.rodata.*) } ${RELOCATING+ >DATA} - .rodata1 ${RELOCATING-0} : { *(.rodata1) } ${RELOCATING+ >DATA} + + .rodata1 ${RELOCATING-0} : { + *(.rodata1) + *(.rodata1.*) + } ${RELOCATING+ >DATA} .data ${RELOCATING-0} : { @@ -107,7 +115,11 @@ SECTIONS /* We want the small data sections together, so single-instruction offsets can access them all, and initialized data all before uninitialized, so we can shorten the on-disk segment size. */ - .sdata ${RELOCATING-0} : { *(.sdata) } ${RELOCATING+ >DATA} + .sdata ${RELOCATING-0} : { + *(.sdata) + *(.sdata.*) + } ${RELOCATING+ >DATA} + ${RELOCATING+_edata = .;} ${RELOCATING+PROVIDE (edata = .);} ${RELOCATING+__bss_start = .;} @@ -115,9 +127,12 @@ SECTIONS .bss ${RELOCATING-0} : { *(.dynbss) + *(.dynbss.*) *(.bss) + *(.bss.*) *(COMMON) } ${RELOCATING+ >DATA} + ${RELOCATING+_end = . ;} ${RELOCATING+PROVIDE (end = .);} -- cgit v1.1