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