linux-yocto: v4.8 + fixes + configuration updates + RFC
cover linux-yocto: v4.8 + fixes + configuration updates + RFC
Hi all,
Here's the latest updates to the linux-yoco* baseline support. There are three distinct blocks in the consolidated pull request, with the biggest being the introduction of a 4.8 named kernel and 4.8 based libc-headers.
The others are fixes to the kernel-yocto processing and kernel meta data updates. As such, these commits can be taken in isolation to the 4.8 update that I've included in the pull request.
kernel-yocto: test for empty artifacts
linux-yocto/4.x: configuration updates
kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning error
On the topic of the version 4.8:
- This is the intended 'newest' kernel for the upcoming fall release cycle. We will have a shiny new one this time around.
- yes it is a -rc4 release, but the version wasn't chosen by mistake (or lightly). It was the typical balancing act.
- It is nice to work through the development cycle of the upstream kernel, since we can send fixes in realtime to the mainline tree .. but this is the side effect of the choice, not the reason
- This version balances a new enough kernel, LTS/LTSI, -rt, platform updates (ARM/x86) and the timing of the release.
The LTS/LTSI kernels are either too old at the moment, and won't get a port of major patch series like -rt. Hence why v4.8 shoots the difference between the options and gives us a good baseline to update in the upcoming months, and one that we can compliment with other kernel versions later.
- The delta between any -rcX releases is small, so following this through until its release is not a big issue.
build/boot testing:
- I've built and booted qemu* with core-image-sato, so it is known to build and have a sane runtime for all arches. I've also built the typical packages that misbehave (lttng, perf, etc).
- The versatile platform switched to a device tree boot in the 4.7 timeframe. As such, I had to patch runqemu to use a device tree .. and use that device tree conditionally, since we have to support older kernels at the same time as 4.7+
- I know that there are pending changes to the way runqemu works, but I patched what I had in master .. these can be updated/adjusted if need be.
libc-headers update:
- Since there are milestone builds coming up, I wanted to get the 4.8 libc headers in place. Which meant that I had to do some different things to use the testing kernel tarball, and to get the version of the package right.
This might cause us version stepping issues .. so anyone looking at this can suggest what I need to do to avoid them, and I can update and rebase the series with the proper fix.
The linux-yocto-4.8 repository:
- There have been comments about the linux-yocto* repos filling up download directories, and consuming people's bandwidth. Since we don't have a shallow clone or reference clone way to deal with the amount of shared kernel blobs, I've simultaneously generated a v4.8 kernel in a repository that could be re-used over time.
http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto/
The proposal is that if we really want to avoid separate kernel trees, and keep the ability to rebase/remove/amend old commits to keep the tree clean, that I can insert the version number into the branches as a marker. Comments on this approach are welcome, since if we go this way, I need to adjust all the KBRANCH variables.
I'll follow up with commits to change the default qemu version to 4.8 once there's general agreement about the options on this.
Cheers,
Bruce
The following changes since commit 2fedd226c3385f1ac160b3aa0bfadbded85e288c:
ref-manual: Fixed small wording in PKGR in the glossary (2016-08-25 23:09:29 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib zedd/kernel
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel
Bruce Ashfield (8):
linux-yocto: introduce v4.8 recipes
perf: adapt to Makefile.config
qemuarm: add device tree support
linux-yocto-dev: bump to v4.8+
libc-headers: update to v4.8
linux-yocto/4.8: add qemuarm device tree specification
kernel-yocto: test for empty artifacts linux-yocto/4.x: configuration updates
Ioan-Adrian Ratiu (1):
kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning error
meta/classes/kernel-yocto.bbclass | 12 ++++-- meta/conf/distro/include/tcmode-default.inc | 2 +- .../linux-libc-headers/linux-libc-headers_4.8.bb | 13 +++++++ meta/recipes-kernel/linux/linux-yocto-dev.bb | 4 +- meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb | 38 +++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb | 25 ++++++++++++ meta/recipes-kernel/linux/linux-yocto_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.8.bb | 44 ++++++++++++++++++++++ meta/recipes-kernel/perf/perf.bb | 9 ++++- scripts/runqemu-internal | 3 ++ 15 files changed, 150 insertions(+), 12 deletions(-) create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto_4.8.bb
Signature · 1 line
2.5.0
PATCH 1/9 linux-yocto: introduce v4.8 recipes
--- meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb | 36 +++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb | 23 +++++++++++++ meta/recipes-kernel/linux/linux-yocto_4.8.bb | 42 +++++++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto_4.8.bb
meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb new file +36 -0
@@ -0,0 +1,36 @@ +KBRANCH ?= "standard/preempt-rt/base" + +require recipes-kernel/linux/linux-yocto.inc + +# Skip processing of this recipe if it is not explicitly specified as the +# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying +# to build multiple virtual/kernel providers, e.g. as dependency of +# core-image-rt-sdk, core-image-rt. +python () { + if d.getVar("PREFERRED_PROVIDER_virtual/kernel", True) != "linux-yocto-rt": + raise bb.parse.SkipPackage("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it") +} + +SRCREV_machine ?= "a7d71794e4e38d2f861c1b1dbff761ae0b0836b3" +SRCREV_meta ?= "8cb7317502c2577f8c83eaf1c061603023824313" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.8.git;branch=${KBRANCH};name=machine \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.8;destsuffix=${KMETA}" + +LINUX_VERSION ?= "4.8-rc4" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +LINUX_KERNEL_TYPE = "preempt-rt" + +COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuppc|qemumips)" + +# Functionality flags +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" +KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}" +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc" +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc" +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc"
meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb new file +23 -0
@@ -0,0 +1,23 @@ +KBRANCH ?= "standard/tiny/common-pc" +LINUX_KERNEL_TYPE = "tiny" +KCONFIG_MODE = "--allnoconfig" + +require recipes-kernel/linux/linux-yocto.inc + +LINUX_VERSION ?= "4.8-rc4" + +KMETA = "kernel-meta" +KCONF_BSP_AUDIT_LEVEL = "2" + +SRCREV_machine ?= "3eab887a55424fc2c27553b7bfe32330df83f7b8" +SRCREV_meta ?= "8cb7317502c2577f8c83eaf1c061603023824313" + +PV = "${LINUX_VERSION}+git${SRCPV}" + +SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.8.git;branch=${KBRANCH};name=machine \ + git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.8;destsuffix=${KMETA}" + +COMPATIBLE_MACHINE = "(qemux86$)" + +# Functionality flags +KERNEL_FEATURES = ""
meta/recipes-kernel/linux/linux-yocto_4.8.bb new file +42 -0
42 lines not on this page · raw message
Signature · 1 line
2.5.0
PATCH 2/9 perf: adapt to Makefile.config
In reply to Bruce Ashfieldcommit 4842576cd857 [perf tools: Move config/Makefile into Makefile.config] relocated the configuration Makefile of perf. As such, we need to adapt our fixup routines to work with the Makefile no matter where it is.
--- meta/recipes-kernel/perf/perf.bb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
meta/recipes-kernel/perf/perf.bb +8 -1
@@ -133,11 +133,17 @@ do_configure_prepend () { # with each other if its in the shared source directory # if [ -e "${S}/tools/perf/config/Makefile" ]; then + perfconfig="${S}/tools/perf/config/Makefile" + fi + if [ -e "${S}/tools/perf/Makefile.config" ]; then + perfconfig="${S}/tools/perf/Makefile.config" + fi + if [ -n "${perfconfig}" ]; then # Match $(prefix)/$(lib) and $(prefix)/lib sed -i -e 's,^libdir = \($(prefix)/.*lib\),libdir ?= \1,' \ -e 's,^perfexecdir = \(.*\),perfexecdir ?= \1,' \ -e 's,\ .config-detected, $(OUTPUT)/config-detected,g' \ - ${S}/tools/perf/config/Makefile + ${perfconfig} fi # The man pages installation is "$(INSTALL) -d -m 755 $(DESTDIR)$(man1dir)" # in ${S}/tools/perf/Documentation/Makefile, if the mandir set to '?=', it
@@ -214,6 +220,7 @@ RDEPENDS_${PN}-tests =+ "python" RSUGGESTS_SCRIPTING = "${@perf_feature_enabled('perf-scripting', '${PN}-perl ${PN}-python', '',d)}" RSUGGESTS_${PN} += "${PN}-archive ${PN}-tests ${RSUGGESTS_SCRIPTING}" +#FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core /usr/lib64/traceevent ${libdir}/traceevent" FILES_${PN} += "${libexecdir}/perf-core ${exec_prefix}/libexec/perf-core ${libdir}/traceevent" FILES_${PN}-archive = "${libdir}/perf/perf-core/perf-archive" FILES_${PN}-tests = "${libdir}/perf/perf-core/tests ${libexecdir}/perf-core/tests"
Signature · 1 line
2.5.0
PATCH 3/9 qemuarm: add device tree support
In reply to Bruce AshfieldAs of the 4.7 kernel qemuarm must be booted with a dtb. To allow older and recent kernels to both boot qemuarm, we add the device tree definitions only to recipes that need it (linux-yocto-dev) and make runqemu detect and use the dtb if present.
--- scripts/runqemu-internal | 3 +++ 1 file changed, 3 insertions(+)
scripts/runqemu-internal +3 -0
@@ -298,6 +298,9 @@ config_qemuarm() { KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw console=ttyAMA0,115200 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY" QEMUOPTIONS="$QEMU_NETWORK_CMD -M ${MACHINE_SUBTYPE} --no-reboot $QEMU_UI_OPTIONS" fi + if [ -e "$DEPLOY_DIR_IMAGE/zImage-versatile-pb.dtb" ]; then + QEMUOPTIONS="$QEMUOPTIONS -dtb $DEPLOY_DIR_IMAGE/zImage-versatile-pb.dtb" + fi if [ "$MACHINE" = "qemuarmv6" ]; then QEMUOPTIONS="$QEMUOPTIONS -cpu arm1136" fi
Signature · 1 line
2.5.0
Re: [PATCH 3/9] qemuarm: add device tree support
Quoted 9 lines · Bruce Ashfield
As of the 4.7 kernel qemuarm must be booted with a dtb. To allow older and recent kernels to both boot qemuarm, we add the device tree definitions only to recipes that need it (linux-yocto-dev) and make runqemu detect and use the dtb if present.
Signed-off-by Bruce Ashfield <[email protected]>--- scripts/runqemu-internal | 3 +++ 1 file changed, 3 insertions(+)
This doesn't work with Roberts runqemu conversion to python.
I did try adding http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=ma
ster-next&id=e91d7bf00bfab5142bc290425103971b897c208b however this requires the use of the dtb file and doesn't work with older kernels. I'll see if I can come up with something better based on kernel PREFERRED_VERSION...
Cheers,
Richard
Re: [PATCH 3/9] qemuarm: add device tree support
Quoted 11 lines · Richard Purdie
Quoted 9 lines · Bruce Ashfield
As of the 4.7 kernel qemuarm must be booted with a dtb. To allow older and recent kernels to both boot qemuarm, we add the device tree definitions only to recipes that need it (linux-yocto-dev) and make runqemu detect and use the dtb if present.
Signed-off-by Bruce Ashfield <[email protected]>--- scripts/runqemu-internal | 3 +++ 1 file changed, 3 insertions(+)
Quoted 8 lines
This doesn't work with Roberts runqemu conversion to python.
I did try adding http://git.yoctoproject.org/cgit.cgi/poky/commit/?h=ma
ster-next&id=e91d7bf00bfab5142bc290425103971b897c208b however this requires the use of the dtb file and doesn't work with older kernels. I'll see if I can come up with something better based on kernelPREFERRED_VERSION...
Yah. I mentioned this one in my 0/N, I was working against the current master
(I should just work against master-next for these .. mental note for next time).
Bruce
Quoted 11 lines
Cheers,
Richard
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"
PATCH 4/9 linux-yocto-dev: bump to v4.8+
In reply to Bruce Ashfield--- meta/recipes-kernel/linux/linux-yocto-dev.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-kernel/linux/linux-yocto-dev.bb +1 -1
@@ -37,7 +37,7 @@ SRC_URI = "git://git.yoctoproject.org/linux-yocto-dev.git;branch=${KBRANCH};name SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -LINUX_VERSION ?= "4.6-rc+" +LINUX_VERSION ?= "4.8-rc+" LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
2.5.0
PATCH 5/9 libc-headers: update to v4.8
In reply to Bruce AshfieldUpdating the libc-headers to use the 4.8 kernel as the default.
--- meta/conf/distro/include/tcmode-default.inc | 2 +- .../linux-libc-headers/linux-libc-headers_4.8.bb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb
meta/conf/distro/include/tcmode-default.inc +1 -1
@@ -28,7 +28,7 @@ BINUVERSION ?= "2.27%" GDBVERSION ?= "7.11%" GLIBCVERSION ?= "2.24" UCLIBCVERSION ?= "1.0%" -LINUXLIBCVERSION ?= "4.4" +LINUXLIBCVERSION ?= "4.8%" PREFERRED_VERSION_gcc ?= "${GCCVERSION}" PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION}"
meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb new file +13 -0
@@ -0,0 +1,13 @@ +require linux-libc-headers.inc + +SRC_URI_forcevariable = "${KERNELORG_MIRROR}/linux/kernel/v${HEADER_FETCH_VER}/testing/linux-4.8-rc4.tar.${KORG_ARCHIVE_COMPRESSION}" +PV = "4.8-rc4" + +SRC_URI_append_libc-musl = "\ + file://0001-libc-compat.h-fix-some-issues-arising-from-in6.h.patch \ + file://0002-libc-compat.h-prevent-redefinition-of-struct-ethhdr.patch \ + file://0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch \ + " + +SRC_URI[md5sum] = "269067213995c7742730ce53b8140c90" +SRC_URI[sha256sum] = "8f07a0d76a7d1a30490582ba9642b7f28370102bc4acc4bb4b2586c8eabf4447"
Signature · 1 line
2.5.0
Re: [PATCH 5/9] libc-headers: update to v4.8
Quoted 10 lines · Bruce Ashfield
Updating the libc-headers to use the 4.8 kernel as the default.
Signed-off-by Bruce Ashfield <[email protected]>--- meta/conf/distro/include/tcmode-default.inc | 2 +- .../linux-libc-headers/linux-libc-headers_4.8.bb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb
The musl patches fail to apply on the new version:
https://autobuilder.yoctoproject.org/main/builders/poky-tiny/builds/928
/steps/BuildImages/logs/stdio
Cheers,
Richard
Re: [PATCH 5/9] libc-headers: update to v4.8
Quoted 12 lines · Richard Purdie
Quoted 10 lines · Bruce Ashfield
Updating the libc-headers to use the 4.8 kernel as the default.
Signed-off-by Bruce Ashfield <[email protected]>--- meta/conf/distro/include/tcmode-default.inc | 2 +- .../linux-libc-headers/linux-libc-headers_4.8.bb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb
Quoted 4 lines
The musl patches fail to apply on the new version:
https://autobuilder.yoctoproject.org/main/builders/poky-tiny/builds/928
/steps/BuildImages/logs/stdio
I can drop those patches, but that's all that I can really offer, since even if
I ported them, I don't build or test with musl.
What's the preference ? I do a "they apply" port, or just drop them until someone
else who knows musl can do the port ?
Bruce
Quoted 11 lines
Cheers,
Richard
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"
PATCH 6/9 linux-yocto/4.8: add qemuarm device tree specification
In reply to Bruce Ashfield4.7+ requires a device tree for the arm versatile family of platforms. We add the definition to our 4.8 linux-yocto recipes so we can continue to boot!
--- meta/recipes-kernel/linux/linux-yocto-dev.bb | 2 ++ meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb | 2 ++ meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb | 2 ++ meta/recipes-kernel/linux/linux-yocto_4.8.bb | 2 ++ 4 files changed, 8 insertions(+)
meta/recipes-kernel/linux/linux-yocto-dev.bb +2 -0
@@ -43,6 +43,8 @@ PV = "${LINUX_VERSION}+git${SRCPV}" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemumips64|qemux86-64)" +KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" + # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb +2 -0
@@ -28,6 +28,8 @@ LINUX_KERNEL_TYPE = "preempt-rt" COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuppc|qemumips)" +KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" + # Functionality flags KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc" KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb +2 -0
@@ -21,3 +21,5 @@ COMPATIBLE_MACHINE = "(qemux86$)" # Functionality flags KERNEL_FEATURES = "" + +KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
meta/recipes-kernel/linux/linux-yocto_4.8.bb +2 -0
@@ -31,6 +31,8 @@ PV = "${LINUX_VERSION}+git${SRCPV}" KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" +KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb" + COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64" # Functionality flags
Signature · 1 line
2.5.0
PATCH 7/9 kernel-yocto: test for empty artifacts
In reply to Bruce AshfieldWith the updated kernel tools, we generate a list of sccs, patches, configs and BSP definitions as part of the meta data generation.
It is valid if there aren't any of these artifacts found (i.e. you are just building a branch and a default config), but invoking the tools with no inputs isn't a good idea.
To avoid this issue, we generate a string based on the artifacts and skip calling the tools if there's nothing to do.
--- meta/classes/kernel-yocto.bbclass | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
meta/classes/kernel-yocto.bbclass +8 -2
@@ -139,10 +139,16 @@ do_kernel_metadata() { meta_dir=$(kgit --meta) # run1: pull all the configuration fragments, no matter where they come from - scc --force -o ${S}/${meta_dir}:cfg,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES} + elements="`echo -n ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES}`" + if [ -n "${elements}" ]; then + scc --force -o ${S}/${meta_dir}:cfg,meta ${includes} ${bsp_definition} ${sccs} ${patches} ${KERNEL_FEATURES} + fi # run2: only generate patches for elements that have been passed on the SRC_URI - scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} ${KERNEL_FEATURES} + elements="`echo -n ${sccs} ${patches} ${KERNEL_FEATURES}`" + if [ -n "${elements}" ]; then + scc --force -o ${S}/${meta_dir}:patch --cmds patch ${includes} ${sccs} ${patches} ${KERNEL_FEATURES} + fi } do_patch() {
Signature · 1 line
2.5.0
PATCH 8/9 kernel-yocto: do_kernel_configme: Fix silent sysroot poisoning error
In reply to Bruce AshfieldFrom: Ioan-Adrian Ratiu <[email protected]>
do_kernel_configme calls merge_config.sh (installed in the sysroot by the kern-tools-native recipe) which may invoke the compiler to complete the configuration process.
Depending on the build (and dependencies), this may error due to sysroot poisoning [1].
The errors are similar to:
make[1]: Entering directory '4.1+gitAUTOINC+a7e53ecc27-r0/linux-x64-standard-build' HOSTCC scripts/basic/fixdep work-shared/x64/kernel-source/scripts/basic/fixdep.c:106:23: fatal error: sys/types.h: No such file or directory compilation terminated.
make[2]: *** [work-shared/x64/kernel-source/scripts/basic/Makefile:22: scripts/basic/x86_64-nilrt-linux-fixdep] Error 1
Adding $TOOLCHAIN_OPTIONS to $CFLAGS before calling merge_configs.sh fixes the error because $TOOLCHAIN_OPTIONS defines the sysroot and make uses it to correctly compile & fill all missing kernel config options.
[1] http://lists.openembedded.org/pipermail/openembedded-core/2014-October/098253.html
--- meta/classes/kernel-yocto.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/kernel-yocto.bbclass +1 -1
@@ -255,7 +255,7 @@ do_kernel_configme() { bbfatal_log "Could not find configuration queue (${meta_dir}/config.queue)" fi - ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1 + CFLAGS="${CFLAGS} ${TOOLCHAIN_OPTIONS}" ARCH=${ARCH} merge_config.sh -O ${B} ${config_flags} ${configs} > ${meta_dir}/cfg/merge_config_build.log 2>&1 if [ $? -ne 0 ]; then bbfatal_log "Could not configure ${KMACHINE}-${LINUX_KERNEL_TYPE}" fi
Signature · 1 line
2.5.0
PATCH 9/9 linux-yocto/4.x: configuration updates
In reply to Bruce AshfieldIntegrating a series to expliclity set the quark build to 32 bits and avoid 64 bit x86 defaults.
We also have a series of commits that fix configuration warnings on x86 platforms:
intel-quark.cfg: Explicitly disable CONFIG_64BIT common-pc-drivers.cfg: Remove I2O configs
features: Fix dependencies and =m vs =y discrepancies for corei7 intel-core2-32.cfg: Explicitly disable CONFIG_64BIT
features: Add 6lowpan feature and add it where necessary
--- meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.4.bb | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb +1 -1
@@ -12,7 +12,7 @@ python () { } SRCREV_machine ?= "b88e2b5805213daeb0136fdd8c840dc0254a3d21" -SRCREV_meta ?= "3e7c4fbbbc0ca217ddb3d3ee5235d5ad582e0c56" +SRCREV_meta ?= "f7984d610b3e0dcffc52db019400ebce53ae28d7" SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.1.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.1;destsuffix=${KMETA}"
meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb +1 -1
@@ -12,7 +12,7 @@ python () { } SRCREV_machine ?= "9135adcfb01432abe4a95a50fca5d0395239f798" -SRCREV_meta ?= "6a12efcabe8d48e323afd277fa672eae9b7e12c2" +SRCREV_meta ?= "698835841165b68089604398f68fd8bc3f79cb65" SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.4.git;branch=${KBRANCH};name=machine \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA}"
meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb +1 -1
@@ -10,7 +10,7 @@ KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" SRCREV_machine ?= "0847ed67f89b5a8bbaaa0a7b6cfa2a99ef34834f" -SRCREV_meta ?= "3e7c4fbbbc0ca217ddb3d3ee5235d5ad582e0c56" +SRCREV_meta ?= "f7984d610b3e0dcffc52db019400ebce53ae28d7" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb +1 -1
@@ -10,7 +10,7 @@ KMETA = "kernel-meta" KCONF_BSP_AUDIT_LEVEL = "2" SRCREV_machine ?= "0a0c93f29c0d65c00abdd2f6d1eb89134fae9525" -SRCREV_meta ?= "6a12efcabe8d48e323afd277fa672eae9b7e12c2" +SRCREV_meta ?= "698835841165b68089604398f68fd8bc3f79cb65" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_4.1.bb +1 -1
@@ -19,7 +19,7 @@ SRCREV_machine_qemux86 ?= "0847ed67f89b5a8bbaaa0a7b6cfa2a99ef34834f" SRCREV_machine_qemux86-64 ?= "0847ed67f89b5a8bbaaa0a7b6cfa2a99ef34834f" SRCREV_machine_qemumips64 ?= "106ed721d21c595dfb993a8990c3a29830dfc166" SRCREV_machine ?= "0847ed67f89b5a8bbaaa0a7b6cfa2a99ef34834f" -SRCREV_meta ?= "3e7c4fbbbc0ca217ddb3d3ee5235d5ad582e0c56" +SRCREV_meta ?= "f7984d610b3e0dcffc52db019400ebce53ae28d7" SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.1.git;name=machine;branch=${KBRANCH}; \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.1;destsuffix=${KMETA}"
meta/recipes-kernel/linux/linux-yocto_4.4.bb +1 -1
@@ -19,7 +19,7 @@ SRCREV_machine_qemux86 ?= "0a0c93f29c0d65c00abdd2f6d1eb89134fae9525" SRCREV_machine_qemux86-64 ?= "0a0c93f29c0d65c00abdd2f6d1eb89134fae9525" SRCREV_machine_qemumips64 ?= "aa125473aef74e7731b14f6b56c1b50589fcd668" SRCREV_machine ?= "0a0c93f29c0d65c00abdd2f6d1eb89134fae9525" -SRCREV_meta ?= "6a12efcabe8d48e323afd277fa672eae9b7e12c2" +SRCREV_meta ?= "698835841165b68089604398f68fd8bc3f79cb65" SRC_URI = "git://git.yoctoproject.org/linux-yocto-4.4.git;name=machine;branch=${KBRANCH}; \ git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-4.4;destsuffix=${KMETA}"
Signature · 1 line
2.5.0
I've built an intel-corei7-64 image with the new kernel. Looks good so far - booted on a MinnowBoard Turbot immediately with no new errors or warnings!
For anyone curious, preliminary recipes for meta-intel are available at meta-intel-contrib -b clsulliv/auto-srcrevs.
---
Cal
Quoted 131 lines · Bruce Ashfield
Hi all,
Here's the latest updates to the linux-yoco* baseline support. There are three distinct blocks in the consolidated pull request, with the biggest being the introduction of a 4.8 named kernel and 4.8 based libc-headers.
The others are fixes to the kernel-yocto processing and kernel meta data updates. As such, these commits can be taken in isolation to the 4.8 update that I've included in the pull request.
kernel-yocto: test for empty artifacts
linux-yocto/4.x: configuration updates
kernel-yocto:do_kernel_configme: Fix silent sysroot poisoning errorOn the topic of the version 4.8:
- This is the intended 'newest' kernel for the upcoming fall release cycle. We will have a shiny new one this time around.
- yes it is a -rc4 release, but the version wasn't chosen by mistake (or lightly). It was the typical balancing act.
- It is nice to work through the development cycle of the upstream kernel, since we can send fixes in realtime to the mainline tree .. but this is the side effect of the choice, not the reason
- This version balances a new enough kernel, LTS/LTSI, -rt, platform updates (ARM/x86) and the timing of the release.
The LTS/LTSI kernels are either too old at the moment, and won't get a port of major patch series like -rt. Hence why v4.8 shoots the difference between the options and gives us a good baseline to update in the upcoming months, and one that we can compliment with other kernel versions later.
- The delta between any -rcX releases is small, so following this through until its release is not a big issue.
build/boot testing:
- I've built and booted qemu* with core-image-sato, so it is known to build and have a sane runtime for all arches. I've also built the typical packages that misbehave (lttng, perf, etc).
- The versatile platform switched to a device tree boot in the 4.7 timeframe. As such, I had to patch runqemu to use a device tree .. and use that device tree conditionally, since we have to support older kernels at the same time as 4.7+
- I know that there are pending changes to the way runqemu works, but I patched what I had in master .. these can be updated/adjusted if need be.
libc-headers update:
- Since there are milestone builds coming up, I wanted to get the 4.8 libc headers in place. Which meant that I had to do some different things to use the testing kernel tarball, and to get the version of the package right.
This might cause us version stepping issues .. so anyone looking at this can suggest what I need to do to avoid them, and I can update and rebase the series with the proper fix.
The linux-yocto-4.8 repository:
- There have been comments about the linux-yocto* repos filling up download directories, and consuming people's bandwidth. Since we don't have a shallow clone or reference clone way to deal with the amount of shared kernel blobs, I've simultaneously generated a v4.8 kernel in a repository that could be re-used over time.
http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto/
The proposal is that if we really want to avoid separate kernel trees, and keep the ability to rebase/remove/amend old commits to keep the tree clean, that I can insert the version number into the branches as a marker. Comments on this approach are welcome, since if we go this way, I need to adjust all the KBRANCH variables.
I'll follow up with commits to change the default qemu version to 4.8 once there's general agreement about the options on this.
Cheers,
Bruce
The following changes since commit
2fedd226c3385f1ac160b3aa0bfadbded85e288c:ref-manual: Fixed small wording in PKGR in the glossary (2016-08-25 23:09:29 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contribzedd/kernel
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernelBruce Ashfield (8):
linux-yocto: introduce v4.8 recipes
perf: adapt to Makefile.config
qemuarm: add device tree support
linux-yocto-dev: bump to v4.8+
libc-headers: update to v4.8
linux-yocto/4.8: add qemuarm device tree specification
kernel-yocto: test for empty artifacts linux-yocto/4.x: configuration updatesIoan-Adrian Ratiu (1):
kernel-yocto:do_kernel_configme: Fix silent sysroot poisoning errormeta/classes/kernel-yocto.bbclass | 12 ++++-- meta/conf/distro/include/tcmode-default.inc | 2 +- .../linux-libc-headers/linux-libc-headers_4.8.bb | 13 +++++++ meta/recipes-kernel/linux/linux-yocto-dev.bb | 4 +- meta/recipes-kernel/linux/linux-yocto-rt_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb | 38 +++++++++++++++++++ meta/recipes-kernel/linux/linux-yocto-tiny_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb | 25 ++++++++++++ meta/recipes-kernel/linux/linux-yocto_4.1.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.4.bb | 2 +- meta/recipes-kernel/linux/linux-yocto_4.8.bb | 44 ++++++++++++++++++++++ meta/recipes-kernel/perf/perf.bb | 9 ++++- scripts/runqemu-internal | 3 ++ 15 files changed, 150 insertions(+), 12 deletions(-)create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto-rt_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_4.8.bb create mode 100644 meta/recipes-kernel/linux/linux-yocto_4.8.bb
Just to update I have:
* Put a runqemu patch in master-next that works with new and old kernels to handle the dtb issue
* Updated the musl patches in libc-headers
* Updated lttng-* to avoid build failures with 4.8
* Switched the default qemu kernel 4.4 -> 4.8 in poky so we get testing of 4.8
I'm waiting on the next build so see what issues remain from here.
Cheers,
Richard
Quoted 5 lines · Richard Purdie
Just to update I have:
* Put a runqemu patch in master-next that works with new and old kernels to handle the dtb issue
Hmm. I tested 4.4 and 4.8 with the ones that I did.
Quoted 2 lines
* Updated the musl patches in libc-headers
ok. Ignore my previous email on this one!
Quoted 2 lines
* Updated lttng-* to avoid build failures with 4.8
What were you seeing here ? I built lttng and didn't see the failure .. I'm wondering if I was held back on 4.4 when I did those builds. I'll go investigate,
since that is rather annoying as I was explicitly covering perf/lttng to rule that out.
Bruce
Quoted 14 lines
* Switched the default qemu kernel 4.4 -> 4.8 in poky so we get testing of 4.8
I'm waiting on the next build so see what issues remain from here.
Cheers,
Richard
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 2 lines
"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"