[OE-core] [PATCH 1/3] linux-yocto: introduce 5.4 recipes

Bruce Ashfield bruce.ashfield at gmail.com
Mon Feb 3 17:11:31 UTC 2020


On Mon, Feb 3, 2020 at 11:45 AM Khem Raj <raj.khem at gmail.com> wrote:
>
>
>
> On Mon, Feb 3, 2020 at 8:42 AM Martin Jansa <martin.jansa at gmail.com> wrote:
>>
>> It fails to build with gold enabled (ld-is-gold in DISTRO_FEATURES)
>>
>> First olddefconfig fails with "gold linker 'x86_64-oe-linux-ld' not supported" and then it fails with a bit misleading error about oldnoconfig (which is called only when oddefconfig fails) and then the whole log repeats itself again, whole log.do_configure.4075 follows:
>
>
> Since it’s a kernel piece I think asking for gold might be out of scope perhaps
>

Yah, there's not much we can do to fix that, but I suppose it could be
detected in the bbclass and a better error thrown ?

> I have staged a fix in master next which helps a bit with eg mips I had to disable bpf

Is that the one with the missing header for on-target module build ?
If so, i have a similar patch here.

Bruce

>>
>>
>> make[1]: Entering directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>>   GEN     Makefile
>>   HOSTCC  scripts/basic/fixdep
>>   HOSTCC  scripts/kconfig/conf.o
>>   HOSTCC  scripts/kconfig/confdata.o
>>   HOSTCC  scripts/kconfig/expr.o
>>   HOSTCC  scripts/kconfig/lexer.lex.o
>>   HOSTCC  scripts/kconfig/parser.tab.o
>>   HOSTCC  scripts/kconfig/preprocess.o
>>   HOSTCC  scripts/kconfig/symbol.o
>>   HOSTLD  scripts/kconfig/conf
>> scripts/kconfig/conf  --olddefconfig Kconfig
>> scripts/Kconfig.include:39:  gold linker 'x86_64-oe-linux-ld' not supported
>> make[2]: *** [/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/scripts/kconfig/Makefile:73: olddefconfig] Error 1
>> make[1]: *** [/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/Makefile:567: olddefconfig] Error 2
>> make[1]: Leaving directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>> make: *** [Makefile:179: sub-make] Error 2
>> make: Leaving directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> NOTE: make HOSTCC=gcc  -isystem/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/include -O2 -pipe -L/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/lib                         -L/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/lib                         -Wl,--enable-new-dtags                         -Wl,-rpath-link,/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/lib                         -Wl,-rpath-link,/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/lib                         -Wl,-rpath,/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/usr/lib                         -Wl,-rpath,/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native/lib                         -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/OE/build/oe-core/tmp-glibc/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 HOSTCPP=gcc  -E -C /OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source O=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build CC=x86_64-oe-linux-gcc  -fuse-ld=bfd -fmacro-prefix-map=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0=/usr/src/debug/linux-yocto/5.4.15-r0                      -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0=/usr/src/debug/linux-yocto/5.4.15-r0                      -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot=                      -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/recipe-sysroot-native=  -fdebug-prefix-map=/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source=/usr/src/kernel oldnoconfig
>> make: Entering directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> make[1]: Entering directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>>   GEN     Makefile
>> make[2]: *** No rule to make target 'oldnoconfig'.  Stop.
>> make[1]: *** [/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/Makefile:567: oldnoconfig] Error 2
>> make[1]: Leaving directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>> make: *** [Makefile:179: sub-make] Error 2
>> make: Leaving directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> ERROR: oe_runmake failed
>> WARNING: exit code 1 from a shell command.
>> ERROR: Execution of '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/temp/run.do_configure.4075' failed with exit code 1:
>> make: Entering directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> make[1]: Entering directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>>   GEN     Makefile
>>   HOSTCC  scripts/basic/fixdep
>>   HOSTCC  scripts/kconfig/conf.o
>>   HOSTCC  scripts/kconfig/confdata.o
>>   HOSTCC  scripts/kconfig/expr.o
>>   HOSTCC  scripts/kconfig/lexer.lex.o
>>   HOSTCC  scripts/kconfig/parser.tab.o
>>   HOSTCC  scripts/kconfig/preprocess.o
>>   HOSTCC  scripts/kconfig/symbol.o
>>   HOSTLD  scripts/kconfig/conf
>> scripts/kconfig/conf  --olddefconfig Kconfig
>> scripts/Kconfig.include:39:  gold linker 'x86_64-oe-linux-ld' not supported
>> make[2]: *** [/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/scripts/kconfig/Makefile:73: olddefconfig] Error 1
>> make[1]: *** [/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/Makefile:567: olddefconfig] Error 2
>> make[1]: Leaving directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>> make: *** [Makefile:179: sub-make] Error 2
>> make: Leaving directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> make: Entering directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> make[1]: Entering directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>>   GEN     Makefile
>> make[2]: *** No rule to make target 'oldnoconfig'.  Stop.
>> make[1]: *** [/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source/Makefile:567: oldnoconfig] Error 2
>> make[1]: Leaving directory '/OE/build/oe-core/tmp-glibc/work/qemux86_64-oe-linux/linux-yocto/5.4.15-r0/linux-qemux86_64-standard-build'
>> make: *** [Makefile:179: sub-make] Error 2
>> make: Leaving directory '/OE/build/oe-core/tmp-glibc/work-shared/qemux86-64/kernel-source'
>> WARNING: exit code 1 from a shell command.
>>
>> On Fri, Jan 31, 2020 at 10:37 AM Khem Raj <raj.khem at gmail.com> wrote:
>>>
>>> kernel-seltest fails now to build
>>>
>>> https://errors.yoctoproject.org/Errors/Details/308578/
>>>
>>> On Tue, Jan 28, 2020 at 2:14 PM <bruce.ashfield at gmail.com> wrote:
>>> >
>>> > From: Bruce Ashfield <bruce.ashfield at gmail.com>
>>> >
>>> > This creates recipes for the v5.4/* branches of the linux-yocto
>>> > reference kernel.
>>> >
>>> > preempt-rt, yaffs2, aufs5 and reference board specific patches are
>>> > part of these branches. All major architectures: x86,x86-64,ARM,
>>> > ARM64,ppc,mips and mips64 have been feature tested against this
>>> > reference.
>>> >
>>> > 5.4 is a LTS release, and as such will receive -stable updates
>>> > for the duration of upstream korg support.
>>> >
>>> > Signed-off-by: Bruce Ashfield <bruce.ashfield at gmail.com>
>>> > ---
>>> >  .../linux/linux-yocto-rt_5.4.bb               | 44 +++++++++++++++
>>> >  .../linux/linux-yocto-tiny_5.4.bb             | 32 +++++++++++
>>> >  meta/recipes-kernel/linux/linux-yocto_5.4.bb  | 54 +++++++++++++++++++
>>> >  3 files changed, 130 insertions(+)
>>> >  create mode 100644 meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
>>> >  create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
>>> >  create mode 100644 meta/recipes-kernel/linux/linux-yocto_5.4.bb
>>> >
>>> > diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
>>> > new file mode 100644
>>> > index 0000000000..52f0e3b833
>>> > --- /dev/null
>>> > +++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.4.bb
>>> > @@ -0,0 +1,44 @@
>>> > +KBRANCH ?= "v5.4/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("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
>>> > +        raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
>>> > +}
>>> > +
>>> > +SRCREV_machine ?= "5d5d4070c5f8b10a4c6bda37e77071ce37f102d5"
>>> > +SRCREV_meta ?= "a48522779fae4887c47268e5f650bf10c94a165c"
>>> > +
>>> > +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
>>> > +           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
>>> > +
>>> > +LINUX_VERSION ?= "5.4.15"
>>> > +
>>> > +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
>>> > +
>>> > +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
>>> > +DEPENDS += "openssl-native util-linux-native"
>>> > +
>>> > +PV = "5.4.15"
>>> > +
>>> > +KMETA = "kernel-meta"
>>> > +KCONF_BSP_AUDIT_LEVEL = "2"
>>> > +
>>> > +LINUX_KERNEL_TYPE = "preempt-rt"
>>> > +
>>> > +COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
>>> > +
>>> > +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
>>> > +
>>> > +# 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 features/drm-bochs/drm-bochs.scc"
>>> > +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
>>> > +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
>>> > +KERNEL_FEATURES_append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
>>> > diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
>>> > new file mode 100644
>>> > index 0000000000..a028b37548
>>> > --- /dev/null
>>> > +++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.4.bb
>>> > @@ -0,0 +1,32 @@
>>> > +KBRANCH ?= "v5.4/standard/tiny/base"
>>> > +KBRANCH_qemuarm  ?= "v5.4/standard/tiny/arm-versatile-926ejs"
>>> > +
>>> > +LINUX_KERNEL_TYPE = "tiny"
>>> > +KCONFIG_MODE = "--allnoconfig"
>>> > +
>>> > +require recipes-kernel/linux/linux-yocto.inc
>>> > +
>>> > +LINUX_VERSION ?= "5.4.15"
>>> > +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
>>> > +
>>> > +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
>>> > +DEPENDS += "openssl-native util-linux-native"
>>> > +
>>> > +KMETA = "kernel-meta"
>>> > +KCONF_BSP_AUDIT_LEVEL = "2"
>>> > +
>>> > +SRCREV_machine_qemuarm ?= "9eeafafc19278b5c5376ba1fd9eae26626730458"
>>> > +SRCREV_machine ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_meta ?= "a48522779fae4887c47268e5f650bf10c94a165c"
>>> > +
>>> > +PV = "5.4.15"
>>> > +
>>> > +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
>>> > +           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
>>> > +
>>> > +COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5"
>>> > +
>>> > +# Functionality flags
>>> > +KERNEL_FEATURES = ""
>>> > +
>>> > +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
>>> > diff --git a/meta/recipes-kernel/linux/linux-yocto_5.4.bb b/meta/recipes-kernel/linux/linux-yocto_5.4.bb
>>> > new file mode 100644
>>> > index 0000000000..9fbc47d79e
>>> > --- /dev/null
>>> > +++ b/meta/recipes-kernel/linux/linux-yocto_5.4.bb
>>> > @@ -0,0 +1,54 @@
>>> > +KBRANCH ?= "v5.4/standard/base"
>>> > +
>>> > +require recipes-kernel/linux/linux-yocto.inc
>>> > +
>>> > +# board specific branches
>>> > +KBRANCH_qemuarm  ?= "v5.4/standard/arm-versatile-926ejs"
>>> > +KBRANCH_qemuarm64 ?= "v5.4/standard/qemuarm64"
>>> > +KBRANCH_qemumips ?= "v5.4/standard/mti-malta32"
>>> > +KBRANCH_qemuppc  ?= "v5.4/standard/qemuppc"
>>> > +KBRANCH_qemuriscv64  ?= "v5.4/standard/base"
>>> > +KBRANCH_qemux86  ?= "v5.4/standard/base"
>>> > +KBRANCH_qemux86-64 ?= "v5.4/standard/base"
>>> > +KBRANCH_qemumips64 ?= "v5.4/standard/mti-malta64"
>>> > +
>>> > +SRCREV_machine_qemuarm ?= "637086def651a00b1274a80cd3ca740e271eb0f9"
>>> > +SRCREV_machine_qemuarm64 ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_machine_qemumips ?= "bfe04753d00b0f36848bb8204020b69d0e78f02a"
>>> > +SRCREV_machine_qemuppc ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_machine_qemuriscv64 ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_machine_qemux86 ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_machine_qemux86-64 ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_machine_qemumips64 ?= "81cd255c72add4dcf06603250869f739bb4f05cb"
>>> > +SRCREV_machine ?= "cdda35317561d2741b396efa623ace0bd2212c16"
>>> > +SRCREV_meta ?= "a48522779fae4887c47268e5f650bf10c94a165c"
>>> > +
>>> > +# remap qemuarm to qemuarma15 for the 5.4 kernel
>>> > +# KMACHINE_qemuarm ?= "qemuarma15"
>>> > +
>>> > +SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
>>> > +           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.4;destsuffix=${KMETA}"
>>> > +
>>> > +LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
>>> > +LINUX_VERSION ?= "5.4.15"
>>> > +
>>> > +DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
>>> > +DEPENDS += "openssl-native util-linux-native"
>>> > +
>>> > +PV = "5.4.15"
>>> > +
>>> > +KMETA = "kernel-meta"
>>> > +KCONF_BSP_AUDIT_LEVEL = "2"
>>> > +
>>> > +KERNEL_DEVICETREE_qemuarmv5 = "versatile-pb.dtb"
>>> > +
>>> > +COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64|qemuriscv64"
>>> > +
>>> > +# Functionality flags
>>> > +KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
>>> > +KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
>>> > +KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
>>> > +KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
>>> > +KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
>>> > +KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
>>> > +KERNEL_FEATURES_append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "" ,d)}"
>>> > --
>>> > 2.19.1
>>> >
>>> > --
>>> > _______________________________________________
>>> > Openembedded-core mailing list
>>> > Openembedded-core at lists.openembedded.org
>>> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>> --
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core at lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


More information about the Openembedded-core mailing list