On Fri, Apr 19, 2024 at 1:56 PM James Le Cuirot <ch...@gentoo.org> wrote: > > On Fri, 2024-04-19 at 12:14 -0400, Mike Gilbert wrote: > > When using the CBUILD toolchain, it makes no sense to look for headers > > and libraries in the CHOST-based SYSROOT. > > > > Signed-off-by: Mike Gilbert <flop...@gentoo.org> > > --- > > eclass/toolchain-funcs.eclass | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass > > index cde84e6f34c8..58a718180079 100644 > > --- a/eclass/toolchain-funcs.eclass > > +++ b/eclass/toolchain-funcs.eclass > > @@ -1,4 +1,4 @@ > > -# Copyright 2002-2023 Gentoo Authors > > +# Copyright 2002-2024 Gentoo Authors > > # Distributed under the terms of the GNU General Public License v2 > > > > # @ECLASS: toolchain-funcs.eclass > > @@ -384,6 +384,12 @@ tc-export_build_env() { > > # the target build system does not check. > > tc-env_build() { > > tc-export_build_env > > + local -x SYSROOT= > > + if [[ ${EAPI} == 6 ]]; then > > + local -x ESYSROOT=${EPREFIX} > > + else > > + local -x ESYSROOT=${BROOT} > > + fi > > CFLAGS=${BUILD_CFLAGS} \ > > CXXFLAGS=${BUILD_CXXFLAGS} \ > > CPPFLAGS=${BUILD_CPPFLAGS} \ > > What do you need this for? Just wondering because I wouldn't have thought > anything you wrap with tc-env_build would care about ESYSROOT.
I ran into this when converting dev-build/ninja to use cmake.eclass. Basically, I need to invoke ninja to build its own docs. I accomplish this by building a second "native" (CBUILD) copy of ninja when cross-compiling. https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1122aa04647a60de150811c133490d248de4bc43 cmake.eclass utilizes ESYSROOT when SYSROOT is not empty. https://gitweb.gentoo.org/repo/gentoo.git/tree/eclass/cmake.eclass?id=1122aa04647a60de150811c133490d248de4bc43#n503 If I don't set SYSROOT to empty when building the "native" ninja, it explodes with a segfault when I invoke it in the ebuild.