Skip to content

Commit 63fae26

Browse files
committed
Add target mapping for riscv32imc and riscv32imac
Similar problem as the one mentioned in rust-lang#2136, just continuing by adding the 32 bit risc tuple mappings. Tuples like riscv32imc- and riscv32imac- should map to the clang riscv32- tuple. Fixed by adding mappings and tests for the mappings. Projects that now failed to build the "riscv32imac-unknown-none-elf" target tuple now build without issue.
1 parent 83f729f commit 63fae26

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

bindgen/lib.rs

+17-1
Original file line numberDiff line numberDiff line change
@@ -686,6 +686,14 @@ fn rust_to_clang_target(rust_target: &str) -> String {
686686
clang_target.strip_prefix("riscv32imc-").unwrap();
687687
}
688688
return clang_target;
689+
} else if rust_target.starts_with("riscv32imc-") {
690+
let mut clang_target = "riscv32-".to_owned();
691+
clang_target.push_str(rust_target.strip_prefix("riscv32imc-").unwrap());
692+
return clang_target;
693+
} else if rust_target.starts_with("riscv32imac-") {
694+
let mut clang_target = "riscv32-".to_owned();
695+
clang_target.push_str(rust_target.strip_prefix("riscv32imac-").unwrap());
696+
return clang_target;
689697
}
690698
rust_target.to_owned()
691699
}
@@ -1285,7 +1293,15 @@ fn test_rust_to_clang_target_riscv() {
12851293
assert_eq!(
12861294
rust_to_clang_target("riscv64gc-unknown-linux-gnu"),
12871295
"riscv64-unknown-linux-gnu"
1288-
)
1296+
);
1297+
assert_eq!(
1298+
rust_to_clang_target("riscv32imc-unknown-none-elf"),
1299+
"riscv32-unknown-none-elf"
1300+
);
1301+
assert_eq!(
1302+
rust_to_clang_target("riscv32imac-unknown-none-elf"),
1303+
"riscv32-unknown-none-elf"
1304+
);
12891305
}
12901306

12911307
#[test]

0 commit comments

Comments
 (0)