<div dir="ltr">lld started mislinking llvm-tblgen on Linux x86-64 after this commit. I honestly have no idea why this innocent-looking patch could cause that failure. Do you have any idea?</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 28, 2015 at 8:37 AM, Greg Fitzgerald <span dir="ltr"><<a href="mailto:garious@gmail.com" target="_blank">garious@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: garious<br>
Date: Wed Jan 28 10:37:43 2015<br>
New Revision: 227320<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=227320&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=227320&view=rev</a><br>
Log:<br>
Remove PPC ELF target<br>
<br>
Differential Revision: <a href="http://reviews.llvm.org/D7225" target="_blank">http://reviews.llvm.org/D7225</a><br>
<br>
Removed:<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp<br>
    lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h<br>
    lld/trunk/test/elf/ppc.test<br>
Modified:<br>
    lld/trunk/include/lld/ReaderWriter/ELFTargets.h<br>
    lld/trunk/lib/Driver/CMakeLists.txt<br>
    lld/trunk/lib/Driver/GnuLdDriver.cpp<br>
    lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt<br>
    lld/trunk/lib/ReaderWriter/ELF/Makefile<br>
    lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile<br>
    lld/trunk/tools/lld/Makefile<br>
<br>
Modified: lld/trunk/include/lld/ReaderWriter/ELFTargets.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFTargets.h?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFTargets.h?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/include/lld/ReaderWriter/ELFTargets.h (original)<br>
+++ lld/trunk/include/lld/ReaderWriter/ELFTargets.h Wed Jan 28 10:37:43 2015<br>
@@ -26,7 +26,6 @@ LLVM_TARGET(AArch64)<br>
 LLVM_TARGET(ARM)<br>
 LLVM_TARGET(Hexagon)<br>
 LLVM_TARGET(Mips)<br>
-LLVM_TARGET(PPC)<br>
 LLVM_TARGET(X86)<br>
 LLVM_TARGET(X86_64)<br>
