]> git.proxmox.com Git - rustc.git/blob - src/librustc_target/spec/fuchsia_base.rs
New upstream version 1.47.0+dfsg1
[rustc.git] / src / librustc_target / 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 linker: Some("rust-lld".to_owned()),
24 lld_flavor: LldFlavor::Ld,
25 dynamic_linking: true,
26 executables: true,
27 target_family: Some("unix".to_string()),
28 is_like_fuchsia: true,
29 linker_is_gnu: true,
30 has_rpath: false,
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 }