From d56f53d2ad0c9293980ccaccf86a1aa66f2e2539 Mon Sep 17 00:00:00 2001 From: Conner <59540839+TheConner@users.noreply.github.com> Date: Sat, 10 Jun 2023 13:32:49 -0400 Subject: [PATCH] Add target mappings for riscv32imc and riscv32imac (#2551) Similar problem as the one mentioned in #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. --- CHANGELOG.md | 1 + bindgen/lib.rs | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a78cb26c9..650d055cd6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -196,6 +196,7 @@ + `log` removed in favor of `logging` + `which` removed in favor of `which-logging` + `annotate-snippets` removed in favor of `experimental` +* Add target mappings for riscv32imc and riscv32imac. ## Removed diff --git a/bindgen/lib.rs b/bindgen/lib.rs index be0cd8266a..9d1ebb4599 100644 --- a/bindgen/lib.rs +++ b/bindgen/lib.rs @@ -686,6 +686,15 @@ fn rust_to_clang_target(rust_target: &str) -> String { clang_target.strip_prefix("riscv32imc-").unwrap(); } return clang_target; + } else if rust_target.starts_with("riscv32imc-") { + let mut clang_target = "riscv32-".to_owned(); + clang_target.push_str(rust_target.strip_prefix("riscv32imc-").unwrap()); + return clang_target; + } else if rust_target.starts_with("riscv32imac-") { + let mut clang_target = "riscv32-".to_owned(); + clang_target + .push_str(rust_target.strip_prefix("riscv32imac-").unwrap()); + return clang_target; } rust_target.to_owned() } @@ -1285,7 +1294,15 @@ fn test_rust_to_clang_target_riscv() { assert_eq!( rust_to_clang_target("riscv64gc-unknown-linux-gnu"), "riscv64-unknown-linux-gnu" - ) + ); + assert_eq!( + rust_to_clang_target("riscv32imc-unknown-none-elf"), + "riscv32-unknown-none-elf" + ); + assert_eq!( + rust_to_clang_target("riscv32imac-unknown-none-elf"), + "riscv32-unknown-none-elf" + ); } #[test]