summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@linux.intel.com>2010-08-10 14:47:41 +0100
committerRichard Purdie <rpurdie@linux.intel.com>2010-08-10 14:47:41 +0100
commitd3630f81747157198316fef874d59f9f120969d4 (patch)
treefa4428e0ff8a726e670775a6cc242b02310b2f32
parent708db1ef52a49098a0ab7972211b9beac74d7654 (diff)
downloadpoky-d3630f81747157198316fef874d59f9f120969d4.tar.gz
kernel/package.bbclass: Handle kernel module stripping centrally
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
-rw-r--r--meta/classes/kernel.bbclass4
-rw-r--r--meta/classes/module_strip.bbclass22
-rw-r--r--meta/classes/package.bbclass4
-rw-r--r--meta/packages/linux/linux-wrs_git.bb2
4 files changed, 6 insertions, 26 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 3963e38eb8..1390afce3f 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -218,15 +218,13 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
218 218
219# kernel-base becomes kernel-${KERNEL_VERSION} 219# kernel-base becomes kernel-${KERNEL_VERSION}
220# kernel-image becomes kernel-image-${KERNEL_VERISON} 220# kernel-image becomes kernel-image-${KERNEL_VERISON}
221PACKAGES = "kernel kernel-base kernel-image kernel-dev kernel-vmlinux kernel-misc kernel-dbg" 221PACKAGES = "kernel kernel-base kernel-image kernel-dev kernel-vmlinux kernel-misc"
222FILES = "" 222FILES = ""
223FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*" 223FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
224FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*" 224FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config*"
225FILES_kernel-vmlinux = "/boot/vmlinux*" 225FILES_kernel-vmlinux = "/boot/vmlinux*"
226# misc is a package to contain files we need in staging 226# misc is a package to contain files we need in staging
227FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media" 227FILES_kernel-misc = "/kernel/include/config /kernel/scripts /kernel/drivers/crypto /kernel/drivers/media"
228# We don't care about dbg files for the kernel but split them out here to keep the packaging clean
229FILES_kernel-dbg = "/lib/modules/${KERNEL_VERSION}/kernel/*/*/.debug /lib/modules/${KERNEL_VERSION}/kernel/*/.debug /lib/modules/${KERNEL_VERSION}/kernel/*/*/*/.debug"
230RDEPENDS_kernel = "kernel-base" 228RDEPENDS_kernel = "kernel-base"
231# Allow machines to override this dependency if kernel image files are 229# Allow machines to override this dependency if kernel image files are
232# not wanted in images as standard 230# not wanted in images as standard
diff --git a/meta/classes/module_strip.bbclass b/meta/classes/module_strip.bbclass
index 7636f1f403..e69de29bb2 100644
--- a/meta/classes/module_strip.bbclass
+++ b/meta/classes/module_strip.bbclass
@@ -1,22 +0,0 @@
1#DEPENDS_append = " module-strip"
2
3do_strip_modules () {
4 for p in ${PACKAGES}; do
5 if test -e ${WORKDIR}/install/$p/lib/modules; then
6 modules="`find ${WORKDIR}/install/$p/lib/modules -name \*${KERNEL_OBJECT_SUFFIX}`"
7 if [ -n "$modules" ]; then
8 for module in $modules ; do
9 if ! [ -d "$module" ] ; then
10 ${STRIP} -v -g $module
11 fi
12 done
13# NM="${STAGING_BINDIR_NATIVE}/${HOST_PREFIX}nm" OBJCOPY="${STAGING_BINDIR_NATIVE}/${HOST_PREFIX}objcopy" strip_module $modules
14 fi
15 fi
16 done
17}
18
19python do_package_append () {
20 if (bb.data.getVar('INHIBIT_PACKAGE_STRIP', d, 1) != '1'):
21 bb.build.exec_func('do_strip_modules', d)
22}
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 8611d94774..d8e480f1ff 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -155,6 +155,10 @@ def runstrip(file, d):
155 strip = bb.data.getVar("STRIP", d, True) 155 strip = bb.data.getVar("STRIP", d, True)
156 objcopy = bb.data.getVar("OBJCOPY", d, True) 156 objcopy = bb.data.getVar("OBJCOPY", d, True)
157 157
158 # Handle kernel modules specifically - .debug directories here are pointless
159 if file.find("/lib/modules/") != -1 and file.endswith(".ko"):
160 return os.system("%s'%s' -g --remove-section=.comment --remove-section=.note '%s'" % (pathprefix, strip, file))
161
158 newmode = None 162 newmode = None
159 if not os.access(file, os.W_OK): 163 if not os.access(file, os.W_OK):
160 origmode = os.stat(file)[stat.ST_MODE] 164 origmode = os.stat(file)[stat.ST_MODE]
diff --git a/meta/packages/linux/linux-wrs_git.bb b/meta/packages/linux/linux-wrs_git.bb
index 930c903c44..72ceb74291 100644
--- a/meta/packages/linux/linux-wrs_git.bb
+++ b/meta/packages/linux/linux-wrs_git.bb
@@ -24,7 +24,7 @@ COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips)"
24 24
25LINUX_VERSION = "v2.6.34" 25LINUX_VERSION = "v2.6.34"
26LINUX_VERSION_EXTENSION = "-wr-${LINUX_KERNEL_TYPE}" 26LINUX_VERSION_EXTENSION = "-wr-${LINUX_KERNEL_TYPE}"
27PR = "r4" 27PR = "r5"
28 28
29S = "${WORKDIR}/linux" 29S = "${WORKDIR}/linux"
30B = "${WORKDIR}/linux-${WRMACHINE}-${LINUX_KERNEL_TYPE}-build" 30B = "${WORKDIR}/linux-${WRMACHINE}-${LINUX_KERNEL_TYPE}-build"