[lld] r227320 - Remove PPC ELF target

Rui Ueyama ruiu at google.com
Mon Feb 2 09:58:33 PST 2015


Oh sorry, I have already started working on __thread so please hold on.

On Mon, Feb 2, 2015 at 8:22 AM, Shankar Easwaran <shankare at codeaurora.org>
wrote:

>  Thanks for the Info. I will triage the issue and fix it sometime soon.
>
> Shankar Easwaran
>
>
> On 1/30/2015 6:47 PM, Rui Ueyama wrote:
>
> Alright, so r227300 added a use of __thread to LLVM, and that was the first
> and only line in LLVM to use that feature. I'ts a C++11 feature. LLD needs
> to handle the thread local storage correctly.
>
> For now, in order to link LLVM with LLD, you've got to set
> LLVM_ENABLE_BACKTRACES=OFF to exclude that line.
>
> On Fri, Jan 30, 2015 at 4:36 PM, Rui Ueyama <ruiu at google.com> <ruiu at google.com> wrote:
>
>
>  It was not actually caused by this change, but by a change to LLVM
> submitted almost at the same time as this change. The culprit is
>
> r227300 - [LPM] Rip all of ManagedStatic and ThreadLocal out of the pretty
> stack
>
> Still investigating...
>
> On Fri, Jan 30, 2015 at 3:00 PM, Rui Ueyama <ruiu at google.com> <ruiu at google.com> wrote:
>
>
>  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?
>
> On Wed, Jan 28, 2015 at 8:37 AM, Greg Fitzgerald <garious at gmail.com> <garious at gmail.com>
> wrote:
>
>
>  Author: garious
> Date: Wed Jan 28 10:37:43 2015
> New Revision: 227320
>
> URL: http://llvm.org/viewvc/llvm-project?rev=227320&view=rev
> Log:
> Remove PPC ELF target
>
> Differential Revision: http://reviews.llvm.org/D7225
>
> Removed:
>     lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt
>     lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile
>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h
>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h
>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp
>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h
>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp
>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h
>     lld/trunk/test/elf/ppc.test
> Modified:
>     lld/trunk/include/lld/ReaderWriter/ELFTargets.h
>     lld/trunk/lib/Driver/CMakeLists.txt
>     lld/trunk/lib/Driver/GnuLdDriver.cpp
>     lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt
>     lld/trunk/lib/ReaderWriter/ELF/Makefile
>     lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile
>     lld/trunk/tools/lld/Makefile
>
> Modified: lld/trunk/include/lld/ReaderWriter/ELFTargets.h
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFTargets.h?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/include/lld/ReaderWriter/ELFTargets.h (original)
> +++ lld/trunk/include/lld/ReaderWriter/ELFTargets.h Wed Jan 28 10:37:43
> 2015
> @@ -26,7 +26,6 @@ LLVM_TARGET(AArch64)
>  LLVM_TARGET(ARM)
>  LLVM_TARGET(Hexagon)
>  LLVM_TARGET(Mips)
> -LLVM_TARGET(PPC)
>  LLVM_TARGET(X86)
>  LLVM_TARGET(X86_64)
>
>
> Modified: lld/trunk/lib/Driver/CMakeLists.txt
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/CMakeLists.txt?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/Driver/CMakeLists.txt (original)
> +++ lld/trunk/lib/Driver/CMakeLists.txt Wed Jan 28 10:37:43 2015
> @@ -28,7 +28,6 @@ add_llvm_library(lldDriver
>      lldARMELFTarget
>      lldHexagonELFTarget
>      lldMipsELFTarget
> -    lldPPCELFTarget
>      lldX86ELFTarget
>      lldX86_64ELFTarget
>      lldCore
>
> Modified: lld/trunk/lib/Driver/GnuLdDriver.cpp
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/Driver/GnuLdDriver.cpp (original)
> +++ lld/trunk/lib/Driver/GnuLdDriver.cpp Wed Jan 28 10:37:43 2015
> @@ -329,7 +329,6 @@ createELFLinkingContext(llvm::Triple tri
>    LLVM_TARGET(ARM)
>    LLVM_TARGET(Hexagon)
>    LLVM_TARGET(Mips)
> -  LLVM_TARGET(PPC)
>    LLVM_TARGET(X86)
>    LLVM_TARGET(X86_64)
>    return nullptr;
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt Wed Jan 28 10:37:43
> 2015
> @@ -14,7 +14,6 @@ include_directories(.)
>
>  add_subdirectory(X86)
>  add_subdirectory(X86_64)
> -add_subdirectory(PPC)
>  add_subdirectory(Mips)
>  add_subdirectory(Hexagon)
>  add_subdirectory(AArch64)
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/Makefile
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Makefile?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Makefile (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/Makefile Wed Jan 28 10:37:43 2015
> @@ -14,6 +14,6 @@ USEDLIBS = lldPasses.a
>  CPP.Flags += -I$(PROJ_SRC_DIR)/$(LLD_LEVEL)/lib/ReaderWriter/ELF
>
>  # these link against this lib
> -PARALLEL_DIRS := Hexagon PPC X86 X86_64 Mips AArch64 ARM
> +PARALLEL_DIRS := Hexagon X86 X86_64 Mips AArch64 ARM
>
>  include $(LLD_LEVEL)/Makefile
>
> Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/Makefile Wed Jan 28 10:37:43 2015
> @@ -1,4 +1,4 @@
> -##===- lld/lib/ReaderWriter/ELF/PPC/Makefile ----------*- Makefile
> -*-===##
> +##===- lld/lib/ReaderWriter/ELF/Mips/Makefile ----------*- Makefile
> -*-===##
>  #
>  #                     The LLVM Compiler Infrastructure
>  #
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt (removed)
> @@ -1,9 +0,0 @@
> -add_llvm_library(lldPPCELFTarget
> -  PPCLinkingContext.cpp
> -  PPCTargetHandler.cpp
> -  LINK_LIBS
> -    lldCore
> -    lldELF
> -    LLVMObject
> -    LLVMSupport
> -  )
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/Makefile (removed)
> @@ -1,15 +0,0 @@
> -##===- lld/lib/ReaderWriter/ELF/PPC/Makefile ----------*- Makefile
> -*-===##
> -#
> -#                     The LLVM Compiler Infrastructure
> -#
> -# This file is distributed under the University of Illinois Open Source
> -# License. See LICENSE.TXT for details.
> -#
>
> -##===----------------------------------------------------------------------===##
> -
> -LLD_LEVEL := ../../../..
> -LIBRARYNAME := lldPPCELFTarget
> -USEDLIBS = lldCore.a
> -CPP.Flags += -I$(PROJ_SRC_DIR)/$(LLD_LEVEL)/lib/ReaderWriter/ELF
> -
> -include $(LLD_LEVEL)/Makefile
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFFile.h (removed)
> @@ -1,41 +0,0 @@
> -//===- lib/ReaderWriter/ELF/PPCELFFile.h
> -------------------------------===//
> -//
> -//                             The LLVM Linker
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef LLD_READER_WRITER_ELF_PPC_ELF_FILE_H
> -#define LLD_READER_WRITER_ELF_PPC_ELF_FILE_H
> -
> -#include "ELFReader.h"
> -
> -namespace lld {
> -namespace elf {
> -
> -class PPCLinkingContext;
> -
> -template <class ELFT> class PPCELFFile : public ELFFile<ELFT> {
> -public:
> -  PPCELFFile(std::unique_ptr<MemoryBuffer> mb, bool atomizeStrings)
> -      : ELFFile<ELFT>(std::move(mb), atomizeStrings) {}
> -
> -  static ErrorOr<std::unique_ptr<PPCELFFile>>
> -  create(std::unique_ptr<MemoryBuffer> mb, bool atomizeStrings) {
> -    return std::unique_ptr<PPCELFFile<ELFT>>(
> -        new PPCELFFile<ELFT>(std::move(mb), atomizeStrings));
> -  }
> -};
> -
> -template <class ELFT> class PPCDynamicFile : public DynamicFile<ELFT> {
> -public:
> -  PPCDynamicFile(const PPCLinkingContext &context, StringRef name)
> -      : DynamicFile<ELFT>(context, name) {}
> -};
> -
> -} // elf
> -} // lld
> -
> -#endif // LLD_READER_WRITER_ELF_PPC_ELF_FILE_H
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCELFReader.h (removed)
> @@ -1,60 +0,0 @@
> -//===- lib/ReaderWriter/ELF/PPC/PPCELFReader.h
> ----------------------------===//
> -//
> -//                             The LLVM Linker
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef LLD_READER_WRITER_PPC_PPC_ELF_READER_H
> -#define LLD_READER_WRITER_PPC_PPC_ELF_READER_H
> -
> -#include "ELFReader.h"
> -#include "PPCELFFile.h"
> -
> -namespace lld {
> -namespace elf {
> -
> -typedef llvm::object::ELFType<llvm::support::big, 2, false> PPCELFType;
> -
> -struct PPCDynamicFileCreateELFTraits {
> -  typedef llvm::ErrorOr<std::unique_ptr<lld::SharedLibraryFile>>
> result_type;
> -
> -  template <class ELFT>
> -  static result_type create(std::unique_ptr<llvm::MemoryBuffer> mb,
> -                            bool useUndefines) {
> -    return lld::elf::PPCDynamicFile<ELFT>::create(std::move(mb),
> useUndefines);
> -  }
> -};
> -
> -struct PPCELFFileCreateELFTraits {
> -  typedef llvm::ErrorOr<std::unique_ptr<lld::File>> result_type;
> -
> -  template <class ELFT>
> -  static result_type create(std::unique_ptr<llvm::MemoryBuffer> mb,
> -                            bool atomizeStrings) {
> -    return lld::elf::PPCELFFile<ELFT>::create(std::move(mb),
> atomizeStrings);
> -  }
> -};
> -
> -class PPCELFObjectReader
> -    : public ELFObjectReader<PPCELFType, PPCELFFileCreateELFTraits> {
> -public:
> -  PPCELFObjectReader(bool atomizeStrings)
> -      : ELFObjectReader<PPCELFType, PPCELFFileCreateELFTraits>(
> -            atomizeStrings, llvm::ELF::EM_PPC) {}
> -};
> -
> -class PPCELFDSOReader
> -    : public ELFDSOReader<PPCELFType, PPCDynamicFileCreateELFTraits> {
> -public:
> -  PPCELFDSOReader(bool useUndefines)
> -      : ELFDSOReader<PPCELFType, PPCDynamicFileCreateELFTraits>(
> -            useUndefines, llvm::ELF::EM_PPC) {}
> -};
> -
> -} // namespace elf
> -} // namespace lld
> -
> -#endif // LLD_READER_WRITER_PPC_PPC_ELF_READER_H
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp (removed)
> @@ -1,29 +0,0 @@
> -//===- lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp
> ---------------------===//
> -//
> -//                             The LLVM Linker
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#include "PPCLinkingContext.h"
> -#include "PPCTargetHandler.h"
> -#include "lld/Core/LLVM.h"
> -#include "llvm/ADT/StringSwitch.h"
> -#include "llvm/Support/ErrorOr.h"
> -
> -using namespace lld;
> -
> -std::unique_ptr<ELFLinkingContext>
> -elf::PPCLinkingContext::create(llvm::Triple triple) {
> -  if (triple.getArch() == llvm::Triple::ppc)
> -    return std::unique_ptr<ELFLinkingContext>(
> -             new elf::PPCLinkingContext(triple));
> -  return nullptr;
> -}
> -
> -elf::PPCLinkingContext::PPCLinkingContext(llvm::Triple triple)
> -    : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(
> -                        new PPCTargetHandler(*this))) {}
> -
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h (removed)
> @@ -1,32 +0,0 @@
> -//===- lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h
> -----------------------===//
> -//
> -//                             The LLVM Linker
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef LLD_READER_WRITER_ELF_PPC_PPC_LINKING_CONTEXT_H
> -#define LLD_READER_WRITER_ELF_PPC_PPC_LINKING_CONTEXT_H
> -
> -#include "lld/ReaderWriter/ELFLinkingContext.h"
> -#include "llvm/Object/ELF.h"
> -#include "llvm/Support/ELF.h"
> -
> -namespace lld {
> -namespace elf {
> -
> -class PPCLinkingContext final : public ELFLinkingContext {
> -public:
> -  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
> -  PPCLinkingContext(llvm::Triple triple);
> -
> -  /// \brief PPC has no relative relocations defined
> -  bool isRelativeReloc(const Reference &) const override { return
> false; }
> -};
> -
> -} // elf
> -} // lld
> -
> -#endif // LLD_READER_WRITER_ELF_PPC_PPC_LINKING_CONTEXT_H
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp (removed)
> @@ -1,93 +0,0 @@
> -//===- lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp
> ----------------------===//
> -//
> -//                             The LLVM Linker
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#include "PPCTargetHandler.h"
> -#include "PPCLinkingContext.h"
> -
> -using namespace lld;
> -using namespace elf;
> -
> -using namespace llvm::ELF;
> -
> -/// \brief The following relocation routines are derived from the
> -///  SYSTEM V APPLICATION BINARY INTERFACE: PowerPC Processor Supplement
> -/// Symbols used:
> -///  A: Added used to compute the value, r_addend
> -///  P: Place address of the field being relocated, r_offset
> -///  S: Value of the symbol whose index resides in the relocation entry.
> -
> -/// \brief low24 (S + A - P) >> 2 : Verify
> -static int relocB24PCREL(uint8_t *location, uint64_t P, uint64_t S,
> -                         uint64_t A) {
> -  int32_t result = (uint32_t)(((S + A) - P));
> -  if ((result < 0x1000000) && (result > -0x1000000)) {
> -    result &= ~-(0x1000000);
> -    *reinterpret_cast<llvm::support::ubig32_t *>(location) = result |
> -               (uint32_t)*reinterpret_cast<llvm::support::ubig32_t
> *>(location);
> -    return 0;
> -  }
> -  return 1;
> -}
> -
> -std::error_code PPCTargetRelocationHandler::applyRelocation(
> -    ELFWriter &writer, llvm::FileOutputBuffer &buf, const
> lld::AtomLayout &atom,
> -    const Reference &ref) const {
> -  uint8_t *atomContent = buf.getBufferStart() + atom._fileOffset;
> -  uint8_t *location = atomContent + ref.offsetInAtom();
> -  uint64_t targetVAddress = writer.addressOfAtom(ref.target());
> -  uint64_t relocVAddress = atom._virtualAddr + ref.offsetInAtom();
> -
> -  if (ref.kindNamespace() != Reference::KindNamespace::ELF)
> -    return std::error_code();
> -  assert(ref.kindArch() == Reference::KindArch::PowerPC);
> -  switch (ref.kindValue()) {
> -  case R_PPC_REL24:
> -    relocB24PCREL(location, relocVAddress, targetVAddress,
> ref.addend());
> -    break;
> -
> -  default:
> -    return make_unhandled_reloc_error();
> -  }
> -
> -  return std::error_code();
> -}
> -
> -PPCTargetHandler::PPCTargetHandler(PPCLinkingContext &context)
> -    : _ppcLinkingContext(context),
> -      _ppcTargetLayout(new PPCTargetLayout<PPCELFType>(context)),
> -      _ppcRelocationHandler(new PPCTargetRelocationHandler()) {}
> -
> -void PPCTargetHandler::registerRelocationNames(Registry &registry) {
> -  registry.addKindTable(Reference::KindNamespace::ELF,
> -                        Reference::KindArch::PowerPC, kindStrings);
> -}
> -
> -std::unique_ptr<Writer> PPCTargetHandler::getWriter() {
> -  switch (_ppcLinkingContext.getOutputELFType()) {
> -  case llvm::ELF::ET_EXEC:
> -    return std::unique_ptr<Writer>(new
> elf::ExecutableWriter<PPCELFType>(
> -        _ppcLinkingContext, *_ppcTargetLayout.get()));
> -  case llvm::ELF::ET_DYN:
> -    return std::unique_ptr<Writer>(new
> elf::DynamicLibraryWriter<PPCELFType>(
> -        _ppcLinkingContext, *_ppcTargetLayout.get()));
> -  case llvm::ELF::ET_REL:
> -    llvm_unreachable("TODO: support -r mode");
> -  default:
> -    llvm_unreachable("unsupported output type");
> -  }
> -}
> -
> -#define ELF_RELOC(name, value) LLD_KIND_STRING_ENTRY(name),
> -
> -const Registry::KindStrings PPCTargetHandler::kindStrings[] = {
> -#include "llvm/Support/ELFRelocs/PowerPC.def"
> -  LLD_KIND_STRING_END
> -};
> -
> -#undef ELF_RELOC
>
> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h (original)
> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h (removed)
> @@ -1,67 +0,0 @@
> -//===- lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h
> ------------------------===//
> -//
> -//                             The LLVM Linker
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef LLD_READER_WRITER_ELF_PPC_PPC_TARGET_HANDLER_H
> -#define LLD_READER_WRITER_ELF_PPC_PPC_TARGET_HANDLER_H
> -
> -#include "DefaultTargetHandler.h"
> -#include "PPCELFReader.h"
> -#include "TargetLayout.h"
> -
> -namespace lld {
> -namespace elf {
> -class PPCLinkingContext;
> -
> -template <class ELFT> class PPCTargetLayout : public TargetLayout<ELFT>
> {
> -public:
> -  PPCTargetLayout(PPCLinkingContext &context) :
> TargetLayout<ELFT>(context) {}
> -};
> -
> -class PPCTargetRelocationHandler final : public TargetRelocationHandler
> {
> -public:
> -  std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
> -                                  const lld::AtomLayout &,
> -                                  const Reference &) const override;
> -};
> -
> -class PPCTargetHandler final
> -    : public DefaultTargetHandler<PPCELFType> {
> -public:
> -  PPCTargetHandler(PPCLinkingContext &context);
> -
> -  PPCTargetLayout<PPCELFType> &getTargetLayout() override {
> -    return *(_ppcTargetLayout.get());
> -  }
> -
> -  void registerRelocationNames(Registry &registry) override;
> -
> -  const PPCTargetRelocationHandler &getRelocationHandler() const
> override {
> -    return *(_ppcRelocationHandler.get());
> -  }
> -
> -  std::unique_ptr<Reader> getObjReader(bool atomizeStrings) override {
> -    return std::unique_ptr<Reader>(new
> PPCELFObjectReader(atomizeStrings));
> -  }
> -
> -  std::unique_ptr<Reader> getDSOReader(bool useShlibUndefines) override
> {
> -    return std::unique_ptr<Reader>(new
> PPCELFDSOReader(useShlibUndefines));
> -  }
> -
> -  std::unique_ptr<Writer> getWriter() override;
> -
> -private:
> -  static const Registry::KindStrings kindStrings[];
> -  PPCLinkingContext &_ppcLinkingContext;
> -  std::unique_ptr<PPCTargetLayout<PPCELFType>> _ppcTargetLayout;
> -  std::unique_ptr<PPCTargetRelocationHandler> _ppcRelocationHandler;
> -};
> -} // end namespace elf
> -} // end namespace lld
> -
> -#endif
>
> Removed: lld/trunk/test/elf/ppc.test
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ppc.test?rev=227319&view=auto
>
> ==============================================================================
> --- lld/trunk/test/elf/ppc.test (original)
> +++ lld/trunk/test/elf/ppc.test (removed)
> @@ -1,14 +0,0 @@
> -RUN: lld -flavor gnu -target powerpc  %p/Inputs/branch-test.ppc
> %p/Inputs/target-test.ppc -o %t1 --noinhibit-exec
> -RUN: llvm-readobj -h %t1 |  FileCheck -check-prefix=ppc-readobj %s
> -
> -
> -ppc-readobj: ElfHeader {
> -ppc-readobj:   Ident {
> -ppc-readobj:     Class: 32-bit (0x1)
> -ppc-readobj:     DataEncoding: BigEndian (0x2)
> -ppc-readobj:     FileVersion: 1
> -ppc-readobj:     OS/ABI: SystemV (0x0)
> -ppc-readobj:     ABIVersion: 0
> -ppc-readobj:   }
> -ppc-readobj:   Type: Executable (0x2)
> -ppc-readobj:   Machine: EM_PPC (0x14)
>
> Modified: lld/trunk/tools/lld/Makefile
> URL:http://llvm.org/viewvc/llvm-project/lld/trunk/tools/lld/Makefile?rev=227320&r1=227319&r2=227320&view=diff
>
> ==============================================================================
> --- lld/trunk/tools/lld/Makefile (original)
> +++ lld/trunk/tools/lld/Makefile Wed Jan 28 10:37:43 2015
> @@ -22,7 +22,7 @@ LINK_COMPONENTS := $(TARGETS_TO_BUILD)
>  USEDLIBS = lldDriver.a lldConfig.a \
>             lldELF.a lldMachO.a lldPasses.a lldPECOFF.a lldYAML.a \
>             lldReaderWriter.a lldCore.a lldNative.a \
> -           lldHexagonELFTarget.a lldPPCELFTarget.a lldMipsELFTarget.a \
> +           lldHexagonELFTarget.a lldMipsELFTarget.a \
>             lldX86ELFTarget.a lldX86_64ELFTarget.a lldAArch64ELFTarget.a
> \
>             lldARMELFTarget.a \
>             LLVMOption.a
>
>
> _______________________________________________
> llvm-commits mailing listllvm-commits at cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
>
> _______________________________________________
> llvm-commits mailing listllvm-commits at cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150202/79c71e1b/attachment.html>


More information about the llvm-commits mailing list