Skip to content

fix: retain emulated TLS during image LTO code generation - #19

Merged
Sunrisepeak merged 1 commit into
mainfrom
fix/thinlto-emulated-tls
Nov 4, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
fix/thinlto-emulated-tls

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

ThinLTO code generation did not inherit the compiler's emulated-TLS choice. LLVM 23.1.3 consequently emitted native TLS segments and relocations on x86_64 and AArch64, and the platform seal correctly refused the clangd image candidate.

Set emulated TLS on the platform's final lld code generation as well as on compilation. Add a volatile thread-local isolation fixture built with real ThinLTO bitcode on both image architectures; run the native image on every CI host. The release candidate is 0.23.6 over the unchanged 0.23.5 dependency group.

Validation: the negative/positive LLVM controls reproduce native TLS without the link flag and emulated TLS with it on both architectures. With the patched platform, the native x86_64 image seals and runs its thread isolation control; the AArch64 image seals, and both source objects are confirmed ThinLTO bitcode. Full platform CI remains required.

Tracks mcpp-community/mcpp#885 and the platform portion of its supplemental implementation plan.

@Sunrisepeak
Sunrisepeak merged commit a321366 into main Nov 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant