]> git.lizzy.rs Git - rust.git/blob - src/librustc_target/spec/asmjs_unknown_emscripten.rs
Rollup merge of #61675 - fintelia:riscv-frame-pointer, r=nagisa
[rust.git] / src / librustc_target / spec / asmjs_unknown_emscripten.rs
1 use super::{LinkArgs, LinkerFlavor, Target, TargetOptions};
2
3 pub fn target() -> Result<Target, String> {
4     let mut args = LinkArgs::new();
5     args.insert(LinkerFlavor::Em,
6                 vec!["-s".to_string(),
7                      "ERROR_ON_UNDEFINED_SYMBOLS=1".to_string(),
8                      "-s".to_string(),
9                      "ABORTING_MALLOC=0".to_string(),
10                      "-s".to_string(),
11                      "WASM=0".to_string()]);
12
13     let opts = TargetOptions {
14         dynamic_linking: false,
15         executables: true,
16         exe_suffix: ".js".to_string(),
17         linker_is_gnu: true,
18         allow_asm: false,
19         obj_is_bitcode: true,
20         is_like_emscripten: true,
21         max_atomic_width: Some(32),
22         post_link_args: args,
23         target_family: Some("unix".to_string()),
24         codegen_backend: "emscripten".to_string(),
25         .. Default::default()
26     };
27     Ok(Target {
28         llvm_target: "asmjs-unknown-emscripten".to_string(),
29         target_endian: "little".to_string(),
30         target_pointer_width: "32".to_string(),
31         target_c_int_width: "32".to_string(),
32         target_os: "emscripten".to_string(),
33         target_env: String::new(),
34         target_vendor: "unknown".to_string(),
35         data_layout: "e-p:32:32-i64:64-v128:32:128-n32-S128".to_string(),
36         arch: "asmjs".to_string(),
37         linker_flavor: LinkerFlavor::Em,
38         options: opts,
39     })
40 }