summaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorliuzhensong <liuzhensong@loongson.cn>2022-07-20 19:55:27 +0800
committerliuzhensong <liuzhensong@loongson.cn>2022-07-25 09:59:08 +0800
commit9801120721c3a702ce3bd50433ef920f92a83502 (patch)
treea4636cc25aac46f15fc1e7d7d62ce9573057b956 /binutils
parentbc2a35c0b48a93db21af2e7c429dc83828c672c8 (diff)
bfd: Delete R_LARCH_NONE from dyn info of LoongArch.
Some R_LARCH_64 in section .eh_frame will to generate R_LARCH_NONE, we change relocation to R_LARCH_32_PCREL from R_LARCH_64 in setction .eh_frame and not generate dynamic relocation for R_LARCH_32_PCREL. Add New relocate type R_LARCH_32_PCREL for .eh_frame. include/elf/ loongarch.h bfd/ bfd/bfd-in2.h libbfd.h reloc.c elfxx-loongarch.c elfnn-loongarch.c gas/config/ tc-loongarch.c binutils/ readelf.c ld/testsuite/ld-elf/ eh5.d
Diffstat (limited to 'binutils')
-rw-r--r--binutils/readelf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 6b7692d9dd..4a3e448e30 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -14389,6 +14389,8 @@ is_32bit_pcrel_reloc (Filedata * filedata, unsigned int reloc_type)
case EM_AVR_OLD:
case EM_AVR:
return reloc_type == 36; /* R_AVR_32_PCREL. */
+ case EM_LOONGARCH:
+ return reloc_type == 99; /* R_LARCH_32_PCREL. */
case EM_MICROBLAZE:
return reloc_type == 2; /* R_MICROBLAZE_32_PCREL. */
case EM_OR1K: