rustc_target/spec/targets/
riscv32imafc_esp_espidf.rs1use crate::spec::{
2 Arch, Env, Os, PanicStrategy, RelocModel, Target, TargetMetadata, TargetOptions, cvs,
3};
4
5pub(crate) fn target() -> Target {
6 Target {
7 data_layout: "e-m:e-p:32:32-i64:64-n32-S128".into(),
8 llvm_target: "riscv32".into(),
9 metadata: TargetMetadata {
10 description: Some("RISC-V ESP-IDF".into()),
11 tier: Some(3),
12 host_tools: Some(false),
13 std: Some(true),
14 },
15 pointer_width: 32,
16 arch: Arch::RiscV32,
17
18 options: TargetOptions {
19 families: cvs!["unix"],
20 os: Os::EspIdf,
21 env: Env::Newlib,
22 vendor: "espressif".into(),
23 linker: Some("riscv32-esp-elf-gcc".into()),
24 cpu: "generic-rv32".into(),
25
26 max_atomic_width: Some(32),
27 atomic_cas: true,
28
29 llvm_abiname: "ilp32f".into(),
30 features: "+m,+a,+c,+f".into(),
31 panic_strategy: PanicStrategy::Abort,
32 relocation_model: RelocModel::Static,
33 emit_debug_gdb_scripts: false,
34 eh_frame_header: false,
35 ..Default::default()
36 },
37 }
38}