libclc: do native build of prepare_builtins in a fresh environment

The environment has variables like LDFLAGS set which CMake will try and
use, so until our cmake class is comprehensive enough to nuke those in
the native toolchain file (if that is possible) do a build inside a
clean (apart from PATH) environment to avoid cross-contamination.

As noticed by Khem Raj, this can fail in nativesdk builds as the target
flags will be passed to the native link resulting in failures like:

  Requesting program interpreter: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-yoesdk-linux/lib/ld-linux-x86-64.so.2

(From OE-Core rev: 0013f501d1de01606b812d930ef6ca842633f551)

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2025-08-01 13:55:18 +01:00
committed by Richard Purdie
parent b3991a4554
commit f7a6163d4f

View File

@@ -28,7 +28,7 @@ EXTRA_OECMAKE:append:class-nativesdk = " -DPREPARE_BUILTINS=${B_NATIVE}/prepare_
# Need to build a native prepare_builtins binary in target builds. The easiest
# way to do this is with a second native cmake build tree.
do_build_prepare_builtins() {
cmake --fresh -G Ninja \
env -i PATH=$PATH cmake --fresh -G Ninja \
-S ${OECMAKE_SOURCEPATH} -B ${B_NATIVE} \
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=${WORKDIR}/toolchain-native.cmake \
-DLIBCLC_TARGETS_TO_BUILD=