Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
- Build Status
Buildable 34032 Build 34031: arc lint + arc unit
Event Timeline
Comment Actions
Android's ELF TLS requires lld, but the NDK doesn't default to lld yet. (I believe the NDK uses bfd on arm64 and gold everywhere else.) When the NDK Clang driver targets 29/Q+, the NDK could generate executables or shared objects using ELF TLS that don't load on 29/Q.
For reference, the linker quirks are:
- x86-32 bfd uses an obsolete TLS relocation (R_386_TLS_TPOFF32) for relaxation
- arm{32,64} bfd can discard the overalignment placeholder section from crtbegin.c
- gold uses STB_LOCAL TLS/section symbols that need special handling in soinfo::relocate
Comment Actions
I happened to come across. What about revisiting this now that the NDK has had LLD as the default since r22? Which is approaching 2 years old.