mirror of
https://github.com/python/cpython.git
synced 2024-11-24 17:47:13 +01:00
gh-124932: Distinguish build prefix from host prefix in cross builds (#124933)
In Emscripten and other cross builds, the build file system and the host file system look different. For instance, we may want to install into `cross-build/$TARGET/lib`, and then mount that as `/lib` in the host file system. This change adds a distinction between: * `prefix` -- the path in the build file system where we want to install the files * `host_prefix` -- the path in the host file system where getpath.c will look for the files And similarly for `exec_prefix` and `host_exec_prefix`. At present, this is only used for Emscripten.
This commit is contained in:
parent
6742f14dfd
commit
b1f13bce62
@ -141,6 +141,13 @@ prefix= @prefix@
|
||||
# Install prefix for architecture-dependent files
|
||||
exec_prefix= @exec_prefix@
|
||||
|
||||
# For cross compilation, we distinguish between "prefix" (where we install the
|
||||
# files) and "host_prefix" (where getpath.c expects to find the files at
|
||||
# runtime)
|
||||
host_prefix= @host_prefix@
|
||||
host_exec_prefix= @host_exec_prefix@
|
||||
|
||||
|
||||
# Install prefix for data files
|
||||
datarootdir= @datarootdir@
|
||||
|
||||
@ -1740,8 +1747,8 @@ Modules/getbuildinfo.o: $(PARSER_OBJS) \
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Python/frozen_modules/getpath.h Makefile $(PYTHON_HEADERS)
|
||||
$(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
-DPREFIX='"$(prefix)"' \
|
||||
-DEXEC_PREFIX='"$(exec_prefix)"' \
|
||||
-DPREFIX='"$(host_prefix)"' \
|
||||
-DEXEC_PREFIX='"$(host_exec_prefix)"' \
|
||||
-DVERSION='"$(VERSION)"' \
|
||||
-DVPATH='"$(VPATH)"' \
|
||||
-DPLATLIBDIR='"$(PLATLIBDIR)"' \
|
||||
|
@ -0,0 +1,4 @@
|
||||
For cross builds, there is now support for having a different install
|
||||
``prefix`` than the ``host_prefix`` used by ``getpath.py``. This is set to ``/`` by
|
||||
default for Emscripten, on other platforms the default behavior is the same
|
||||
as before.
|
25
configure
generated
vendored
25
configure
generated
vendored
@ -1003,6 +1003,8 @@ LIPO_INTEL64_FLAGS
|
||||
LIPO_32BIT_FLAGS
|
||||
ARCH_RUN_32BIT
|
||||
UNIVERSALSDK
|
||||
host_exec_prefix
|
||||
host_prefix
|
||||
MACHDEP
|
||||
PKG_CONFIG_LIBDIR
|
||||
PKG_CONFIG_PATH
|
||||
@ -4105,6 +4107,29 @@ fi
|
||||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: \"$MACHDEP\"" >&5
|
||||
printf "%s\n" "\"$MACHDEP\"" >&6; }
|
||||
|
||||
|
||||
if test -z "$host_prefix"; then
|
||||
case $ac_sys_system in #(
|
||||
Emscripten) :
|
||||
host_prefix=/ ;; #(
|
||||
*) :
|
||||
host_prefix='${prefix}'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
if test -z "$host_exec_prefix"; then
|
||||
case $ac_sys_system in #(
|
||||
Emscripten) :
|
||||
host_exec_prefix=$host_prefix ;; #(
|
||||
*) :
|
||||
host_exec_prefix='${exec_prefix}'
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
|
||||
# On cross-compile builds, configure will look for a host-specific compiler by
|
||||
# prepending the user-provided host triple to the required binary name.
|
||||
#
|
||||
|
19
configure.ac
19
configure.ac
@ -379,6 +379,25 @@ then
|
||||
fi
|
||||
AC_MSG_RESULT(["$MACHDEP"])
|
||||
|
||||
dnl For cross compilation, we distinguish between "prefix" (where we install the
|
||||
dnl files) and "host_prefix" (where we expect to find the files at runtime)
|
||||
|
||||
if test -z "$host_prefix"; then
|
||||
AS_CASE([$ac_sys_system],
|
||||
[Emscripten], [host_prefix=/],
|
||||
[host_prefix='${prefix}']
|
||||
)
|
||||
fi
|
||||
AC_SUBST([host_prefix])
|
||||
|
||||
if test -z "$host_exec_prefix"; then
|
||||
AS_CASE([$ac_sys_system],
|
||||
[Emscripten], [host_exec_prefix=$host_prefix],
|
||||
[host_exec_prefix='${exec_prefix}']
|
||||
)
|
||||
fi
|
||||
AC_SUBST([host_exec_prefix])
|
||||
|
||||
# On cross-compile builds, configure will look for a host-specific compiler by
|
||||
# prepending the user-provided host triple to the required binary name.
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user