build: silence duplicate -lobjc linker warning on Xcode 15+
Add -Wl,-no_warn_duplicate_libraries to the darwin cgo LDFLAGS and allow it through the cgo flag allowlist via CGO_LDFLAGS_ALLOW in the build scripts, so the ld-prime duplicate -lobjc note no longer clutters build output.
This commit is contained in:
@@ -5,6 +5,12 @@ package main
|
||||
/*
|
||||
#cgo CFLAGS: -x objective-c -fobjc-arc
|
||||
#cgo LDFLAGS: -framework AppKit
|
||||
// Silence the "ignoring duplicate libraries: '-lobjc'" note emitted by the
|
||||
// Xcode 15+ linker (ld-prime): cgo links -lobjc for our Objective-C code and
|
||||
// the Go darwin runtime pulls it in as well, which the new linker flags as a
|
||||
// duplicate. Suppressing it here keeps the build output clean; the flag is a
|
||||
// no-op on the legacy ld64 path.
|
||||
#cgo LDFLAGS: -Wl,-no_warn_duplicate_libraries
|
||||
#include <dispatch/dispatch.h>
|
||||
#import <AppKit/AppKit.h>
|
||||
|
||||
|
||||
@@ -43,6 +43,9 @@ sleep 0.4
|
||||
# --identity flag in v2.
|
||||
ARCH="${ARCH:-arm64}"
|
||||
echo "[dev-build.sh] building darwin/${ARCH}..."
|
||||
# Allow the -Wl,-no_warn_duplicate_libraries flag declared in the darwin cgo
|
||||
# files past Go's cgo LDFLAGS allowlist (see activation_policy_darwin.go).
|
||||
export CGO_LDFLAGS_ALLOW='-Wl,-no_warn_duplicate_libraries'
|
||||
wails build -platform "darwin/${ARCH}" -clean
|
||||
|
||||
# 5. Re-sign with the stable dev cert. We invoke sign.sh through env var
|
||||
|
||||
+3
-1
@@ -35,7 +35,9 @@ echo "================================================================"
|
||||
# ---- 1. Build ----
|
||||
echo ""
|
||||
echo "[release.sh] (1/4) wails build"
|
||||
( cd "${ROOT_DIR}" && wails build -platform "${WAILS_PLATFORM}" -clean )
|
||||
# Allow the -Wl,-no_warn_duplicate_libraries flag declared in the darwin cgo
|
||||
# files past Go's cgo LDFLAGS allowlist (see activation_policy_darwin.go).
|
||||
( cd "${ROOT_DIR}" && CGO_LDFLAGS_ALLOW='-Wl,-no_warn_duplicate_libraries' wails build -platform "${WAILS_PLATFORM}" -clean )
|
||||
|
||||
# ---- 2. Sign .app ----
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user