Message ID | 20250723073804.3239691-1-Qi.Chen@windriver.com |
---|---|
State | New |
Headers | show |
Series | [V3] kernel-devsrc: copy arch/powerpc/tools contents | expand |
On Wed, Jul 23, 2025 at 3:38 AM Chen Qi via lists.openembedded.org <Qi.Chen= windriver.com@lists.openembedded.org> wrote: > From: Chen Qi <Qi.Chen@windriver.com> > > For now, using qemuppc64 as MACHINE and building things inside SDK, > we'll get the following error: > > ERROR: modpost: "_mcount" undefined > > This is because after [1], MPROFILE_KERNEL is using arch/powerpc/tools/ > contents to do the check. This in turn affects HAVE_OBJTOOL. > """ > arch/powerpc/Kconfig: select HAVE_OBJTOOL if > ARCH_USING_PATCHABLE_FUNCTION_ENTRY || MPROFILE_KERNEL || PPC32 > """ > > The current MPROFILE_KERNEL for powerpc: > """ > config MPROFILE_KERNEL > depends on PPC64_ELF_ABI_V2 && FUNCTION_TRACER > def_bool > $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) > -mlittle-endian) if CPU_LITTLE_ENDIAN > def_bool > $(success,$(srctree)/arch/powerpc/tools/gcc-check-mprofile-kernel.sh $(CC) > -mbig-endian) if CPU_BIG_ENDIAN > """ > > If MPROFILE_KERNEL is disabled, thus HAVE_OBJTOOL being disabled, then > FTRACE_MCOUNT_USE_RECORDMCOUNT will be enabled, causing this error. > > The scripts are listed and copied one by one. Their names and the reasons > why > they are copied are as below: > gcc-check-mprofile-kernel.sh: needed by MPROFILE_KERNEL > gcc-check-fpatchable-function-entry.sh: needed by > ARCH_USING_PATCHABLE_FUNCTION_ENTRY > head_check.sh/relocs_check.sh/unrel_branch_check.sh: needed by > Makefile.postlink > > [1] > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=abba759796f9b73eb24df9b734dd063839fc62e0 > > Signed-off-by: Chen Qi <Qi.Chen@windriver.com> > --- > meta/recipes-kernel/linux/kernel-devsrc.bb | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb > b/meta/recipes-kernel/linux/kernel-devsrc.bb > index 3d2eb3929e..f8563291d5 100644 > --- a/meta/recipes-kernel/linux/kernel-devsrc.bb > +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb > @@ -208,6 +208,13 @@ do_install() { > fi > > if [ "${ARCH}" = "powerpc" ]; then > + # Copy scripts that are needed by powperpc build, but don't > error if they aren't present in the source. > + # 4.18+ needs gcc-check-mprofile-kernel.sh for > MPROFILE_KERNEL, for example. > + # See > https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=abba759796f9b73eb24df9b734dd063839fc62e0 > + for script in gcc-check-mprofile-kernel.sh > gcc-check-fpatchable-function-entry.sh head_check.sh relocs_check.sh > unrel_branch_check.sh; do > + cp -a --parents arch/powerpc/tools/$script > $kerneldir/build/ 2>/dev/null || : > + done > + > v3 looks good to me. Bruce # 5.0 needs these files, but don't error if they aren't > present in the source > cp -a --parents arch/${ARCH}/kernel/syscalls/syscall.tbl > $kerneldir/build/ 2>/dev/null || : > cp -a --parents arch/${ARCH}/kernel/syscalls/syscalltbl.sh > $kerneldir/build/ 2>/dev/null || : > -- > 2.49.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#220795): > https://lists.openembedded.org/g/openembedded-core/message/220795 > Mute This Topic: https://lists.openembedded.org/mt/114300365/1050810 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [ > bruce.ashfield@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb index 3d2eb3929e..f8563291d5 100644 --- a/meta/recipes-kernel/linux/kernel-devsrc.bb +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb @@ -208,6 +208,13 @@ do_install() { fi if [ "${ARCH}" = "powerpc" ]; then + # Copy scripts that are needed by powperpc build, but don't error if they aren't present in the source. + # 4.18+ needs gcc-check-mprofile-kernel.sh for MPROFILE_KERNEL, for example. + # See https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=abba759796f9b73eb24df9b734dd063839fc62e0 + for script in gcc-check-mprofile-kernel.sh gcc-check-fpatchable-function-entry.sh head_check.sh relocs_check.sh unrel_branch_check.sh; do + cp -a --parents arch/powerpc/tools/$script $kerneldir/build/ 2>/dev/null || : + done + # 5.0 needs these files, but don't error if they aren't present in the source cp -a --parents arch/${ARCH}/kernel/syscalls/syscall.tbl $kerneldir/build/ 2>/dev/null || : cp -a --parents arch/${ARCH}/kernel/syscalls/syscalltbl.sh $kerneldir/build/ 2>/dev/null || :