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 <tml@iki.fi>
Tested-by: Jenkins
This commit is contained in:
Tor Lillqvist
2026-01-23 11:54:21 +01:00
parent 99d19aebd3
commit 942afbd439
5 changed files with 19 additions and 1 deletions
+1
View File
@@ -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 \
+1
View File
@@ -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@
+8 -1
View File
@@ -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
+8
View File
@@ -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 \
@@ -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 \