Skip to content

Commit 49aa5da

Browse files
committed
Pass +forced-atomics feature for riscv32{i,im,imc}-unknown-none-elf
1 parent 383bf02 commit 49aa5da

File tree

4 files changed

+8
-5
lines changed

4 files changed

+8
-5
lines changed

compiler/rustc_codegen_llvm/src/llvm_util.rs

+2
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,8 @@ pub(crate) fn global_llvm_features(sess: &Session, diagnostics: bool) -> Vec<Str
507507
.features
508508
.split(',')
509509
.filter(|v| !v.is_empty() && backend_feature_name(v).is_some())
510+
// Drop +forced-atomics feature introduced in LLVM 16.
511+
.filter(|v| *v != "+forced-atomics" || get_version() >= (16, 0, 0))
510512
.map(String::from),
511513
);
512514

compiler/rustc_target/src/spec/targets/riscv32i_unknown_none_elf.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@ pub fn target() -> Target {
1111
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
1212
linker: Some("rust-lld".into()),
1313
cpu: "generic-rv32".into(),
14-
max_atomic_width: Some(0),
14+
max_atomic_width: Some(32),
1515
atomic_cas: false,
16+
features: "+forced-atomics".into(),
1617
panic_strategy: PanicStrategy::Abort,
1718
relocation_model: RelocModel::Static,
1819
emit_debug_gdb_scripts: false,

compiler/rustc_target/src/spec/targets/riscv32im_unknown_none_elf.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ pub fn target() -> Target {
1111
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
1212
linker: Some("rust-lld".into()),
1313
cpu: "generic-rv32".into(),
14-
max_atomic_width: Some(0),
14+
max_atomic_width: Some(32),
1515
atomic_cas: false,
16-
features: "+m".into(),
16+
features: "+m,+forced-atomics".into(),
1717
panic_strategy: PanicStrategy::Abort,
1818
relocation_model: RelocModel::Static,
1919
emit_debug_gdb_scripts: false,

compiler/rustc_target/src/spec/targets/riscv32imc_unknown_none_elf.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ pub fn target() -> Target {
1111
linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes),
1212
linker: Some("rust-lld".into()),
1313
cpu: "generic-rv32".into(),
14-
max_atomic_width: Some(0),
14+
max_atomic_width: Some(32),
1515
atomic_cas: false,
16-
features: "+m,+c".into(),
16+
features: "+m,+c,+forced-atomics".into(),
1717
panic_strategy: PanicStrategy::Abort,
1818
relocation_model: RelocModel::Static,
1919
emit_debug_gdb_scripts: false,

0 commit comments

Comments
 (0)