Skip to content

[android] Use emulated thread-local storage for API 28 and earlier #78513

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 15, 2025

Conversation

finagolfin
Copy link
Member

@finagolfin finagolfin commented Jan 9, 2025

Explanation: Android before API 29 and a few other platforms don't support native TLS, so fall back to LLVM's emulated TLS there, just like clang does. Also, make sure -Xcc -f{no-,}emulated-tls flags passed in are applied to control what the Swift compiler does.

Scope: Has no effect by default, except on Android API 28 or older, OpenBSD, and a couple other platforms Swift doesn't support

Issue: None

Original PR: #77883

Risk: very low

Testing: Passed all CI on trunk and now on my Android CI running at API 24, when built with the latest Jan. 10 trunk snapshot tag containing this commit

Reviewer: @compnerd

This will allow Foundation in my Android SDK bundle and native toolchain for Android to support APIs 24-28 again, finagolfin/swift-android-sdk#175.

Android before API 29 and a few other platforms don't support native TLS, so
fall back to LLVM's emulated TLS there, just like clang does. Also, make sure
`-Xcc -f{no-,}emulated-tls` flags passed in are applied to control what the
Swift compiler does.
@finagolfin finagolfin requested a review from a team as a code owner January 9, 2025 10:50
@finagolfin
Copy link
Member Author

@swift-ci please test

@finagolfin finagolfin added the 🍒 release cherry pick Flag: Release branch cherry picks label Jan 11, 2025
@finagolfin
Copy link
Member Author

@DougGregor, this is in trunk and 6.0 now, should get it in 6.1 also.

@finagolfin finagolfin merged commit 88c0a5d into swiftlang:release/6.1 Jan 15, 2025
5 checks passed
@finagolfin finagolfin deleted the droid branch January 15, 2025 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🍒 release cherry pick Flag: Release branch cherry picks swift 6.1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants