authorgravatar for rejean.loyer@gmail.comRejean Loyer <rejean.loyer@gmail.com> 2020-04-01 05:22:19-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-04-01 17:21:11-04:00
log2b6dfdd3d403fb33e226aa2566eacfad4b251379
treef6514ccd5329bf22df3b1f17a17ecc7f85320b69
parent783f73c7e3590f05825d66f1f0ccb108be74b5c4

zig cc: add support for -L linker arguments


5 files changed, 23 insertions(+), 3 deletions(-)

src-self-hosted/clang_options_data.zig+10-3
...@@ -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 = .other,1661 .zig_equivalent = .linker_input_l,
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 = .other,4537 .zig_equivalent = .linker_input_l,
4538 .pd1 = false,4538 .pd1 = false,
4539 .pd2 = true,4539 .pd2 = true,
4540 .psl = false,4540 .psl = false,
...@@ -5632,7 +5632,14 @@ jspd1("F"),...@@ -5632,7 +5632,14 @@ jspd1("F"),
5632jspd1("G"),5632jspd1("G"),
5633jspd1("I"),5633jspd1("I"),
5634jspd1("J"),5634jspd1("J"),
5635jspd1("L"),5635.{
5636 .name = "L",
5637 .syntax = .joined_or_separate,
5638 .zig_equivalent = .linker_input_l,
5639 .pd1 = true,
5640 .pd2 = false,
5641 .psl = false,
5642},
5636.{5643.{
5637 .name = "O",5644 .name = "O",
5638 .syntax = .joined,5645 .syntax = .joined,
src-self-hosted/stage2.zig+1
...@@ -1288,6 +1288,7 @@ pub const ClangArgIterator = extern struct {...@@ -1288,6 +1288,7 @@ 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 };1292 };
12921293
1293 const Args = struct {1294 const Args = struct {
src/main.cpp+3
...@@ -735,6 +735,9 @@ static int main0(int argc, char **argv) {...@@ -735,6 +735,9 @@ 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:
739 lib_dirs.append(it.only_arg);
740 break;
738 }741 }
739 }742 }
740 // Parse linker args743 // Parse linker args
src/stage2.h+1
...@@ -347,6 +347,7 @@ enum Stage2ClangArg {...@@ -347,6 +347,7 @@ enum Stage2ClangArg {
347 Stage2ClangArgVerboseCmds,347 Stage2ClangArgVerboseCmds,
348 Stage2ClangArgForLinker,348 Stage2ClangArgForLinker,
349 Stage2ClangArgLinkerInputZ,349 Stage2ClangArgLinkerInputZ,
350 Stage2ClangArgLinkerInputL,
350};351};
351352
352// ABI warning353// ABI warning
tools/update_clang_options.zig+8
...@@ -174,6 +174,14 @@ const known_options = [_]KnownOpt{...@@ -174,6 +174,14 @@ const known_options = [_]KnownOpt{
174 .name = "###",174 .name = "###",
175 .ident = "verbose_cmds",175 .ident = "verbose_cmds",
176 },176 },
177 .{
178 .name = "L",
179 .ident = "linker_input_l",
180 },
181 .{
182 .name = "library-directory",
183 .ident = "linker_input_l",
184 },
177};185};
178186
179const blacklisted_options = [_][]const u8{};187const blacklisted_options = [_][]const u8{};