aboutsummaryrefslogtreecommitdiff
path: root/doc/build.md
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-16 09:19:30 +0000
committer_ov4 <ov4@ov4.org>2026-10-16 09:19:30 +0000
commitb6f0bf2df0f6baadc345a9d146599197a5b46e9f (patch)
treece8954ede317117262244306e7d7444536de0b3a /doc/build.md
parentce584238e66a32f93c1af4d16bfe4a1928e25b88 (diff)
fix(build): statically link MinGW XML manifest dependencies
Replace LLVMWindowsManifest's XML import library with static XML, iconv and zlib archives. Check the Windows compiler's PE imports before the restricted-PATH package smoke test. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'doc/build.md')
-rw-r--r--doc/build.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/doc/build.md b/doc/build.md
index 17f2741..dce9d7c 100644
--- a/doc/build.md
+++ b/doc/build.md
@@ -129,6 +129,8 @@ version; check that it is 23. Windows builds have only been reviewed statically.
The `clang-tools-extra` package is required because MSYS2's `ClangTargets.cmake` checks the extra-tool archives, including `libclangApplyReplacements.a`, when loading the Clang development package, even though cpsc does not invoke those tools.
+LLD's Windows manifest support also uses libxml2. cpsc explicitly selects `libxml2.a` and its static iconv/zlib dependencies; the package's default `libxml2.dll.a` import library would retain a DLL dependency even with `-static`. The XML archive is loaded in full so LLD can resolve the prebuilt LLVM archive's `dllimport` references to local definitions. Nightly checks the compiler's PE import table for non-system DLLs before running the package with a restricted PATH.
+
### macOS (Homebrew)
Install the Xcode Command Line Tools for the macOS SDK, make and package