From 46ddeb0bafd68cf88867e4268253a41ac0050215 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 18 Sep 2017 21:06:53 -0400 Subject: [PATCH] add --verbose-link option only prints the link line --- src/all_types.hpp | 1 + src/link.cpp | 9 +++++---- src/main.cpp | 5 +++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/all_types.hpp b/src/all_types.hpp index def0f2d26..bf315cd61 100644 --- a/src/all_types.hpp +++ b/src/all_types.hpp @@ -1508,6 +1508,7 @@ struct CodeGen { size_t version_minor; size_t version_patch; bool verbose; + bool verbose_link; ErrColor err_color; ImportTableEntry *root_import; ImportTableEntry *bootstrap_import; diff --git a/src/link.cpp b/src/link.cpp index dae68c281..9a26139e5 100644 --- a/src/link.cpp +++ b/src/link.cpp @@ -37,6 +37,7 @@ static Buf *build_o_raw(CodeGen *parent_gen, const char *oname, Buf *full_path) codegen_set_omit_zigrt(child_gen, true); child_gen->want_h_file = false; + child_gen->verbose_link = parent_gen->verbose_link; codegen_set_cache_dir(child_gen, parent_gen->cache_dir); @@ -816,7 +817,7 @@ void codegen_link(CodeGen *g, const char *out_file) { fprintf(stderr, "---------------\n"); LLVMDumpModule(g->module); } - if (g->verbose) { + if (g->verbose || g->verbose_link) { fprintf(stderr, "\nLink:\n"); fprintf(stderr, "-------\n"); } @@ -840,7 +841,7 @@ void codegen_link(CodeGen *g, const char *out_file) { zig_panic("unable to rename object file into final output: %s", err_str(err)); } } - if (g->verbose) { + if (g->verbose || g->verbose_link) { fprintf(stderr, "OK\n"); } return; @@ -860,7 +861,7 @@ void codegen_link(CodeGen *g, const char *out_file) { construct_linker_job(&lj); - if (g->verbose) { + if (g->verbose || g->verbose_link) { for (size_t i = 0; i < lj.args.length; i += 1) { const char *space = (i != 0) ? " " : ""; fprintf(stderr, "%s%s", space, lj.args.at(i)); @@ -878,7 +879,7 @@ void codegen_link(CodeGen *g, const char *out_file) { codegen_add_time_event(g, "Done"); - if (g->verbose) { + if (g->verbose || g->verbose_link) { fprintf(stderr, "OK\n"); } } diff --git a/src/main.cpp b/src/main.cpp index 86a6b82ac..ab37de95c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -47,6 +47,7 @@ static int usage(const char *arg0) { " --target-environ [name] specify target environment\n" " --target-os [name] specify target operating system\n" " --verbose turn on compiler debug output\n" + " --verbose-link turn on compiler debug output for linking only\n" " --zig-std-dir [path] directory where zig standard library resides\n" " -dirafter [dir] same as -isystem but do it last\n" " -isystem [dir] add additional search path for other .h files\n" @@ -184,6 +185,7 @@ int main(int argc, char **argv) { OutType out_type = OutTypeUnknown; const char *out_name = nullptr; bool verbose = false; + bool verbose_link = false; ErrColor color = ErrColorAuto; const char *libc_lib_dir = nullptr; const char *libc_static_lib_dir = nullptr; @@ -348,6 +350,8 @@ int main(int argc, char **argv) { is_static = true; } else if (strcmp(arg, "--verbose") == 0) { verbose = true; + } else if (strcmp(arg, "--verbose-link") == 0) { + verbose_link = true; } else if (strcmp(arg, "-mwindows") == 0) { mwindows = true; } else if (strcmp(arg, "-mconsole") == 0) { @@ -625,6 +629,7 @@ int main(int argc, char **argv) { if (dynamic_linker) codegen_set_dynamic_linker(g, buf_create_from_str(dynamic_linker)); codegen_set_verbose(g, verbose); + g->verbose_link = verbose_link; codegen_set_errmsg_color(g, color); for (size_t i = 0; i < lib_dirs.length; i += 1) {