AArch64 ELF ABI does not define a static relocation type for TLS offset within a module, which makes it impossible for compiler to generate a valid DW_AT_location content for thread local variables. Currently LLVM generates an invalid R_AARCH64_ABS64 relocation at the DW_AT_location field for a TLS variable. That causes trouble for linker because thread local variable does not have an absolute address at link time. AArch64 GCC solves the problem by not generating DW_AT_location for thread local variables. We should do the same in LLVM.
This fixes https://bugs.llvm.org/show_bug.cgi?id=21077.
I guess this is sufficient/avoids needing to pass a triple to llc directly?
& does that ensure ELF, not MachO?