1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
use crate::spec::{
Cc, FramePointer, LinkerFlavor, Lld, PanicStrategy, StackProbeType, TargetOptions,
};
pub(crate) fn opts() -> TargetOptions {
let pre_link_args = TargetOptions::link_args(
LinkerFlavor::Gnu(Cc::No, Lld::No),
&[
"-e",
"motor_start",
"--no-undefined",
"--error-unresolved-symbols",
"--no-undefined-version",
"-u",
"__rust_abort",
],
);
TargetOptions {
os: "motor".into(),
executables: true,
// TLS is false below because if true, the compiler assumes
// we handle TLS at the ELF loading level, which we don't.
// We use "OS level" TLS (see thread/local.rs in stdlib).
has_thread_local: false,
frame_pointer: FramePointer::NonLeaf,
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::No),
main_needs_argc_argv: true,
panic_strategy: PanicStrategy::Abort,
pre_link_args,
stack_probes: StackProbeType::Inline,
supports_stack_protector: true,
..Default::default()
}
}
|