<br>
<br>
Modified: lld/trunk/lib/Driver/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/CMakeLists.txt?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/CMakeLists.txt?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/Driver/CMakeLists.txt (original)<br>
+++ lld/trunk/lib/Driver/CMakeLists.txt Wed Jan 28 10:37:43 2015<br>
@@ -28,7 +28,6 @@ add_llvm_library(lldDriver<br>
     lldARMELFTarget<br>
     lldHexagonELFTarget<br>
     lldMipsELFTarget<br>
-    lldPPCELFTarget<br>
     lldX86ELFTarget<br>
     lldX86_64ELFTarget<br>
     lldCore<br>
<br>
Modified: lld/trunk/lib/Driver/GnuLdDriver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/Driver/GnuLdDriver.cpp (original)<br>
+++ lld/trunk/lib/Driver/GnuLdDriver.cpp Wed Jan 28 10:37:43 2015<br>
@@ -329,7 +329,6 @@ createELFLinkingContext(llvm::Triple tri<br>
   LLVM_TARGET(ARM)<br>
   LLVM_TARGET(Hexagon)<br>
   LLVM_TARGET(Mips)<br>
-  LLVM_TARGET(PPC)<br>
   LLVM_TARGET(X86)<br>
   LLVM_TARGET(X86_64)<br>
   return nullptr;<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt Wed Jan 28 10:37:43 2015<br>
@@ -14,7 +14,6 @@ include_directories(.)<br>
<br>
 add_subdirectory(X86)<br>
 add_subdirectory(X86_64)<br>
-add_subdirectory(PPC)<br>
 add_subdirectory(Mips)<br>
 add_subdirectory(Hexagon)<br>
 add_subdirectory(AArch64)<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/ELF/Makefile<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Makefile?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Makefile?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/Makefile (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/Makefile Wed Jan 28 10:37:43 2015<br>
@@ -14,6 +14,6 @@ USEDLIBS = lldPasses.a<br>
 CPP.Flags += -I$(PROJ_SRC_DIR)/$(LLD_LEVEL)/lib/ReaderWriter/ELF<br>
<br>
 # these link against this lib<br>
-PARALLEL_DIRS := Hexagon PPC X86 X86_64 Mips AArch64 ARM<br>
+PARALLEL_DIRS := Hexagon X86 X86_64 Mips AArch64 ARM<br>
<br>
 include $(LLD_LEVEL)/Makefile<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile Wed Jan 28 10:37:43 2015<br>
@@ -1,4 +1,4 @@<br>
-##===- lld/lib/ReaderWriter/ELF/PPC/Makefile ----------*- Makefile -*-===##<br>
+##===- lld/lib/ReaderWriter/ELF/Mips/Makefile ----------*- Makefile -*-===##<br>
 #<br>
 #                     The LLVM Compiler Infrastructure<br>
 #<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt (removed)<br>
@@ -1,9 +0,0 @@<br>
-add_llvm_library(lldPPCELFTarget<br>
-  PPCLinkingContext.cpp<br>
-  PPCTargetHandler.cpp<br>
-  LINK_LIBS<br>
-    lldCore<br>
-    lldELF<br>
-    LLVMObject<br>
-    LLVMSupport<br>
-  )<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile (removed)<br>
@@ -1,15 +0,0 @@<br>
-##===- lld/lib/ReaderWriter/ELF/PPC/Makefile ----------*- Makefile -*-===##<br>
-#<br>
-#                     The LLVM Compiler Infrastructure<br>
-#<br>
-# This file is distributed under the University of Illinois Open Source<br>
-# License. See LICENSE.TXT for details.<br>
-#<br>
-##===----------------------------------------------------------------------===##<br>
-<br>
-LLD_LEVEL := ../../../..<br>
-LIBRARYNAME := lldPPCELFTarget<br>
-USEDLIBS = lldCore.a<br>
-CPP.Flags += -I$(PROJ_SRC_DIR)/$(LLD_LEVEL)/lib/ReaderWriter/ELF<br>
-<br>
-include $(LLD_LEVEL)/Makefile<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h (removed)<br>
@@ -1,41 +0,0 @@<br>
-//===- lib/ReaderWriter/ELF/PPCELFFile.h -------------------------------===//<br>
-//<br>
-//                             The LLVM Linker<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLD_READER_WRITER_ELF_PPC_ELF_FILE_H<br>
-#define LLD_READER_WRITER_ELF_PPC_ELF_FILE_H<br>
-<br>
-#include "ELFReader.h"<br>
-<br>
-namespace lld {<br>
-namespace elf {<br>
-<br>
-class PPCLinkingContext;<br>
-<br>
-template <class ELFT> class PPCELFFile : public ELFFile<ELFT> {<br>
-public:<br>
-  PPCELFFile(std::unique_ptr<MemoryBuffer> mb, bool atomizeStrings)<br>
-      : ELFFile<ELFT>(std::move(mb), atomizeStrings) {}<br>
-<br>
-  static ErrorOr<std::unique_ptr<PPCELFFile>><br>
-  create(std::unique_ptr<MemoryBuffer> mb, bool atomizeStrings) {<br>
-    return std::unique_ptr<PPCELFFile<ELFT>>(<br>
-        new PPCELFFile<ELFT>(std::move(mb), atomizeStrings));<br>
-  }<br>
-};<br>
-<br>
-template <class ELFT> class PPCDynamicFile : public DynamicFile<ELFT> {<br>
-public:<br>
-  PPCDynamicFile(const PPCLinkingContext &context, StringRef name)<br>
-      : DynamicFile<ELFT>(context, name) {}<br>
-};<br>
-<br>
-} // elf<br>
-} // lld<br>
-<br>
-#endif // LLD_READER_WRITER_ELF_PPC_ELF_FILE_H<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h (removed)<br>
@@ -1,60 +0,0 @@<br>
-//===- lib/ReaderWriter/ELF/PPC/PPCELFReader.h ----------------------------===//<br>
-//<br>
-//                             The LLVM Linker<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLD_READER_WRITER_PPC_PPC_ELF_READER_H<br>
-#define LLD_READER_WRITER_PPC_PPC_ELF_READER_H<br>
-<br>
-#include "ELFReader.h"<br>
-#include "PPCELFFile.h"<br>
-<br>
-namespace lld {<br>
-namespace elf {<br>
-<br>
-typedef llvm::object::ELFType<llvm::support::big, 2, false> PPCELFType;<br>
-<br>
-struct PPCDynamicFileCreateELFTraits {<br>
-  typedef llvm::ErrorOr<std::unique_ptr<lld::SharedLibraryFile>> result_type;<br>
-<br>
-  template <class ELFT><br>
-  static result_type create(std::unique_ptr<llvm::MemoryBuffer> mb,<br>
-                            bool useUndefines) {<br>
-    return lld::elf::PPCDynamicFile<ELFT>::create(std::move(mb), useUndefines);<br>
-  }<br>
-};<br>
-<br>
-struct PPCELFFileCreateELFTraits {<br>
-  typedef llvm::ErrorOr<std::unique_ptr<lld::File>> result_type;<br>
-<br>
-  template <class ELFT><br>
-  static result_type create(std::unique_ptr<llvm::MemoryBuffer> mb,<br>
-                            bool atomizeStrings) {<br>
-    return lld::elf::PPCELFFile<ELFT>::create(std::move(mb), atomizeStrings);<br>
-  }<br>
-};<br>
-<br>
-class PPCELFObjectReader<br>
-    : public ELFObjectReader<PPCELFType, PPCELFFileCreateELFTraits> {<br>
-public:<br>
-  PPCELFObjectReader(bool atomizeStrings)<br>
-      : ELFObjectReader<PPCELFType, PPCELFFileCreateELFTraits>(<br>
-            atomizeStrings, llvm::ELF::EM_PPC) {}<br>
-};<br>
-<br>
-class PPCELFDSOReader<br>
-    : public ELFDSOReader<PPCELFType, PPCDynamicFileCreateELFTraits> {<br>
-public:<br>
-  PPCELFDSOReader(bool useUndefines)<br>
-      : ELFDSOReader<PPCELFType, PPCDynamicFileCreateELFTraits>(<br>
-            useUndefines, llvm::ELF::EM_PPC) {}<br>
-};<br>
-<br>
-} // namespace elf<br>
-} // namespace lld<br>
-<br>
-#endif // LLD_READER_WRITER_PPC_PPC_ELF_READER_H<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp (removed)<br>
@@ -1,29 +0,0 @@<br>
-//===- lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp ---------------------===//<br>
-//<br>
-//                             The LLVM Linker<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#include "PPCLinkingContext.h"<br>
-#include "PPCTargetHandler.h"<br>
-#include "lld/Core/LLVM.h"<br>
-#include "llvm/ADT/StringSwitch.h"<br>
-#include "llvm/Support/ErrorOr.h"<br>
-<br>
-using namespace lld;<br>
-<br>
-std::unique_ptr<ELFLinkingContext><br>
-elf::PPCLinkingContext::create(llvm::Triple triple) {<br>
-  if (triple.getArch() == llvm::Triple::ppc)<br>
-    return std::unique_ptr<ELFLinkingContext>(<br>
-             new elf::PPCLinkingContext(triple));<br>
-  return nullptr;<br>
-}<br>
-<br>
-elf::PPCLinkingContext::PPCLinkingContext(llvm::Triple triple)<br>
-    : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
-                        new PPCTargetHandler(*this))) {}<br>
-<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h (removed)<br>
@@ -1,32 +0,0 @@<br>
-//===- lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h -----------------------===//<br>
-//<br>
-//                             The LLVM Linker<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLD_READER_WRITER_ELF_PPC_PPC_LINKING_CONTEXT_H<br>
-#define LLD_READER_WRITER_ELF_PPC_PPC_LINKING_CONTEXT_H<br>
-<br>
-#include "lld/ReaderWriter/ELFLinkingContext.h"<br>
-#include "llvm/Object/ELF.h"<br>
-#include "llvm/Support/ELF.h"<br>
-<br>
-namespace lld {<br>
-namespace elf {<br>
-<br>
-class PPCLinkingContext final : public ELFLinkingContext {<br>
-public:<br>
-  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
-  PPCLinkingContext(llvm::Triple triple);<br>
-<br>
-  /// \brief PPC has no relative relocations defined<br>
-  bool isRelativeReloc(const Reference &) const override { return false; }<br>
-};<br>
-<br>
-} // elf<br>
-} // lld<br>
-<br>
-#endif // LLD_READER_WRITER_ELF_PPC_PPC_LINKING_CONTEXT_H<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp (removed)<br>
@@ -1,93 +0,0 @@<br>
-//===- lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp ----------------------===//<br>
-//<br>
-//                             The LLVM Linker<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#include "PPCTargetHandler.h"<br>
-#include "PPCLinkingContext.h"<br>
-<br>
-using namespace lld;<br>
-using namespace elf;<br>
-<br>
-using namespace llvm::ELF;<br>
-<br>
-/// \brief The following relocation routines are derived from the<br>
-///  SYSTEM V APPLICATION BINARY INTERFACE: PowerPC Processor Supplement<br>
-/// Symbols used:<br>
-///  A: Added used to compute the value, r_addend<br>
-///  P: Place address of the field being relocated, r_offset<br>
-///  S: Value of the symbol whose index resides in the relocation entry.<br>
-<br>
-/// \brief low24 (S + A - P) >> 2 : Verify<br>
-static int relocB24PCREL(uint8_t *location, uint64_t P, uint64_t S,<br>
-                         uint64_t A) {<br>
-  int32_t result = (uint32_t)(((S + A) - P));<br>
-  if ((result < 0x1000000) && (result > -0x1000000)) {<br>
-    result &= ~-(0x1000000);<br>
-    *reinterpret_cast<llvm::support::ubig32_t *>(location) = result |<br>
-               (uint32_t)*reinterpret_cast<llvm::support::ubig32_t *>(location);<br>
-    return 0;<br>
-  }<br>
-  return 1;<br>
-}<br>
-<br>
-std::error_code PPCTargetRelocationHandler::applyRelocation(<br>
-    ELFWriter &writer, llvm::FileOutputBuffer &buf, const lld::AtomLayout &atom,<br>
-    const Reference &ref) const {<br>
-  uint8_t *atomContent = buf.getBufferStart() + atom._fileOffset;<br>
-  uint8_t *location = atomContent + ref.offsetInAtom();<br>
-  uint64_t targetVAddress = writer.addressOfAtom(ref.target());<br>
-  uint64_t relocVAddress = atom._virtualAddr + ref.offsetInAtom();<br>
-<br>
-  if (ref.kindNamespace() != Reference::KindNamespace::ELF)<br>
-    return std::error_code();<br>
-  assert(ref.kindArch() == Reference::KindArch::PowerPC);<br>
-  switch (ref.kindValue()) {<br>
-  case R_PPC_REL24:<br>
-    relocB24PCREL(location, relocVAddress, targetVAddress, ref.addend());<br>
-    break;<br>
-<br>
-  default:<br>
-    return make_unhandled_reloc_error();<br>
-  }<br>
-<br>
-  return std::error_code();<br>
-}<br>
-<br>
-PPCTargetHandler::PPCTargetHandler(PPCLinkingContext &context)<br>
-    : _ppcLinkingContext(context),<br>
-      _ppcTargetLayout(new PPCTargetLayout<PPCELFType>(context)),<br>
-      _ppcRelocationHandler(new PPCTargetRelocationHandler()) {}<br>
-<br>
-void PPCTargetHandler::registerRelocationNames(Registry &registry) {<br>
-  registry.addKindTable(Reference::KindNamespace::ELF,<br>
-                        Reference::KindArch::PowerPC, kindStrings);<br>
-}<br>
-<br>
-std::unique_ptr<Writer> PPCTargetHandler::getWriter() {<br>
-  switch (_ppcLinkingContext.getOutputELFType()) {<br>
-  case llvm::ELF::ET_EXEC:<br>
-    return std::unique_ptr<Writer>(new elf::ExecutableWriter<PPCELFType>(<br>
-        _ppcLinkingContext, *_ppcTargetLayout.get()));<br>
-  case llvm::ELF::ET_DYN:<br>
-    return std::unique_ptr<Writer>(new elf::DynamicLibraryWriter<PPCELFType>(<br>
-        _ppcLinkingContext, *_ppcTargetLayout.get()));<br>
-  case llvm::ELF::ET_REL:<br>
-    llvm_unreachable("TODO: support -r mode");<br>
-  default:<br>
-    llvm_unreachable("unsupported output type");<br>
-  }<br>
-}<br>
-<br>
-#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name),<br>
-<br>
-const Registry::KindStrings PPCTargetHandler::kindStrings[] = {<br>
-#include "llvm/Support/ELFRelocs/PowerPC.def"<br>
-  LLD_KIND_STRING_END<br>
-};<br>
-<br>
-#undef ELF_RELOC<br>
<br>
Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h (removed)<br>
@@ -1,67 +0,0 @@<br>
-//===- lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h ------------------------===//<br>
-//<br>
-//                             The LLVM Linker<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLD_READER_WRITER_ELF_PPC_PPC_TARGET_HANDLER_H<br>
-#define LLD_READER_WRITER_ELF_PPC_PPC_TARGET_HANDLER_H<br>
-<br>
-#include "DefaultTargetHandler.h"<br>
-#include "PPCELFReader.h"<br>
-#include "TargetLayout.h"<br>
-<br>
-namespace lld {<br>
-namespace elf {<br>
-class PPCLinkingContext;<br>
-<br>
-template <class ELFT> class PPCTargetLayout : public TargetLayout<ELFT> {<br>
-public:<br>
-  PPCTargetLayout(PPCLinkingContext &context) : TargetLayout<ELFT>(context) {}<br>
-};<br>
-<br>
-class PPCTargetRelocationHandler final : public TargetRelocationHandler {<br>
-public:<br>
-  std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,<br>
-                                  const lld::AtomLayout &,<br>
-                                  const Reference &) const override;<br>
-};<br>
-<br>
-class PPCTargetHandler final<br>
-    : public DefaultTargetHandler<PPCELFType> {<br>
-public:<br>
-  PPCTargetHandler(PPCLinkingContext &context);<br>
-<br>
-  PPCTargetLayout<PPCELFType> &getTargetLayout() override {<br>
-    return *(_ppcTargetLayout.get());<br>
-  }<br>
-<br>
-  void registerRelocationNames(Registry &registry) override;<br>
-<br>
-  const PPCTargetRelocationHandler &getRelocationHandler() const override {<br>
-    return *(_ppcRelocationHandler.get());<br>
-  }<br>
-<br>
-  std::unique_ptr<Reader> getObjReader(bool atomizeStrings) override {<br>
-    return std::unique_ptr<Reader>(new PPCELFObjectReader(atomizeStrings));<br>
-  }<br>
-<br>
-  std::unique_ptr<Reader> getDSOReader(bool useShlibUndefines) override {<br>
-    return std::unique_ptr<Reader>(new PPCELFDSOReader(useShlibUndefines));<br>
-  }<br>
-<br>
-  std::unique_ptr<Writer> getWriter() override;<br>
-<br>
-private:<br>
-  static const Registry::KindStrings kindStrings[];<br>
-  PPCLinkingContext &_ppcLinkingContext;<br>
-  std::unique_ptr<PPCTargetLayout<PPCELFType>> _ppcTargetLayout;<br>
-  std::unique_ptr<PPCTargetRelocationHandler> _ppcRelocationHandler;<br>
-};<br>
-} // end namespace elf<br>
-} // end namespace lld<br>
-<br>
-#endif<br>
<br>
Removed: lld/trunk/test/elf/ppc.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ppc.test?rev=227319&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ppc.test?rev=227319&view=auto</a><br>
==============================================================================<br>
--- lld/trunk/test/elf/ppc.test (original)<br>
+++ lld/trunk/test/elf/ppc.test (removed)<br>
@@ -1,14 +0,0 @@<br>
-RUN: lld -flavor gnu -target powerpc  %p/Inputs/branch-test.ppc %p/Inputs/target-test.ppc -o %t1 --noinhibit-exec<br>
-RUN: llvm-readobj -h %t1 |  FileCheck -check-prefix=ppc-readobj %s<br>
-<br>
-<br>
-ppc-readobj: ElfHeader {<br>
-ppc-readobj:   Ident {<br>
-ppc-readobj:     Class: 32-bit (0x1)<br>
-ppc-readobj:     DataEncoding: BigEndian (0x2)<br>
-ppc-readobj:     FileVersion: 1<br>
-ppc-readobj:     OS/ABI: SystemV (0x0)<br>
-ppc-readobj:     ABIVersion: 0<br>
-ppc-readobj:   }<br>
-ppc-readobj:   Type: Executable (0x2)<br>
-ppc-readobj:   Machine: EM_PPC (0x14)<br>
<br>
Modified: lld/trunk/tools/lld/Makefile<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/tools/lld/Makefile?rev=227320&r1=227319&r2=227320&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/tools/lld/Makefile?rev=227320&r1=227319&r2=227320&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/tools/lld/Makefile (original)<br>
+++ lld/trunk/tools/lld/Makefile Wed Jan 28 10:37:43 2015<br>
@@ -22,7 +22,7 @@ LINK_COMPONENTS := $(TARGETS_TO_BUILD)<br>
 USEDLIBS = lldDriver.a lldConfig.a \<br>
            lldELF.a lldMachO.a lldPasses.a lldPECOFF.a lldYAML.a \<br>
            lldReaderWriter.a lldCore.a lldNative.a \<br>
-           lldHexagonELFTarget.a lldPPCELFTarget.a lldMipsELFTarget.a \<br>
+           lldHexagonELFTarget.a lldMipsELFTarget.a \<br>
            lldX86ELFTarget.a lldX86_64ELFTarget.a lldAArch64ELFTarget.a \<br>
            lldARMELFTarget.a \<br>
            LLVMOption.a<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>