On Tue, Jan 22, 2013 at 9:44 PM, Darren Hart <dvh...@linux.intel.com> wrote: > > > On 01/19/2013 02:40 PM, Khem Raj wrote: >> kernel compiler is not special and we currently have it so >> we want to pass -march and -mtune options as CFLAGS to kernel >> build so that compiler picks the right subarch flags when >> compiling assembly files in particular. Otherwise defaults >> are chosen which may not be right in many case e.g. when >> compiling kernel for collie machine we should use arch=armv4 >> but it uses toolchain/as defaults which is armv5te >> >> in some case e.g. thumb1 we know that kernel can not be compiled >> in thumb1 mode so we can provide that information e.g. -marm >> option through KERNEL_HOST_CC_ARCH variable as we do now >> > > Makes me nervous... only because I'm not well versed enough across the > architectures to catch some little gotchas. How much testing has this > seen? Which architectures? >
I've built and booted kernels for strongarm/armv4) and for pxa/armv5te. Andrea > -- > Darren > >> Signed-off-by: Khem Raj <raj.k...@gmail.com> >> --- >> meta/classes/kernel-arch.bbclass | 13 +++++++++++++ >> meta/classes/kernel.bbclass | 16 +--------------- >> meta/classes/module-base.bbclass | 16 ---------------- >> 3 files changed, 14 insertions(+), 31 deletions(-) >> >> diff --git a/meta/classes/kernel-arch.bbclass >> b/meta/classes/kernel-arch.bbclass >> index b3b78b6..a51e82b 100644 >> --- a/meta/classes/kernel-arch.bbclass >> +++ b/meta/classes/kernel-arch.bbclass >> @@ -43,3 +43,16 @@ def map_uboot_arch(a, d): >> >> export UBOOT_ARCH = "${@map_uboot_arch(d.getVar('ARCH', True), d)}" >> >> +# Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture >> +# specific options necessary for building the kernel and modules. >> +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_AR_KERNEL_ARCH ?= "" >> +HOST_AR_KERNEL_ARCH ?= "${TARGET_AR_KERNEL_ARCH}" >> + >> +KERNEL_CC = "${CC} ${HOST_CC_KERNEL_ARCH}" >> +KERNEL_LD = "${LD} ${HOST_LD_KERNEL_ARCH}" >> +KERNEL_AR = "${AR} ${HOST_AR_KERNEL_ARCH}" >> + >> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass >> index d459569..e2a582b 100644 >> --- a/meta/classes/kernel.bbclass >> +++ b/meta/classes/kernel.bbclass >> @@ -1,7 +1,7 @@ >> inherit linux-kernel-base module_strip >> >> PROVIDES += "virtual/kernel" >> -DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native >> virtual/${TARGET_PREFIX}gcc${KERNEL_CCSUFFIX}" >> +DEPENDS += "virtual/${TARGET_PREFIX}gcc kmod-native" >> >> # we include gcc above, we dont need virtual/libc >> INHIBIT_DEFAULT_DEPS = "1" >> @@ -37,20 +37,6 @@ KERNEL_PRIORITY ?= >> "${@int(d.getVar('PV',1).split('-')[0].split('+')[0].split('. >> >> KERNEL_RELEASE ?= "${KERNEL_VERSION}" >> >> -KERNEL_CCSUFFIX ?= "" >> -KERNEL_LDSUFFIX ?= "" >> - >> -# 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_CC_KERNEL_ARCH ?= "" >> -HOST_CC_KERNEL_ARCH ?= "${TARGET_CC_KERNEL_ARCH}" >> -TARGET_LD_KERNEL_ARCH ?= "" >> -HOST_LD_KERNEL_ARCH ?= "${TARGET_LD_KERNEL_ARCH}" >> - >> -KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} >> ${HOST_CC_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" >> -KERNEL_LD = "${HOST_PREFIX}ld${KERNEL_LDSUFFIX} >> ${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}" >> - >> # Where built kernel lies in the kernel tree >> KERNEL_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_IMAGETYPE}" >> KERNEL_IMAGEDEST = "boot" >> diff --git a/meta/classes/module-base.bbclass >> b/meta/classes/module-base.bbclass >> index 210c47c..cfee50a 100644 >> --- a/meta/classes/module-base.bbclass >> +++ b/meta/classes/module-base.bbclass >> @@ -7,22 +7,6 @@ export CROSS_COMPILE = "${TARGET_PREFIX}" >> >> export KERNEL_VERSION = >> "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')}" >> KERNEL_OBJECT_SUFFIX = ".ko" >> -KERNEL_CCSUFFIX = >> "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-ccsuffix')}" >> -KERNEL_LDSUFFIX = >> "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-ldsuffix')}" >> -KERNEL_ARSUFFIX = >> "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-arsuffix')}" >> - >> -# Set TARGET_??_KERNEL_ARCH in the machine .conf to set architecture >> -# specific options necessary for building the kernel and modules. >> -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_AR_KERNEL_ARCH ?= "" >> -HOST_AR_KERNEL_ARCH ?= "${TARGET_AR_KERNEL_ARCH}" >> - >> -KERNEL_CC = "${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX} >> ${HOST_CC_KERNEL_ARCH}" >> -KERNEL_LD = "${HOST_PREFIX}ld${KERNEL_LDSUFFIX} ${HOST_LD_KERNEL_ARCH}" >> -KERNEL_AR = "${HOST_PREFIX}ar${KERNEL_ARSUFFIX} ${HOST_AR_KERNEL_ARCH}" >> >> # kernel modules are generally machine specific >> PACKAGE_ARCH = "${MACHINE_ARCH}" >> > > -- > Darren Hart > Intel Open Source Technology Center > Yocto Project - Technical Lead - Linux Kernel > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core