]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel: relocate copy of module.lds to module compilation task
authorBruce Ashfield <bruce.ashfield@gmail.com>
Wed, 18 Nov 2020 04:56:33 +0000 (23:56 -0500)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 18 Nov 2020 13:59:22 +0000 (13:59 +0000)
There were two copies of this patch floating around, and the merged
variant has the copy in the wrong place.

module.lds is only created during modules_prepare, and that target is
not invoked during our main build of the kernel. We aren't about to
change the kernel build (there's no need), so we move the copy into
the compile_kernelmodules task. After that runs, we have module.lds
availble to copy.

This has been tested against clean kernel + out of tree module
builds, and the dependencies are correct that the file is copied
before the out of tree module build starts.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel.bbclass

index 681b0be4e182e85479d685ea1efdd4bfddeae964..1a444efabf1b51941a4b2027b9e5ba48c121d711 100644 (file)
@@ -383,6 +383,10 @@ do_compile_kernelmodules() {
                # other kernel modules and will look at this
                # file to do symbol lookups
                cp ${B}/Module.symvers ${STAGING_KERNEL_BUILDDIR}/
+               # 5.10+ kernels have module.lds that we need to copy for external module builds
+               if [ -e "${B}/scripts/module.lds" ]; then
+                       install -Dm 0644 ${B}/scripts/module.lds ${STAGING_KERNEL_BUILDDIR}/scripts/module.lds
+               fi
        else
                bbnote "no modules to compile"
        fi
@@ -486,7 +490,6 @@ do_shared_workdir () {
        # Copy files required for module builds
        cp System.map $kerneldir/System.map-${KERNEL_VERSION}
        [ -e Module.symvers ] && cp Module.symvers $kerneldir/
-       [ -e scripts/module.lds ] && install -Dm 0644 scripts/module.lds $kerneldir/scripts/module.lds
        cp .config $kerneldir/
        mkdir -p $kerneldir/include/config
        cp include/config/kernel.release $kerneldir/include/config/kernel.release