]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_target/src/spec/bpf_base.rs
0853255999c8e1070fd368d58dfc6af54ea5fdd7
[rust.git] / compiler / rustc_target / src / spec / bpf_base.rs
1 use crate::spec::{LinkerFlavor, MergeFunctions, PanicStrategy, TargetOptions};
2 use crate::{abi::Endian, spec::abi::Abi};
3
4 pub fn opts(endian: Endian) -> TargetOptions {
5     TargetOptions {
6         endian,
7         linker_flavor: LinkerFlavor::BpfLinker,
8         atomic_cas: false,
9         executables: true,
10         dynamic_linking: true,
11         no_builtins: true,
12         panic_strategy: PanicStrategy::Abort,
13         position_independent_executables: true,
14         merge_functions: MergeFunctions::Disabled,
15         obj_is_bitcode: true,
16         requires_lto: false,
17         singlethread: true,
18         max_atomic_width: Some(64),
19         unsupported_abis: vec![
20             Abi::Cdecl,
21             Abi::Stdcall { unwind: false },
22             Abi::Stdcall { unwind: true },
23             Abi::Fastcall,
24             Abi::Vectorcall,
25             Abi::Thiscall { unwind: false },
26             Abi::Thiscall { unwind: true },
27             Abi::Aapcs,
28             Abi::Win64,
29             Abi::SysV64,
30             Abi::PtxKernel,
31             Abi::Msp430Interrupt,
32             Abi::X86Interrupt,
33             Abi::AmdGpuKernel,
34         ],
35         ..Default::default()
36     }
37 }