Patchwork [1/1] kernel: restore crtsavres.o to enable building external modules on powerpc

login
register
mail settings
Submitter Darren Hart
Date Aug. 17, 2011, 4:16 a.m.
Message ID <42c1991f83d5faf339628d449c54cb492ffb6344.1313554368.git.dvhart@linux.intel.com>
Download mbox | patch
Permalink /patch/9995/
State New, archived
Headers show

Comments

Darren Hart - Aug. 17, 2011, 4:16 a.m.
Fixes [YOCTO #1276]

As of Linux kernel version 3.0.1, and much earlier, the make clean target
removes arch/powerpc/lib/crtsavres.o. As this object is present in
KBUILD_LDFLAGS_MODULE, it is required to build external modules, and should
therefor not be removed by make clean.

While I do not advocate fixing buggy kernels in the generic kernel classes,
we should probably account for this one in kernel.bbclass as it affects
such a long list of kernel versions.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Bruce Ashfield <bruce.ashfield@windriver.com>
CC: Tom Zanussi <tom.zanussi@intel.com>
---
 meta/classes/kernel.bbclass |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)
Richard Purdie - Aug. 17, 2011, 2:46 p.m.
On Tue, 2011-08-16 at 21:16 -0700, Darren Hart wrote:
> Fixes [YOCTO #1276]
> 
> As of Linux kernel version 3.0.1, and much earlier, the make clean target
> removes arch/powerpc/lib/crtsavres.o. As this object is present in
> KBUILD_LDFLAGS_MODULE, it is required to build external modules, and should
> therefor not be removed by make clean.
> 
> While I do not advocate fixing buggy kernels in the generic kernel classes,
> we should probably account for this one in kernel.bbclass as it affects
> such a long list of kernel versions.
> 
> Signed-off-by: Darren Hart <dvhart@linux.intel.com>
> CC: Bruce Ashfield <bruce.ashfield@windriver.com>
> CC: Tom Zanussi <tom.zanussi@intel.com>

Merged to master, thanks.

Richard

Patch

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 7dc9cc6..386b05e 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -159,6 +159,13 @@  kernel_do_install() {
 	find $kerneldir -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \;
 	find $kerneldir/Documentation -name "*.txt" -exec rm '{}' \;
 
+	# As of Linux kernel version 3.0.1, the clean target removes
+	# arch/powerpc/lib/crtsavres.o which is present in
+	# KBUILD_LDFLAGS_MODULE, making it required to build external modules.
+	if [ ${ARCH} = "powerpc" ]; then
+		cp arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
+	fi
+
 	# Remove the following binaries which cause strip errors
 	# during do_package for cross-compiled platforms
 	bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \