diff --git a/llvm/include/llvm/ADT/Triple.h b/llvm/include/llvm/ADT/Triple.h --- a/llvm/include/llvm/ADT/Triple.h +++ b/llvm/include/llvm/ADT/Triple.h @@ -727,7 +727,9 @@ /// Tests whether the target uses emulated TLS as default. bool hasDefaultEmulatedTLS() const { - return isAndroid() || isOSOpenBSD() || isWindowsCygwinEnvironment(); + // Android NDK version 29 introduced ELF TLS. + return (isAndroid() && isAndroidVersionLT(29)) || isOSOpenBSD() || + isWindowsCygwinEnvironment(); } /// @}