RepositoryModule_build.mk | 1 + config_host.mk.in | 1 + configure.ac | 9 ++++++++- external/python3/ExternalProject_python3.mk | 8 ++++++++ solenv/gbuild/extensions/pre_BuildTools.mk | 1 + 5 files changed, 19 insertions(+), 1 deletion(-)
New commits: commit 942afbd4398d7a9fad0e1e65674c1ae59b538c2c Author: Tor Lillqvist <[email protected]> AuthorDate: Mon Jan 19 06:46:19 2026 +0200 Commit: Tor Lillqvist <[email protected]> CommitDate: Fri Jan 23 11:54:21 2026 +0100 Fixes for Python cross-compilation, Linux to Linux at least When not using a system Python, set PYTHON_FOR_BUILD to point to the python script in the instdir_for_build/program folder. Make sure that script gets installed by adding it to gb_BUILD_TOOLS_executables and by adding pyuno to the cross_toolset modules. Make also the SYSTEM_PYTHON boolean flag visible to the cross-build (in the normal way, as SYSTEM_PYTHON_FOR_BUILD). When cross-compiling Python to Linux, pass some ac_cv_* settings that can't be determined at compile time. Change-Id: I5224966698dca03df9545f5552671f0dce00b4ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/197540 Reviewed-by: Tor Lillqvist <[email protected]> Tested-by: Jenkins diff --git a/RepositoryModule_build.mk b/RepositoryModule_build.mk index c39b65cf937d..9fc007d196ba 100644 --- a/RepositoryModule_build.mk +++ b/RepositoryModule_build.mk @@ -37,6 +37,7 @@ $(eval $(call gb_Module_add_moduledirs,cross_toolset,\ officecfg \ oovbaapi \ pch \ + $(if $(filter PYTHON,$(BUILD_TYPE_FOR_HOST)),pyuno) \ registry \ remotebridges \ ridljar \ diff --git a/config_host.mk.in b/config_host.mk.in index 2103814da8d0..0ab05b76d9b7 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -728,6 +728,7 @@ SYSTEM_PAGEMAKER=@SYSTEM_PAGEMAKER@ SYSTEM_POPPLER=@SYSTEM_POPPLER@ SYSTEM_POSTGRESQL=@SYSTEM_POSTGRESQL@ SYSTEM_PYTHON=@SYSTEM_PYTHON@ +SYSTEM_PYTHON_FOR_BUILD=@SYSTEM_PYTHON_FOR_BUILD@ SYSTEM_ZXCVBN=@SYSTEM_ZXCVBN@ SYSTEM_ZXING=@SYSTEM_ZXING@ SYSTEM_QXP=@SYSTEM_QXP@ diff --git a/configure.ac b/configure.ac index 01ec19398d7e..86734b701ded 100644 --- a/configure.ac +++ b/configure.ac @@ -6410,6 +6410,7 @@ if test "$cross_compiling" = "yes"; then LIBO_URE_MISC_FOLDER OS SDKDIRNAME + SYSTEM_PYTHON SYSTEM_LIBXML SYSTEM_LIBXSLT " @@ -6496,6 +6497,7 @@ else LIBO_URE_MISC_FOLDER_FOR_BUILD="$LIBO_URE_MISC_FOLDER" SDKDIRNAME_FOR_BUILD="$SDKDIRNAME" WORKDIR_FOR_BUILD="$WORKDIR" + SYSTEM_PYTHON_FOR_BUILD="$SYSTEM_PYTHON" fi AC_SUBST(OS_FOR_BUILD) AC_SUBST(INSTDIR_FOR_BUILD) @@ -6509,6 +6511,7 @@ AC_SUBST(WORKDIR_FOR_BUILD) AC_SUBST(CC_FOR_BUILD) AC_SUBST(CXX_FOR_BUILD) AC_SUBST(CPPU_ENV_FOR_BUILD) +AC_SUBST(SYSTEM_PYTHON_FOR_BUILD) dnl =================================================================== dnl Check for lockfile deps @@ -10526,7 +10529,11 @@ if test "$build_os" != "cygwin" -a "$enable_python" != fully-internal; then # Clean PYTHON_VERSION checked below if cross-compiling PYTHON_VERSION="" if test "$PYTHON" != ":"; then - PYTHON_FOR_BUILD=$PYTHON + if test -n "$CROSS_COMPILING" -a -z "$SYSTEM_PYTHON_FOR_BUILD"; then + PYTHON_FOR_BUILD="$INSTDIR_FOR_BUILD/$LIBO_BIN_FOLDER_FOR_BUILD/python" + else + PYTHON_FOR_BUILD=$PYTHON + fi fi fi fi diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk index 3c4860a85c46..6d4d2cde81db 100644 --- a/external/python3/ExternalProject_python3.mk +++ b/external/python3/ExternalProject_python3.mk @@ -94,8 +94,16 @@ $(call gb_ExternalProject_get_state_target,python3,build) : ac_cv_func_clock_gettime=no \ ) \ ) \ + $(if $(CROSS_COMPILING), \ + $(if $(filter LINUX,$(OS)), \ + ac_cv_buggy_getaddrinfo=no \ + ac_cv_file__dev_ptmx=yes \ + ac_cv_file__dev_ptc=yes \ + ) \ + ) \ $(gb_RUN_CONFIGURE) ./configure \ $(gb_CONFIGURE_PLATFORMS) \ + $(if $(CROSS_COMPILING),--with-build-python="$(PYTHON_FOR_BUILD)") \ $(if $(ENABLE_VALGRIND),--with-valgrind) \ $(if $(ENABLE_DBGUTIL),--with-pydebug) \ --prefix=/python-inst \ diff --git a/solenv/gbuild/extensions/pre_BuildTools.mk b/solenv/gbuild/extensions/pre_BuildTools.mk index 8ea180faa1b2..1eb8b2d03ad6 100644 --- a/solenv/gbuild/extensions/pre_BuildTools.mk +++ b/solenv/gbuild/extensions/pre_BuildTools.mk @@ -27,6 +27,7 @@ gb_BUILD_TOOLS_executables = \ $(call gb_CondExeLockfile,lockfile) \ makedepend \ propex \ + $(if $(filter PYTHON,$(BUILD_TYPE_FOR_HOST)),python) \ saxparser \ svidl \ treex \
