<div dir="ltr">Yup. Thank you!</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">  F<br></div></div>
<br><div class="gmail_quote">On Fri, Jan 23, 2015 at 8:53 PM, 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">Sorry about that.  Should be fixed now (r226989).<br>
<span class="HOEnZb"><font color="#888888"><br>
-Greg<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Fri, Jan 23, 2015 at 8:30 PM, Filipe Cabecinhas <<a href="mailto:filcab@gmail.com">filcab@gmail.com</a>> wrote:<br>
> Hi Greg.<br>
><br>
> We're getting these errors on our internal buildbot, since your revision:<br>
><br>
> [860/1047] Linking CXX static library lib\LLVMAnalysis.lib<br>
> FAILED: C:\PROGRA~2\MICROS~1.0\VC\bin\amd64\cl.exe   /nologo /TP -wd4530 /MD<br>
> /O2 /Ob2 /D NDEBUG -Itools\lld\lib\Driver<br>
> -IC:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver<br>
> -IC:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\include<br>
> -Itools\lld\include -Iinclude<br>
> -IC:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\include<br>
> -wd4146 -wd4180 -wd4244 -wd4258 -wd4267 -wd4291 -wd4345 -wd4351 -wd4355<br>
> -wd4456 -wd4457 -wd4458 -wd4459 -wd4503 -wd4624 -wd4722 -wd4800 -w14062<br>
> -we4238 -wd4530 /EHs-c- /GR- /showIncludes -DGTEST_HAS_RTTI=0<br>
> -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS<br>
> -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_HAS_EXCEPTIONS=0<br>
> -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS<br>
> -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS<br>
> /Fotools\lld\lib\Driver\CMakeFiles\lldDriver.dir\GnuLdDriver.cpp.obj<br>
> /Fdtools\lld\lib\Driver\CMakeFiles\lldDriver.dir\ /FS -c<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(325)<br>
> : error C3083: 'AArch64LinkingContext': the symbol to the left of a '::'<br>
> must be a type<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(325)<br>
> : error C2039: 'create' : is not a member of 'lld::elf'<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(325)<br>
> : error C3861: 'create': identifier not found<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(326)<br>
> : error C3083: 'ARMLinkingContext': the symbol to the left of a '::' must be<br>
> a type<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(326)<br>
> : error C2039: 'create' : is not a member of 'lld::elf'<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(326)<br>
> : error C3861: 'create': identifier not found<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(327)<br>
> : error C3083: 'HexagonLinkingContext': the symbol to the left of a '::'<br>
> must be a type<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(327)<br>
> : error C2039: 'create' : is not a member of 'lld::elf'<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(327)<br>
> : error C3861: 'create': identifier not found<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(328)<br>
> : error C3083: 'MipsLinkingContext': the symbol to the left of a '::' must<br>
> be a type<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(328)<br>
> : error C2039: 'create' : is not a member of 'lld::elf'<br>
> C:\Buildbot\Slave\builds\530.Slower.build.LLD.Windows\llvm.src\tools\lld\lib\Driver\GnuLdDriver.cpp(328)<br>
> : error C3861: 'create': identifier not found<br>
> ninja: build stopped: subcommand failed.<br>
><br>
> Did you try compiling lld without these backends? X86* are conspicuously<br>
> missing from the error and that's the only llvm backend built by the bot.<br>
> Can you fix it, please?<br>
><br>
>   Filipe<br>
><br>
> On Fri, Jan 23, 2015 at 5:06 PM, Greg Fitzgerald <<a href="mailto:garious@gmail.com">garious@gmail.com</a>> wrote:<br>
>><br>
>> Author: garious<br>
>> Date: Fri Jan 23 19:06:07 2015<br>
>> New Revision: 226976<br>
>><br>
>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=226976&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=226976&view=rev</a><br>
>> Log:<br>
>>  Fix the ELF shared library build targets - take 2<br>
>><br>
>>  lldELF is used by each ELF backend.  lldELF's ELFLinkingContext<br>
>>  also held a reference to each backend, creating a link-time<br>
>>  cycle.  This patch moves the backend references to lldDriver.<br>
>><br>
>>  Differential Revision: <a href="http://reviews.llvm.org/D7119" target="_blank">http://reviews.llvm.org/D7119</a><br>
>><br>
>> Added:<br>
>>     lld/trunk/include/lld/ReaderWriter/ELFTargets.h<br>
>> Removed:<br>
>>     lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64Target.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTarget.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTarget.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTarget.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Targets.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86/X86Target.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64Target.h<br>
>> Modified:<br>
>>     lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h<br>
>>     lld/trunk/lib/Driver/CMakeLists.txt<br>
>>     lld/trunk/lib/Driver/GnuLdDriver.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/ARM/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Makefile<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp<br>
>>     lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h<br>
>>     lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/MachO/Makefile<br>
>>     lld/trunk/lib/ReaderWriter/PECOFF/CMakeLists.txt<br>
>>     lld/trunk/lib/ReaderWriter/PECOFF/Makefile<br>
>><br>
>> Modified: lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h (original)<br>
>> +++ lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -116,8 +116,6 @@ public:<br>
>>      return true;<br>
>>    }<br>
>><br>
>> -  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>> -<br>
>>    /// \brief Use Elf_Rela format to output relocation tables.<br>
>>    virtual bool isRelaOutputFormat() const { return true; }<br>
>><br>
>><br>
>> Added: lld/trunk/include/lld/ReaderWriter/ELFTargets.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFTargets.h?rev=226976&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFTargets.h?rev=226976&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/include/lld/ReaderWriter/ELFTargets.h (added)<br>
>> +++ lld/trunk/include/lld/ReaderWriter/ELFTargets.h Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -0,0 +1,40 @@<br>
>> +//===- lld/ReaderWriter/ELFTargets.h<br>
>> --------------------------------------===//<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>
>> +<br>
>> +#ifndef LLD_READER_WRITER_ELF_TARGETS_H<br>
>> +#define LLD_READER_WRITER_ELF_TARGETS_H<br>
>> +<br>
>> +#include "ELFLinkingContext.h"<br>
>> +<br>
>> +namespace lld {<br>
>> +namespace elf {<br>
>> +<br>
>> +#define LLVM_TARGET(TargetName) \<br>
>> +  class TargetName##LinkingContext final : public ELFLinkingContext { \<br>
>> +  public: \<br>
>> +    static std::unique_ptr<ELFLinkingContext> create(llvm::Triple); \<br>
>> +  };<br>
>> +#include "llvm/Config/Targets.def"<br>
>> +<br>
>> +// X86 => X86,X86_64<br>
>> +class X86_64LinkingContext final : public ELFLinkingContext {<br>
>> +public:<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple); \<br>
>> +};<br>
>> +<br>
>> +// PowerPC => PPC<br>
>> +class PPCLinkingContext final : public ELFLinkingContext {<br>
>> +public:<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple); \<br>
>> +};<br>
>> +<br>
>> +} // end namespace elf<br>
>> +} // end namespace lld<br>
>> +<br>
>> +#endif<br>
>><br>
>> Modified: lld/trunk/lib/Driver/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/Driver/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/Driver/CMakeLists.txt Fri Jan 23 19:06:07 2015<br>
>> @@ -24,6 +24,13 @@ add_llvm_library(lldDriver<br>
>>      lldMachO<br>
>>      lldPECOFF<br>
>>      lldELF<br>
>> +    lldAArch64ELFTarget<br>
>> +    lldARMELFTarget<br>
>> +    lldHexagonELFTarget<br>
>> +    lldMipsELFTarget<br>
>> +    lldPPCELFTarget<br>
>> +    lldX86ELFTarget<br>
>> +    lldX86_64ELFTarget<br>
>>      lldCore<br>
>>      lldNative<br>
>>      lldReaderWriter<br>
>><br>
>> Modified: lld/trunk/lib/Driver/GnuLdDriver.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/GnuLdDriver.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/Driver/GnuLdDriver.cpp (original)<br>
>> +++ lld/trunk/lib/Driver/GnuLdDriver.cpp Fri Jan 23 19:06:07 2015<br>
>> @@ -15,6 +15,7 @@<br>
>><br>
>>  #include "lld/Driver/Driver.h"<br>
>>  #include "lld/ReaderWriter/ELFLinkingContext.h"<br>
>> +#include "lld/ReaderWriter/ELFTargets.h"<br>
>>  #include "lld/ReaderWriter/LinkerScript.h"<br>
>>  #include "llvm/ADT/ArrayRef.h"<br>
>>  #include "llvm/ADT/Optional.h"<br>
>> @@ -314,6 +315,23 @@ void GnuLdDriver::addPlatformSearchDirs(<br>
>>    ctx.addSearchPath("=/usr/lib");<br>
>>  }<br>
>><br>
>> +#define LLVM_TARGET(targetName) \<br>
>> +  if ((p = elf::targetName##LinkingContext::create(triple))) return p;<br>
>> +<br>
>> +std::unique_ptr<ELFLinkingContext><br>
>> +createELFLinkingContext(llvm::Triple triple) {<br>
>> +  std::unique_ptr<ELFLinkingContext> p;<br>
>> +  // FIXME: #include "llvm/Config/Targets.def"<br>
>> +  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>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>>  bool GnuLdDriver::parse(int argc, const char *argv[],<br>
>>                          std::unique_ptr<ELFLinkingContext> &context,<br>
>>                          raw_ostream &diagnostics) {<br>
>> @@ -349,7 +367,7 @@ bool GnuLdDriver::parse(int argc, const<br>
>>    if (!applyEmulation(triple, *parsedArgs, diagnostics))<br>
>>      return false;<br>
>><br>
>> -  std::unique_ptr<ELFLinkingContext><br>
>> ctx(ELFLinkingContext::create(triple));<br>
>> +  std::unique_ptr<ELFLinkingContext><br>
>> ctx(createELFLinkingContext(triple));<br>
>><br>
>>    if (!ctx) {<br>
>>      diagnostics << "unknown target triple\n";<br>
>><br>
>> Modified:<br>
>> lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h<br>
>> Fri Jan 23 19:06:07 2015<br>
>> @@ -10,6 +10,7 @@<br>
>>  #define AARCH64_DYNAMIC_LIBRARY_WRITER_H<br>
>><br>
>>  #include "AArch64LinkingContext.h"<br>
>> +#include "AArch64TargetHandler.h"<br>
>>  #include "DynamicLibraryWriter.h"<br>
>><br>
>>  namespace lld {<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp Fri<br>
>> Jan 23 19:06:07 2015<br>
>> @@ -9,9 +9,22 @@<br>
>><br>
>>  #include "AArch64LinkingContext.h"<br>
>>  #include "AArch64RelocationPass.h"<br>
>> +#include "AArch64TargetHandler.h"<br>
>><br>
>>  using namespace lld;<br>
>><br>
>> +std::unique_ptr<ELFLinkingContext><br>
>> +elf::AArch64LinkingContext::create(llvm::Triple triple) {<br>
>> +  if (triple.getArch() == llvm::Triple::aarch64)<br>
>> +    return std::unique_ptr<ELFLinkingContext>(<br>
>> +             new elf::AArch64LinkingContext(triple));<br>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>> +elf::AArch64LinkingContext::AArch64LinkingContext(llvm::Triple triple)<br>
>> +    : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> +                        new AArch64TargetHandler(*this))) {}<br>
>> +<br>
>>  void elf::AArch64LinkingContext::addPasses(PassManager &pm) {<br>
>>    auto pass = createAArch64RelocationPass(*this);<br>
>>    if (pass)<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h Fri Jan<br>
>> 23 19:06:07 2015<br>
>> @@ -10,7 +10,6 @@<br>
>>  #ifndef LLD_READER_WRITER_ELF_AARCH64_AARCH64_LINKING_CONTEXT_H<br>
>>  #define LLD_READER_WRITER_ELF_AARCH64_AARCH64_LINKING_CONTEXT_H<br>
>><br>
>> -#include "AArch64TargetHandler.h"<br>
>>  #include "lld/ReaderWriter/ELFLinkingContext.h"<br>
>>  #include "llvm/Object/ELF.h"<br>
>>  #include "llvm/Support/ELF.h"<br>
>> @@ -25,9 +24,8 @@ enum {<br>
>><br>
>>  class AArch64LinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> -  AArch64LinkingContext(llvm::Triple triple)<br>
>> -      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> -                                      new AArch64TargetHandler(*this)))<br>
>> {}<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>> +  AArch64LinkingContext(llvm::Triple);<br>
>><br>
>>    void addPasses(PassManager &) override;<br>
>><br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64Target.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64Target.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64Target.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64Target.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64Target.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/AArch64/AArch64Target.h<br>
>> -----------------------===//<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>
>> -<br>
>> -#include "AArch64LinkingContext.h"<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/AArch64/CMakeLists.txt Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -5,5 +5,7 @@ add_llvm_library(lldAArch64ELFTarget<br>
>>    AArch64RelocationPass.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMExecutableWriter.h Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -11,6 +11,7 @@<br>
>><br>
>>  #include "ExecutableWriter.h"<br>
>>  #include "ARMLinkingContext.h"<br>
>> +#include "ARMTargetHandler.h"<br>
>><br>
>>  namespace lld {<br>
>>  namespace elf {<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -9,10 +9,23 @@<br>
>><br>
>>  #include "ARMLinkingContext.h"<br>
>>  #include "ARMRelocationPass.h"<br>
>> +#include "ARMTargetHandler.h"<br>
>><br>
>>  using namespace lld;<br>
>>  using namespace lld::elf;<br>
>><br>
>> +std::unique_ptr<ELFLinkingContext><br>
>> +elf::ARMLinkingContext::create(llvm::Triple triple) {<br>
>> +  if (triple.getArch() == llvm::Triple::arm)<br>
>> +    return std::unique_ptr<ELFLinkingContext>(<br>
>> +             new elf::ARMLinkingContext(triple));<br>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>> +elf::ARMLinkingContext::ARMLinkingContext(llvm::Triple triple)<br>
>> +    : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> +                        new ARMTargetHandler(*this))) {}<br>
>> +<br>
>>  void elf::ARMLinkingContext::addPasses(PassManager &pm) {<br>
>>    auto pass = createARMRelocationPass(*this);<br>
>>    if (pass)<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -10,10 +10,7 @@<br>
>>  #ifndef LLD_READER_WRITER_ELF_ARM_ARM_LINKING_CONTEXT_H<br>
>>  #define LLD_READER_WRITER_ELF_ARM_ARM_LINKING_CONTEXT_H<br>
>><br>
>> -#include "ARMTargetHandler.h"<br>
>> -<br>
>>  #include "lld/ReaderWriter/ELFLinkingContext.h"<br>
>> -<br>
>>  #include "llvm/Object/ELF.h"<br>
>>  #include "llvm/Support/ELF.h"<br>
>><br>
>> @@ -22,9 +19,8 @@ namespace elf {<br>
>><br>
>>  class ARMLinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> -  ARMLinkingContext(llvm::Triple triple)<br>
>> -      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> -                                      new ARMTargetHandler(*this))) {}<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>> +  ARMLinkingContext(llvm::Triple);<br>
>><br>
>>    void addPasses(PassManager &) override;<br>
>><br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTarget.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTarget.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTarget.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTarget.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTarget.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===--------- lib/ReaderWriter/ELF/ARM/ARMTarget.h<br>
>> -----------------------===//<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>
>> -<br>
>> -#include "ARMLinkingContext.h"<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/ARM/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/ARM/CMakeLists.txt Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -5,4 +5,7 @@ add_llvm_library(lldARMELFTarget<br>
>>    ARMRelocationPass.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>> +    LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/CMakeLists.txt Fri Jan 23 19:06:07 2015<br>
>> @@ -4,15 +4,10 @@ add_llvm_library(lldELF<br>
>>    Reader.cpp<br>
>>    Writer.cpp<br>
>>    LINK_LIBS<br>
>> -    lldHexagonELFTarget<br>
>> -    lldMipsELFTarget<br>
>> -    lldPPCELFTarget<br>
>> +    lldCore<br>
>>      lldPasses<br>
>> -    lldReaderWriter<br>
>> -    lldX86ELFTarget<br>
>> -    lldX86_64ELFTarget<br>
>> -    lldAArch64ELFTarget<br>
>> -    lldARMELFTarget<br>
>> +    lldYAML<br>
>> +    LLVMSupport<br>
>>    )<br>
>><br>
>>  include_directories(.)<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -11,8 +11,8 @@<br>
>>  #include "ArrayOrderPass.h"<br>
>>  #include "ELFFile.h"<br>
>>  #include "TargetHandler.h"<br>
>> -#include "Targets.h"<br>
>>  #include "lld/Core/Instrumentation.h"<br>
>> +#include "lld/Core/SharedLibraryFile.h"<br>
>>  #include "lld/Passes/LayoutPass.h"<br>
>>  #include "lld/Passes/RoundTripYAMLPass.h"<br>
>>  #include "llvm/ADT/Triple.h"<br>
>> @@ -56,7 +56,7 @@ public:<br>
>><br>
>>  ELFLinkingContext::ELFLinkingContext(<br>
>>      llvm::Triple triple, std::unique_ptr<TargetHandlerBase><br>
>> targetHandler)<br>
>> -    : _outputELFType(elf::ET_EXEC), _triple(triple),<br>
>> +    : _outputELFType(llvm::ELF::ET_EXEC), _triple(triple),<br>
>>        _targetHandler(std::move(targetHandler)), _baseAddress(0),<br>
>>        _isStaticExecutable(false), _noInhibitExec(false),<br>
>> _exportDynamic(false),<br>
>>        _mergeCommonStrings(false), _runLayoutPass(true),<br>
>> @@ -93,7 +93,7 @@ uint16_t ELFLinkingContext::getOutputMac<br>
>>  }<br>
>><br>
>>  StringRef ELFLinkingContext::entrySymbolName() const {<br>
>> -  if (_outputELFType == elf::ET_EXEC && _entrySymbolName.empty())<br>
>> +  if (_outputELFType == llvm::ELF::ET_EXEC && _entrySymbolName.empty())<br>
>>      return "_start";<br>
>>    return _entrySymbolName;<br>
>>  }<br>
>> @@ -129,35 +129,6 @@ bool ELFLinkingContext::isRelativeReloc(<br>
>><br>
>>  Writer &ELFLinkingContext::writer() const { return *_writer; }<br>
>><br>
>> -std::unique_ptr<ELFLinkingContext><br>
>> -ELFLinkingContext::create(llvm::Triple triple) {<br>
>> -  switch (triple.getArch()) {<br>
>> -  case llvm::Triple::x86:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::X86LinkingContext(triple));<br>
>> -  case llvm::Triple::x86_64:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::X86_64LinkingContext(triple));<br>
>> -  case llvm::Triple::hexagon:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::HexagonLinkingContext(triple));<br>
>> -  case llvm::Triple::mipsel:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::MipsLinkingContext(triple));<br>
>> -  case llvm::Triple::ppc:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::PPCLinkingContext(triple));<br>
>> -  case llvm::Triple::aarch64:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::AArch64LinkingContext(triple));<br>
>> -  case llvm::Triple::arm:<br>
>> -    return std::unique_ptr<ELFLinkingContext>(<br>
>> -        new lld::elf::ARMLinkingContext(triple));<br>
>> -  default:<br>
>> -    return nullptr;<br>
>> -  }<br>
>> -}<br>
>> -<br>
>>  static void buildSearchPath(SmallString<128> &path, StringRef dir,<br>
>>                              StringRef sysRoot) {<br>
>>    if (!dir.startswith("=/"))<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/CMakeLists.txt Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -4,5 +4,7 @@ add_llvm_library(lldHexagonELFTarget<br>
>>    HexagonTargetHandler.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp Fri<br>
>> Jan 23 19:06:07 2015<br>
>> @@ -12,6 +12,14 @@<br>
>><br>
>>  using namespace lld::elf;<br>
>><br>
>> +std::unique_ptr<lld::ELFLinkingContext><br>
>> +HexagonLinkingContext::create(llvm::Triple triple) {<br>
>> +  if (triple.getArch() == llvm::Triple::hexagon)<br>
>> +    return std::unique_ptr<lld::ELFLinkingContext>(<br>
>> +             new HexagonLinkingContext(triple));<br>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>>  HexagonLinkingContext::HexagonLinkingContext(llvm::Triple triple)<br>
>>      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>>                                      new HexagonTargetHandler(*this))) {}<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h Fri Jan<br>
>> 23 19:06:07 2015<br>
>> @@ -21,6 +21,7 @@ typedef llvm::object::ELFType<llvm::supp<br>
>><br>
>>  class HexagonLinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>>    HexagonLinkingContext(llvm::Triple triple);<br>
>><br>
>>    void addPasses(PassManager &) override;<br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/Hexagon/HexagonTarget.h<br>
>> -----------------------===//<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>
>> -<br>
>> -#include "HexagonLinkingContext.h"<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Makefile<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Makefile?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Makefile?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Makefile (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Makefile Fri Jan 23 19:06:07 2015<br>
>> @@ -9,10 +9,7 @@<br>
>><br>
>>  LLD_LEVEL := ../../..<br>
>>  LIBRARYNAME := lldELF<br>
>> -USEDLIBS = lldHexagonELFTarget.a lldPPCELFTarget.a lldMipsELFTarget.a \<br>
>> -           lldX86ELFTarget.a lldX86_64ELFTarget.a lldAArch64ELFTarget.a \<br>
>> -           lldARMELFTarget.a \<br>
>> -           lldReaderWriter.a lldPasses.a<br>
>> +USEDLIBS = lldPasses.a<br>
>><br>
>>  CPP.Flags += -I$(PROJ_SRC_DIR)/$(LLD_LEVEL)/lib/ReaderWriter/ELF<br>
>><br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/CMakeLists.txt Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -7,5 +7,7 @@ add_llvm_library(lldMipsELFTarget<br>
>>    MipsTargetHandler.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -16,6 +16,14 @@<br>
>>  using namespace lld;<br>
>>  using namespace lld::elf;<br>
>><br>
>> +std::unique_ptr<ELFLinkingContext><br>
>> +MipsLinkingContext::create(llvm::Triple triple) {<br>
>> +  if (triple.getArch() == llvm::Triple::mipsel)<br>
>> +    return std::unique_ptr<ELFLinkingContext>(<br>
>> +             new MipsLinkingContext(triple));<br>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>>  MipsLinkingContext::MipsLinkingContext(llvm::Triple triple)<br>
>>      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>>                                      new MipsTargetHandler(*this))) {}<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -39,6 +39,7 @@ template <class ELFType> class MipsTarge<br>
>><br>
>>  class MipsLinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>>    MipsLinkingContext(llvm::Triple triple);<br>
>><br>
>>    uint32_t getMergedELFFlags() const;<br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTarget.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTarget.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTarget.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTarget.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTarget.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/Mips/MipsTarget.h<br>
>> -----------------------------===//<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>
>> -<br>
>> -#include "MipsLinkingContext.h"<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/CMakeLists.txt Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -3,5 +3,7 @@ add_llvm_library(lldPPCELFTarget<br>
>>    PPCTargetHandler.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.cpp Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -8,9 +8,22 @@<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>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCLinkingContext.h Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -10,7 +10,6 @@<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 "PPCTargetHandler.h"<br>
>>  #include "lld/ReaderWriter/ELFLinkingContext.h"<br>
>>  #include "llvm/Object/ELF.h"<br>
>>  #include "llvm/Support/ELF.h"<br>
>> @@ -20,9 +19,8 @@ namespace elf {<br>
>><br>
>>  class PPCLinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> -  PPCLinkingContext(llvm::Triple triple)<br>
>> -      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> -                                      new PPCTargetHandler(*this))) {}<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>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTarget.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTarget.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTarget.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTarget.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTarget.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/PPC/PPCTarget.h<br>
>> -------------------------------===//<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>
>> -<br>
>> -#include "PPCLinkingContext.h"<br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/Targets.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Targets.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Targets.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/Targets.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/Targets.h (removed)<br>
>> @@ -1,21 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/Targets.h<br>
>> -------------------------------------===//<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>
>> -<br>
>> -#ifndef LLD_READER_WRITER_ELF_TARGETS_H<br>
>> -#define LLD_READER_WRITER_ELF_TARGETS_H<br>
>> -<br>
>> -#include "AArch64/AArch64Target.h"<br>
>> -#include "ARM/ARMTarget.h"<br>
>> -#include "Hexagon/HexagonTarget.h"<br>
>> -#include "Mips/MipsTarget.h"<br>
>> -#include "PPC/PPCTarget.h"<br>
>> -#include "X86/X86Target.h"<br>
>> -#include "X86_64/X86_64Target.h"<br>
>> -<br>
>> -#endif<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/X86/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86/CMakeLists.txt Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -4,5 +4,7 @@ add_llvm_library(lldX86ELFTarget<br>
>>    X86RelocationHandler.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -8,9 +8,21 @@<br>
>><br>
>> //===----------------------------------------------------------------------===//<br>
>><br>
>>  #include "X86LinkingContext.h"<br>
>> +#include "X86TargetHandler.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::X86LinkingContext::create(llvm::Triple triple) {<br>
>> +  if (triple.getArch() == llvm::Triple::x86)<br>
>> +    return std::unique_ptr<ELFLinkingContext>(<br>
>> +             new elf::X86LinkingContext(triple));<br>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>> +elf::X86LinkingContext::X86LinkingContext(llvm::Triple triple)<br>
>> +    : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> +                        new X86TargetHandler(*this))) {}<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -10,7 +10,6 @@<br>
>>  #ifndef LLD_READER_WRITER_ELF_X86_TARGETINFO_H<br>
>>  #define LLD_READER_WRITER_ELF_X86_TARGETINFO_H<br>
>><br>
>> -#include "X86TargetHandler.h"<br>
>>  #include "lld/ReaderWriter/ELFLinkingContext.h"<br>
>>  #include "llvm/Object/ELF.h"<br>
>>  #include "llvm/Support/ELF.h"<br>
>> @@ -19,9 +18,8 @@ namespace lld {<br>
>>  namespace elf {<br>
>>  class X86LinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> -  X86LinkingContext(llvm::Triple triple)<br>
>> -      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> -                                      new X86TargetHandler(*this))) {}<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>> +  X86LinkingContext(llvm::Triple);<br>
>><br>
>>    /// \brief X86 has only two relative relocation<br>
>>    /// a) for supporting IFUNC relocs - R_386_IRELATIVE<br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/X86/X86Target.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86Target.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86Target.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86/X86Target.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86/X86Target.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/X86/X86Target.h<br>
>> -------------------------------===//<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>
>> -<br>
>> -#include "X86LinkingContext.h"<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86_64/CMakeLists.txt Fri Jan 23<br>
>> 19:06:07 2015<br>
>> @@ -5,5 +5,7 @@ add_llvm_library(lldX86_64ELFTarget<br>
>>    X86_64RelocationPass.cpp<br>
>>    LINK_LIBS<br>
>>      lldCore<br>
>> +    lldELF<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified:<br>
>> lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h Fri<br>
>> Jan 23 19:06:07 2015<br>
>> @@ -11,6 +11,7 @@<br>
>><br>
>>  #include "DynamicLibraryWriter.h"<br>
>>  #include "X86_64LinkingContext.h"<br>
>> +#include "X86_64TargetHandler.h"<br>
>><br>
>>  namespace lld {<br>
>>  namespace elf {<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp Fri Jan<br>
>> 23 19:06:07 2015<br>
>> @@ -8,10 +8,23 @@<br>
>><br>
>> //===----------------------------------------------------------------------===//<br>
>><br>
>>  #include "X86_64LinkingContext.h"<br>
>> +#include "X86_64TargetHandler.h"<br>
>>  #include "X86_64RelocationPass.h"<br>
>><br>
>>  using namespace lld;<br>
>><br>
>> +std::unique_ptr<ELFLinkingContext><br>
>> +elf::X86_64LinkingContext::create(llvm::Triple triple) {<br>
>> +  if (triple.getArch() == llvm::Triple::x86_64)<br>
>> +    return std::unique_ptr<ELFLinkingContext>(<br>
>> +             new elf::X86_64LinkingContext(triple));<br>
>> +  return nullptr;<br>
>> +}<br>
>> +<br>
>> +elf::X86_64LinkingContext::X86_64LinkingContext(llvm::Triple triple)<br>
>> +    : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> +                        new X86_64TargetHandler(*this))) {}<br>
>> +<br>
>>  void elf::X86_64LinkingContext::addPasses(PassManager &pm) {<br>
>>    auto pass = createX86_64RelocationPass(*this);<br>
>>    if (pass)<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h<br>
>> (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h Fri Jan<br>
>> 23 19:06:07 2015<br>
>> @@ -10,7 +10,6 @@<br>
>>  #ifndef LLD_READER_WRITER_ELF_X86_64_X86_64_LINKING_CONTEXT_H<br>
>>  #define LLD_READER_WRITER_ELF_X86_64_X86_64_LINKING_CONTEXT_H<br>
>><br>
>> -#include "X86_64TargetHandler.h"<br>
>>  #include "lld/ReaderWriter/ELFLinkingContext.h"<br>
>>  #include "llvm/Object/ELF.h"<br>
>>  #include "llvm/Support/ELF.h"<br>
>> @@ -27,9 +26,8 @@ enum {<br>
>><br>
>>  class X86_64LinkingContext final : public ELFLinkingContext {<br>
>>  public:<br>
>> -  X86_64LinkingContext(llvm::Triple triple)<br>
>> -      : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(<br>
>> -                                      new X86_64TargetHandler(*this))) {}<br>
>> +  static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);<br>
>> +  X86_64LinkingContext(llvm::Triple);<br>
>><br>
>>    void addPasses(PassManager &) override;<br>
>><br>
>><br>
>> Removed: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64Target.h<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64Target.h?rev=226975&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64Target.h?rev=226975&view=auto</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64Target.h (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64Target.h (removed)<br>
>> @@ -1,10 +0,0 @@<br>
>> -//===- lib/ReaderWriter/ELF/X86_64/X86_64Target.h<br>
>> -------------------------===//<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>
>> -<br>
>> -#include "X86_64LinkingContext.h"<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/MachO/CMakeLists.txt Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -16,8 +16,10 @@ add_llvm_library(lldMachO<br>
>>    StubsPass.cpp<br>
>>    WriterMachO.cpp<br>
>>    LINK_LIBS<br>
>> -    lldReaderWriter<br>
>> +    lldCore<br>
>>      lldPasses<br>
>> +    lldYAML<br>
>> +    LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/MachO/Makefile<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/Makefile?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/MachO/Makefile?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/MachO/Makefile (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/MachO/Makefile Fri Jan 23 19:06:07 2015<br>
>> @@ -9,6 +9,6 @@<br>
>><br>
>>  LLD_LEVEL := ../../..<br>
>>  LIBRARYNAME := lldMachO<br>
>> -USEDLIBS = lldReaderWriter.a lldCore.a<br>
>> +USEDLIBS = lldCore.a<br>
>><br>
>>  include $(LLD_LEVEL)/Makefile<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/PECOFF/CMakeLists.txt<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/CMakeLists.txt?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/PECOFF/CMakeLists.txt (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/PECOFF/CMakeLists.txt Fri Jan 23 19:06:07<br>
>> 2015<br>
>> @@ -10,7 +10,8 @@ add_llvm_library(lldPECOFF<br>
>>    WriterImportLibrary.cpp<br>
>>    WriterPECOFF.cpp<br>
>>    LINK_LIBS<br>
>> -    lldReaderWriter<br>
>> +    lldCore<br>
>> +    lldPasses<br>
>>      LLVMObject<br>
>>      LLVMSupport<br>
>>    )<br>
>><br>
>> Modified: lld/trunk/lib/ReaderWriter/PECOFF/Makefile<br>
>> URL:<br>
>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/Makefile?rev=226976&r1=226975&r2=226976&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/Makefile?rev=226976&r1=226975&r2=226976&view=diff</a><br>
>><br>
>> ==============================================================================<br>
>> --- lld/trunk/lib/ReaderWriter/PECOFF/Makefile (original)<br>
>> +++ lld/trunk/lib/ReaderWriter/PECOFF/Makefile Fri Jan 23 19:06:07 2015<br>
>> @@ -9,6 +9,6 @@<br>
>><br>
>>  LLD_LEVEL := ../../..<br>
>>  LIBRARYNAME := lldPECOFF<br>
>> -USEDLIBS = lldReaderWriter.a lldCore.a<br>
>> +USEDLIBS = lldCore.a<br>
>><br>
>>  include $(LLD_LEVEL)/Makefile<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>
><br>
><br>
</div></div></blockquote></div><br></div>