authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2020-03-27 23:23:56-07:00
committergravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2020-03-27 23:32:01-07:00
logb0b29b8a2fe57cb501248c1022a24092f4f56f82
tree5be4cbcad8dff6e3c186629b8b8229ea8c12df88
parent12e1c6e21c1d21238450903ad7f8fa4ce52ee758

zig cc: Add support for -Xlinker, --for-linker, --for-linker=


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

src-self-hosted/clang_options_data.zig+10-3
......@@ -80,7 +80,14 @@ sepd1("Xassembler"),
8080sepd1("Xclang"),
8181sepd1("Xcuda-fatbinary"),
8282sepd1("Xcuda-ptxas"),
83sepd1("Xlinker"),
83.{
84 .name = "Xlinker",
85 .syntax = .separate,
86 .zig_equivalent = .for_linker,
87 .pd1 = true,
88 .pd2 = false,
89 .psl = false,
90},
8491sepd1("Xopenmp-target"),
8592sepd1("Xpreprocessor"),
8693flagpd1("Z"),
......@@ -1563,7 +1570,7 @@ sepd1("Zlinker-input"),
15631570.{
15641571 .name = "for-linker",
15651572 .syntax = .separate,
1566 .zig_equivalent = .other,
1573 .zig_equivalent = .for_linker,
15671574 .pd1 = false,
15681575 .pd2 = true,
15691576 .psl = false,
......@@ -4887,7 +4894,7 @@ jspd1("sub_umbrella"),
48874894.{
48884895 .name = "for-linker=",
48894896 .syntax = .joined,
4890 .zig_equivalent = .other,
4897 .zig_equivalent = .for_linker,
48914898 .pd1 = false,
48924899 .pd2 = true,
48934900 .psl = false,
src-self-hosted/stage2.zig+1
......@@ -1289,6 +1289,7 @@ pub const ClangArgIterator = extern struct {
12891289 no_exceptions,
12901290 rtti,
12911291 no_rtti,
1292 for_linker,
12921293 };
12931294
12941295 const Args = struct {
src/main.cpp+3
......@@ -734,6 +734,9 @@ static int main0(int argc, char **argv) {
734734 case Stage2ClangArgNoRtti:
735735 cpp_rtti = false;
736736 break;
737 case Stage2ClangArgForLinker:
738 linker_args.append(buf_create_from_str(it.only_arg));
739 break;
737740 }
738741 }
739742 // Parse linker args
src/stage2.h+1
......@@ -349,6 +349,7 @@ enum Stage2ClangArg {
349349 Stage2ClangArgNoExceptions,
350350 Stage2ClangArgRtti,
351351 Stage2ClangArgNoRtti,
352 Stage2ClangArgForLinker,
352353};
353354
354355// ABI warning
tools/update_clang_options.zig+12
......@@ -78,6 +78,18 @@ const known_options = [_]KnownOpt{
7878 .name = "Wl,",
7979 .ident = "wl",
8080 },
81 .{
82 .name = "Xlinker",
83 .ident = "for_linker",
84 },
85 .{
86 .name = "for-linker",
87 .ident = "for_linker",
88 },
89 .{
90 .name = "for-linker=",
91 .ident = "for_linker",
92 },
8193 .{
8294 .name = "E",
8395 .ident = "preprocess",