]>
Commit | Line | Data |
---|---|---|
83c7162d | 1 | use super::{LinkArgs, LinkerFlavor, Target, TargetOptions}; |
c30ab7b3 SL |
2 | |
3 | pub fn target() -> Result<Target, String> { | |
a1dfa0c6 XL |
4 | // FIXME(nikic) BINARYEN_TRAP_MODE=clamp is needed to avoid trapping in our |
5 | // -Zsaturating-float-casts implementation. This can be dropped if/when | |
6 | // we have native fpto[su]i.sat intrinsics, or the implementation otherwise | |
7 | // stops relying on non-trapping fpto[su]i. | |
cc61c64b XL |
8 | let mut post_link_args = LinkArgs::new(); |
9 | post_link_args.insert(LinkerFlavor::Em, | |
10 | vec!["-s".to_string(), | |
11 | "BINARYEN=1".to_string(), | |
12 | "-s".to_string(), | |
a1dfa0c6 XL |
13 | "ERROR_ON_UNDEFINED_SYMBOLS=1".to_string(), |
14 | "-s".to_string(), | |
15 | "BINARYEN_TRAP_MODE='clamp'".to_string()]); | |
cc61c64b | 16 | |
c30ab7b3 | 17 | let opts = TargetOptions { |
c30ab7b3 SL |
18 | dynamic_linking: false, |
19 | executables: true, | |
20 | // Today emcc emits two files - a .js file to bootstrap and | |
21 | // possibly interpret the wasm, and a .wasm file | |
22 | exe_suffix: ".js".to_string(), | |
23 | linker_is_gnu: true, | |
24 | allow_asm: false, | |
25 | obj_is_bitcode: true, | |
8bb4bdeb | 26 | is_like_emscripten: true, |
c30ab7b3 | 27 | max_atomic_width: Some(32), |
3b2f2976 | 28 | post_link_args, |
dc9dc135 | 29 | limit_rdylib_exports: false, |
32a655c1 | 30 | target_family: Some("unix".to_string()), |
2c00a5a8 | 31 | codegen_backend: "emscripten".to_string(), |
c30ab7b3 SL |
32 | .. Default::default() |
33 | }; | |
34 | Ok(Target { | |
35 | llvm_target: "asmjs-unknown-emscripten".to_string(), | |
36 | target_endian: "little".to_string(), | |
37 | target_pointer_width: "32".to_string(), | |
ea8adc8c | 38 | target_c_int_width: "32".to_string(), |
c30ab7b3 | 39 | target_os: "emscripten".to_string(), |
b7449926 | 40 | target_env: String::new(), |
c30ab7b3 SL |
41 | target_vendor: "unknown".to_string(), |
42 | data_layout: "e-p:32:32-i64:64-v128:32:128-n32-S128".to_string(), | |
43 | arch: "wasm32".to_string(), | |
cc61c64b | 44 | linker_flavor: LinkerFlavor::Em, |
c30ab7b3 SL |
45 | options: opts, |
46 | }) | |
47 | } |