commit cea8645423604b758208d94ff4d404a0fbae51f8 (tree)
parent 8142bc20ea8bcffc076fcbde074a7e315ff0060a
Author: Xavier Bouchoux <xavierb@gmail.com>
Date: Sun, 14 May 2023 11:46:59 +0200
build: avoid repeating objects when linking a static library
Don't pass the object files from a static library to the linker invocation.
The lib.a file already contains them.
Avoids "duplicate symbol" errors (and useless work by the linker)
Diffstat:
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
@@ -2192,7 +2192,8 @@ const TransitiveDeps = struct {
if ((try td.seen_steps.fetchPut(&inner_other.step, {})) != null)
continue;
- if (!dyn)
+ const included_in_lib = (other.kind == .lib and inner_other.kind == .obj);
+ if (!dyn and !included_in_lib)
try td.link_objects.append(other_link_object);
try addInner(td, inner_other, dyn or inner_other.isDynamicLibrary());