Add support library.

The parsing routines in the linker script to parse strings encoded in various
formats(hexadecimal, octal, decimal, etc), is needed by the GNU driver too. This
library provides helper functions for all flavors and flavors to add helper
functions which other flavors may make use of.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@221583 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Support -z max-page-size option

The GNU linker allows the user to change the page size by using the option -z
max-page-size.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@221584 91177308-0d34-0410-b5e6-96231b3b80d8
[Gnu] Add options that are ignored

Add options that are ignored and exists just for compatibility reasons.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@221585 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] .dynamic should have SHT_DYNAMIC flag

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@221586 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Fix values of linker created dynamic variables.

The value of _DYNAMIC should be pointing at the start of the .dynamic segment.
This was pointing to the end of the dynamic segment. Similarly the value of
_GLOBAL_OFFSET_TABLE_ was not proper too.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@221587 91177308-0d34-0410-b5e6-96231b3b80d8
[ELF] Fix DT_INIT_ARRAY{SZ} and DT_FINI_ARRAY{SZ}

The dynamic table was creating the entry DT_FINI_ARRAY{SZ} even when there was
no .fini_array section. The entries should be creating in the dynamic section
only if there are sections .init_array/.fini_array in the output.

Fixes the tests that checked for errroneous outputs.

git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@221588 91177308-0d34-0410-b5e6-96231b3b80d8
[Gnu] Support --image-base option

The value for --image-base is used as the base address of the program.

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