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 \

Reply via email to