On Thu, Feb 22, 2024 at 3:28 PM Munehisa Kamata via lists.openembedded.org <kamatam=amazon....@lists.openembedded.org> wrote: > > The pkg-config workaround has been applied for kernel image building, but > not for module building. On x86, this can trigger rebuilding of objtool > unnecessary at do_compile_kernelmodules task. If the kernel is built with > CONFIG_DEBUG_INFO_BTF=y, the task even rebuilds vmlinux and leads to > inconsistent build-id between bzImage and vmlinux, and also BTF mismatches > between the bzImage and modules.
I don't question the change, as it is what I had to do for the mail kernel build. What I would like to see logged is a set of steps that managed to trigger the issue. Since the module builds are dependent on the main kernel, everything that they need should be available and already timestamped to not be required, so the missing pkconfig shouldn't trigger much. That way we'll know if there's a gap somewhere in the dependencies, or another race condition and we can test for it. Bruce > > To avoid the inconsistency, apply the same workaround when building > modules. For kernels 5.19+, simply set HOSTPKG_CONFIG in the make command > line. > > Signed-off-by: Munehisa Kamata <kama...@amazon.com> > --- > meta/classes-recipe/kernel.bbclass | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > diff --git a/meta/classes-recipe/kernel.bbclass > b/meta/classes-recipe/kernel.bbclass > index a76aaee5ba..db4461e551 100644 > --- a/meta/classes-recipe/kernel.bbclass > +++ b/meta/classes-recipe/kernel.bbclass > @@ -239,6 +239,8 @@ KERNEL_EXTRA_ARGS ?= "" > EXTRA_OEMAKE += ' CC="${KERNEL_CC}" LD="${KERNEL_LD}" > OBJCOPY="${KERNEL_OBJCOPY}" STRIP="${KERNEL_STRIP}"' > EXTRA_OEMAKE += ' HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" > HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}"' > EXTRA_OEMAKE += ' HOSTCXX="${BUILD_CXX}" HOSTCXXFLAGS="${BUILD_CXXFLAGS}"' > +# Only for newer kernels (5.19+), native pkg-config variables are set for > older kernels when building kernel and modules > +EXTRA_OEMAKE += ' HOSTPKG_CONFIG="pkg-config-native"' > > KERNEL_ALT_IMAGETYPE ??= "" > > @@ -356,9 +358,6 @@ kernel_do_compile() { > export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR" > export PKG_CONFIG_SYSROOT_DIR="" > > - # for newer kernels (5.19+) there's a dedicated variable > - export HOSTPKG_CONFIG="pkg-config-native" > - > if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then > # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH > may not > # be set.... > @@ -408,6 +407,13 @@ addtask transform_kernel after do_compile before > do_install > > do_compile_kernelmodules() { > unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE > + > + # setup native pkg-config variables (kconfig scripts call pkg-config > directly, cannot generically be overriden to pkg-config-native) > + export > PKG_CONFIG_DIR="${STAGING_DIR_NATIVE}${libdir_native}/pkgconfig" > + export > PKG_CONFIG_PATH="$PKG_CONFIG_DIR:${STAGING_DATADIR_NATIVE}/pkgconfig" > + export PKG_CONFIG_LIBDIR="$PKG_CONFIG_DIR" > + export PKG_CONFIG_SYSROOT_DIR="" > + > if [ "${KERNEL_DEBUG_TIMESTAMPS}" != "1" ]; then > # kernel sources do not use do_unpack, so SOURCE_DATE_EPOCH > may not > # be set.... > -- > 2.34.1 > > > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#196042): https://lists.openembedded.org/g/openembedded-core/message/196042 Mute This Topic: https://lists.openembedded.org/mt/104516377/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-