You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ji...@apache.org on 2026/08/06 17:44:03 UTC
(openoffice) branch AOO42X updated (9563caa3b3 -> a587364989)
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a change to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
from 9563caa3b3 vcl: fix CPUNAME token for Win64 entrypoint (X86-64 -> X86_64)
new 239be4d49c libxslt: add missing stdlib.h include for getenv/strtol
new 0134dca994 solenv: skip .pc pkg-config files in macOS install-name fixup
new 8fad739179 Improve macOS/arm64 build linting a full run on Mac Silicon
new 1a4f219db8 Link static libxml2.a instead of libxml2.dylib on macOS/arm64 and x86
new f4090c2041 Link zlib explicitly against static libxml2.a on macOS
new e8bfcc2f5b Build bundled libxml2/libxslt as static libs on macOS
new 5e3709ad17 configure.ac: honor the directory given to --with-system-libxml/-libxslt/-curl
new b5a865c036 xmlsecurity, forms: fix dmake "Shell escape" error from inline $(shell) in .IF
new 13a3323848 xmlsecurity, forms: ignore-error prefix on $(shell test -f ...) dylib checks
new bf92e59e8d libxmlsec: pin xmlsec's libxml2 lookup to the configured prefix
new dda24ebd93 libxslt: pin to bundled libxml2 and fix static xsltproc output path
new eec17c3f5a jvmfwk: recognize AARCH64 in JFW_PLUGIN_ARCH platform detection for Mac Silicon
new 05e07217c4 RepositoryExternal.mk: link static libxml2/libxslt on macOS
new 23dcd9ba9e libxml2, libxslt: deliver macOS static archives to solver
new 3df29d8c78 curl: fix macOS bundled-openssl linker flags and dylib naming
new a587364989 RepositoryExternal.mk: link libxml2's static-lib private deps on macOS
The 16 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
main/RepositoryExternal.mk | 41 ++++++++++++-
main/avmedia/source/macavf/macavf_uno.cxx | 2 +
main/configure.ac | 67 +++++++++++++++++++---
main/curl/makefile.mk | 10 ++++
main/forms/util/makefile.mk | 51 +++++++++++++++-
.../plugins/sunmajor/pluginlib/vendorbase.hxx | 2 +
main/libxml2/makefile.mk | 8 ++-
main/libxml2/prj/d.lst | 1 +
main/libxmlsec/makefile.mk | 17 ++++++
main/libxslt/libxslt-stdlib-getenv.patch | 22 +++++++
main/libxslt/makefile.mk | 25 ++++++--
main/libxslt/prj/d.lst | 2 +
main/set_soenv.in | 3 +
main/solenv/bin/macosx-dylib-link-list.pl | 11 +++-
main/solenv/bin/modules/macosxotoolhelper.pm | 36 +++++++++---
main/solenv/inc/tg_ext.mk | 2 +-
main/vcl/inc/aqua/salgdi.h | 4 +-
main/xmlsecurity/util/makefile.mk | 62 ++++++++++++++++++++
18 files changed, 341 insertions(+), 25 deletions(-)
create mode 100644 main/libxslt/libxslt-stdlib-getenv.patch
(openoffice) 04/16: Link static libxml2.a instead of libxml2.dylib on macOS/arm64 and x86
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 1a4f219db887e9c23713862151145273d01fdc96
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Tue Aug 4 08:31:27 2026 -0400
Link static libxml2.a instead of libxml2.dylib on macOS/arm64 and x86
(cherry picked from commit fa640925af79b5a9be7c879ba2bddbc09441b03a)
---
main/forms/util/makefile.mk | 6 +++---
main/xmlsecurity/util/makefile.mk | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/main/forms/util/makefile.mk b/main/forms/util/makefile.mk
index f276f52fe6..d86e08b972 100644
--- a/main/forms/util/makefile.mk
+++ b/main/forms/util/makefile.mk
@@ -56,9 +56,9 @@ SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
# plain "-lxml2" (as pulled in by LIBXML2LIB) resolves to that bundled
# copy instead of the configured --with-system-libxml one, and it is
# missing symbols (xmlXPathValuePush, xmlXPathValuePop) that xformsxpath
-# needs. Link the intended libxml2 by absolute path so the search order
-# can't shadow it.
-FORMS_LIBXML2LIB:=$(shell xml2-config --prefix)/lib/libxml2.dylib
+# needs. Link the intended libxml2 statically by absolute path so the
+# search order can't shadow it and no dylib needs to be bundled.
+FORMS_LIBXML2LIB:=$(shell xml2-config --prefix)/lib/libxml2.a
.ELSE
FORMS_LIBXML2LIB=$(LIBXML2LIB)
.ENDIF
diff --git a/main/xmlsecurity/util/makefile.mk b/main/xmlsecurity/util/makefile.mk
index 1e329f8b87..ac0df884a2 100644
--- a/main/xmlsecurity/util/makefile.mk
+++ b/main/xmlsecurity/util/makefile.mk
@@ -125,9 +125,9 @@ SHL2STDLIBS+= $(NSS3LIB) $(NSPR4LIB)
# plain "-lxml2" (as pulled in by NSSCRYPTOLIBS via LIBXML2LIB) resolves
# to that bundled copy instead of the configured --with-system-libxml one,
# and it is missing symbols (xmlCtxtPushInput, xmlXPathValuePush) that
-# xmlsec1 needs. Link the intended libxml2 by absolute path so the
-# search order can't shadow it.
-XMLSECURITY_SYSTEM_LIBXML2:=$(shell xml2-config --prefix)/lib/libxml2.dylib
+# xmlsec1 needs. Link the intended libxml2 statically by absolute path
+# so the search order can't shadow it and no dylib needs to be bundled.
+XMLSECURITY_SYSTEM_LIBXML2:=$(shell xml2-config --prefix)/lib/libxml2.a
SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
.ELSE
SHL2STDLIBS+= $(NSSCRYPTOLIBS)
(openoffice) 08/16: xmlsecurity, forms: fix dmake "Shell escape" error from inline $(shell) in .IF
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit b5a865c036ea5a65b035a2e3e729ba88dfdb392e
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Wed Aug 5 19:43:22 2026 -0400
xmlsecurity, forms: fix dmake "Shell escape" error from inline $(shell) in .IF
(cherry picked from commit 41fb6987c238964d85a2b2ce9897603c4ebf7e4a)
---
main/forms/util/makefile.mk | 7 ++++++-
main/xmlsecurity/util/makefile.mk | 7 ++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/main/forms/util/makefile.mk b/main/forms/util/makefile.mk
index 887f0f1f9d..9574ab5ff3 100644
--- a/main/forms/util/makefile.mk
+++ b/main/forms/util/makefile.mk
@@ -73,7 +73,12 @@ SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
# dependency info, so zlib must be linked explicitly to satisfy libxml2's
# HTTP/gzip symbols (deflate, inflate, gzopen, ...) -- when no dylib
# exists there.
-.IF "$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)"=="yes"
+#
+# The existence check is resolved into a plain macro first, then branched
+# on -- dmake's .IF does not reliably evaluate a $(shell ...) call written
+# directly inside the condition string itself.
+FORMS_LIBXML2_HAS_DYLIB:=$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)
+.IF "$(FORMS_LIBXML2_HAS_DYLIB)"=="yes"
FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.dylib
.ELSE
FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.a $(ZLIB3RDLIB)
diff --git a/main/xmlsecurity/util/makefile.mk b/main/xmlsecurity/util/makefile.mk
index 2e80734b44..8ac84413a2 100644
--- a/main/xmlsecurity/util/makefile.mk
+++ b/main/xmlsecurity/util/makefile.mk
@@ -149,7 +149,12 @@ SHL2STDLIBS+= $(NSS3LIB) $(NSPR4LIB)
# so the linker resolves those automatically and no extra -lz/-llzma is
# needed. Fall back to the static archive (community builds normally only
# install that, via --enable-shared=no) when no dylib exists there.
-.IF "$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)"=="yes"
+#
+# The existence check is resolved into a plain macro first, then branched
+# on -- dmake's .IF does not reliably evaluate a $(shell ...) call written
+# directly inside the condition string itself.
+XMLSECURITY_LIBXML2_HAS_DYLIB:=$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)
+.IF "$(XMLSECURITY_LIBXML2_HAS_DYLIB)"=="yes"
XMLSECURITY_SYSTEM_LIBXML2:=$(LIBXML_PREFIX)/lib/libxml2.dylib
XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS:=
.ELSE
(openoffice) 01/16: libxslt: add missing stdlib.h include for getenv/strtol
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 239be4d49c24a913e721d2e1d11804eea6a727ed
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 11:35:38 2026 -0400
libxslt: add missing stdlib.h include for getenv/strtol
Clang defaults to C23, which errors on implicit function declarations.
libxslt 1.1.34's extensions.c and libexslt/date.c call getenv/strtol
without including stdlib.h, breaking the bundled build on modern
toolchains (e.g. Xcode clang on macOS).
(cherry picked from commit 96a14a438f1678e04af9c07d7e77f2ebfe03d5c9)
---
main/libxslt/libxslt-stdlib-getenv.patch | 22 ++++++++++++++++++++++
main/libxslt/makefile.mk | 3 ++-
2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/main/libxslt/libxslt-stdlib-getenv.patch b/main/libxslt/libxslt-stdlib-getenv.patch
new file mode 100644
index 0000000000..a08f785531
--- /dev/null
+++ b/main/libxslt/libxslt-stdlib-getenv.patch
@@ -0,0 +1,22 @@
+diff -ur misc/libxslt-1.1.34/libxslt/extensions.c misc/build/libxslt-1.1.34/libxslt/extensions.c
+--- misc/libxslt-1.1.34/libxslt/extensions.c
++++ misc/build/libxslt-1.1.34/libxslt/extensions.c
+@@ -13,6 +13,7 @@
+ #include "libxslt.h"
+
+ #include <string.h>
++#include <stdlib.h>
+ #include <limits.h>
+
+ #include <libxml/xmlmemory.h>
+diff -ur misc/libxslt-1.1.34/libexslt/date.c misc/build/libxslt-1.1.34/libexslt/date.c
+--- misc/libxslt-1.1.34/libexslt/date.c
++++ misc/build/libxslt-1.1.34/libexslt/date.c
+@@ -46,6 +46,7 @@
+ #include "exslt.h"
+
+ #include <string.h>
++#include <stdlib.h>
+ #include <limits.h>
+
+ #ifdef HAVE_ERRNO_H
diff --git a/main/libxslt/makefile.mk b/main/libxslt/makefile.mk
index dbdd13a4da..bfe4b616cb 100644
--- a/main/libxslt/makefile.mk
+++ b/main/libxslt/makefile.mk
@@ -49,7 +49,8 @@ TARFILE_MD5=db8765c8d076f1b6caafd9f2542a304a
# libxslt-internal-symbols: #i112480#: Solaris ld requires symbols to be defined
PATCH_FILES=libxslt-configure.patch \
- libxslt-win_manifest.patch
+ libxslt-win_manifest.patch \
+ libxslt-stdlib-getenv.patch
# This is only for UNX environment now
.IF "$(OS)"=="WNT"
(openoffice) 09/16: xmlsecurity, forms: ignore-error prefix on $(shell test -f ...) dylib checks
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 13a332384816a0e956f7641859b592b0dd7a89a0
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Wed Aug 5 19:50:42 2026 -0400
xmlsecurity, forms: ignore-error prefix on $(shell test -f ...) dylib checks
(cherry picked from commit 137a920b9dbf81064b3f3fde1947d63fd0126e49)
---
main/forms/util/makefile.mk | 13 ++++++++++++-
main/xmlsecurity/util/makefile.mk | 16 ++++++++++++++--
2 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/main/forms/util/makefile.mk b/main/forms/util/makefile.mk
index 9574ab5ff3..c38c8bd33d 100644
--- a/main/forms/util/makefile.mk
+++ b/main/forms/util/makefile.mk
@@ -77,7 +77,18 @@ SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
# The existence check is resolved into a plain macro first, then branched
# on -- dmake's .IF does not reliably evaluate a $(shell ...) call written
# directly inside the condition string itself.
-FORMS_LIBXML2_HAS_DYLIB:=$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)
+#
+# The leading "-" is load-bearing: dmake runs $(shell ...) as a phony
+# recipe named "Shell escape" and, same as any other recipe line, treats
+# a non-zero exit as a fatal build error unless the line is marked
+# ignore-errors (the same leading "-" convention as normal recipes,
+# handled by Rcp_attribute() in dag.c). "test -f X && echo yes" exits 1
+# whenever X does not exist -- the expected, common case here, since
+# community builds normally only install libxml2 as a static archive
+# (--enable-shared=no, no dylib at all) -- so without the "-" this aborts
+# the whole build the moment no dylib is found, instead of just leaving
+# the macro empty.
+FORMS_LIBXML2_HAS_DYLIB:=$(shell -test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)
.IF "$(FORMS_LIBXML2_HAS_DYLIB)"=="yes"
FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.dylib
.ELSE
diff --git a/main/xmlsecurity/util/makefile.mk b/main/xmlsecurity/util/makefile.mk
index 8ac84413a2..14793f4cda 100644
--- a/main/xmlsecurity/util/makefile.mk
+++ b/main/xmlsecurity/util/makefile.mk
@@ -153,7 +153,18 @@ SHL2STDLIBS+= $(NSS3LIB) $(NSPR4LIB)
# The existence check is resolved into a plain macro first, then branched
# on -- dmake's .IF does not reliably evaluate a $(shell ...) call written
# directly inside the condition string itself.
-XMLSECURITY_LIBXML2_HAS_DYLIB:=$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)
+#
+# The leading "-" is load-bearing: dmake runs $(shell ...) as a phony
+# recipe named "Shell escape" and, same as any other recipe line, treats
+# a non-zero exit as a fatal build error unless the line is marked
+# ignore-errors (the same leading "-" convention as normal recipes,
+# handled by Rcp_attribute() in dag.c). "test -f X && echo yes" exits 1
+# whenever X does not exist -- the expected, common case here, since
+# community builds normally only install libxml2 as a static archive
+# (--enable-shared=no, no dylib at all) -- so without the "-" this aborts
+# the whole build the moment no dylib is found, instead of just leaving
+# the macro empty.
+XMLSECURITY_LIBXML2_HAS_DYLIB:=$(shell -test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)
.IF "$(XMLSECURITY_LIBXML2_HAS_DYLIB)"=="yes"
XMLSECURITY_SYSTEM_LIBXML2:=$(LIBXML_PREFIX)/lib/libxml2.dylib
XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS:=
@@ -164,7 +175,8 @@ XMLSECURITY_SYSTEM_LIBXML2:=$(LIBXML_PREFIX)/lib/libxml2.a
# inflate, gzopen, ...). liblzma is linked only if actually present next
# to it: it's not part of the documented static-lib bundle, so only
# needed if this libxml2 build happens to have xz support compiled in.
-XMLSECURITY_SYSTEM_LIBLZMA:=$(shell test -f $(LIBXML_PREFIX)/lib/liblzma.a -o -f $(LIBXML_PREFIX)/lib/liblzma.dylib && echo $(LIBXML_PREFIX)/lib/liblzma.a)
+# (See above for why the leading "-" is required.)
+XMLSECURITY_SYSTEM_LIBLZMA:=$(shell -test -f $(LIBXML_PREFIX)/lib/liblzma.a -o -f $(LIBXML_PREFIX)/lib/liblzma.dylib && echo $(LIBXML_PREFIX)/lib/liblzma.a)
XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS:=$(ZLIB3RDLIB) $(XMLSECURITY_SYSTEM_LIBLZMA)
.ENDIF
SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
(openoffice) 11/16: libxslt: pin to bundled libxml2 and fix static xsltproc output path
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit dda24ebd93de8565edb0cb358b4090b6c7d64c90
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 12:15:28 2026 -0400
libxslt: pin to bundled libxml2 and fix static xsltproc output path
The macOS static-build config (c46d036de4) didn't stop libxslt's own
configure from discovering libxml2 via pkg-config, which resolves to
whatever libxml2 a package manager (MacPorts, Homebrew) has registered
-- not the bundled copy. Modern libxml2 turns xmlParserMaxDepth into a
macro, breaking xsltproc.c's assignment to it. --with-libxml-prefix
pins the lookup to the bundled xml2-config instead.
Separately, --enable-shared=no makes libtool link xsltproc directly
without a .libs wrapper dir (unlike the static .a archives, which still
land in .libs), so OUT2BIN's path was wrong and the binary never made
it into the solver.
(cherry picked from commit 4cc9990ed779e39651a59427c09c6ee78097161b)
---
main/libxslt/makefile.mk | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/main/libxslt/makefile.mk b/main/libxslt/makefile.mk
index 64bf9ffcb1..c4ca26c56b 100644
--- a/main/libxslt/makefile.mk
+++ b/main/libxslt/makefile.mk
@@ -111,7 +111,14 @@ CONFIGURE_ACTION=.$/configure
# Community builds bundle a static libxslt/libexslt rather than a dylib --
# see main/xmlsecurity/util/makefile.mk and main/forms/util/makefile.mk
# for the analogous libxml2 case.
-CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=yes --enable-shared=no --with-sax1=yes ac_cv_func_clock_gettime=false
+#
+# libxslt's own configure otherwise discovers libxml2 via pkg-config,
+# which resolves to whatever libxml2 a package manager (MacPorts,
+# Homebrew, ...) has registered there -- not the bundled copy this
+# module just built. --with-libxml-prefix pins it to the bundled
+# xml2-config instead, matching the consumer-side fix in xmlsecurity/
+# forms.
+CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=yes --enable-shared=no --with-sax1=yes --with-libxml-prefix=$(SOLARVERSION)/$(INPATH) ac_cv_func_clock_gettime=false
.ELSE
CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=no --with-sax1=yes ac_cv_func_clock_gettime=false
.ENDIF
@@ -125,7 +132,9 @@ OUT2INC=libxslt$/*.h
.IF "$(OS)"=="MACOSX"
OUT2LIB+=libxslt$/.libs$/libxslt.a
OUT2LIB+=libexslt$/.libs$/libexslt.a
-OUT2BIN+=xsltproc$/.libs$/xsltproc
+# With --enable-shared=no, libtool links xsltproc directly (no .libs
+# wrapper dir, unlike the static .a archives above).
+OUT2BIN+=xsltproc$/xsltproc
OUT2BIN+=xslt-config
.ELIF "$(OS)"=="WNT"
.IF "$(COM)"=="GCC"
(openoffice) 03/16: Improve macOS/arm64 build linting a full run on Mac Silicon
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 8fad73917996b0f3dda5012ed97b3efc8db0e2d5
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Mon Aug 3 12:23:00 2026 -0400
Improve macOS/arm64 build linting a full run on Mac Silicon
(cherry picked from commit c8bb992227b037a7321171d39b9b1b57b3461349)
---
main/RepositoryExternal.mk | 9 ++++++-
main/avmedia/source/macavf/macavf_uno.cxx | 2 ++
main/forms/util/makefile.mk | 16 ++++++++++++-
main/solenv/bin/macosx-dylib-link-list.pl | 11 ++++++++-
main/solenv/bin/modules/macosxotoolhelper.pm | 36 ++++++++++++++++++++++------
main/vcl/inc/aqua/salgdi.h | 4 ++--
main/xmlsecurity/util/makefile.mk | 11 +++++++++
7 files changed, 77 insertions(+), 12 deletions(-)
diff --git a/main/RepositoryExternal.mk b/main/RepositoryExternal.mk
index 178fc69f80..1d4d32be6f 100644
--- a/main/RepositoryExternal.mk
+++ b/main/RepositoryExternal.mk
@@ -142,7 +142,14 @@ $(call gb_LinkTarget_set_include,$(1),\
$$(INCLUDE) \
$(LIBXML_CFLAGS) \
)
-$(call gb_LinkTarget_add_libs,$(1),$(LIBXML_LIBS))
+
+# Some system libxml2 builds report -licuuc in their link flags because
+# libxml2 itself was built against ICU. That ICU dependency is already
+# satisfied inside libxml2's own dylib; forwarding -licuuc to consumers
+# makes them link this tree's bundled (OOO-layer) ICU directly, which
+# breaks URE-layer consumers on macOS (see macosx-change-install-names.pl,
+# which has no rule for a URE library depending on an OOO one).
+$(call gb_LinkTarget_add_libs,$(1),$(filter-out -licuuc,$(LIBXML_LIBS)))
endef
else # !SYSTEM_LIBXML
diff --git a/main/avmedia/source/macavf/macavf_uno.cxx b/main/avmedia/source/macavf/macavf_uno.cxx
index 30c67c83ed..a6cace7bd4 100644
--- a/main/avmedia/source/macavf/macavf_uno.cxx
+++ b/main/avmedia/source/macavf/macavf_uno.cxx
@@ -21,6 +21,8 @@
#include "macavf_manager.hxx"
+#include <cppuhelper/implementationentry.hxx>
+
using namespace ::com::sun::star;
// -------------------
diff --git a/main/forms/util/makefile.mk b/main/forms/util/makefile.mk
index 4e3a5208ef..f276f52fe6 100644
--- a/main/forms/util/makefile.mk
+++ b/main/forms/util/makefile.mk
@@ -49,6 +49,20 @@ LIB1FILES=\
SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
+.IF "$(OS)$(SYSTEM_LIBXML)"=="MACOSXYES"
+# The macOS shared-library link template (tg_shl.mk) always searches
+# $(SOLARLIB) -- which includes /usr/lib -- before any of this makefile's
+# own libs, and the SDK bundles its own older libxml2 under /usr/lib. A
+# plain "-lxml2" (as pulled in by LIBXML2LIB) resolves to that bundled
+# copy instead of the configured --with-system-libxml one, and it is
+# missing symbols (xmlXPathValuePush, xmlXPathValuePop) that xformsxpath
+# needs. Link the intended libxml2 by absolute path so the search order
+# can't shadow it.
+FORMS_LIBXML2LIB:=$(shell xml2-config --prefix)/lib/libxml2.dylib
+.ELSE
+FORMS_LIBXML2LIB=$(LIBXML2LIB)
+.ENDIF
+
SHL1STDLIBS= \
$(EDITENGLIB) \
$(SALLIB) \
@@ -68,7 +82,7 @@ SHL1STDLIBS= \
$(TKLIB) \
$(SVXCORELIB) \
$(UCBHELPERLIB) \
- $(LIBXML2LIB) \
+ $(FORMS_LIBXML2LIB) \
$(ICUUCLIB) \
$(ICUINLIB)
diff --git a/main/solenv/bin/macosx-dylib-link-list.pl b/main/solenv/bin/macosx-dylib-link-list.pl
index 1580caa8a6..8d1ba13a00 100644
--- a/main/solenv/bin/macosx-dylib-link-list.pl
+++ b/main/solenv/bin/macosx-dylib-link-list.pl
@@ -59,7 +59,16 @@ foreach (@ARGV)
if (/^-l(.*)$/)
{
my $loc = locate("lib$1.dylib");
- handle($1, $loc) if defined $loc && otoolD($loc) =~ m'^(@.+/.+)\n$';
+ # A makefile's STDLIBS/STDSHL lists can legitimately name the same
+ # library twice (accumulated from more than one variable). Unlike
+ # the @todo loop below, this pass had no dedup guard, so a repeated
+ # -lfoo emitted the same -dylib_file entry twice; ld then reports
+ # that entry as "recursively loading" instead of just ignoring the
+ # duplicate.
+ if (defined $loc && otoolD($loc) =~ m'^(@.+/.+)\n$')
+ {
+ handle($1, $loc) unless defined $done{$1};
+ }
}
}
foreach $file (@todo)
diff --git a/main/solenv/bin/modules/macosxotoolhelper.pm b/main/solenv/bin/modules/macosxotoolhelper.pm
index a5c814d2e0..33ab44ff8e 100644
--- a/main/solenv/bin/modules/macosxotoolhelper.pm
+++ b/main/solenv/bin/modules/macosxotoolhelper.pm
@@ -33,12 +33,34 @@ sub otoolD($) {
my ($file) = @_;
my $call = "otool -D $file";
open(IN, "-|", $call) or die "cannot $call";
- my $line = <IN>;
- if( $line !~ /^\Q$file\E:\n$/ ) {
- die "unexpected otool -D output (\"$line\", expecting \"$file:\")";
- }
- $line = <IN>;
- <IN> == undef or die "unexpected otool -D output";
+ my @lines = <IN>;
close(IN);
- return $line;
+
+ # A fat/universal binary (e.g. a Homebrew-installed library bundling
+ # x86_64 and arm64 slices) makes otool -D print one
+ # "<path> (architecture <arch>):" stanza per slice instead of the
+ # single "<path>:" header a thin binary gets. Every slice of the same
+ # library reports the same install name, so take it from the first
+ # stanza and ignore the rest.
+ #
+ # A slice with no install name (e.g. a loadable module/bundle, such as
+ # a PKCS#11 provider that is only ever dlopen()ed) prints its header
+ # with nothing after it -- callers rely on getting undef back for that
+ # case, same as otool -D on a thin file with no install name.
+ my $header_re = qr/^\Q$file\E(?: \(architecture [^)]+\))?:\n$/;
+ my @names;
+ my $i = 0;
+ while ($i < @lines) {
+ $lines[$i] =~ $header_re or
+ die "unexpected otool -D output (\"$lines[$i]\", expecting \"$file:\")";
+ ++$i;
+ if ($i < @lines && $lines[$i] !~ $header_re) {
+ push @names, $lines[$i];
+ ++$i;
+ }
+ }
+ return undef unless @names;
+ grep($_ ne $names[0], @names) and
+ die "otool -D reported differing install names across architectures for $file";
+ return $names[0];
}
diff --git a/main/vcl/inc/aqua/salgdi.h b/main/vcl/inc/aqua/salgdi.h
index aa57334cea..42b62c0cd3 100644
--- a/main/vcl/inc/aqua/salgdi.h
+++ b/main/vcl/inc/aqua/salgdi.h
@@ -215,7 +215,7 @@ public:
bool CheckContext();
void UpdateWindow( NSRect& ); // delivered in NSView coordinates
void RefreshRect( const CGRect& );
-#ifndef __x86_64__ // on 64bit OSX NSRect is typedef'ed as CGRect
+#ifndef __LP64__ // on 64bit OSX (both x86_64 and arm64) NSRect is typedef'ed as CGRect
void RefreshRect( const NSRect& );
#endif
void RefreshRect(float lX, float lY, float lWidth, float lHeight);
@@ -449,7 +449,7 @@ inline void AquaSalGraphics::RefreshRect( const CGRect& rRect )
RefreshRect( rRect.origin.x, rRect.origin.y, rRect.size.width, rRect.size.height );
}
-#ifndef __x86_64__ // on 64bit OSX NSRect is typedef'ed as CGRect
+#ifndef __LP64__ // on 64bit OSX (both x86_64 and arm64) NSRect is typedef'ed as CGRect
inline void AquaSalGraphics::RefreshRect( const NSRect& rRect )
{
RefreshRect( rRect.origin.x, rRect.origin.y, rRect.size.width, rRect.size.height );
diff --git a/main/xmlsecurity/util/makefile.mk b/main/xmlsecurity/util/makefile.mk
index e21b114dfd..1e329f8b87 100644
--- a/main/xmlsecurity/util/makefile.mk
+++ b/main/xmlsecurity/util/makefile.mk
@@ -118,6 +118,17 @@ SHL2STDLIBS += $(NSS_LIBS)
SHL2STDLIBS+= $(MSCRYPTOLIBS)
# SHL2STDLIBS+= $(XMLSECLIB) $(LIBXML2LIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
SHL2STDLIBS+= $(NSS3LIB) $(NSPR4LIB)
+.ELIF "$(OS)$(SYSTEM_LIBXML)"=="MACOSXYES"
+# The macOS shared-library link template (tg_shl.mk) always searches
+# $(SOLARLIB) -- which includes /usr/lib -- before any of this makefile's
+# own libs, and the SDK bundles its own older libxml2 under /usr/lib. A
+# plain "-lxml2" (as pulled in by NSSCRYPTOLIBS via LIBXML2LIB) resolves
+# to that bundled copy instead of the configured --with-system-libxml one,
+# and it is missing symbols (xmlCtxtPushInput, xmlXPathValuePush) that
+# xmlsec1 needs. Link the intended libxml2 by absolute path so the
+# search order can't shadow it.
+XMLSECURITY_SYSTEM_LIBXML2:=$(shell xml2-config --prefix)/lib/libxml2.dylib
+SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
.ELSE
SHL2STDLIBS+= $(NSSCRYPTOLIBS)
.ENDIF
(openoffice) 10/16: libxmlsec: pin xmlsec's libxml2 lookup to the configured prefix
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit bf92e59e8d891a17f9b48767b3a99bcce7f68ffb
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 06:26:28 2026 -0400
libxmlsec: pin xmlsec's libxml2 lookup to the configured prefix
(cherry picked from commit 2df625d2e386264a0ff728f3d6558b620fbd6e2d)
---
main/libxmlsec/makefile.mk | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/main/libxmlsec/makefile.mk b/main/libxmlsec/makefile.mk
index 99bdc616f2..a408c4211e 100644
--- a/main/libxmlsec/makefile.mk
+++ b/main/libxmlsec/makefile.mk
@@ -151,6 +151,23 @@ LDFLAGS:=$(xmlsec_LDFLAGS)
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure ADDCFLAGS="$(xmlsec_CFLAGS)" CPPFLAGS="$(xmlsec_CPPFLAGS)"
CONFIGURE_FLAGS=--with-pic --disable-shared --disable-crypto-dl --with-libxslt=no --with-openssl=no --with-gnutls=no LIBXML2LIB="$(LIBXML2LIB)"
+# Pin xmlsec's libxml2 lookup to the prefix configure settled on.
+#
+# Without --with-libxml the AOO patches leave xmlsec resolving a bare
+# "xml2-config" off $PATH, which on a Mac carrying MacPorts/Homebrew is
+# often not the one --with-system-libxml named. The mis-pick is silent
+# until link time: newer libxml2 renamed the stack helpers but kept the
+# old spellings as macros (inputPush -> xmlCtxtPushInput, valuePush ->
+# xmlXPathValuePush), so xmlsec 1.2.14 built against post-rename headers
+# emits the new names and the older archive xmlsecurity links lacks them.
+# Compile-side counterpart to the absolute-path link fix in
+# xmlsecurity/util/makefile.mk and forms/util/makefile.mk; both are needed.
+#
+# Guarded on SYSTEM_LIBXML: the internal build already gets an
+# absolute-path xml2-config, which AC_PATH_PROG honors as-is.
+.IF "$(SYSTEM_LIBXML)"=="YES" && "$(LIBXML_PREFIX)"!=""
+CONFIGURE_FLAGS+=--with-libxml=$(LIBXML_PREFIX)
+.ENDIF
# system-nss needs pkgconfig to get the information about nss
# FIXME: This also will enable pkg-config usage for libxml2. It *seems*
# that the internal headers still are used when they are there but....
(openoffice) 16/16: RepositoryExternal.mk: link libxml2's static-lib private deps on macOS
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit a5873649898725e5ef72d40f03080589ed93a208
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 13:41:38 2026 -0400
RepositoryExternal.mk: link libxml2's static-lib private deps on macOS
A static archive doesn't record its transitive deps the way a dylib
does. libxml-2.0.pc's own "Libs.private: -lpthread -liconv -lm" says
what's actually needed; add it explicitly.
(cherry picked from commit 8dfc65616f7a412fefc598c9b6d9cd34812ef0c1)
---
main/RepositoryExternal.mk | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/main/RepositoryExternal.mk b/main/RepositoryExternal.mk
index f52ceef24c..523065187d 100644
--- a/main/RepositoryExternal.mk
+++ b/main/RepositoryExternal.mk
@@ -156,15 +156,14 @@ else # !SYSTEM_LIBXML
ifeq ($(OS),MACOSX)
-# The bundled libxml2 builds as a static archive on macOS (see
-# main/libxml2/makefile.mk), not a dylib, so it can't be registered as a
-# PLAINLIB the way other platforms do below -- there is no libxml2.dylib
-# for the solver to deliver. Link the static archive by absolute path
-# instead; $(LIBXML_PREFIX) is empty here (it's only set when
-# SYSTEM_LIBXML=YES), so this is the module's own delivered location.
+# Bundled libxml2 builds as a static archive on macOS (main/libxml2/makefile.mk),
+# not a dylib, so it can't be a PLAINLIB like the else-branch below. A static
+# archive carries no transitive deps, so its own libxml-2.0.pc's
+# "Libs.private: -lpthread -liconv -lm" must be added explicitly.
define gb_LinkTarget__use_libxml2
$(call gb_LinkTarget_add_libs,$(1),\
$(OUTDIR)/lib/libxml2.a \
+ -lpthread -liconv -lm \
)
endef
(openoffice) 02/16: solenv: skip .pc pkg-config files in macOS install-name fixup
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 0134dca994c1337df3dc594a89dcb00d7775f07c
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 11:48:15 2026 -0400
solenv: skip .pc pkg-config files in macOS install-name fixup
(cherry picked from commit fe39fbac3c57a2501d25d7146ec8cbf4cbf8c387)
---
main/solenv/inc/tg_ext.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/main/solenv/inc/tg_ext.mk b/main/solenv/inc/tg_ext.mk
index cf666b394d..b093603dc9 100644
--- a/main/solenv/inc/tg_ext.mk
+++ b/main/solenv/inc/tg_ext.mk
@@ -273,7 +273,7 @@ $(PACKAGE_DIR)/$(PREDELIVER_FLAG_FILE) : $(PACKAGE_DIR)/$(INSTALL_FLAG_FILE)
$(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl extshl \
$(EXTRPATH) \
$(shell ls $(foreach,j,$(OUT2LIB) $(LB)/$(j:f)) | \
- (grep -v '\.a$$' || test $$? = 1))
+ (grep -vE '\.(a|pc)$$' || test $$? = 1))
.ENDIF
.ENDIF # "$(OUT2LIB)"!=""
.IF "$(OUT2INC)"!=""
(openoffice) 05/16: Link zlib explicitly against static libxml2.a on macOS
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit f4090c2041f5ff479b1b662f511bdcde9a1b767f
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Tue Aug 4 08:47:48 2026 -0400
Link zlib explicitly against static libxml2.a on macOS
(cherry picked from commit a2d0bf344fa40ddde04b4358d51e919637b11787)
---
main/forms/util/makefile.mk | 5 ++++-
main/xmlsecurity/util/makefile.mk | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/main/forms/util/makefile.mk b/main/forms/util/makefile.mk
index d86e08b972..dea1f96486 100644
--- a/main/forms/util/makefile.mk
+++ b/main/forms/util/makefile.mk
@@ -58,7 +58,10 @@ SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
# missing symbols (xmlXPathValuePush, xmlXPathValuePop) that xformsxpath
# needs. Link the intended libxml2 statically by absolute path so the
# search order can't shadow it and no dylib needs to be bundled.
-FORMS_LIBXML2LIB:=$(shell xml2-config --prefix)/lib/libxml2.a
+# The static archive carries no dependency info (unlike a dylib, which
+# records its own link to libz), so zlib must be linked explicitly here
+# to satisfy libxml2's HTTP/gzip symbols (deflate, inflate, gzopen, ...).
+FORMS_LIBXML2LIB:=$(shell xml2-config --prefix)/lib/libxml2.a $(ZLIB3RDLIB)
.ELSE
FORMS_LIBXML2LIB=$(LIBXML2LIB)
.ENDIF
diff --git a/main/xmlsecurity/util/makefile.mk b/main/xmlsecurity/util/makefile.mk
index ac0df884a2..34fe3c8a9b 100644
--- a/main/xmlsecurity/util/makefile.mk
+++ b/main/xmlsecurity/util/makefile.mk
@@ -127,8 +127,11 @@ SHL2STDLIBS+= $(NSS3LIB) $(NSPR4LIB)
# and it is missing symbols (xmlCtxtPushInput, xmlXPathValuePush) that
# xmlsec1 needs. Link the intended libxml2 statically by absolute path
# so the search order can't shadow it and no dylib needs to be bundled.
+# The static archive carries no dependency info (unlike a dylib, which
+# records its own link to libz), so zlib must be linked explicitly here
+# to satisfy libxml2's HTTP/gzip symbols (deflate, inflate, gzopen, ...).
XMLSECURITY_SYSTEM_LIBXML2:=$(shell xml2-config --prefix)/lib/libxml2.a
-SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
+SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(ZLIB3RDLIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
.ELSE
SHL2STDLIBS+= $(NSSCRYPTOLIBS)
.ENDIF
(openoffice) 15/16: curl: fix macOS bundled-openssl linker flags and dylib naming
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 3df29d8c7846842ea99f380f13e300eb5a454266
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 13:27:02 2026 -0400
curl: fix macOS bundled-openssl linker flags and dylib naming
(cherry picked from commit cdd63492ba8ea1c06e96d4b16c9f4a88388ac370)
---
main/curl/makefile.mk | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/main/curl/makefile.mk b/main/curl/makefile.mk
index d396ae4820..7bff8fcfcb 100644
--- a/main/curl/makefile.mk
+++ b/main/curl/makefile.mk
@@ -60,7 +60,12 @@ ssl_param=--with-ssl
.ELSE
ssl_param=--with-ssl=$(OUTDIR)
curl_CFLAGS+=-I$(SOLARINCDIR)$/external
+# -z origin/-rpath $ORIGIN are Linux/ELF idioms; Apple's ld rejects both.
+.IF "$(OS)"!="MACOSX"
curl_LDFLAGS+=-L$(SOLARLIBDIR) -Wl,-z,origin -Wl,-rpath,\\\$$\$$ORIGIN
+.ELSE
+curl_LDFLAGS+=-L$(SOLARLIBDIR)
+.ENDIF
PATCH_FILES+= curl-bundled_openssl.patch
.ENDIF
@@ -73,7 +78,12 @@ BUILD_DIR=$(CONFIGURE_DIR)$/lib
BUILD_ACTION=$(GNUMAKE)
BUILD_FLAGS+= -j$(EXTMAXPROCESS)
+.IF "$(OS)"=="MACOSX"
+# libtool names macOS dylibs libcurl.<major>.dylib, not libcurl.dylib.<major>.
+OUT2LIB=$(BUILD_DIR)$/.libs$/libcurl.*.dylib
+.ELSE
OUT2LIB=$(BUILD_DIR)$/.libs$/libcurl$(DLLPOST).4
+.ENDIF
.ENDIF # "$(GUI)"=="UNX"
(openoffice) 12/16: jvmfwk: recognize AARCH64 in JFW_PLUGIN_ARCH platform detection for Mac Silicon
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit eec17c3f5a128d8b2dc7ab2f2b9eb1a3a09d35e4
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Wed Jul 1 14:29:42 2026 -0400
jvmfwk: recognize AARCH64 in JFW_PLUGIN_ARCH platform detection for Mac Silicon
(cherry picked from commit e278cb3926a29fb9a38f15711fbfdef43c02602f)
---
main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx b/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
index 1b71699885..86ebdb8266 100644
--- a/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
+++ b/main/jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx
@@ -57,6 +57,8 @@ namespace jfw_plugin
#define JFW_PLUGIN_ARCH "s390x"
#elif defined S390
#define JFW_PLUGIN_ARCH "s390"
+#elif defined AARCH64
+#define JFW_PLUGIN_ARCH "aarch64"
#elif defined ARM
#define JFW_PLUGIN_ARCH "arm"
#elif defined IA64
(openoffice) 07/16: configure.ac: honor the directory given to --with-system-libxml/-libxslt/-curl
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 5e3709ad1754c3416b2cfc2b6c120bf226f037ea
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Wed Aug 5 19:31:03 2026 -0400
configure.ac: honor the directory given to --with-system-libxml/-libxslt/-curl
(cherry picked from commit 6ebe52f808faa3285ea18ab8e983eb89d5cfb82c)
---
main/configure.ac | 67 +++++++++++++++++++++++++++++++++++----
main/forms/util/makefile.mk | 28 ++++++++++++----
main/set_soenv.in | 3 ++
main/xmlsecurity/util/makefile.mk | 45 ++++++++++++++++++++++----
4 files changed, 123 insertions(+), 20 deletions(-)
diff --git a/main/configure.ac b/main/configure.ac
index 7af09495a5..f61df52ccb 100644
--- a/main/configure.ac
+++ b/main/configure.ac
@@ -3926,8 +3926,23 @@ if test -n "$with_system_libxslt" -o -n "$with_system_libs" -o \
if test "$_os" != "Darwin"; then
PKG_CHECK_MODULES(LIBXSLT, libxslt)
else
- LIBXSLT_CFLAGS=`xslt-config --cflags`
- LIBXSLT_LIBS=`xslt-config --libs`
+ dnl See the matching libxml check below for why this pins
+ dnl xslt-config to the directory given to --with-system-libxslt
+ dnl instead of resolving a bare "xslt-config" off PATH.
+ if test "$with_system_libxslt" != "yes" -a -n "$with_system_libxslt"; then
+ XSLT_CONFIG="$with_system_libxslt/bin/xslt-config"
+ if test ! -x "$XSLT_CONFIG"; then
+ AC_MSG_ERROR([--with-system-libxslt=$with_system_libxslt given, but $XSLT_CONFIG not found or not executable])
+ fi
+ else
+ AC_PATH_PROG(XSLT_CONFIG, xslt-config, [])
+ if test -z "$XSLT_CONFIG"; then
+ AC_MSG_ERROR([xslt-config not found on PATH])
+ fi
+ fi
+ LIBXSLT_CFLAGS=`$XSLT_CONFIG --cflags`
+ LIBXSLT_LIBS=`$XSLT_CONFIG --libs`
+ LIBXSLT_PREFIX=`$XSLT_CONFIG --prefix`
fi
dnl Check for xsltproc
@@ -3943,6 +3958,7 @@ fi
AC_SUBST(SYSTEM_LIBXSLT)
AC_SUBST(LIBXSLT_CFLAGS)
AC_SUBST(LIBXSLT_LIBS)
+AC_SUBST(LIBXSLT_PREFIX)
dnl ===================================================================
@@ -3959,8 +3975,27 @@ if test -n "$with_system_libxml" -o -n "$with_system_libs" -o \
if test "$_os" != "Darwin"; then
PKG_CHECK_MODULES(LIBXML, libxml-2.0 >= 2.0)
else
- LIBXML_CFLAGS=`xml2-config --cflags`
- LIBXML_LIBS=`xml2-config --libs`
+ dnl A bare "xml2-config" resolves off whatever happens to be
+ dnl first on PATH, which is ambiguous when several package
+ dnl managers each ship their own libxml2 (MacPorts, Homebrew,
+ dnl a hand-built static copy, ...). When --with-system-libxml
+ dnl is given an actual directory (not just a bare "yes"), pin
+ dnl xml2-config to that prefix explicitly so the intended copy
+ dnl can't be shadowed by PATH order.
+ if test "$with_system_libxml" != "yes" -a -n "$with_system_libxml"; then
+ XML2_CONFIG="$with_system_libxml/bin/xml2-config"
+ if test ! -x "$XML2_CONFIG"; then
+ AC_MSG_ERROR([--with-system-libxml=$with_system_libxml given, but $XML2_CONFIG not found or not executable])
+ fi
+ else
+ AC_PATH_PROG(XML2_CONFIG, xml2-config, [])
+ if test -z "$XML2_CONFIG"; then
+ AC_MSG_ERROR([xml2-config not found on PATH])
+ fi
+ fi
+ LIBXML_CFLAGS=`$XML2_CONFIG --cflags`
+ LIBXML_LIBS=`$XML2_CONFIG --libs`
+ LIBXML_PREFIX=`$XML2_CONFIG --prefix`
fi
else
AC_MSG_RESULT([internal])
@@ -3970,6 +4005,7 @@ fi
AC_SUBST(SYSTEM_LIBXML)
AC_SUBST(LIBXML_CFLAGS)
AC_SUBST(LIBXML_LIBS)
+AC_SUBST(LIBXML_PREFIX)
dnl ===================================================================
@@ -4607,6 +4643,11 @@ AC_SUBST(COINMP_LIBS)
dnl ===================================================================
dnl Check for system curl
dnl ===================================================================
+dnl Darwin always treats curl as external (see the "-o \"$_os\" = \"Darwin\""
+dnl clause below), regardless of whether --with-system-curl was actually
+dnl given a directory -- capture the as-given value first, before it gets
+dnl forced to a bare "yes", so a real --with-system-curl=DIR isn't lost.
+with_system_curl_dir="$with_system_curl"
if test "$_os" = "Darwin" && test "$with_system_curl" != "no"; then
with_system_curl=yes
fi
@@ -4616,9 +4657,19 @@ if test -n "$with_system_curl" -o -n "$with_system_libs" && \
AC_MSG_RESULT([external])
SYSTEM_CURL=YES
- AC_PATH_PROG( CURLCONFIG, curl-config)
- if test -z "$CURLCONFIG"; then
- AC_MSG_ERROR([install curl to run this script])
+ dnl See the matching libxml check above for why this pins
+ dnl curl-config to the directory given to --with-system-curl instead
+ dnl of resolving a bare "curl-config" off PATH.
+ if test "$with_system_curl_dir" != "yes" -a -n "$with_system_curl_dir"; then
+ CURLCONFIG="$with_system_curl_dir/bin/curl-config"
+ if test ! -x "$CURLCONFIG"; then
+ AC_MSG_ERROR([--with-system-curl=$with_system_curl_dir given, but $CURLCONFIG not found or not executable])
+ fi
+ else
+ AC_PATH_PROG( CURLCONFIG, curl-config)
+ if test -z "$CURLCONFIG"; then
+ AC_MSG_ERROR([install curl to run this script])
+ fi
fi
# check curl version
@@ -4641,6 +4692,7 @@ if test -n "$with_system_curl" -o -n "$with_system_libs" && \
CURL_LIBS=`$CURLCONFIG --libs`
CURL_CFLAGS=`$CURLCONFIG --cflags`
+ CURL_PREFIX=`$CURLCONFIG --prefix`
else
AC_MSG_RESULT([internal])
SYSTEM_CURL=NO
@@ -4649,6 +4701,7 @@ fi
AC_SUBST(SYSTEM_CURL)
AC_SUBST(CURL_CFLAGS)
AC_SUBST(CURL_LIBS)
+AC_SUBST(CURL_PREFIX)
dnl ===================================================================
dnl Check for system mdds
diff --git a/main/forms/util/makefile.mk b/main/forms/util/makefile.mk
index dea1f96486..887f0f1f9d 100644
--- a/main/forms/util/makefile.mk
+++ b/main/forms/util/makefile.mk
@@ -56,12 +56,28 @@ SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
# plain "-lxml2" (as pulled in by LIBXML2LIB) resolves to that bundled
# copy instead of the configured --with-system-libxml one, and it is
# missing symbols (xmlXPathValuePush, xmlXPathValuePop) that xformsxpath
-# needs. Link the intended libxml2 statically by absolute path so the
-# search order can't shadow it and no dylib needs to be bundled.
-# The static archive carries no dependency info (unlike a dylib, which
-# records its own link to libz), so zlib must be linked explicitly here
-# to satisfy libxml2's HTTP/gzip symbols (deflate, inflate, gzopen, ...).
-FORMS_LIBXML2LIB:=$(shell xml2-config --prefix)/lib/libxml2.a $(ZLIB3RDLIB)
+# needs. Link the intended libxml2 by absolute path so the search order
+# can't shadow it.
+#
+# The path is built from $(LIBXML_PREFIX), not a live `xml2-config`
+# lookup -- see the matching comment in xmlsecurity/util/makefile.mk for
+# why: $(LIBXML_PREFIX) is resolved exactly once by `./configure`
+# (honoring the directory given to --with-system-libxml=DIR) and exported
+# via the generated *Env.Set.sh script, so it can't drift from what
+# configure actually resolved the way a fresh `xml2-config` shell-out at
+# dmake time could.
+#
+# Prefer the dylib when one is actually present at that prefix (it
+# records its own transitive links, e.g. to libz, so nothing extra needs
+# to be added); fall back to the static archive -- which carries no
+# dependency info, so zlib must be linked explicitly to satisfy libxml2's
+# HTTP/gzip symbols (deflate, inflate, gzopen, ...) -- when no dylib
+# exists there.
+.IF "$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)"=="yes"
+FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.dylib
+.ELSE
+FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.a $(ZLIB3RDLIB)
+.ENDIF
.ELSE
FORMS_LIBXML2LIB=$(LIBXML2LIB)
.ENDIF
diff --git a/main/set_soenv.in b/main/set_soenv.in
index 94f830b2b6..df39dd0dd4 100644
--- a/main/set_soenv.in
+++ b/main/set_soenv.in
@@ -1981,6 +1981,7 @@ ToFile( "SYSTEM_LIBXML", "@SYSTEM_LIBXML@", "e" );
ToFile( "USE_FT_EMBOLDEN", "@USE_FT_EMBOLDEN@", "e" );
ToFile( "LIBXML_CFLAGS", "@LIBXML_CFLAGS@", "e" );
ToFile( "LIBXML_LIBS", "@LIBXML_LIBS@", "e" );
+ToFile( "LIBXML_PREFIX", "@LIBXML_PREFIX@", "e" );
ToFile( "SYSTEM_EXPAT", "@SYSTEM_EXPAT@", "e" );
ToFile( "ENABLE_MYSQLC", "@ENABLE_MYSQLC@", "e" );
ToFile( "SYSTEM_MYSQL", "@SYSTEM_MYSQL@", "e" );
@@ -2009,11 +2010,13 @@ ToFile( "SYSTEM_ODBC_HEADERS","@SYSTEM_ODBC_HEADERS@","e" );
ToFile( "SYSTEM_LIBXSLT", "@SYSTEM_LIBXSLT@", "e" );
ToFile( "LIBXSLT_CFLAGS", "@LIBXSLT_CFLAGS@", "e" );
ToFile( "LIBXSLT_LIBS", "@LIBXSLT_LIBS@", "e" );
+ToFile( "LIBXSLT_PREFIX", "@LIBXSLT_PREFIX@", "e" );
ToFile( "SYSTEM_SANE_HEADER","@SYSTEM_SANE_HEADER@","e" );
ToFile( "SYSTEM_XRENDER_HEADERS","@SYSTEM_XRENDER_HEADERS@","e" );
ToFile( "SYSTEM_CURL", "@SYSTEM_CURL@", "e" );
ToFile( "CURL_CFLAGS", "@CURL_CFLAGS@", "e" );
ToFile( "CURL_LIBS", "@CURL_LIBS@", "e" );
+ToFile( "CURL_PREFIX", "@CURL_PREFIX@", "e" );
ToFile( "SYSTEM_BOOST", "@SYSTEM_BOOST@", "e" );
ToFile( "SYSTEM_MDDS", "@SYSTEM_MDDS@", "e" );
ToFile( "SYSTEM_VIGRA", "@SYSTEM_VIGRA@", "e" );
diff --git a/main/xmlsecurity/util/makefile.mk b/main/xmlsecurity/util/makefile.mk
index 34fe3c8a9b..2e80734b44 100644
--- a/main/xmlsecurity/util/makefile.mk
+++ b/main/xmlsecurity/util/makefile.mk
@@ -125,13 +125,44 @@ SHL2STDLIBS+= $(NSS3LIB) $(NSPR4LIB)
# plain "-lxml2" (as pulled in by NSSCRYPTOLIBS via LIBXML2LIB) resolves
# to that bundled copy instead of the configured --with-system-libxml one,
# and it is missing symbols (xmlCtxtPushInput, xmlXPathValuePush) that
-# xmlsec1 needs. Link the intended libxml2 statically by absolute path
-# so the search order can't shadow it and no dylib needs to be bundled.
-# The static archive carries no dependency info (unlike a dylib, which
-# records its own link to libz), so zlib must be linked explicitly here
-# to satisfy libxml2's HTTP/gzip symbols (deflate, inflate, gzopen, ...).
-XMLSECURITY_SYSTEM_LIBXML2:=$(shell xml2-config --prefix)/lib/libxml2.a
-SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(ZLIB3RDLIB) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
+# xmlsec1 needs. Link the intended libxml2 by absolute path so the search
+# order can't shadow it.
+#
+# The path is built from $(LIBXML_PREFIX), not a live `xml2-config`
+# lookup: $(LIBXML_PREFIX) is resolved exactly once by `./configure`
+# (honoring the directory given to --with-system-libxml=DIR, see
+# configure.ac's libxml check) and exported via the generated
+# *Env.Set.sh script -- the same mechanism that already delivers
+# $(LIBXML_CFLAGS)/$(LIBXML_LIBS) (aka $(LIBXML2LIB), solenv/inc/libs.mk)
+# to every other module. Re-running `xml2-config` here at build time
+# instead would re-do that PATH-dependent lookup a second time,
+# independently of configure -- if the build-resume shell's PATH ever
+# differs from the configure shell's (e.g. MacPorts' /opt/local ends up
+# ahead of the intended prefix), that would silently link a stray
+# libxml2.a instead of the intended one, pulling in a different, unrelated
+# set of missing transitive symbols (seen in practice: ICU + GNU libiconv
+# from a MacPorts copy on one machine, liblzma from a different stray copy
+# on another). Going through $(LIBXML_PREFIX) removes that ambiguity.
+#
+# Prefer the dylib when one is actually present at that prefix: unlike a
+# static archive, a dylib records its own transitive links (e.g. to libz),
+# so the linker resolves those automatically and no extra -lz/-llzma is
+# needed. Fall back to the static archive (community builds normally only
+# install that, via --enable-shared=no) when no dylib exists there.
+.IF "$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)"=="yes"
+XMLSECURITY_SYSTEM_LIBXML2:=$(LIBXML_PREFIX)/lib/libxml2.dylib
+XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS:=
+.ELSE
+XMLSECURITY_SYSTEM_LIBXML2:=$(LIBXML_PREFIX)/lib/libxml2.a
+# The static archive carries no dependency info, so zlib must be linked
+# explicitly here to satisfy libxml2's HTTP/gzip symbols (deflate,
+# inflate, gzopen, ...). liblzma is linked only if actually present next
+# to it: it's not part of the documented static-lib bundle, so only
+# needed if this libxml2 build happens to have xz support compiled in.
+XMLSECURITY_SYSTEM_LIBLZMA:=$(shell test -f $(LIBXML_PREFIX)/lib/liblzma.a -o -f $(LIBXML_PREFIX)/lib/liblzma.dylib && echo $(LIBXML_PREFIX)/lib/liblzma.a)
+XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS:=$(ZLIB3RDLIB) $(XMLSECURITY_SYSTEM_LIBLZMA)
+.ENDIF
+SHL2STDLIBS+= $(XMLSECLIB-NSS) $(XMLSECLIB) $(XMLSECURITY_SYSTEM_LIBXML2) $(XMLSECURITY_SYSTEM_LIBXML2_EXTRALIBS) $(NSS3LIB) $(NSPR4LIB) $(PLC4LIB)
.ELSE
SHL2STDLIBS+= $(NSSCRYPTOLIBS)
.ENDIF
(openoffice) 13/16: RepositoryExternal.mk: link static libxml2/libxslt on macOS
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 05e07217c4e7e6e387ccd76fb5a14d15f858425a
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 13:16:38 2026 -0400
RepositoryExternal.mk: link static libxml2/libxslt on macOS
gbuild's !SYSTEM_LIBXML/!SYSTEM_LIBXSLT branches register a PLAINLIB
expecting a dylib, but the bundled build produces a static .a on macOS.
Link the archive by absolute path there instead.
(cherry picked from commit 5dc0b13ddfba8aec6c47c1ee7411d38166b5fbad)
---
main/RepositoryExternal.mk | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/main/RepositoryExternal.mk b/main/RepositoryExternal.mk
index 1d4d32be6f..f52ceef24c 100644
--- a/main/RepositoryExternal.mk
+++ b/main/RepositoryExternal.mk
@@ -154,6 +154,22 @@ endef
else # !SYSTEM_LIBXML
+ifeq ($(OS),MACOSX)
+
+# The bundled libxml2 builds as a static archive on macOS (see
+# main/libxml2/makefile.mk), not a dylib, so it can't be registered as a
+# PLAINLIB the way other platforms do below -- there is no libxml2.dylib
+# for the solver to deliver. Link the static archive by absolute path
+# instead; $(LIBXML_PREFIX) is empty here (it's only set when
+# SYSTEM_LIBXML=YES), so this is the module's own delivered location.
+define gb_LinkTarget__use_libxml2
+$(call gb_LinkTarget_add_libs,$(1),\
+ $(OUTDIR)/lib/libxml2.a \
+)
+endef
+
+else # !MACOSX
+
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_URE, \
xml2 \
))
@@ -164,6 +180,8 @@ $(call gb_LinkTarget_add_linked_libs,$(1),\
)
endef
+endif # MACOSX
+
endif # SYSTEM_LIBXML
@@ -179,6 +197,19 @@ endef
else # !SYSTEM_LIBXSLT
+ifeq ($(OS),MACOSX)
+
+# Bundled libxslt/libexslt build as static archives on macOS (see
+# main/libxslt/makefile.mk); link by absolute path, same as libxml2 above.
+define gb_LinkTarget__use_libxslt
+$(call gb_LinkTarget_add_libs,$(1),\
+ $(OUTDIR)/lib/libxslt.a \
+ $(OUTDIR)/lib/libexslt.a \
+)
+endef
+
+else # !MACOSX
+
$(eval $(call gb_Helper_register_libraries,PLAINLIBS_OOO, \
xslt \
))
@@ -189,6 +220,8 @@ $(call gb_LinkTarget_add_linked_libs,$(1),\
)
endef
+endif # MACOSX
+
endif # SYSTEM_LIBXSLT
(openoffice) 06/16: Build bundled libxml2/libxslt as static libs on macOS
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit e8bfcc2f5b3983ea49cf0d03139fa82296cd9ff8
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Tue Aug 4 09:10:52 2026 -0400
Build bundled libxml2/libxslt as static libs on macOS
Community builds should bundle static libraries rather than system
dylibs.
(cherry picked from commit c46d036de4426f9a07612706d383be376a9967ef)
---
main/libxml2/makefile.mk | 8 +++++++-
main/libxslt/makefile.mk | 11 +++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/main/libxml2/makefile.mk b/main/libxml2/makefile.mk
index c7599060f0..056e3a852f 100644
--- a/main/libxml2/makefile.mk
+++ b/main/libxml2/makefile.mk
@@ -91,6 +91,12 @@ CONFIGURE_DIR=
.IF "$(OS)"=="OS2"
CONFIGURE_ACTION=sh .$/configure
CONFIGURE_FLAGS=--enable-ipv6=no --without-python --without-zlib --without-lzma --enable-static=yes --with-sax1=yes ADDCFLAGS="$(xml2_CFLAGS)" CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(xml2_LDFLAGS) $(EXTRA_LINKFLAGS)"
+.ELIF "$(OS)"=="MACOSX"
+# Community builds bundle a static libxml2 rather than a dylib -- see
+# main/xmlsecurity/util/makefile.mk and main/forms/util/makefile.mk for
+# the consumer side of this.
+CONFIGURE_ACTION=.$/configure
+CONFIGURE_FLAGS=--enable-ipv6=no --without-python --without-zlib --without-lzma --enable-static=yes --enable-shared=no --with-sax1=yes ADDCFLAGS="$(xml2_CFLAGS) $(EXTRA_CFLAGS)" LDFLAGS="$(xml2_LDFLAGS) $(EXTRA_LINKFLAGS)"
.ELSE
CONFIGURE_ACTION=.$/configure
CONFIGURE_FLAGS=--enable-ipv6=no --without-python --without-zlib --without-lzma --enable-static=no --with-sax1=yes ADDCFLAGS="$(xml2_CFLAGS) $(EXTRA_CFLAGS)" LDFLAGS="$(xml2_LDFLAGS) $(EXTRA_LINKFLAGS)"
@@ -105,7 +111,7 @@ OUTDIR2INC=include$/libxml
.IF "$(OS)"=="MACOSX"
EXTRPATH=URELIB
-OUT2LIB+=.libs$/libxml2.*.dylib
+OUT2LIB+=.libs$/libxml2.a
OUT2BIN+=.libs$/xmllint
OUT2BIN+=xml2-config
.ELIF "$(OS)"=="WNT"
diff --git a/main/libxslt/makefile.mk b/main/libxslt/makefile.mk
index bfe4b616cb..64bf9ffcb1 100644
--- a/main/libxslt/makefile.mk
+++ b/main/libxslt/makefile.mk
@@ -107,7 +107,14 @@ CPPFLAGS+:=$(ARCH_FLAGS) -xc99=none
.ENDIF # "$(COMNAME)"=="sunpro5"
CONFIGURE_DIR=
CONFIGURE_ACTION=.$/configure
+.IF "$(OS)"=="MACOSX"
+# Community builds bundle a static libxslt/libexslt rather than a dylib --
+# see main/xmlsecurity/util/makefile.mk and main/forms/util/makefile.mk
+# for the analogous libxml2 case.
+CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=yes --enable-shared=no --with-sax1=yes ac_cv_func_clock_gettime=false
+.ELSE
CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=no --with-sax1=yes ac_cv_func_clock_gettime=false
+.ENDIF
BUILD_ACTION=chmod 777 xslt-config && $(GNUMAKE)
BUILD_FLAGS+= -j$(EXTMAXPROCESS)
BUILD_DIR=$(CONFIGURE_DIR)
@@ -116,8 +123,8 @@ BUILD_DIR=$(CONFIGURE_DIR)
OUT2INC=libxslt$/*.h
.IF "$(OS)"=="MACOSX"
-OUT2LIB+=libxslt$/.libs$/libxslt.*.dylib
-OUT2LIB+=libexslt$/.libs$/libexslt.*.dylib
+OUT2LIB+=libxslt$/.libs$/libxslt.a
+OUT2LIB+=libexslt$/.libs$/libexslt.a
OUT2BIN+=xsltproc$/.libs$/xsltproc
OUT2BIN+=xslt-config
.ELIF "$(OS)"=="WNT"
(openoffice) 14/16: libxml2, libxslt: deliver macOS static archives to solver
Posted by ji...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jimjag pushed a commit to branch AOO42X
in repository https://gitbox.apache.org/repos/asf/openoffice.git
commit 23dcd9ba9ea1a024a153ebdbb89fb10ca3319fc2
Author: Jim Jagielski <ji...@gmail.com>
AuthorDate: Thu Aug 6 13:35:16 2026 -0400
libxml2, libxslt: deliver macOS static archives to solver
(cherry picked from commit 559080edf85718c2f0bf1369a2cb7caf0acbe002)
---
main/libxml2/prj/d.lst | 1 +
main/libxslt/prj/d.lst | 2 ++
2 files changed, 3 insertions(+)
diff --git a/main/libxml2/prj/d.lst b/main/libxml2/prj/d.lst
index 25be27ae94..32849cd73c 100644
--- a/main/libxml2/prj/d.lst
+++ b/main/libxml2/prj/d.lst
@@ -4,6 +4,7 @@ mkdir: %_DEST%\inc%_EXT%\external\libxml
symlink: %_DEST%\lib%_EXT%\libxml2.so.2 %_DEST%\lib%_EXT%\libxml2.so
..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT%
..\%__SRC%\lib\libxml2.dll.a %_DEST%\lib%_EXT%\libxml2.a
+..\%__SRC%\lib\libxml2.a %_DEST%\lib%_EXT%\libxml2.a
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%
..\%__SRC%\bin\xmllint* %_DEST%\bin%_EXT%
..\%__SRC%\bin\xml2-config* %_DEST%\bin%_EXT%
diff --git a/main/libxslt/prj/d.lst b/main/libxslt/prj/d.lst
index cdb1c1d7dd..8f4955df88 100644
--- a/main/libxslt/prj/d.lst
+++ b/main/libxslt/prj/d.lst
@@ -5,6 +5,8 @@ symlink: %_DEST%\lib%_EXT%\libxslt.so.1 %_DEST%\lib%_EXT%\libxslt.so
..\%__SRC%\lib\libexslt.so.0 %_DEST%\lib%_EXT%\libexslt.so.0
..\%__SRC%\lib\libxslt*.lib %_DEST%\lib%_EXT%
..\%__SRC%\lib\lib*.dll.a %_DEST%\lib%_EXT%\*.a
+..\%__SRC%\lib\libxslt.a %_DEST%\lib%_EXT%\libxslt.a
+..\%__SRC%\lib\libexslt.a %_DEST%\lib%_EXT%\libexslt.a
..\%__SRC%\bin\lib*.dll %_DEST%\bin%_EXT%
..\%__SRC%\bin\xsltproc* %_DEST%\bin%_EXT%
..\%__SRC%\bin\xslt-config* %_DEST%\bin%_EXT%