Rollup merge of #102440 - sunfishcode:sunfishcode/wasm-no-export-tls-api, r=oli-obk
Only export `__tls_*` on wasm32-unknown-unknown. From talking with `@abrown,` we aren't planning to have hosts call these `__tls_*` functions; instead, TLS initialization will be handled transparently within libc. Consequently, these functions don't need to be exported. Leave them exported on wasm32-unknown-unknown though, as wasm-bindgen does call them.
This commit is contained in:
commit
814b827efe
@ -1180,16 +1180,19 @@ impl<'a> WasmLd<'a> {
|
|||||||
// sharing memory and instantiating the module multiple times. As a
|
// sharing memory and instantiating the module multiple times. As a
|
||||||
// result if it were exported then we'd just have no sharing.
|
// result if it were exported then we'd just have no sharing.
|
||||||
//
|
//
|
||||||
// * `--export=*tls*` - when `#[thread_local]` symbols are used these
|
// On wasm32-unknown-unknown, we also export symbols for glue code to use:
|
||||||
// symbols are how the TLS segments are initialized and configured.
|
// * `--export=*tls*` - when `#[thread_local]` symbols are used these
|
||||||
|
// symbols are how the TLS segments are initialized and configured.
|
||||||
if sess.target_features.contains(&sym::atomics) {
|
if sess.target_features.contains(&sym::atomics) {
|
||||||
cmd.arg("--shared-memory");
|
cmd.arg("--shared-memory");
|
||||||
cmd.arg("--max-memory=1073741824");
|
cmd.arg("--max-memory=1073741824");
|
||||||
cmd.arg("--import-memory");
|
cmd.arg("--import-memory");
|
||||||
cmd.arg("--export=__wasm_init_tls");
|
if sess.target.os == "unknown" {
|
||||||
cmd.arg("--export=__tls_size");
|
cmd.arg("--export=__wasm_init_tls");
|
||||||
cmd.arg("--export=__tls_align");
|
cmd.arg("--export=__tls_size");
|
||||||
cmd.arg("--export=__tls_base");
|
cmd.arg("--export=__tls_align");
|
||||||
|
cmd.arg("--export=__tls_base");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
WasmLd { cmd, sess }
|
WasmLd { cmd, sess }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user