mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-09 04:21:49 +08:00
ae2e4d4035
loongarch_elf_finish_dynamic_symbol is called after elf_link_sort_relocs if -z combreloc. elf_link_sort_relocs redistributes the contents of .rela.* sections those would be merged into .rela.dyn, so the slot for R_LARCH_IRELATIVE may be out of relplt->contents now. To make things worse, the boundary check dyn < dyn + relplt->size / sizeof (*dyn) is obviously wrong ("x + 10 < x"? :), causing the issue undetected during the linking process and the resulted executable suddenly crashes at runtime. The issue was found during an attempt to add static-pie support to the toolchain. Fix it by iterating through the inputs of .rela.dyn to find the slot. |
||
---|---|---|
.. | ||
attr-ifunc-4.c | ||
attr-ifunc-4.out | ||
cmodel-libjirl.dd | ||
cmodel.exp | ||
disas-jirl-32.d | ||
disas-jirl-32.s | ||
disas-jirl.d | ||
disas-jirl.s | ||
ifunc.exp | ||
jmp_op.d | ||
jmp_op.s | ||
ld-loongarch-elf.exp | ||
libjirl.s | ||
libnopic-global.s | ||
local-ifunc-reloc.d | ||
local-ifunc-reloc.s | ||
macro_op_32.d | ||
macro_op_32.s | ||
macro_op.d | ||
macro_op.s | ||
nopic-global-so.rd | ||
nopic-global-so.sd | ||
nopic-global.out | ||
nopic-global.s | ||
nopic-global.sd | ||
nopic-global.xd | ||
nopic-local.out | ||
nopic-local.rd | ||
nopic-local.s | ||
nopic-local.sd | ||
nopic-local.xd | ||
nopic-weak-global-so.rd | ||
nopic-weak-global-so.sd | ||
nopic-weak-global.out | ||
nopic-weak-global.s | ||
nopic-weak-global.sd | ||
nopic-weak-global.xd | ||
nopic-weak-local.out | ||
nopic-weak-local.rd | ||
nopic-weak-local.s | ||
nopic-weak-local.sd | ||
nopic-weak-local.xd | ||
pic.exp | ||
pic.ld | ||
syscall-0.s | ||
syscall-1.s | ||
syscall.d |