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"),...@@ -1658,7 +1658,7 @@ sepd1("Zlinker-input"),
1658.{1658.{
1659 .name = "library-directory",1659 .name = "library-directory",
1660 .syntax = .separate,1660 .syntax = .separate,
1661 .zig_equivalent = .linker_input_l,1661 .zig_equivalent = .lib_dir,
1662 .pd1 = false,1662 .pd1 = false,
1663 .pd2 = true,1663 .pd2 = true,
1664 .psl = false,1664 .psl = false,
...@@ -4534,7 +4534,7 @@ joinpd1("target-sdk-version="),...@@ -4534,7 +4534,7 @@ joinpd1("target-sdk-version="),
4534.{4534.{
4535 .name = "library-directory=",4535 .name = "library-directory=",
4536 .syntax = .joined,4536 .syntax = .joined,
4537 .zig_equivalent = .linker_input_l,4537 .zig_equivalent = .lib_dir,
4538 .pd1 = false,4538 .pd1 = false,
4539 .pd2 = true,4539 .pd2 = true,
4540 .psl = false,4540 .psl = false,
...@@ -5254,8 +5254,22 @@ joinpd1("fixit="),...@@ -5254,8 +5254,22 @@ joinpd1("fixit="),
5254joinpd1("gstabs"),5254joinpd1("gstabs"),
5255joinpd1("gxcoff"),5255joinpd1("gxcoff"),
5256jspd1("iquote"),5256jspd1("iquote"),
5257joinpd1("march="),5257.{
5258joinpd1("mtune="),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},
5259.{5273.{
5260 .name = "rtlib=",5274 .name = "rtlib=",
5261 .syntax = .joined,5275 .syntax = .joined,
...@@ -5320,7 +5334,14 @@ joinpd1("gcoff"),...@@ -5320,7 +5334,14 @@ joinpd1("gcoff"),
5320joinpd1("mabi="),5334joinpd1("mabi="),
5321joinpd1("mabs="),5335joinpd1("mabs="),
5322joinpd1("masm="),5336joinpd1("masm="),
5323joinpd1("mcpu="),5337.{
5338 .name = "mcpu=",
5339 .syntax = .joined,
5340 .zig_equivalent = .mcpu,
5341 .pd1 = true,
5342 .pd2 = false,
5343 .psl = false,
5344},
5324joinpd1("mfpu="),5345joinpd1("mfpu="),
5325joinpd1("mhvx="),5346joinpd1("mhvx="),
5326joinpd1("mmcu="),5347joinpd1("mmcu="),
...@@ -5635,7 +5656,7 @@ jspd1("J"),...@@ -5635,7 +5656,7 @@ jspd1("J"),
5635.{5656.{
5636 .name = "L",5657 .name = "L",
5637 .syntax = .joined_or_separate,5658 .syntax = .joined_or_separate,
5638 .zig_equivalent = .linker_input_l,5659 .zig_equivalent = .lib_dir,
5639 .pd1 = true,5660 .pd1 = true,
5640 .pd2 = false,5661 .pd2 = false,
5641 .psl = false,5662 .psl = false,
src-self-hosted/stage2.zig+2-1
...@@ -1288,7 +1288,8 @@ pub const ClangArgIterator = extern struct {...@@ -1288,7 +1288,8 @@ pub const ClangArgIterator = extern struct {
1288 verbose_cmds,1288 verbose_cmds,
1289 for_linker,1289 for_linker,
1290 linker_input_z,1290 linker_input_z,
1291 linker_input_l,1291 lib_dir,
1292 mcpu,
1292 };1293 };
12931294
1294 const Args = struct {1295 const Args = struct {
src/main.cpp+4-1
...@@ -735,9 +735,12 @@ static int main0(int argc, char **argv) {...@@ -735,9 +735,12 @@ static int main0(int argc, char **argv) {
735 linker_args.append(buf_create_from_str("-z"));735 linker_args.append(buf_create_from_str("-z"));
736 linker_args.append(buf_create_from_str(it.only_arg));736 linker_args.append(buf_create_from_str(it.only_arg));
737 break;737 break;
738 case Stage2ClangArgLinkerInputL:738 case Stage2ClangArgLibDir:
739 lib_dirs.append(it.only_arg);739 lib_dirs.append(it.only_arg);
740 break;740 break;
741 case Stage2ClangArgMCpu:
742 mcpu = it.only_arg;
743 break;
741 }744 }
742 }745 }
743 // Parse linker args746 // Parse linker args
src/stage2.h+2-1
...@@ -347,7 +347,8 @@ enum Stage2ClangArg {...@@ -347,7 +347,8 @@ enum Stage2ClangArg {
347 Stage2ClangArgVerboseCmds,347 Stage2ClangArgVerboseCmds,
348 Stage2ClangArgForLinker,348 Stage2ClangArgForLinker,
349 Stage2ClangArgLinkerInputZ,349 Stage2ClangArgLinkerInputZ,
350 Stage2ClangArgLinkerInputL,350 Stage2ClangArgLibDir,
351 Stage2ClangArgMCpu,
351};352};
352353
353// ABI warning354// ABI warning
tools/update_clang_options.zig+14-2
...@@ -176,11 +176,23 @@ const known_options = [_]KnownOpt{...@@ -176,11 +176,23 @@ const known_options = [_]KnownOpt{
176 },176 },
177 .{177 .{
178 .name = "L",178 .name = "L",
179 .ident = "linker_input_l",179 .ident = "lib_dir",
180 },180 },
181 .{181 .{
182 .name = "library-directory",182 .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",
184 },196 },
185};197};
186198