| Submitter | Wolfgang Denk |
|---|---|
| Date | April 29, 2012, 10:03 a.m. |
| Message ID | <1335693807-17609-1-git-send-email-wd@denx.de> |
| Download | mbox | patch |
| Permalink | /patch/26571/ |
| State | New |
| Headers | show |
Comments
On Sun, Apr 29, 2012 at 3:03 AM, Wolfgang Denk <wd@denx.de> wrote: > 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 > > 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. will EXTRA_OEMAKE = "..." work ?
Dear Khem Raj, In message <CAMKF1so3xwMOB30-yogUL9jCuHoTEsMgTDRxTLWKT_dYn-LkuQ@mail.gmail.com> you wrote: > > > 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. > > will EXTRA_OEMAKE = "..." work ? No, it will not, as "meta/classes/kernel.bbclass" explicitly ignores all EXTRA_OEMAKE settings: ... # For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE. # We don't want to override kernel Makefile variables from the environment EXTRA_OEMAKE = "" ... Best regards, Wolfgang Denk
Patch
diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass index 139bad9..7a554f0 100644 --- a/meta/classes/kernel.bbclass +++ b/meta/classes/kernel.bbclass @@ -71,6 +71,9 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" UBOOT_ENTRYPOINT ?= "20008000" UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}" +# Some Linux kenrel configurations need additional parameters on the command line +KERNEL_EXTRA_ARGS ?= "" + # For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE. # We don't want to override kernel Makefile variables from the environment EXTRA_OEMAKE = "" @@ -82,7 +85,7 @@ KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.g kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}" - oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" + oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}" fi
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 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. Signed-off-by: Wolfgang Denk <wd@denx.de> --- meta/classes/kernel.bbclass | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-)