authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-04-01 18:05:06-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-04-01 18:06:04-04:00
log4848b28ec84edb719e780f164eac366ab2e83f22
tree4df6be82d03001990620b5048496a25b1646af6e
parenteefb0a36c060fab2d9d2bf2a258f0fd5e8126fe8
signaturelock-open Commit is signed but in an unrecognized format.

zig cc: detect -mcpu, -march, -mtune

However these are all treated like zig's -mcpu parameter. See #4784

5 files changed, 49 insertions(+), 11 deletions(-)

src-self-hosted/clang_options_data.zig+27-6
......@@ -1658,7 +1658,7 @@ sepd1("Zlinker-input"),
16581658.{
16591659 .name = "library-directory",
16601660 .syntax = .separate,
1661 .zig_equivalent = .linker_input_l,
1661 .zig_equivalent = .lib_dir,
16621662 .pd1 = false,
16631663 .pd2 = true,
16641664 .psl = false,
......@@ -4534,7 +4534,7 @@ joinpd1("target-sdk-version="),
45344534.{
45354535 .name = "library-directory=",
45364536 .syntax = .joined,
4537 .zig_equivalent = .linker_input_l,
4537 .zig_equivalent = .lib_dir,
45384538 .pd1 = false,
45394539 .pd2 = true,
45404540 .psl = false,
......@@ -5254,8 +5254,22 @@ joinpd1("fixit="),
52545254joinpd1("gstabs"),
52555255joinpd1("gxcoff"),
52565256jspd1("iquote"),
5257joinpd1("march="),
5258joinpd1("mtune="),
5257.{
5258 .name = "march=",
5259 .syntax = .joined,
5260 .zig_equivalent = .mcpu,
5261 .pd1 = true,
5262 .pd2 = false,
5263 .psl = false,
5264},
5265.{
5266 .name = "mtune=",
5267 .syntax = .joined,
5268 .zig_equivalent = .mcpu,
5269 .pd1 = true,
5270 .pd2 = false,
5271 .psl = false,
5272},
52595273.{
52605274 .name = "rtlib=",
52615275 .syntax = .joined,
......@@ -5320,7 +5334,14 @@ joinpd1("gcoff"),
53205334joinpd1("mabi="),
53215335joinpd1("mabs="),
53225336joinpd1("masm="),
5323joinpd1("mcpu="),
5337.{
5338 .name = "mcpu=",
5339 .syntax = .joined,
5340 .zig_equivalent = .mcpu,
5341 .pd1 = true,
5342 .pd2 = false,
5343 .psl = false,
5344},
53245345joinpd1("mfpu="),
53255346joinpd1("mhvx="),
53265347joinpd1("mmcu="),
......@@ -5635,7 +5656,7 @@ jspd1("J"),
56355656.{
56365657 .name = "L",
56375658 .syntax = .joined_or_separate,
5638 .zig_equivalent = .linker_input_l,
5659 .zig_equivalent = .lib_dir,
56395660 .pd1 = true,
56405661 .pd2 = false,
56415662 .psl = false,
src-self-hosted/stage2.zig+2-1
......@@ -1288,7 +1288,8 @@ pub const ClangArgIterator = extern struct {
12881288 verbose_cmds,
12891289 for_linker,
12901290 linker_input_z,
1291 linker_input_l,
1291 lib_dir,
1292 mcpu,
12921293 };
12931294
12941295 const Args = struct {
src/main.cpp+4-1
......@@ -735,9 +735,12 @@ static int main0(int argc, char **argv) {
735735 linker_args.append(buf_create_from_str("-z"));
736736 linker_args.append(buf_create_from_str(it.only_arg));
737737 break;
738 case Stage2ClangArgLinkerInputL:
738 case Stage2ClangArgLibDir:
739739 lib_dirs.append(it.only_arg);
740740 break;
741 case Stage2ClangArgMCpu:
742 mcpu = it.only_arg;
743 break;
741744 }
742745 }
743746 // Parse linker args
src/stage2.h+2-1
......@@ -347,7 +347,8 @@ enum Stage2ClangArg {
347347 Stage2ClangArgVerboseCmds,
348348 Stage2ClangArgForLinker,
349349 Stage2ClangArgLinkerInputZ,
350 Stage2ClangArgLinkerInputL,
350 Stage2ClangArgLibDir,
351 Stage2ClangArgMCpu,
351352};
352353
353354// ABI warning
tools/update_clang_options.zig+14-2
......@@ -176,11 +176,23 @@ const known_options = [_]KnownOpt{
176176 },
177177 .{
178178 .name = "L",
179 .ident = "linker_input_l",
179 .ident = "lib_dir",
180180 },
181181 .{
182182 .name = "library-directory",
183 .ident = "linker_input_l",
183 .ident = "lib_dir",
184 },
185 .{
186 .name = "mcpu",
187 .ident = "mcpu",
188 },
189 .{
190 .name = "march",
191 .ident = "mcpu",
192 },
193 .{
194 .name = "mtune",
195 .ident = "mcpu",
184196 },
185197};
186198