tiny_os/kernel/build.rs
Paul Pan 1d026d8053 feat: map kernel
1. initial riscv32 support
2. fix bug in table.rs: cur level order is reversed
3. introduce global kernel_{phys, virt}_to_{virt, phys} for address translating
4. remove unused riscv/mm
5. initial early_memory management through RamBlock
6. initial kernel space mapping support
2024-04-08 16:23:10 +08:00

31 lines
762 B
Rust

fn main() {
println!("cargo:rerun-if-changed=build.rs");
struct TargetConfig {
target: &'static str,
lds: &'static str,
}
const TARGET_LDS: &[TargetConfig] = &[
TargetConfig {
target: "riscv64",
lds: "src/arch/riscv/linker.ld",
},
TargetConfig {
target: "riscv32",
lds: "src/arch/riscv/linker32.ld",
},
];
let target = std::env::var("TARGET").unwrap();
for cfg in TARGET_LDS {
if target.starts_with(cfg.target) {
println!("cargo:rerun-if-changed={}", cfg.lds);
println!("cargo:rustc-link-arg=-T{}", cfg.lds);
return;
}
}
panic!("Unsupported target: {}", target);
}