forked from OSchip/llvm-project
[MC][LoongArch] Fix needsRelocateWithSymbol() implementation
LoongArch should be `section plus offset`, so use the generic implementation of `llvm/lib/MC/MCELFObjectTargetWriter.cpp` to return `false` directly, like x86 and aarch64. ``` $ cat test.c static int __attribute__((section(".text.another"))) test(int a, int b) { return a + b; } static int a = 1, b = 2; int foo() { test(a, b); return 0; } $ gcc -c test.c $ readelf -Wr test.o Relocation section '.rela.text' at offset 0x2a0 contains 5 entries: Offset Info Type Symbol's Value Symbol's Name + Addend 0000000000000010 0000000300000047 R_LARCH_PCALA_HI20 0000000000000000 .data + 0 0000000000000014 0000000300000048 R_LARCH_PCALA_LO12 0000000000000000 .data + 0 0000000000000018 0000000300000047 R_LARCH_PCALA_HI20 0000000000000000 .data + 4 000000000000001c 0000000300000048 R_LARCH_PCALA_LO12 0000000000000000 .data + 4 0000000000000028 0000000500000042 R_LARCH_B26 0000000000000000 .text.another + 0 Relocation section '.rela.eh_frame' at offset 0x318 contains 2 entries: Offset Info Type Symbol's Value Symbol's Name + Addend 000000000000001c 0000000500000063 R_LARCH_32_PCREL 0000000000000000 .text.another + 0 000000000000003c 0000000200000063 R_LARCH_32_PCREL 0000000000000000 .text + 0 ``` Reviewed By: SixWeining, MaskRay Differential Revision: https://reviews.llvm.org/D137384
This commit is contained in:
parent
4787a48b96
commit
b18cdeac79
|
@ -24,13 +24,6 @@ public:
|
|||
|
||||
~LoongArchELFObjectWriter() override;
|
||||
|
||||
// Return true if the given relocation must be with a symbol rather than
|
||||
// section plus offset.
|
||||
bool needsRelocateWithSymbol(const MCSymbol &Sym,
|
||||
unsigned Type) const override {
|
||||
return true;
|
||||
}
|
||||
|
||||
protected:
|
||||
unsigned getRelocType(MCContext &Ctx, const MCValue &Target,
|
||||
const MCFixup &Fixup, bool IsPCRel) const override;
|
||||
|
|
|
@ -10,5 +10,5 @@ func:
|
|||
.cfi_endproc
|
||||
|
||||
# CHECK: Section (4) .rela.eh_frame {
|
||||
# CHECK-NEXT: 0x1C R_LARCH_32_PCREL - 0x0
|
||||
# CHECK-NEXT: 0x1C R_LARCH_32_PCREL .text 0x0
|
||||
# CHECK-NEXT: }
|
||||
|
|
Loading…
Reference in New Issue