Cross module TLS is currently not supported by our ABI. This
change makes explicitly exporting a TLS symbol into an error
and prevents implicit exporting (via --export-all).
See https://github.com/emscripten-core/emscripten/issues/14120
Paths
| Differential D102044
[lld][WebAssembly] Disallow exporting of TLS symbols ClosedPublic Authored by sbc100 on May 6 2021, 8:31 PM.
Details
Summary Cross module TLS is currently not supported by our ABI. This See https://github.com/emscripten-core/emscripten/issues/14120
Diff Detail
Event TimelineHerald added subscribers: wingo, ecnelises, jfb and 3 others. · View Herald TranscriptMay 6 2021, 8:31 PM dschuff added inline comments.
This revision is now accepted and ready to land.May 7 2021, 9:37 AM
Closed by commit rGbda8b8488442: [lld][WebAssembly] Disallow exporting of TLS symbols (authored by sbc100). · Explain WhyMay 10 2021, 10:05 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 344102 lld/test/wasm/tls-export.s
lld/wasm/InputChunks.h
lld/wasm/InputFiles.cpp
lld/wasm/OutputSegment.h
lld/wasm/Relocations.cpp
lld/wasm/Symbols.h
lld/wasm/Symbols.cpp
lld/wasm/Writer.cpp
|
What is it that actually designates the symbol as TLS? Is it just the section name?
edit: ok yeah i just read the rest of the code. That's surprising; I guess in the object file (and eventually in dylibs) there's a flag in the symbol table, right? or is it still just based on the section name? is ELF like this too, or do they have a section or symbol flag?