]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_target/src/spec/avr_gnu_base.rs
Auto merge of #97800 - pnkfelix:issue-97463-fix-aarch64-call-abi-does-not-zeroext...
[rust.git] / compiler / rustc_target / src / spec / avr_gnu_base.rs
1 use crate::spec::{LinkerFlavor, RelocModel, Target, TargetOptions};
2
3 /// A base target for AVR devices using the GNU toolchain.
4 ///
5 /// Requires GNU avr-gcc and avr-binutils on the host system.
6 /// FIXME: Remove the second parameter when const string concatenation is possible.
7 pub fn target(target_cpu: &'static str, mmcu: &'static str) -> Target {
8     Target {
9         arch: "avr".into(),
10         data_layout: "e-P1-p:16:8-i8:8-i16:8-i32:8-i64:8-f32:8-f64:8-n8-a:8".into(),
11         llvm_target: "avr-unknown-unknown".into(),
12         pointer_width: 16,
13         options: TargetOptions {
14             c_int_width: "16".into(),
15             cpu: target_cpu.into(),
16             exe_suffix: ".elf".into(),
17
18             linker: Some("avr-gcc".into()),
19             eh_frame_header: false,
20             pre_link_args: TargetOptions::link_args(LinkerFlavor::Gcc, &[mmcu]),
21             late_link_args: TargetOptions::link_args(LinkerFlavor::Gcc, &["-lgcc"]),
22             max_atomic_width: Some(0),
23             atomic_cas: false,
24             relocation_model: RelocModel::Static,
25             ..TargetOptions::default()
26         },
27     }
28 }