Fix the build with libstdc++ v4.6 on Linux by supplying an explicit move
assignment operator. There is an issue where classes with deleted copy
constructors and user defined move constructors end up with an
implicitly deleted copy constructor that is selected instead of the
implicit move constructor. This is a bit of a hack, but it allows me to
build LLD in a bootstrap with libstdc++ which is my primary goal.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172896 91177308-0d34-0410-b5e6-96231b3b80d8
Allow the LLD CMake build to work with -std=gnu++0x and -std=gnu++11 as
well as c++0x and c++11. This can be especially useful when building
with GCC in C++11 mode.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172897 91177308-0d34-0410-b5e6-96231b3b80d8
Replace the 'final' keyword with 'LLVM_FINAL' as GCC 4.6 doesn't support
the keyword.

If anyone cares deeply about the final optimizations with GCC, we might
want to add a version test to the LLVM definition, but I'm perfectly
happy with this just only firing under Clang and modern MSVC builds.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172898 91177308-0d34-0410-b5e6-96231b3b80d8
[docs] Document lld's usage of C++11 features.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172972 91177308-0d34-0410-b5e6-96231b3b80d8
[Core] Use LLVM's ErrorOr<T>.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@172993 91177308-0d34-0410-b5e6-96231b3b80d8
no functionality changes(split WriterELF into multiple files)

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173082 91177308-0d34-0410-b5e6-96231b3b80d8
Add {,ELF,MachO}TargetInfo.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173117 91177308-0d34-0410-b5e6-96231b3b80d8
it looks like g++ 4.7.2 doesnot like bit fields when the type is a enumeration (Throws an error as bit-field with non integral type)

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173125 91177308-0d34-0410-b5e6-96231b3b80d8
change enum class to enum, as g++ doesnot support bitfields with enumerated classes with c++11 flag set

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173166 91177308-0d34-0410-b5e6-96231b3b80d8
[Core] Move Resolver and SymbolTable over to TargetInfo.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173192 91177308-0d34-0410-b5e6-96231b3b80d8
Move everything over to TargetInfo.

I really would have liked to split this patch up, but it would greatly
complicate the lld-core and lld drivers having to deal with both
{Reader,Writer}Option and TargetInfo.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173217 91177308-0d34-0410-b5e6-96231b3b80d8
change from using 2 bits to 4 bits, as 2 bits arent enough to hold the enumeration OutputKind

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173266 91177308-0d34-0410-b5e6-96231b3b80d8
Add PassManager.

It owns and manages passes.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173287 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Read IFUNC symbols correctly as typeResolver.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173299 91177308-0d34-0410-b5e6-96231b3b80d8
Add SectionPosition and OrderPass

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@173300 91177308-0d34-0410-b5e6-96231b3b80d8
Move SimpleAtoms.h to Core.
[Driver] Run the pass manager.
[ELF] Add very basic support for IFUNC.

This currently just generates the plt and got entries with correct
relocations. The writer will not know what to do with the relocations. Or the
got and plt entries for that matter.