Commit 2b6dfdd3d4

Rejean Loyer <rejean.loyer@gmail.com>
2020-04-01 11:22:19
zig cc: add support for -L linker arguments
1 parent 783f73c
src/main.cpp
@@ -735,6 +735,9 @@ static int main0(int argc, char **argv) {
                     linker_args.append(buf_create_from_str("-z"));
                     linker_args.append(buf_create_from_str(it.only_arg));
                     break;
+                case Stage2ClangArgLinkerInputL:
+                    lib_dirs.append(it.only_arg);
+                    break;
             }
         }
         // Parse linker args
src/stage2.h
@@ -347,6 +347,7 @@ enum Stage2ClangArg {
     Stage2ClangArgVerboseCmds,
     Stage2ClangArgForLinker,
     Stage2ClangArgLinkerInputZ,
+    Stage2ClangArgLinkerInputL,
 };
 
 // ABI warning
src-self-hosted/clang_options_data.zig
@@ -1658,7 +1658,7 @@ sepd1("Zlinker-input"),
 .{
     .name = "library-directory",
     .syntax = .separate,
-    .zig_equivalent = .other,
+    .zig_equivalent = .linker_input_l,
     .pd1 = false,
     .pd2 = true,
     .psl = false,
@@ -4534,7 +4534,7 @@ joinpd1("target-sdk-version="),
 .{
     .name = "library-directory=",
     .syntax = .joined,
-    .zig_equivalent = .other,
+    .zig_equivalent = .linker_input_l,
     .pd1 = false,
     .pd2 = true,
     .psl = false,
@@ -5632,7 +5632,14 @@ jspd1("F"),
 jspd1("G"),
 jspd1("I"),
 jspd1("J"),
-jspd1("L"),
+.{
+    .name = "L",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .linker_input_l,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = false,
+},
 .{
     .name = "O",
     .syntax = .joined,
src-self-hosted/stage2.zig
@@ -1288,6 +1288,7 @@ pub const ClangArgIterator = extern struct {
         verbose_cmds,
         for_linker,
         linker_input_z,
+        linker_input_l,
     };
 
     const Args = struct {
tools/update_clang_options.zig
@@ -174,6 +174,14 @@ const known_options = [_]KnownOpt{
         .name = "###",
         .ident = "verbose_cmds",
     },
+    .{
+        .name = "L",
+        .ident = "linker_input_l",
+    },
+    .{
+        .name = "library-directory",
+        .ident = "linker_input_l",
+    },
 };
 
 const blacklisted_options = [_][]const u8{};