]> git.lizzy.rs Git - rust.git/blob - src/librustc_back/target/le32_unknown_nacl.rs
891e7dda14a2a4d931e3171966e97d4e7a53fb1e
[rust.git] / src / librustc_back / target / le32_unknown_nacl.rs
1 // Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 use super::{Target, TargetOptions, TargetResult};
12
13 pub fn target() -> TargetResult {
14     let opts = TargetOptions {
15         linker: "pnacl-clang".to_string(),
16         ar: "pnacl-ar".to_string(),
17
18         pre_link_args: vec!["--pnacl-exceptions=sjlj".to_string(),
19                             "--target=le32-unknown-nacl".to_string(),
20                             "-Wl,--start-group".to_string()],
21         post_link_args: vec!["-Wl,--end-group".to_string()],
22         dynamic_linking: false,
23         executables: true,
24         exe_suffix: ".pexe".to_string(),
25         linker_is_gnu: true,
26         allow_asm: false,
27         max_atomic_width: Some(32),
28         .. Default::default()
29     };
30     Ok(Target {
31         llvm_target: "le32-unknown-nacl".to_string(),
32         target_endian: "little".to_string(),
33         target_pointer_width: "32".to_string(),
34         target_os: "nacl".to_string(),
35         target_env: "newlib".to_string(),
36         target_vendor: "unknown".to_string(),
37         data_layout: "e-i64:64:64-p:32:32:32-v128:32:32".to_string(),
38         arch: "le32".to_string(),
39         options: opts,
40     })
41 }