diff options
| author | Wolfgang Denk <wd@denx.de> | 2012-05-03 15:48:48 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-03-01 14:57:52 +0000 |
| commit | 8264863ea0674f6cb105f5f7301861408fdc409b (patch) | |
| tree | 02e19b8322da623014006f68a48c9c5218f93633 /meta/classes/kernel.bbclass | |
| parent | 86d6ec51f0e1a4f5335d72928ef14ea1335d49b0 (diff) | |
| download | poky-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.bbclass | 7 |
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}" | |||
| 57 | UBOOT_ENTRYPOINT ?= "20008000" | 57 | UBOOT_ENTRYPOINT ?= "20008000" |
| 58 | UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" | 58 | UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" |
| 59 | 59 | ||
| 60 | # Some Linux kenrel configurations need additional parameters on the command line | ||
| 61 | KERNEL_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 |
| 62 | EXTRA_OEMAKE = "" | 65 | EXTRA_OEMAKE = "" |
| @@ -71,7 +74,7 @@ KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.g | |||
| 71 | 74 | ||
| 72 | kernel_do_compile() { | 75 | kernel_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() { | |||
| 80 | do_compile_kernelmodules() { | 83 | do_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 |
