This patch fixes the TLS initial executable for AArch64. Current
implementation have two issues: 1. do not generate dynamic
R_AARCH64_TLS_TPREL64 relocation for the external module symbols,
and 2. do not export the TLS initial executable symbol in dynamic
symbol table.
The fix follows the MIPS strategy to add a arch-specific AArch64GOTSection
class to keep track of TLS symbols required to be place in dynamic
symbol table. It also overrides the buildDynamicSymbolTable for
ExecutableWrite class for AArch64 to add the symbols.
It also adds some refactoring on AArch64RelocationPass.cpp based on ARM
backend.
Write "{}" at end of this line.