authorgravatar for jacoblevgw@gmail.comJacob G-W <jacoblevgw@gmail.com> 2021-04-16 18:04:46-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-04-17 02:00:07-04:00
logafb9f695b1bdbf81185e7d55d5783bcbab880989
treeac6e1dcda5483e44e23e045e6bfe3739602804f0
parent01a1365857ad1bd209f9967c0ec8ce8aaa387138

stage2: add support for zig cc assembler -mcpu option


1 files changed, 19 insertions(+), 15 deletions(-)

src/Compilation.zig+19-15
......@@ -2679,25 +2679,29 @@ pub fn addCCArgs(
26792679 try argv.append("-fPIC");
26802680 }
26812681 },
2682 .shared_library, .assembly, .ll, .bc, .unknown, .static_library, .object, .zig => {},
2682 .shared_library, .ll, .bc, .unknown, .static_library, .object, .zig => {},
2683 .assembly => {
2684 // Argh, why doesn't the assembler accept the list of CPU features?!
2685 // I don't see a way to do this other than hard coding everything.
2686 switch (target.cpu.arch) {
2687 .riscv32, .riscv64 => {
2688 if (std.Target.riscv.featureSetHas(target.cpu.features, .relax)) {
2689 try argv.append("-mrelax");
2690 } else {
2691 try argv.append("-mno-relax");
2692 }
2693 },
2694 else => {
2695 // TODO
2696 },
2697 }
2698 if (target.cpu.model.llvm_name) |ln|
2699 try argv.append(try std.fmt.allocPrint(arena, "-mcpu={s}", .{ln}));
2700 },
26832701 }
26842702 if (out_dep_path) |p| {
26852703 try argv.appendSlice(&[_][]const u8{ "-MD", "-MV", "-MF", p });
26862704 }
2687 // Argh, why doesn't the assembler accept the list of CPU features?!
2688 // I don't see a way to do this other than hard coding everything.
2689 switch (target.cpu.arch) {
2690 .riscv32, .riscv64 => {
2691 if (std.Target.riscv.featureSetHas(target.cpu.features, .relax)) {
2692 try argv.append("-mrelax");
2693 } else {
2694 try argv.append("-mno-relax");
2695 }
2696 },
2697 else => {
2698 // TODO
2699 },
2700 }
27012705
27022706 if (target.os.tag == .freestanding) {
27032707 try argv.append("-ffreestanding");