authorgravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2020-03-28 00:35:54-07:00
committergravatar for squeek502@hotmail.comRyan Liptak <squeek502@hotmail.com> 2020-03-28 00:35:54-07:00
log874b4618ca0a8fcde347e9cbca8e3a0de82d9b4b
treed90e1a1cd90a9ce1abc6910f16c9790ca81a079b
parentb0b29b8a2fe57cb501248c1022a24092f4f56f82

zig cc: Add support for -z

This is only the first step; it makes zig cc recognize -z and append it to the linker args, but the linker arg parsing doesn't support -z yet so it will just give the warning 'unsupported linker arg: -z'

5 files changed, 18 insertions(+), 1 deletions(-)

src-self-hosted/clang_options_data.zig+8-1
......@@ -4255,7 +4255,14 @@ flagpd1("fno-whole-file"),
42554255flagpd1("fwhole-program"),
42564256flagpd1("fno-whole-program"),
42574257flagpd1("whyload"),
4258sepd1("z"),
4258.{
4259 .name = "z",
4260 .syntax = .separate,
4261 .zig_equivalent = .linker_input_z,
4262 .pd1 = true,
4263 .pd2 = false,
4264 .psl = false,
4265},
42594266joinpd1("fsanitize-undefined-strip-path-components="),
42604267joinpd1("fopenmp-cuda-teams-reduction-recs-num="),
42614268joinpd1("analyzer-config-compatibility-mode="),
src-self-hosted/stage2.zig+1
......@@ -1290,6 +1290,7 @@ pub const ClangArgIterator = extern struct {
12901290 rtti,
12911291 no_rtti,
12921292 for_linker,
1293 linker_input_z,
12931294 };
12941295
12951296 const Args = struct {
src/main.cpp+4
......@@ -737,6 +737,10 @@ static int main0(int argc, char **argv) {
737737 case Stage2ClangArgForLinker:
738738 linker_args.append(buf_create_from_str(it.only_arg));
739739 break;
740 case Stage2ClangArgLinkerInputZ:
741 linker_args.append(buf_create_from_str("-z"));
742 linker_args.append(buf_create_from_str(it.only_arg));
743 break;
740744 }
741745 }
742746 // Parse linker args
src/stage2.h+1
......@@ -350,6 +350,7 @@ enum Stage2ClangArg {
350350 Stage2ClangArgRtti,
351351 Stage2ClangArgNoRtti,
352352 Stage2ClangArgForLinker,
353 Stage2ClangArgLinkerInputZ,
353354};
354355
355356// ABI warning
tools/update_clang_options.zig+4
......@@ -90,6 +90,10 @@ const known_options = [_]KnownOpt{
9090 .name = "for-linker=",
9191 .ident = "for_linker",
9292 },
93 .{
94 .name = "z",
95 .ident = "linker_input_z",
96 },
9397 .{
9498 .name = "E",
9599 .ident = "preprocess",