Disable build system pkg-config when cross-compiling to non-Linux
This restores a modified form of the original commit893ebbab0c(Disable use of build system pkg-config files when cross-compiling, 2020-12-13), thus mostly reverting6dbf59f34f(Revert "Disable use of build system pkg-config files when cross-compiling", 2022-10-25) and now disables the use of build system pkg-config files only when cross-compiling for non-Linux hosts. This seems like the best behaviour by default because it avoids unexpected problems when cross-compiling for MSW or iOS where build system .pc files should never be used, but still uses these files, if they are available, when cross-compiling for other Linux systems. This is Linux-specific currently but should probably be extended to other Unix systems too. In any case, the default behaviour can always be overridden by setting PKG_CONFIG_LIBDIR manually. See #22886.
This commit is contained in:
parent
48d226bb84
commit
d6ddfe87e1
2 changed files with 53 additions and 0 deletions
20
configure
vendored
20
configure
vendored
|
|
@ -25051,6 +25051,26 @@ $as_echo "no" >&6; }
|
|||
|
||||
fi
|
||||
|
||||
if test "$build" != "$host"; then
|
||||
case "${host}" in
|
||||
*-linux-*)
|
||||
;;
|
||||
|
||||
*)
|
||||
disable_build_system_pkg_config=1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test "$disable_build_system_pkg_config" = 1; then
|
||||
|
||||
|
||||
if test -z "$PKG_CONFIG_LIBDIR"; then
|
||||
PKG_CONFIG_LIBDIR=/dev/null
|
||||
export PKG_CONFIG_LIBDIR
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if test "$wxUSE_REGEX" != "no"; then
|
||||
|
|
|
|||
33
configure.in
33
configure.in
|
|
@ -2093,6 +2093,39 @@ fi
|
|||
dnl Find pkg-config outside of any conditional. Done before any PKG_* call.
|
||||
PKG_PROG_PKG_CONFIG
|
||||
|
||||
dnl When cross-compiling for another system from Linux, don't use .pc files on
|
||||
dnl the build system, they are at best useless and can be harmful (e.g. they
|
||||
dnl may define options inappropriate for the cross-build, resulting in the
|
||||
dnl failure of all the subsequent tests).
|
||||
dnl
|
||||
dnl Note that we only do it in this particular case because in other cases we
|
||||
dnl may want to use .pc files on the build system, e.g. it's common to have
|
||||
dnl them when cross-compiling from x86_64 Linux to ARM Linux.
|
||||
if test "$build" != "$host"; then
|
||||
case "${host}" in
|
||||
*-linux-*)
|
||||
;;
|
||||
|
||||
*)
|
||||
disable_build_system_pkg_config=1
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if test "$disable_build_system_pkg_config" = 1; then
|
||||
dnl pkg.m4 forbids the use of PKG_XXX, so undo it here to avoid autoconf
|
||||
dnl errors.
|
||||
m4_pattern_allow([PKG_CONFIG_LIBDIR])
|
||||
|
||||
dnl If pkg-config libdir is already defined, we suppose that they know what
|
||||
dnl they're doing and leave it alone, but if not, set it to a path in which
|
||||
dnl no .pc files will be found.
|
||||
if test -z "$PKG_CONFIG_LIBDIR"; then
|
||||
PKG_CONFIG_LIBDIR=/dev/null
|
||||
export PKG_CONFIG_LIBDIR
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Optional libraries
|
||||
dnl
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue