]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_target/src/spec/fuchsia_base.rs
Rollup merge of #82497 - jyn514:json, r=CraftSpider
[rust.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 }