diff options
| author | Taiki Endo <te316e89@gmail.com> | 2022-08-16 19:24:12 +0900 |
|---|---|---|
| committer | Taiki Endo <te316e89@gmail.com> | 2022-08-16 19:24:12 +0900 |
| commit | 8439080f270956e8bba3e57a3432e455fd62ab85 (patch) | |
| tree | ef4146b4ae1f891f2a2b6c0fe9cf997de7d80969 | |
| parent | 8556e6620e4866526b3cea767ad8c20ae877a569 (diff) | |
| download | rust-8439080f270956e8bba3e57a3432e455fd62ab85.tar.gz rust-8439080f270956e8bba3e57a3432e455fd62ab85.zip | |
Pass +atomics-32 feature for {arm,thumb}v4t-none-eabi
| -rw-r--r-- | compiler/rustc_target/src/spec/armv4t_none_eabi.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/compiler/rustc_target/src/spec/armv4t_none_eabi.rs b/compiler/rustc_target/src/spec/armv4t_none_eabi.rs index a76ffe808c3..797dfe52bd1 100644 --- a/compiler/rustc_target/src/spec/armv4t_none_eabi.rs +++ b/compiler/rustc_target/src/spec/armv4t_none_eabi.rs @@ -38,7 +38,9 @@ pub fn target() -> Target { linker_flavor: LinkerFlavor::Ld, linker: Some("arm-none-eabi-ld".into()), asm_args: cvs!["-mthumb-interwork", "-march=armv4t", "-mlittle-endian",], - features: "+soft-float,+strict-align".into(), + // Force-enable 32-bit atomics, which allows the use of atomic load/store only. + // The resulting atomics are ABI incompatible with atomics backed by libatomic. + features: "+soft-float,+strict-align,+atomics-32".into(), main_needs_argc_argv: false, atomic_cas: false, has_thumb_interworking: true, diff --git a/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs b/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs index 7125d141af7..bdaaed8b5d0 100644 --- a/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs +++ b/compiler/rustc_target/src/spec/thumbv4t_none_eabi.rs @@ -47,7 +47,9 @@ pub fn target() -> Target { asm_args: cvs!["-mthumb-interwork", "-march=armv4t", "-mlittle-endian",], // minimum extra features, these cannot be disabled via -C - features: "+soft-float,+strict-align".into(), + // Also force-enable 32-bit atomics, which allows the use of atomic load/store only. + // The resulting atomics are ABI incompatible with atomics backed by libatomic. + features: "+soft-float,+strict-align,+atomics-32".into(), panic_strategy: PanicStrategy::Abort, relocation_model: RelocModel::Static, |
