Stop passing -export-dynamic to wasm-ld. by sunfishcode · Pull Request #105405 · rust-lang/rust (original) (raw)

-export-dynamic was a temporary hack added in the early days of the Rust wasm32 target when Rust didn't have a way to specify wasm exports in the source code. This flag causes all global symbols, and some compiler-internal symbols, to be exported, which is often more than needed.

Rust now does have a way to specify exports in the source code: #[export_name = "..."].

So as the original comment suggests, -export-dynamic can now be removed, allowing users to have smaller binaries and better encapsulation in their wasm32-unknown-unknown modules.

It's possible that this change will require existing wasm32-unknown-unknown users will to add explicit #[export_name = "..."] directives to exporrt the symbols that their programs depend on having exported.