mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-07 13:39:43 +08:00
RISC-V: Protect .got with relro
Move .got before .data so that it can be protected with -zrelro. Also separate .got.plt from .got if -znow is not in effect; the first two words of .got.plt are placed within the relro region. ld: PR ld/30877 * emulparams/elf32lriscv-defs.sh (DATA_GOT, SEPARATE_GOTPLT): Define. * emulparams/elf64lriscv-defs.sh (SEPARATE_GOTPLT): Define. * testsuite/ld-elf/binutils.exp (binutils_test): Remove riscv*-*-* from relro_got expression.
This commit is contained in:
parent
a47d304b12
commit
7345d05aaf
@ -47,3 +47,7 @@ INITIAL_READONLY_SECTIONS="${RELOCATING+${CREATE_SHLIB-${INITIAL_READONLY_SECTIO
|
||||
OTHER_END_SYMBOLS="${CREATE_SHLIB-__BSS_END__ = .;
|
||||
__global_pointer$ = MIN(__SDATA_BEGIN__ + 0x800,
|
||||
MAX(__DATA_BEGIN__ + 0x800, __BSS_END__ - 0x800));}"
|
||||
|
||||
# Put .got before .data
|
||||
DATA_GOT=" "
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 8 ? 8 : 0"
|
||||
|
@ -1,2 +1,3 @@
|
||||
source_sh ${srcdir}/emulparams/elf32lriscv-defs.sh
|
||||
ELFSIZE=64
|
||||
SEPARATE_GOTPLT="SIZEOF (.got.plt) >= 16 ? 16 : 0"
|
||||
|
@ -95,7 +95,6 @@ proc binutils_test { prog_name ld_options test {test_name ""} {readelf_options "
|
||||
|| [istarget "mips*-*-*"] \
|
||||
|| [istarget "nios2*-*-*"] \
|
||||
|| [istarget "or1k-*-*"] \
|
||||
|| [istarget "riscv*-*-*"] \
|
||||
|| [istarget "sh*-*-*"] \
|
||||
|| [istarget "x86_64-*-rdos*"])]
|
||||
# Check if GNU_RELRO segment is generated.
|
||||
|
Loading…
Reference in New Issue
Block a user