[lld] r227320 - Remove PPC ELF target
Rui Ueyama
ruiu at google.com
Fri Jan 30 16:36:27 PST 2015
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> 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>
> 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 ®istry) {
>> - 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 ®istry) 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 list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150130/f33be9a5/attachment.html>
More information about the llvm-commits
mailing list