LoongArch: Don't write into GOT for local ifunc
authorXi Ruoyao <xry111@xry111.site>
Tue, 20 Sep 2022 06:09:29 +0000 (14:09 +0800)
committerliuzhensong <liuzhensong@loongson.cn>
Tue, 20 Sep 2022 09:16:05 +0000 (17:16 +0800)
commit6224a6c2ead26a04f0b2b8ccf4ff5b817afbb425
tree02df20b432fad41fa61a7cc3c7a58b2378d2ec43
parent6519cd1a15fda2b67ae3e4ad8a2758615d3e0f9f
LoongArch: Don't write into GOT for local ifunc

Local ifuncs are always resolved at runtime via R_LARCH_IRELATIVE, so
there is no need to write anything into GOT.  And when we write the GOT
we actually trigger a heap-buffer-overflow: If a and b are different
sections, we cannot access something in b with "a->contents + (offset
from a)" because "a->contents" and "b->contents" are heap buffers
allocated separately, not slices of a large buffer.

So stop writing into GOT for local ifunc now.
bfd/elfnn-loongarch.c