From 6ec11ab97ab47ec4a22118e5b1c77df567796002 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Thu, 29 Dec 2016 17:29:53 -0800 Subject: [PATCH] Remove some custom sections from RISC-V's default linker scripts This was added so compressed loads could have smaller offsets for accessing the data section, but the result was that writable sections ended up in INITIAL_READONLY_SECTIONS. This is a bad idea. The fix is to just remove this micro-optimization. Thanks to Alan Morda for finding the problem! ld/ChangeLog 2017-01-09 Palmer Dabbelt Kito Cheng * emulparams/elf32lriscv-defs.sh (INITIAL_READONLY_SECTIONS): Removed. (SDATA_START_SYMBOLS): Likewise. --- gas/ChangeLog | 7 +++++++ ld/emulparams/elf32lriscv-defs.sh | 12 ------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 2d72b786e6..88f68a1e34 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2017-01-09 Palmer Dabbelt + Kito Cheng + + * emulparams/elf32lriscv-defs.sh (INITIAL_READONLY_SECTIONS): + Removed. + (SDATA_START_SYMBOLS): Likewise. + 2017-01-09 Nick Clifton * po/sv.po: New Swedish translation. diff --git a/ld/emulparams/elf32lriscv-defs.sh b/ld/emulparams/elf32lriscv-defs.sh index 0e4b7237ff..0eba0d1a0c 100644 --- a/ld/emulparams/elf32lriscv-defs.sh +++ b/ld/emulparams/elf32lriscv-defs.sh @@ -26,17 +26,5 @@ COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)" SDATA_START_SYMBOLS="_gp = . + 0x800; *(.srodata.cst16) *(.srodata.cst8) *(.srodata.cst4) *(.srodata.cst2) *(.srodata .srodata.*)" -# Place the data section before text section. This enables more compact -# global variable access for RVC code via linker relaxation. -INITIAL_READONLY_SECTIONS=" - .data : { *(.data) *(.data.*) *(.gnu.linkonce.d.*) } - .rodata : { *(.rodata) *(.rodata.*) *(.gnu.linkonce.r.*) } - .srodata : { ${SDATA_START_SYMBOLS} } - .sdata : { *(.sdata .sdata.* .gnu.linkonce.s.*) } - .sbss : { *(.dynsbss) *(.sbss .sbss.* .gnu.linkonce.sb.*) } - .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) } - . = ALIGN(${SEGMENT_SIZE}) + (. & (${MAXPAGESIZE} - 1));" INITIAL_READONLY_SECTIONS=".interp : { *(.interp) } ${CREATE_PIE-${INITIAL_READONLY_SECTIONS}}" INITIAL_READONLY_SECTIONS="${RELOCATING+${CREATE_SHLIB-${INITIAL_READONLY_SECTIONS}}}" - -SDATA_START_SYMBOLS="${CREATE_PIE+${SDATA_START_SYMBOLS}}" -- 2.34.1