[PATCH] D13835: [ELF2] - Implemented R_X86_64_PLT32 rellocation.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 16 16:23:14 PDT 2015


grimar added inline comments.

================
Comment at: ELF/Target.cpp:314-316
@@ -313,2 +313,5 @@
   }
+  case R_X86_64_PLT32:
+    write32le(Loc, SA - BaseAddr - Offset);
+    break;
   default:
----------------
grimar wrote:
> ruiu wrote:
> > Your test does not seem to cover this code. (I just run your test without applying this code, and it didn't die with "unrecognized reloc" error defined below, so a relocation with R_x86_64_PLT32 did not reach this function.)
> Without applying this code this relocations are handled in another branch and consumed by:
>  
> 
> 
> void InputSection<ELFT>::relocate(
> ....
>     if (Target->relocNeedsPlt(Type, Body)) {                <--- here
>       SymVA = Out<ELFT>::Plt->getEntryAddr(Body);
>       Type = Target->getPLTRefReloc(Type);
>     } 
> 
> but since my case does not need plt then execution moves forward to relocateOne() and fails there without R_X86_64_PLT32 handler.
Does not need PLT for _start I mean.


http://reviews.llvm.org/D13835





More information about the llvm-commits mailing list