We need to `make scripts prepare` inside SDK. So add patch to defect if we are insdie SDK environment, and if so change some PKG_CONFIG_xxx settings so that we will use things from SDK's host part.
The problem for `make scripts prepare` inside SDK is that the hosts' environments are different. On some hosts, it happens to succeed, and on some hosts, it fails. This is because the build mixes host's part and SDK's host part. We do such change to make sure only SDK's host part is involed in build. Signed-off-by: Chen Qi <[email protected]> --- Makefile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 2f140aa..af41dca 100644 --- a/Makefile +++ b/Makefile @@ -277,6 +277,17 @@ ifneq ($(filter $(no-sync-config-targets), $(MAKECMDGOALS)),) endif endif +ifneq ($(SDKTARGETSYSROOT),) + ifneq ($(filter scripts prepare, $(MAKECMDGOALS)),) + PKG_CONFIG_SYSROOT_DIR = + PKG_CONFIG_PATH = $(OECORE_NATIVE_SYSROOT)/usr/lib/pkgconfig:$(OECORE_NATIVE_SYSROOT)/usr/share/pkgconfig + export PKG_CONFIG_SYSROOT_DIR + export PKG_CONFIG_PATH +$(info Changed PKG_CONFIG_SYSROOT_DIR to '$(PKG_CONFIG_SYSROOT_DIR)') +$(info Changed PKG_CONFIG_PATH to '$(PKG_CONFIG_PATH)') + endif +endif + ifneq ($(KBUILD_EXTMOD),) may-sync-config := endif @@ -994,7 +1005,7 @@ mod_sign_cmd = true endif export mod_sign_cmd -HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf) +HOST_LIBELF_LIBS = $(shell export PKG_CONFIG_PATH=$(PKG_CONFIG_PATH); export PKG_CONFIG_SYSROOT_DIR=$(PKG_CONFIG_SYSROOT_DIR); pkg-config libelf --libs 2>/dev/null || echo -lelf) ifdef CONFIG_STACK_VALIDATION has_libelf := $(call try-run,\ -- 2.24.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#9090): https://lists.yoctoproject.org/g/linux-yocto/message/9090 Mute This Topic: https://lists.yoctoproject.org/mt/77170443/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
