Auto merge of #114499 - taiki-e:riscv-forced-atomics, r=Amanieu
Pass +forced-atomics feature for riscv32{i,im,imc}-unknown-none-elf As said in https://github.com/rust-lang/rust/pull/98333#issuecomment-1666375293, `forced-atomics` target feature is also needed to enable atomic load/store on these targets (otherwise, libcalls are generated): https://godbolt.org/z/433qeG7vd ~~This PR is currently marked as a draft because:~~ - ~~`forced-atomics` target feature is currently broken (https://github.com/rust-lang/rust/issues/114153).~~ EDIT: Fixed - ~~`forced-atomics` target feature has been added in LLVM 16 (f5ed0cb217
), but the current minimum LLVM version [is 15](90f0b24ad3/src/bootstrap/llvm.rs (L557)
). In LLVM 15, the atomic load/store of these targets generates libcalls anyway.~~ EDIT: LLVM 15 has been dropped Depending on the policy on the minimum LLVM version for these targets, this may be blocked until the minimum LLVM version is increased to 16. r? `@Amanieu`
This commit is contained in:
commit
c9c760fc20
@ -11,8 +11,9 @@ pub fn target() -> Target {
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
|
||||
linker: Some("rust-lld".into()),
|
||||
cpu: "generic-rv32".into(),
|
||||
max_atomic_width: Some(0),
|
||||
max_atomic_width: Some(32),
|
||||
atomic_cas: false,
|
||||
features: "+forced-atomics".into(),
|
||||
panic_strategy: PanicStrategy::Abort,
|
||||
relocation_model: RelocModel::Static,
|
||||
emit_debug_gdb_scripts: false,
|
||||
|
@ -11,9 +11,9 @@ pub fn target() -> Target {
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
|
||||
linker: Some("rust-lld".into()),
|
||||
cpu: "generic-rv32".into(),
|
||||
max_atomic_width: Some(0),
|
||||
max_atomic_width: Some(32),
|
||||
atomic_cas: false,
|
||||
features: "+m".into(),
|
||||
features: "+m,+forced-atomics".into(),
|
||||
panic_strategy: PanicStrategy::Abort,
|
||||
relocation_model: RelocModel::Static,
|
||||
emit_debug_gdb_scripts: false,
|
||||
|
@ -11,9 +11,9 @@ pub fn target() -> Target {
|
||||
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
|
||||
linker: Some("rust-lld".into()),
|
||||
cpu: "generic-rv32".into(),
|
||||
max_atomic_width: Some(0),
|
||||
max_atomic_width: Some(32),
|
||||
atomic_cas: false,
|
||||
features: "+m,+c".into(),
|
||||
features: "+m,+c,+forced-atomics".into(),
|
||||
panic_strategy: PanicStrategy::Abort,
|
||||
relocation_model: RelocModel::Static,
|
||||
emit_debug_gdb_scripts: false,
|
||||
|
Loading…
Reference in New Issue
Block a user