<p dir="ltr"><br>
On Jan 7, 2016 2:50 PM, "Rui Ueyama via llvm-commits" <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
><br>
> ruiu created this revision.<br>
> ruiu added a reviewer: grimar.<br>
> ruiu added a subscriber: llvm-commits.<br>
><br>
> R_X86_64_PLT32 is handled in the same way as R_X86_64_PC32 by<br>
> relocateOne(), so this function does not seems to be needed.<br>
> Without this code, all tests still pass.<br>
><br>
> <a href="http://reviews.llvm.org/D15971">http://reviews.llvm.org/D15971</a><br>
></p>
<p dir="ltr">lgtm</p>
<p dir="ltr">> Files:<br>
>   ELF/InputSection.cpp<br>
>   ELF/Target.cpp<br>
>   ELF/Target.h<br>
><br>
> Index: ELF/Target.h<br>
> ===================================================================<br>
> --- ELF/Target.h<br>
> +++ ELF/Target.h<br>
> @@ -45,7 +45,6 @@<br>
>    virtual bool isTlsDynReloc(unsigned Type, const SymbolBody &S) const {<br>
>      return false;<br>
>    }<br>
> -  virtual unsigned getPltRefReloc(unsigned Type) const;<br>
>    virtual unsigned getTlsGotReloc(unsigned Type = -1) const {<br>
>      return TlsGotReloc;<br>
>    }<br>
> Index: ELF/Target.cpp<br>
> ===================================================================<br>
> --- ELF/Target.cpp<br>
> +++ ELF/Target.cpp<br>
> @@ -122,7 +122,6 @@<br>
>  class X86_64TargetInfo final : public TargetInfo {<br>
>  public:<br>
>    X86_64TargetInfo();<br>
> -  unsigned getPltRefReloc(unsigned Type) const override;<br>
>    bool isTlsDynReloc(unsigned Type, const SymbolBody &S) const override;<br>
>    void writeGotPltHeaderEntries(uint8_t *Buf) const override;<br>
>    void writeGotPltEntry(uint8_t *Buf, uint64_t Plt) const override;<br>
> @@ -176,7 +175,6 @@<br>
>  public:<br>
>    AArch64TargetInfo();<br>
>    unsigned getDynReloc(unsigned Type) const override;<br>
> -  unsigned getPltRefReloc(unsigned Type) const override;<br>
>    void writeGotPltEntry(uint8_t *Buf, uint64_t Plt) const override;<br>
>    void writePltZeroEntry(uint8_t *Buf, uint64_t GotEntryAddr,<br>
>                           uint64_t PltEntryAddr) const override;<br>
> @@ -265,8 +263,6 @@<br>
><br>
>  bool TargetInfo::isGotRelative(uint32_t Type) const { return false; }<br>
><br>
> -unsigned TargetInfo::getPltRefReloc(unsigned Type) const { return PCRelReloc; }<br>
> -<br>
>  bool TargetInfo::isRelRelative(uint32_t Type) const { return true; }<br>
><br>
>  bool TargetInfo::isSizeDynReloc(uint32_t Type, const SymbolBody &S) const {<br>
> @@ -657,12 +653,6 @@<br>
>    return Type == R_X86_64_GOTTPOFF || Type == R_X86_64_TLSGD;<br>
>  }<br>
><br>
> -unsigned X86_64TargetInfo::getPltRefReloc(unsigned Type) const {<br>
> -  if (Type == R_X86_64_PLT32)<br>
> -    return R_X86_64_PC32;<br>
> -  return Type;<br>
> -}<br>
> -<br>
>  bool X86_64TargetInfo::relocNeedsPlt(uint32_t Type, const SymbolBody &S) const {<br>
>    if (needsCopyRel(Type, S))<br>
>      return false;<br>
> @@ -1157,8 +1147,6 @@<br>
>                              "recompile with -fPIC.");<br>
>  }<br>
><br>
> -unsigned AArch64TargetInfo::getPltRefReloc(unsigned Type) const { return Type; }<br>
> -<br>
>  void AArch64TargetInfo::writeGotPltEntry(uint8_t *Buf, uint64_t Plt) const {<br>
>    write64le(Buf, Out<ELF64LE>::Plt->getVA());<br>
>  }<br>
> Index: ELF/InputSection.cpp<br>
> ===================================================================<br>
> --- ELF/InputSection.cpp<br>
> +++ ELF/InputSection.cpp<br>
> @@ -211,7 +211,6 @@<br>
>      uintX_t SymVA = getSymVA<ELFT>(*Body);<br>
>      if (Target->relocNeedsPlt(Type, *Body)) {<br>
>        SymVA = Out<ELFT>::Plt->getEntryAddr(*Body);<br>
> -      Type = Target->getPltRefReloc(Type);<br>
>      } else if (Target->relocNeedsGot(Type, *Body)) {<br>
>        SymVA = Out<ELFT>::Got->getEntryAddr(*Body);<br>
>        if (Body->isTls())<br>
><br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
><br>
</p>