Initial support for ARM in lld.
Add support for an ARM Target and the initial set of relocations and PLT entries that are necessary for an ARM only hello world to link. This has been tested against an ARM only sysroot from the 4.2.0 CodeSourcery Lite release.
Tests have been added to test/ELF for the support that has been implemented.
Main limitations:
- No Thumb support
- Relocations incomplete
- No C++ exceptions support
- No TLS support
- No range extension or interworking veneer (thunk) support
- No Build Attribute support
- No Big-endian support
The deprecated relocations R_ARM_PLT32 and R_ARM_PC24 have been implemented as these are used by the 4.2.0 CodeSourcery Lite release.
For ARM I think the _GLOBAL_OFFSET_TABLE_ symbol should be defined to be the base of the .got section. There is existing code that does a R_ARM_BASE_PREL relocation with respect to _GLOBAL_OFFSET_TABLE_ to form the base of the .got and then add an offset to obtain the entry address.
I want to sort these S== lines alphabetically, but it should be done in a separate patch.