commit:     fa01350086b8d254a03250c6ffab5f2ed4de93b3
Author:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 27 23:19:46 2023 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Thu Mar 23 19:31:21 2023 +0000
URL:        https://gitweb.gentoo.org/proj/kde.git/commit/?id=fa013500

cmake.eclass: Set CMAKE_SYSROOT in toolchain file when necessary

We previously set CMAKE_FIND_ROOT_PATH, but CMAKE_SYSROOT also sets this
and more. The latter is needed when cross-compiling Fortran code such as
sci-libs/lapack. Without this, it uses the toolchain's default sysroot,
adds a -L/usr/${CHOST}/usr/lib flag based on that, reads the libc.so.6
ld script from this directory, does not apply any sysroot to the paths
within because the script is outside the sysroot, and finally fails when
attempting to link the host's libc.so.6.

Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 eclass/cmake.eclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/eclass/cmake.eclass b/eclass/cmake.eclass
index b12b8ec8d6..1986e5cf08 100644
--- a/eclass/cmake.eclass
+++ b/eclass/cmake.eclass
@@ -502,7 +502,7 @@ cmake_src_configure() {
                        # When cross-compiling with a sysroot (e.g. with 
crossdev's emerge wrappers)
                        # we need to tell cmake to use libs/headers from the 
sysroot but programs from / only.
                        cat >> "${toolchain_file}" <<- _EOF_ || die
-                               set(CMAKE_FIND_ROOT_PATH "${SYSROOT}")
+                               set(CMAKE_SYSROOT "${ESYSROOT}")
                                set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
                                set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
                                set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Reply via email to