AArch64 basic boot and upper reloc

This commit is contained in:
2025-03-17 23:05:53 +02:00
parent caec288157
commit 7305ce220a
7 changed files with 496 additions and 9 deletions
+28 -7
View File
@@ -7,14 +7,35 @@ const SupportedArch = enum {
riscv64,
fn makeTarget(self: SupportedArch, b: *std.Build) std.Build.ResolvedTarget {
return b.resolveTargetQuery(.{
.cpu_arch = switch (self) {
.riscv64 => .riscv64,
.aarch64 => .aarch64,
switch (self) {
.riscv64 => {
return b.resolveTargetQuery(.{
.cpu_arch = .riscv64,
.os_tag = .freestanding,
.abi = .none,
});
},
.os_tag = .freestanding,
.abi = .none,
});
.aarch64 => {
const T = std.Target.aarch64;
const addFeatures = T.featureSet(&.{
T.Feature.v8a,
T.Feature.strict_align,
});
const subFeatures = T.featureSet(&.{
T.Feature.neon,
T.Feature.fp_armv8,
});
return b.resolveTargetQuery(.{
.cpu_arch = .aarch64,
.os_tag = .freestanding,
.abi = .none,
.cpu_features_add = addFeatures,
.cpu_features_sub = subFeatures,
});
},
}
}
fn addTargetSpecific(self: SupportedArch, b: *std.Build, kernel: *std.Build.Step.Compile) anyerror!*std.Build.Step {