From e1784529589c89450f45451ab99a18b28485ed5a Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Fri, 15 Apr 2011 08:03:02 +0000 Subject: kernel.bbclass: pass AR, NM and OBJCOPY to make - Fixes build with certain vendor-supplied Montavista kernels. - Pass the same set of variables to every invocation of make. - Create KERNEL_*SUFFIX, TARGET_*_KERNEL_ARCH and HOST_*_KERNEL_ARCH for the three variables, analogue to LD. Signed-off-by: Andreas Oberritter Acked-by: Phil Blundell --- classes/kernel.bbclass | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'classes') diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index d2ac730958..8817186270 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -44,19 +44,39 @@ KERNEL_PRIORITY = "${@bb.data.getVar('PV',d,1).split('-')[0].split('.')[-1]}" KERNEL_RELEASE ?= "${KERNEL_VERSION}" +KERNEL_ARSUFFIX ?= "" KERNEL_CCSUFFIX ?= "" KERNEL_LDSUFFIX ?= "" +KERNEL_NMSUFFIX ?= "" +KERNEL_OBJCOPYSUFFIX ?= "" # Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture # specific options necessary for building the kernel and modules. #FIXME: should be this: TARGET_CC_KERNEL_ARCH ?= "${TARGET_CC_ARCH}" +TARGET_AR_KERNEL_ARCH ?= "" +HOST_AR_KERNEL_ARCH ?= "${TARGET_AR_KERNEL_ARCH}" TARGET_CC_KERNEL_ARCH ?= "" HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" TARGET_LD_KERNEL_ARCH ?= "" HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" +TARGET_NM_KERNEL_ARCH ?= "" +HOST_NM_KERNEL_ARCH ?= "${TARGET_NM_KERNEL_ARCH}" +TARGET_OBJCOPY_KERNEL_ARCH ?= "" +HOST_OBJCOPY_KERNEL_ARCH ?= "${TARGET_OBJCOPY_KERNEL_ARCH}" +KERNEL_AR = "${AR}${KERNEL_ARSUFFIX} ${HOST_AR_KERNEL_ARCH}" KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} ${HOST_CC_KERNEL_ARCH}" KERNEL_LD = "${LD}${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}" +KERNEL_NM = "${NM}${KERNEL_NMSUFFIX} ${HOST_NM_KERNEL_ARCH}" +KERNEL_OBJCOPY = "${OBJCOPY}${KERNEL_OBJCOPYSUFFIX} ${HOST_OBJCOPY_KERNEL_ARCH}" + +KERNEL_EXTRA_OEMAKE = " \ + AR='${KERNEL_AR}' \ + CC='${KERNEL_CC}' \ + LD='${KERNEL_LD}' \ + NM='${KERNEL_NM}' \ + OBJCOPY='${KERNEL_OBJCOPY}' \ +" # Where built kernel lies in the kernel tree KERNEL_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}" @@ -85,17 +105,17 @@ EXTRA_OEMAKE = "" kernel_do_compile() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE - oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}" + oe_runmake include/linux/version.h ${KERNEL_EXTRA_OEMAKE} if [ "${KERNEL_MAJOR_VERSION}" != "2.6" ]; then - oe_runmake dep CC="${KERNEL_CC}" LD="${KERNEL_LD}" + oe_runmake dep ${KERNEL_EXTRA_OEMAKE} fi - oe_runmake ${KERNEL_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" + oe_runmake ${KERNEL_IMAGETYPE} ${KERNEL_EXTRA_OEMAKE} } do_compile_kernelmodules() { unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then - oe_runmake modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" + oe_runmake modules ${KERNEL_EXTRA_OEMAKE} else oenote "no modules to compile" fi -- cgit 1.2.3-korg