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]>
---
 ...port-make-scripts-prepare-inside-SDK.patch | 46 +++++++++++++++++++
 meta/recipes-kernel/linux/linux-yocto.inc     |  3 ++
 2 files changed, 49 insertions(+)
 create mode 100644 
meta/recipes-kernel/linux/files/0001-Makefile-support-make-scripts-prepare-inside-SDK.patch

diff --git 
a/meta/recipes-kernel/linux/files/0001-Makefile-support-make-scripts-prepare-inside-SDK.patch
 
b/meta/recipes-kernel/linux/files/0001-Makefile-support-make-scripts-prepare-inside-SDK.patch
new file mode 100644
index 0000000000..5e15d9c732
--- /dev/null
+++ 
b/meta/recipes-kernel/linux/files/0001-Makefile-support-make-scripts-prepare-inside-SDK.patch
@@ -0,0 +1,46 @@
+From e7b37cbdbd0f7dbd3ba99e7db6916c2dc3acecc9 Mon Sep 17 00:00:00 2001
+From: Chen Qi <[email protected]>
+Date: Thu, 16 Apr 2020 10:06:24 +0000
+Subject: [PATCH] Makefile: support make scripts prepare inside SDK
+
+Upstream-Status: Inappropriate [OE Specific]
+
+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
+
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc 
b/meta/recipes-kernel/linux/linux-yocto.inc
index 91df9c1cd5..551aa3def6 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -55,3 +55,6 @@ do_install_append(){
 
 # enable kernel-sample for oeqa/runtime/cases's ksample.py test
 KERNEL_FEATURES_append_qemuall=" features/kernel-sample/kernel-sample.scc"
+
+# Ensure `make scripts prepare` succeed inside SDK
+EXTRA_KERNEL_SRC_URI += 
"file://0001-Makefile-support-make-scripts-prepare-inside-SDK.patch"
-- 
2.17.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#137371): 
https://lists.openembedded.org/g/openembedded-core/message/137371
Mute This Topic: https://lists.openembedded.org/mt/73190696/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to