Fixed
Created: Oct 23, 2017
Updated: Dec 3, 2018
Resolved Date: Dec 8, 2017
Found In Version: 8.0.0.21
Fix Version: 8.0.0.24
Severity: Standard
Applicable for: Wind River Linux 8
Component/s: Kernel
When building a project, with the kernel-dev layer, the conf.o kernel object from scripts/kconfig/ is not exported in the SDK.
The expected location is:
SDK_INSTALL_PATH/sysroots/core2-64-wrs-linux/usr/src/kernelscripts/kconfig
Running oldconfig against the SDK tree, re-generates the missing conf.o
-bash-4.3$ pwd
/workspace/scostand/sdk_8/sysroots/core2-64-wrs-linux/usr/src/kernel
-bash-4.3$ ls scripts/kconfig | grep conf.o
-bash-4.3$
-bash-4.3$ ls scripts/kconfig | grep conf.o
-bash-4.3$ make oldconfig
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
-bash-4.3$ ls scripts/kconfig | grep conf.o
conf.o
This is viewed as a regression, as in wrlinux 5, conf.o was generated from the beginning and included in the SDK archive. In the project it was located under:
bitbake_build/tmp/sysroots/intel-xeon-core/usr/src/kernel/scripts/kconfig/conf.o
./bitbake_build/tmp/work/intel_xeon_core-wrs-linux/linux-windriver-3.4-r0/linux-intel-xeon-core-cgl-build/scripts/kconfig/conf.o
...
and was exported properly in the SDK.
Under wrlinux 8, bitbake_build/tmp/work/qemux86_64-wrs-linux/linux-windriver/4.1-r0/linux-qemux86_64-standard-build/scripts/kconfig/conf.o
qemux86-64/layers/wr-kernel/kernel-dev/classes/kernel-sdk.bbclass
--- a/kernel-sdk.bbclass
+++ b/kernel-sdk.bbclass
@@ -24,7 +24,7 @@ python kernel_sdkpostprocess () {
if os.path.exists(kernel_src_base):
bb.note( "kernel SDK: kernel source found, creating scripts" )
- makecmd = "cd %s; pwd; make CROSS_COMPILE=" + cross_tool_prefix + " scripts"
+ makecmd = "cd %s; pwd; make -B CROSS_COMPILE=" + cross_tool_prefix + " scripts"
cmd = d.expand(makecmd % kernel_src_base )
ret, result = commands.getstatusoutput("%s" % cmd)
bb.note( "%s" % result )
1. configure a project with:
--with-board=qemux86-64 --enable-rootfs=glibc-std --enable-kernel=standard --with-layer=wr-kernel/kernel-dev
2. run make all, make export-sdk
3. check the SDK_INSTALL_PATH/sysroots/core2-64-wrs-linux/usr/src/kernelscripts/kconfig path
(for comparison purposes, the wrlinux 5 project may be configured with similar BSP/kernel/rootfs/layer configuration)