From cea8645423604b758208d94ff4d404a0fbae51f8 Mon Sep 17 00:00:00 2001 From: Xavier Bouchoux Date: Sun, 14 May 2023 11:46:59 +0200 Subject: 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) --- lib/std/Build/Step/Compile.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/std') diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig index 7ca8748dbf..c83f72328c 100644 --- 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()); -- cgit v1.2.3