commit 2aba1fe0dcceee48552757fbd2f9a14e50856305
parent bbb9a9e5ce0168b4e134118ef91ee1f9b142d851
Author: Ryan VanderMeulen <rvandermeulen@mozilla.com>
Date: Mon, 10 Nov 2025 13:15:05 +0000
Bug 1998498 - Update libxml2 to v2.15.1. r=firefox-build-system-reviewers,ahochheiden
Also clean up the CMake flags a bit to avoid some build warnings.
Breaking changes that were addressed:
- v2.12.0 made POSIX threads (-pthread) a required link dependency on Linux
when building with threads:
https://github.com/GNOME/libxml2/commit/c19771c1f13de9196f98260d142d8c8672eb5733
Worked around by disabling LIBXML2_WITH_THREADS to avoid try-link failures.
- v2.13.0 made bcrypt a required link dependency on Windows:
https://github.com/GNOME/libxml2/commit/2e9e758d1ecb52b73a43db79d326c18d7d94c8d7
Addressed by updating build-clang.py to link bcrypt where needed.
Differential Revision: https://phabricator.services.mozilla.com/D271476
Diffstat:
3 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/build/build-clang/build-clang.py b/build/build-clang/build-clang.py
@@ -234,6 +234,11 @@ def build_one_stage(
if bolt:
ldflags.append("-Wl,--emit-relocs,-znow")
+ # libxml2 2.13+ Windows builds introduced a hard dependency on bcrypt
+ # which must also be specified or else LibXml2 detection fails.
+ if is_windows(target) and is_final_stage:
+ ldflags.append("/DEFAULTLIB:bcrypt")
+
cmake_args = [
"-GNinja",
"-DCMAKE_C_COMPILER=%s" % slashify_path(cc[0]),
diff --git a/taskcluster/kinds/fetch/toolchains.yml b/taskcluster/kinds/fetch/toolchains.yml
@@ -754,11 +754,11 @@ windows-rs:
add-prefix: windows-rs/
libxml2:
- description: libxml2 2.9.12 source code
+ description: libxml2 2.15.1 source code
fetch:
type: git
repo: https://gitlab.gnome.org/GNOME/libxml2
- revision: b48e77cf4f6fa0792c5f4b639707a2b0675e461b
+ revision: b7fa62cbe8ef0df5869e000d5b690bdedd07f33e
mozilla-pdf.js:
description: Mozilla pdf.js Github repo
diff --git a/taskcluster/scripts/misc/build-libxml2.sh b/taskcluster/scripts/misc/build-libxml2.sh
@@ -19,7 +19,7 @@ case "$TARGET" in
-DCMAKE_C_COMPILER=clang-cl
-DCMAKE_LINKER=lld-link
-DCMAKE_MT=llvm-mt
- -DCMAKE_C_FLAGS=\"-fuse-ld=lld -Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml -winsysroot $MOZ_FETCHES_DIR/vs\"
+ -DCMAKE_C_FLAGS=\"-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml -winsysroot $MOZ_FETCHES_DIR/vs\"
-DCMAKE_EXE_LINKER_FLAGS=\"-winsysroot:$MOZ_FETCHES_DIR/vs\"
-DCMAKE_SYSTEM_NAME=Windows
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded
@@ -28,9 +28,8 @@ case "$TARGET" in
*-unknown-linux-gnu)
EXTRA_CMAKE_FLAGS="
-DCMAKE_C_COMPILER=clang
- -DCMAKE_LINKER=clang
- -DCMAKE_C_FLAGS=\"-fuse-ld=lld --sysroot=$MOZ_FETCHES_DIR/sysroot\"
- -DCMAKE_EXE_LINKER_FLAGS=\"--sysroot=$MOZ_FETCHES_DIR/sysroot\"
+ -DCMAKE_C_FLAGS=\"--sysroot=$MOZ_FETCHES_DIR/sysroot\"
+ -DCMAKE_EXE_LINKER_FLAGS=\"-fuse-ld=lld --sysroot=$MOZ_FETCHES_DIR/sysroot\"
"
;;
esac
@@ -44,25 +43,21 @@ eval cmake \
-DLIBXML2_WITH_C14N=OFF \
-DLIBXML2_WITH_CATALOG=OFF \
-DLIBXML2_WITH_DEBUG=OFF \
- -DLIBXML2_WITH_DOCB=OFF \
- -DLIBXML2_WITH_FTP=OFF \
-DLIBXML2_WITH_HTML=OFF \
-DLIBXML2_WITH_HTTP=OFF \
-DLIBXML2_WITH_ICONV=OFF \
-DLIBXML2_WITH_ICU=OFF \
-DLIBXML2_WITH_ISO8859X=OFF \
-DLIBXML2_WITH_LEGACY=OFF \
- -DLIBXML2_WITH_LZMA=OFF \
- -DLIBXML2_WITH_MEM_DEBUG=OFF \
-DLIBXML2_WITH_MODULES=OFF \
-DLIBXML2_WITH_PROGRAMS=OFF \
-DLIBXML2_WITH_PUSH=OFF \
-DLIBXML2_WITH_PYTHON=OFF \
-DLIBXML2_WITH_READER=OFF \
- -DLIBXML2_WITH_RUN_DEBUG=OFF \
-DLIBXML2_WITH_SCHEMATRON=OFF \
-DLIBXML2_WITH_TESTS=OFF \
-DLIBXML2_WITH_THREAD_ALLOC=OFF \
+ -DLIBXML2_WITH_THREADS=OFF \
-DLIBXML2_WITH_VALID=OFF \
-DLIBXML2_WITH_WRITER=OFF \
-DLIBXML2_WITH_XINCLUDE=OFF \