Merge nucleic/humble-fern-egret-60xo into dev

This commit is contained in:
2026-07-28 20:48:24 -07:00
parent c806b792bd
commit a71bd73598
+11 -1
View File
@@ -156,9 +156,19 @@ function Invoke-Swift([string[]]$SwiftArgs, [hashtable]$Sql) {
# depends on clang honouring CPATH — if it didn't, the failure would be an inscrutable
# "'sqlite3.h' file not found" from inside GRDB's module build. -Xlinker only matters
# when something actually links (tests, executables); a library build needs just the -I.
#
# TEMPORARY — /FORCE:MULTIPLE (docs/WINDOWS_PORT.md §14.1.1). swift-crypto's
# CCryptoBoringSSL and swift-nio-ssl's CNIOBoringSSL both land in every Windows link, and
# `p_thread_callback_boringssl` (crypto/thread_win.cc) collides between them: BoringSSL's
# prefix maps are generated by building on a POSIX host, so symbols from the Windows-only
# translation units are never prefixed. The same pair links clean on Linux, where the
# equivalent file is thread_pthread.c and IS prefixed. Drop this flag the moment one copy
# carries the prefix — it is global, so it also downgrades any FUTURE duplicate to a
# warning. Read the warnings.
$full = @($SwiftArgs) + @(
'-Xcc', "-I$($Sql.Include)",
'-Xlinker', "-LIBPATH:$($Sql.Lib)")
'-Xlinker', "-LIBPATH:$($Sql.Lib)",
'-Xlinker', '/FORCE:MULTIPLE')
Write-Note "swift $($full -join ' ')"
# Out-Host, not the pipeline: a native command's stdout would otherwise become this
# function's return value, and the caller's exit-code check would see an array.