Use rust-analyzer for riscv64 and loongarch64 target

This commit is contained in:
Zejun Zhao 2025-08-29 00:02:34 +08:00 committed by Tate, Hongliang Tian
parent f8e4aefcca
commit 3b0666449f
2 changed files with 26 additions and 18 deletions

View File

@ -12,6 +12,10 @@
"kernel/Cargo.toml", "kernel/Cargo.toml",
"--target", "--target",
"x86_64-unknown-none", "x86_64-unknown-none",
"--target",
"riscv64imac-unknown-none-elf",
"--target",
"loongarch64-unknown-none-softfloat",
"-Zbuild-std=core,alloc,compiler_builtins", "-Zbuild-std=core,alloc,compiler_builtins",
"-Zbuild-std-features=compiler-builtins-mem" "-Zbuild-std-features=compiler-builtins-mem"
], ],

View File

@ -7,11 +7,12 @@ fn main() {
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap()); let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());
let target_arch = std::env::var("TARGET").unwrap(); let target_arch = std::env::var("TARGET").unwrap();
if target_arch.starts_with("x86_64") {
let lds = source_dir.join("src/x86/linker.ld"); let lds = source_dir.join("src/x86/linker.ld");
let def = match target_arch.as_str() { let def = match target_arch.as_str() {
"x86_64-unknown-none" => "-DCFG_TARGET_ARCH_X86_64=1", "x86_64-unknown-none" => "-DCFG_TARGET_ARCH_X86_64=1",
"x86_64-i386_pm-none" => "-DCFG_TARGET_ARCH_X86_64=0", "x86_64-i386_pm-none" => "-DCFG_TARGET_ARCH_X86_64=0",
other => panic!("unsupported target: {}", other), other => panic!("unsupported x86_64 target: {}", other),
}; };
let out_lds = out_dir.join("linker.ld"); let out_lds = out_dir.join("linker.ld");
@ -26,4 +27,7 @@ fn main() {
println!("cargo:rerun-if-changed={}", lds.display()); println!("cargo:rerun-if-changed={}", lds.display());
println!("cargo:rustc-link-arg=-T{}", out_lds.display()); println!("cargo:rustc-link-arg=-T{}", out_lds.display());
} else {
println!("cargo:warning=Unsupported target: {}", target_arch);
}
} }