diff options
-rw-r--r-- | meta/classes/kernel.bbclass | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 51626b03f8..db5d479000 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -260,9 +260,21 @@ kernel_do_install() { # we clean the scripts dir while leaving the generated config # and include files. # - oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean - make -C $kerneldir _mrproper_scripts - find $kerneldir -path $kerneldir/lib -prune -o -path $kerneldir/tools -prune -o -path $kerneldir/scripts -prune -o -name "*.[csS]" -exec rm '{}' \; + oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean _mrproper_scripts + + # hide directories that shouldn't have their .c, s and S files deleted + for d in tools scripts lib; do + mv $kerneldir/$d $kerneldir/.$d + done + + # delete .c, .s and .S files, unless we hid a directory as .<dir>. This technique is + # much faster than find -prune and -exec + find $kerneldir -not -path '*/\.*' -type f -name "*.[csS]" -delete + + # put the hidden dirs back + for d in tools scripts lib; do + mv $kerneldir/.$d $kerneldir/$d + done # As of Linux kernel version 3.0.1, the clean target removes # arch/powerpc/lib/crtsavres.o which is present in |