]> git.ipfire.org Git - thirdparty/git.git/commitdiff
config.mak.uname: avoid macOS dup-library warning
authorHarald Nordgren <haraldnordgren@gmail.com>
Fri, 19 Jun 2026 20:32:07 +0000 (20:32 +0000)
committerJunio C Hamano <gitster@pobox.com>
Fri, 19 Jun 2026 21:34:17 +0000 (14:34 -0700)
Building on macOS with Xcode 15 or newer emits:

    ld: warning: ignoring duplicate libraries: 'libgit.a',
    'target/release/libgitcore.a'

Some link recipes list the same archive twice, which is harmless.
Quiet the warning instead.

Pass -Wl,-no_warn_duplicate_libraries on Xcode 15 and newer, whose
linkers added both the warning and the suppression flag (ld64-907
and dyld-1009). Earlier linkers reject the flag, so gate on the
linker version. Broaden the existing -fno-common version probe to
also match the "ld64-NNN" and "dyld-NNN" forms Xcode 15 reports.

Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
config.mak.uname

index 32b58e7a95091ebd624f3d533e2e97c3d1a7773e..6cbeb362fc67445e645ef0577cc9ae5f6af34bfd 100644 (file)
@@ -160,8 +160,15 @@ ifeq ($(uname_S),Darwin)
                NEEDS_GOOD_LIBICONV = UnfortunatelyYes
         endif
 
-       # Silence Xcode 16.3+ linker warning about __DATA,__common alignment.
-       LD_MAJOR_VERSION = $(shell ld -v 2>&1 | sed -n 's/.*PROJECT:ld-\([0-9]*\).*/\1/p')
+       # ld reports "PROJECT:{ld,ld64,dyld}-NNN", match any of the three.
+       LD_MAJOR_VERSION = $(shell ld -v 2>&1 | sed -n 's/.*PROJECT:[^ ]*-\([0-9][0-9]*\).*/\1/p')
+
+       # Silence the Xcode 15+ warning about archives listed more than once.
+        ifeq ($(shell test -n "$(LD_MAJOR_VERSION)" && test "$(LD_MAJOR_VERSION)" -ge 907 && echo 1),1)
+               BASIC_LDFLAGS += -Wl,-no_warn_duplicate_libraries
+        endif
+
+       # Silence the Xcode 16.3+ warning about __DATA,__common alignment.
         ifeq ($(shell test -n "$(LD_MAJOR_VERSION)" && test "$(LD_MAJOR_VERSION)" -ge 1167 && echo 1),1)
                BASIC_CFLAGS += -fno-common
         endif