]> git.proxmox.com Git - rustc.git/blob - compiler/rustc_target/src/spec/fuchsia_base.rs
New upstream version 1.53.0+dfsg1
[rustc.git] / compiler / rustc_target / src / spec / fuchsia_base.rs
1 use crate::spec::{crt_objects, LinkArgs, LinkOutputKind, LinkerFlavor, LldFlavor, TargetOptions};
2
3 pub fn opts() -> TargetOptions {
4 let mut pre_link_args = LinkArgs::new();
5 pre_link_args.insert(
6 LinkerFlavor::Lld(LldFlavor::Ld),
7 vec![
8 "--build-id".to_string(),
9 "--hash-style=gnu".to_string(),
10 "-z".to_string(),
11 "max-page-size=4096".to_string(),
12 "-z".to_string(),
13 "now".to_string(),
14 "-z".to_string(),
15 "rodynamic".to_string(),
16 "-z".to_string(),
17 "separate-loadable-segments".to_string(),
18 "--pack-dyn-relocs=relr".to_string(),
19 ],
20 );
21
22 TargetOptions {
23 os: "fuchsia".to_string(),
24 linker_flavor: LinkerFlavor::Lld(LldFlavor::Ld),
25 linker: Some("rust-lld".to_owned()),
26 dynamic_linking: true,
27 executables: true,
28 os_family: Some("unix".to_string()),
29 is_like_fuchsia: true,
30 linker_is_gnu: true,
31 pre_link_args,
32 pre_link_objects: crt_objects::new(&[
33 (LinkOutputKind::DynamicNoPicExe, &["Scrt1.o"]),
34 (LinkOutputKind::DynamicPicExe, &["Scrt1.o"]),
35 (LinkOutputKind::StaticNoPicExe, &["Scrt1.o"]),
36 (LinkOutputKind::StaticPicExe, &["Scrt1.o"]),
37 ]),
38 position_independent_executables: true,
39 has_elf_tls: true,
40 ..Default::default()
41 }
42 }