mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
multilib.eclass: respect SYSROOT when overriding PKG_CONFIG_* vars
In multilib.eclass, multilib_toolchain_setup() overrides the environment
variables PKG_CONFIG_LIBDIR, PKG_CONFIG_PATH,
PKG_CONFIG_SYSTEM_INCLUDE_PATH, and PKG_CONFIG_SYSTEM_LIBRARY_PATH so
that the .pc files for the correct ABI will be found and used.
As a reminder, pkgconfig is normally called upon to find packages that
have been installed into the *host* system — i.e., packages listed in
DEPEND. The "Ebuild writing: Variables" page[1] describes the SYSROOT
variable as "The absolute path to the root directory containing build
dependencies satisfied by DEPEND" and ESYSROOT as "The same as either
EROOT, BROOT or SYSROOT depending on the value of SYSROOT. Commonly used
to reference the location of headers and libraries at build time."
In order to support the use case of setting SYSROOT to a path other than
"/" while building packages for ABIs other than the default ABI, change
multilib.eclass so that it prefixes the PKG_CONFIG_* vars with
${ESYSROOT} rather than ${EPREFIX}.
For Gentoo users who do not set SYSROOT, this change will have no
bearing.
This change could conceivably affect crossdev users, but I think
typically crossdev sysroots do not support multilib anyway, so this
change wouldn't affect them either.
[1] https://devmanual.gentoo.org/ebuild-writing/variables/
Closes: https://bugs.gentoo.org/945108
Signed-off-by: Matt Whitlock <gentoo@mattwhitlock.name>
Part-of: https://github.com/gentoo/gentoo/pull/43088
Closes: https://github.com/gentoo/gentoo/pull/43088
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
This commit is contained in:
committed by
James Le Cuirot
parent
9493788746
commit
3496df638f
@@ -1,4 +1,4 @@
|
||||
# Copyright 1999-2024 Gentoo Authors
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: multilib.eclass
|
||||
@@ -552,10 +552,10 @@ multilib_toolchain_setup() {
|
||||
export STRIP="$(tc-getSTRIP)" # Avoid 'strip', use '${CHOST}-strip'
|
||||
|
||||
export CHOST=$(get_abi_CHOST $1)
|
||||
export PKG_CONFIG_LIBDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig
|
||||
export PKG_CONFIG_PATH=${EPREFIX}/usr/share/pkgconfig
|
||||
export PKG_CONFIG_SYSTEM_INCLUDE_PATH=${EPREFIX}/usr/include
|
||||
export PKG_CONFIG_SYSTEM_LIBRARY_PATH=${EPREFIX}/$(get_libdir):${EPREFIX}/usr/$(get_libdir)
|
||||
export PKG_CONFIG_LIBDIR=${ESYSROOT}/usr/$(get_libdir)/pkgconfig
|
||||
export PKG_CONFIG_PATH=${ESYSROOT}/usr/share/pkgconfig
|
||||
export PKG_CONFIG_SYSTEM_INCLUDE_PATH=${ESYSROOT}/usr/include
|
||||
export PKG_CONFIG_SYSTEM_LIBRARY_PATH=${ESYSROOT}/$(get_libdir):${ESYSROOT}/usr/$(get_libdir)
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user