Commit 8eaaa905f7
Changed files (7)
src/link/Coff.zig
@@ -907,8 +907,11 @@ fn linkWithLLD(self: *Coff, comp: *Compilation) !void {
// Create an LLD command line and invoke it.
var argv = std.ArrayList([]const u8).init(self.base.allocator);
defer argv.deinit();
- // Even though we're calling LLD as a library it thinks the first argument is its own exe name.
- try argv.append("lld");
+ // The first argument is ignored as LLD is called as a library, set it
+ // anyway to the correct LLD driver name for this target so that it's
+ // correctly printed when `verbose_link` is true. This is needed for some
+ // tools such as CMake when Zig is used as C compiler.
+ try argv.append("lld-link");
try argv.append("-ERRORLIMIT:0");
try argv.append("-NOLOGO");
src/link/Elf.zig
@@ -1353,8 +1353,11 @@ fn linkWithLLD(self: *Elf, comp: *Compilation) !void {
// Create an LLD command line and invoke it.
var argv = std.ArrayList([]const u8).init(self.base.allocator);
defer argv.deinit();
- // Even though we're calling LLD as a library it thinks the first argument is its own exe name.
- try argv.append("lld");
+ // The first argument is ignored as LLD is called as a library, set it
+ // anyway to the correct LLD driver name for this target so that it's
+ // correctly printed when `verbose_link` is true. This is needed for some
+ // tools such as CMake when Zig is used as C compiler.
+ try argv.append("ld.lld");
if (is_obj) {
try argv.append("-r");
}
src/link/MachO.zig
@@ -542,8 +542,12 @@ fn linkWithLLD(self: *MachO, comp: *Compilation) !void {
if (self.base.options.system_linker_hack) {
try argv.append("ld");
} else {
- // Even though we're calling LLD as a library it thinks the first argument is its own exe name.
- try argv.append("lld");
+ // The first argument is ignored as LLD is called as a library, set
+ // it anyway to the correct LLD driver name for this target so that
+ // it's correctly printed when `verbose_link` is true. This is
+ // needed for some tools such as CMake when Zig is used as C
+ // compiler.
+ try argv.append("ld64");
try argv.append("-error-limit");
try argv.append("0");
src/link/Wasm.zig
@@ -339,8 +339,11 @@ fn linkWithLLD(self: *Wasm, comp: *Compilation) !void {
// Create an LLD command line and invoke it.
var argv = std.ArrayList([]const u8).init(self.base.allocator);
defer argv.deinit();
- // Even though we're calling LLD as a library it thinks the first argument is its own exe name.
- try argv.append("lld");
+ // The first argument is ignored as LLD is called as a library, set it
+ // anyway to the correct LLD driver name for this target so that it's
+ // correctly printed when `verbose_link` is true. This is needed for some
+ // tools such as CMake when Zig is used as C compiler.
+ try argv.append("ld-wasm");
if (is_obj) {
try argv.append("-r");
}
src/clang_options_data.zig
@@ -165,7 +165,7 @@ sepd1("Zlinker-input"),
.{
.name = "###",
.syntax = .flag,
- .zig_equivalent = .verbose_cmds,
+ .zig_equivalent = .dry_run,
.pd1 = true,
.pd2 = false,
.psl = false,
@@ -4439,7 +4439,14 @@ flagpd1("twolevel_namespace_hints"),
sepd1("umbrella"),
flagpd1("undef"),
sepd1("unexported_symbols_list"),
-flagpd1("v"),
+.{
+ .name = "v",
+ .syntax = .flag,
+ .zig_equivalent = .verbose,
+ .pd1 = true,
+ .pd2 = false,
+ .psl = false,
+},
flagpd1("vectorize-loops"),
flagpd1("vectorize-slp"),
flagpd1("verify"),
src/main.zig
@@ -1062,9 +1062,17 @@ fn buildOutputType(
}
},
.linker_script => linker_script = it.only_arg,
- .verbose_cmds => {
- verbose_cc = true;
+ .verbose => {
+ verbose_link = true;
+ // Have Clang print more infos, some tools such as CMake
+ // parse this to discover any implicit include and
+ // library dir to look-up into.
+ try clang_argv.append("-v");
+ },
+ .dry_run => {
verbose_link = true;
+ try clang_argv.append("-###");
+ // XXX: Don't execute anything!
},
.for_linker => try linker_args.append(it.only_arg),
.linker_input_z => {
@@ -2776,7 +2784,8 @@ pub const ClangArgIterator = struct {
debug,
sanitize,
linker_script,
- verbose_cmds,
+ dry_run,
+ verbose,
for_linker,
linker_input_z,
lib_dir,
tools/update_clang_options.zig
@@ -214,7 +214,11 @@ const known_options = [_]KnownOpt{
},
.{
.name = "###",
- .ident = "verbose_cmds",
+ .ident = "dry_run",
+ },
+ .{
+ .name = "v",
+ .ident = "verbose",
},
.{
.name = "L",