rustc_target/spec/base/
teeos.rs
1use crate::spec::{Cc, LinkerFlavor, Lld, PanicStrategy, RelroLevel, TargetOptions, add_link_args};
2
3pub(crate) fn opts() -> TargetOptions {
4 let lld_args = &["-zmax-page-size=4096", "-znow", "-ztext", "--execute-only"];
5 let cc_args = &["-Wl,-zmax-page-size=4096", "-Wl,-znow", "-Wl,-ztext", "-mexecute-only"];
6
7 let mut pre_link_args = TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), lld_args);
8 add_link_args(&mut pre_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), cc_args);
9
10 TargetOptions {
11 os: "teeos".into(),
12 vendor: "unknown".into(),
13 dynamic_linking: true,
14 linker_flavor: LinkerFlavor::Gnu(Cc::Yes, Lld::No),
15 has_rpath: false,
18 has_thread_local: false,
21 position_independent_executables: true,
22 relro_level: RelroLevel::Full,
23 crt_static_respected: true,
24 pre_link_args,
25 panic_strategy: PanicStrategy::Abort,
26 ..Default::default()
27 }
28}