diff options
| author | bors <bors@rust-lang.org> | 2022-06-27 00:27:40 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-06-27 00:27:40 +0000 |
| commit | 221bdb62a23f54a32b56b55a6578646f3594fd3b (patch) | |
| tree | 2399dd952543d5d43ac5388ffeb05772e0cd47e3 /compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs | |
| parent | 3b0d4813ab461ec81eab8980bb884691c97c5a35 (diff) | |
| parent | 456f65ec8b7ec815cab39929b31f4b6e181651c2 (diff) | |
| download | rust-221bdb62a23f54a32b56b55a6578646f3594fd3b.tar.gz rust-221bdb62a23f54a32b56b55a6578646f3594fd3b.zip | |
Auto merge of #98212 - petrochenkov:addlinkargs, r=lqd
rustc_target: Add convenience functions for adding linker arguments They ensure that lld and non-lld linker flavors get the same set of arguments. The second commit also adds some tests checking for linker argument inconsistencies, and tweaks some arguments to fix those inconsistencies.
Diffstat (limited to 'compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs')
| -rw-r--r-- | compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs b/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs index 1b94c59b55f..c7e7d221086 100644 --- a/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs +++ b/compiler/rustc_target/src/spec/wasm32_unknown_emscripten.rs @@ -2,21 +2,11 @@ use super::{cvs, wasm_base}; use super::{LinkArgs, LinkerFlavor, PanicStrategy, RelocModel, Target, TargetOptions}; pub fn target() -> Target { - let mut options = wasm_base::options(); - - let clang_args = options.pre_link_args.entry(LinkerFlavor::Gcc).or_default(); - - // Rust really needs a way for users to specify exports and imports in - // the source code. --export-dynamic isn't the right tool for this job, - // however it does have the side effect of automatically exporting a lot - // of symbols, which approximates what people want when compiling for - // wasm32-unknown-unknown expect, so use it for now. - clang_args.push("--export-dynamic".into()); - - let mut post_link_args = LinkArgs::new(); - post_link_args.insert( + // Reset flags for non-Em flavors back to empty to satisfy sanity checking tests. + let pre_link_args = LinkArgs::new(); + let post_link_args = TargetOptions::link_args( LinkerFlavor::Em, - vec!["-sABORTING_MALLOC=0".into(), "-Wl,--fatal-warnings".into()], + &["-sABORTING_MALLOC=0", "-Wl,--fatal-warnings"], ); let opts = TargetOptions { @@ -26,12 +16,13 @@ pub fn target() -> Target { // functionality, and a .wasm file. exe_suffix: ".js".into(), linker: None, + pre_link_args, + post_link_args, relocation_model: RelocModel::Pic, panic_strategy: PanicStrategy::Unwind, no_default_libraries: false, - post_link_args, families: cvs!["unix", "wasm"], - ..options + ..wasm_base::options() }; Target { llvm_target: "wasm32-unknown-emscripten".into(), |
