diff options
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 6 | ||||
-rw-r--r-- | ld/scripttempl/elfd10v.sc | 21 |
2 files changed, 24 insertions, 3 deletions
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 <meissner@redhat.com> + + * scripttempl/elfd10v.sc (.rodata,.rodata1,.data1,.sdata): Deal + with sections created by -fdata-sections. + (.dynbss,.bss): Ditto. + 2001-03-05 Alan Modra <alan@linuxcare.com.au> * 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 = .);} |