summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel.bbclass
diff options
context:
space:
mode:
authorWolfgang Denk <wd@denx.de>2012-05-03 15:48:48 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-01 14:57:52 +0000
commit8264863ea0674f6cb105f5f7301861408fdc409b (patch)
tree02e19b8322da623014006f68a48c9c5218f93633 /meta/classes/kernel.bbclass
parent86d6ec51f0e1a4f5335d72928ef14ea1335d49b0 (diff)
downloadpoky-8264863ea0674f6cb105f5f7301861408fdc409b.tar.gz
Add KERNEL_EXTRA_ARGS parameter
With recent kernel versions, some ARM configurations need may fail to build with errors like this: multiple load addresses: 0x80008000 0x80008000 This is incompatible with uImages Specify LOADADDR on the commandline to build an uImage We cannot pass this information in EXTRA_OEMAKE, as "meta/classes/kernel.bbclass" explicitly ignores all EXTRA_OEMAKE settings. So add KERNEL_EXTRA_ARGS parameter so affected boards can add for example KERNEL_EXTRA_ARGS = "LOADADDR=0x80008000" to their configuration. We make this general enough so other needed command line options can be passed as well when compiling the kernel. (From OE-Core rev: e3cdd0aafb9081cd7f1f98490087c1157a3d7403) Signed-off-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/kernel.bbclass')
-rw-r--r--meta/classes/kernel.bbclass7
1 files changed, 5 insertions, 2 deletions
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 2bdc2fcdc5..5fe435681a 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -57,6 +57,9 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
57UBOOT_ENTRYPOINT ?= "20008000" 57UBOOT_ENTRYPOINT ?= "20008000"
58UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" 58UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
59 59
60# Some Linux kenrel configurations need additional parameters on the command line
61KERNEL_EXTRA_ARGS ?= ""
62
60# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE. 63# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE.
61# We don't want to override kernel Makefile variables from the environment 64# We don't want to override kernel Makefile variables from the environment
62EXTRA_OEMAKE = "" 65EXTRA_OEMAKE = ""
@@ -71,7 +74,7 @@ KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.g
71 74
72kernel_do_compile() { 75kernel_do_compile() {
73 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE 76 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
74 oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" 77 oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
75 if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then 78 if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
76 gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}" 79 gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
77 fi 80 fi
@@ -80,7 +83,7 @@ kernel_do_compile() {
80do_compile_kernelmodules() { 83do_compile_kernelmodules() {
81 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE 84 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
82 if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then 85 if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
83 oe_runmake ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" 86 oe_runmake ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
84 else 87 else
85 bbnote "no modules to compile" 88 bbnote "no modules to compile"
86 fi 89 fi