As before we maintain backwards compat with older object files
by also infering the TLS flag based on the name of the segment.
This change is was split out from https://reviews.llvm.org/D108877.
Paths
| Differential D109426
[WebAssembly] Add explict TLS symbol flag ClosedPublic Authored by sbc100 on Sep 8 2021, 2:50 AM.
Details
Summary As before we maintain backwards compat with older object files This change is was split out from https://reviews.llvm.org/D108877.
Diff Detail
Event TimelineHerald added subscribers: wingo, ecnelises, sunfish and 3 others. · View Herald TranscriptSep 8 2021, 2:50 AM sbc100 added a child revision: D108877: [WebAssembly] Allow import and export of TLS symbols between DSOs.Sep 8 2021, 5:00 AM Comment Actions I have to say that I don't quite understand all the MCStreamer stuff, especially what fixSymbolsInTLSFixups is for, but the code looks good to me. Do we have a plan for when we will be able to remove the name-based implicit TLS? This revision is now accepted and ready to land.Sep 8 2021, 3:07 PM Comment Actions
No plan as yet. I imagine we can do it fairly safely since I won't think anyone outside of emscripten is using WebAssembly + threads yet and emscripten does not provide any object file compatibility between releases. Comment Actions
I should have mentioned that this code is lifted fairly directly from MCELFStreamer.cpp, at least the pattern: This revision was landed with ongoing or failed builds.Sep 9 2021, 7:12 AM Closed by commit rG44177e5fb20d: [WebAssembly] Add explict TLS symbol flag (authored by sbc100). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 371293 lld/wasm/InputChunks.h
lld/wasm/InputFiles.cpp
lld/wasm/Relocations.cpp
lld/wasm/Symbols.h
lld/wasm/Symbols.cpp
lld/wasm/Writer.cpp
llvm/include/llvm/BinaryFormat/Wasm.h
llvm/include/llvm/MC/MCSymbolWasm.h
llvm/include/llvm/MC/MCWasmStreamer.h
llvm/lib/MC/MCWasmStreamer.cpp
llvm/lib/MC/WasmObjectWriter.cpp
llvm/lib/ObjectYAML/WasmYAML.cpp
llvm/test/MC/WebAssembly/tls.s
llvm/test/MC/WebAssembly/tls64.s
|