[lld] r247795 - [Mips] Do not show an error if R_MIPS_GPREL32 relocation has a non-local target
Simon Atanasyan via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 16 06:36:25 PDT 2015
Author: atanasyan
Date: Wed Sep 16 08:36:24 2015
New Revision: 247795
URL: http://llvm.org/viewvc/llvm-project?rev=247795&view=rev
Log:
[Mips] Do not show an error if R_MIPS_GPREL32 relocation has a non-local target
This matches GNU linker behaviour.
Removed:
lld/trunk/test/elf/Mips/validate-rel-02.test
Modified:
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp?rev=247795&r1=247794&r2=247795&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp Wed Sep 16 08:36:24 2015
@@ -915,16 +915,6 @@ make_reject_for_shared_lib_reloc_error(c
}
static std::error_code
-make_external_gprel32_reloc_error(const ELFLinkingContext &ctx,
- const DefinedAtom &atom,
- const Reference &ref) {
- return make_dynamic_error_code(
- "R_MIPS_GPREL32 (12) relocation cannot be used "
- "against external symbol " +
- ref.target()->name() + " in file " + atom.file().path());
-}
-
-static std::error_code
make_local_call16_reloc_error(const ELFLinkingContext &ctx,
const DefinedAtom &atom, const Reference &ref) {
return make_dynamic_error_code("R_MIPS_CALL16 (11) relocation cannot be used "
@@ -940,9 +930,6 @@ RelocationPass<ELFT>::validateRelocation
if (!ref.target())
return std::error_code();
- if (ref.kindValue() == R_MIPS_GPREL32 && !isLocal(ref.target()))
- return make_external_gprel32_reloc_error(this->_ctx, atom, ref);
-
if (isCallReloc(ref.kindValue()) && isLocal(ref.target()))
return make_local_call16_reloc_error(this->_ctx, atom, ref);
Removed: lld/trunk/test/elf/Mips/validate-rel-02.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/Mips/validate-rel-02.test?rev=247794&view=auto
==============================================================================
--- lld/trunk/test/elf/Mips/validate-rel-02.test (original)
+++ lld/trunk/test/elf/Mips/validate-rel-02.test (removed)
@@ -1,41 +0,0 @@
-# Check that the linker does not accept R_MIPS_GPREL32 relocation
-# against external symbol.
-
-# RUN: yaml2obj -format=elf -docnum 1 %s > %t.o
-# RUN: not lld -flavor gnu -target mipsel -e T0 -o %t.exe %t.o 2>&1 \
-# RUN: | FileCheck %s
-
-# CHECK: R_MIPS_GPREL32 (12) relocation cannot be used against external symbol T0 in file {{.*}}validate-rel-02.test.tmp.o
-
----
-FileHeader:
- Class: ELFCLASS32
- Data: ELFDATA2LSB
- Type: ET_REL
- Machine: EM_MIPS
- Flags: [EF_MIPS_CPIC, EF_MIPS_ABI_O32, EF_MIPS_ARCH_32]
-
-Sections:
- - Name: .text
- Type: SHT_PROGBITS
- Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
- AddressAlign: 16
- Size: 4
-
- - Name: .rel.text
- Type: SHT_REL
- Link: .symtab
- AddressAlign: 4
- Info: .text
- Relocations:
- - Offset: 0
- Symbol: T0
- Type: R_MIPS_GPREL32
-
-Symbols:
- Global:
- - Name: T0
- Type: STT_FUNC
- Section: .text
- Size: 4
-...
More information about the llvm-commits
mailing list