authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-08-13 15:56:56-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-09-24 20:01:19-07:00
loge1d6f478c9e96d89ad1f2683d6b372eb466b8339
treef2069c16239172dd65f2ebc187c225833bd5fd48
parent9ad1e83e631a19094b4994a9cecfd24763a2684a

`@cImport`: don't pass args to Aro it doesn't understand


1 files changed, 7 insertions(+), 4 deletions(-)

src/Compilation.zig+7-4
...@@ -6692,7 +6692,7 @@ pub fn addTranslateCCArgs(...@@ -6692,7 +6692,7 @@ pub fn addTranslateCCArgs(
6692 const resource_path = try comp.dirs.zig_lib.join(arena, &.{"compiler/aro/include"});6692 const resource_path = try comp.dirs.zig_lib.join(arena, &.{"compiler/aro/include"});
6693 try argv.appendSlice(&.{ "-isystem", resource_path });6693 try argv.appendSlice(&.{ "-isystem", resource_path });
66946694
6695 try comp.addCommonCCArgs(arena, argv, ext, out_dep_path, owner_mod);6695 try comp.addCommonCCArgs(arena, argv, ext, out_dep_path, owner_mod, .aro);
66966696
6697 try argv.appendSlice(&[_][]const u8{ "-target", try target.zigTriple(arena) });6697 try argv.appendSlice(&[_][]const u8{ "-target", try target.zigTriple(arena) });
66986698
...@@ -6728,6 +6728,7 @@ fn addCommonCCArgs(...@@ -6728,6 +6728,7 @@ fn addCommonCCArgs(
6728 ext: FileExt,6728 ext: FileExt,
6729 out_dep_path: ?[]const u8,6729 out_dep_path: ?[]const u8,
6730 mod: *Package.Module,6730 mod: *Package.Module,
6731 c_frontend: Config.CFrontend,
6731) !void {6732) !void {
6732 const target = &mod.resolved_target.result;6733 const target = &mod.resolved_target.result;
67336734
...@@ -6911,6 +6912,8 @@ fn addCommonCCArgs(...@@ -6911,6 +6912,8 @@ fn addCommonCCArgs(
6911 }6912 }
6912 }6913 }
69136914
6915 const is_clang = c_frontend == .clang;
6916
6914 // Only C-family files support these flags.6917 // Only C-family files support these flags.
6915 switch (ext) {6918 switch (ext) {
6916 .c,6919 .c,
...@@ -6922,7 +6925,7 @@ fn addCommonCCArgs(...@@ -6922,7 +6925,7 @@ fn addCommonCCArgs(
6922 .mm,6925 .mm,
6923 .hmm,6926 .hmm,
6924 => {6927 => {
6925 try argv.append("-fno-spell-checking");6928 if (is_clang) try argv.append("-fno-spell-checking");
69266929
6927 if (target.os.tag == .windows and target.abi.isGnu()) {6930 if (target.os.tag == .windows and target.abi.isGnu()) {
6928 // windows.h has files such as pshpack1.h which do #pragma packing,6931 // windows.h has files such as pshpack1.h which do #pragma packing,
...@@ -6954,7 +6957,7 @@ fn addCommonCCArgs(...@@ -6954,7 +6957,7 @@ fn addCommonCCArgs(
6954 try argv.append(try std.fmt.allocPrint(arena, "-mcmodel={s}", .{@tagName(mod.code_model)}));6957 try argv.append(try std.fmt.allocPrint(arena, "-mcmodel={s}", .{@tagName(mod.code_model)}));
6955 }6958 }
69566959
6957 {6960 if (is_clang) {
6958 var san_arg: std.ArrayListUnmanaged(u8) = .empty;6961 var san_arg: std.ArrayListUnmanaged(u8) = .empty;
6959 const prefix = "-fsanitize=";6962 const prefix = "-fsanitize=";
6960 if (mod.sanitize_c != .off) {6963 if (mod.sanitize_c != .off) {
...@@ -7102,7 +7105,7 @@ pub fn addCCArgs(...@@ -7102,7 +7105,7 @@ pub fn addCCArgs(
7102 });7105 });
7103 }7106 }
71047107
7105 try comp.addCommonCCArgs(arena, argv, ext, out_dep_path, mod);7108 try comp.addCommonCCArgs(arena, argv, ext, out_dep_path, mod, comp.config.c_frontend);
71067109
7107 // Only assembly files support these flags.7110 // Only assembly files support these flags.
7108 switch (ext) {7111 switch (ext) {