Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-02-04 Thread McClintock Matthew-B29882
On Sat, Jan 19, 2013 at 4:40 PM, Khem Raj raj.k...@gmail.com 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

 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}

Why change to ${CC} from ${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX}?

It breaks some kernel builds we have...

-M

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-02-04 Thread Khem Raj
On Mon, Feb 4, 2013 at 12:13 PM, McClintock Matthew-B29882
b29...@freescale.com wrote:
 +
 +KERNEL_CC = ${CC} ${HOST_CC_KERNEL_ARCH}

 Why change to ${CC} from ${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX}?

 It breaks some kernel builds we have...

you did not tell what exactly breaks.

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-02-04 Thread McClintock Matthew-B29882
On Mon, Feb 4, 2013 at 4:51 PM, Khem Raj raj.k...@gmail.com wrote:
 On Mon, Feb 4, 2013 at 12:13 PM, McClintock Matthew-B29882
 b29...@freescale.com wrote:
 +
 +KERNEL_CC = ${CC} ${HOST_CC_KERNEL_ARCH}

 Why change to ${CC} from ${CCACHE}${HOST_PREFIX}gcc${KERNEL_CCSUFFIX}?

 It breaks some kernel builds we have...

 you did not tell what exactly breaks.

Shame on me. Our kernel gets built wrong if we pass the extra -march
or -mtune to the compiler during the kernel build. It might be
exposing another issue but not sure exactly. I need to dig up a log so
I can send that over later. Here was my fix:

http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=mattsm/masterid=f008446117106831585ed371453d1f052cdfd9eb

-M

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-23 Thread Andrea Adami
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
 

Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Enrico Scholz
Khem Raj raj.khem-re5jqeeqqe8avxtiumw...@public.gmane.org writes:

 +KERNEL_LD = ${LD} ${HOST_LD_KERNEL_ARCH}
 ...
 -KERNEL_LD = ${HOST_PREFIX}ld${KERNEL_LDSUFFIX} 
 ${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}

that's bad... gold linker has serious problems to compile stuff like
kernel or bootloaders and setting 'KERNEL_LDSUFFIX = .bfd' was a good
way to workaround these problems.



Enrico

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Khem Raj

On 1/22/13 7:41 AM, Enrico Scholz wrote:

Khem Raj raj.khem-re5jqeeqqe8avxtiumw...@public.gmane.org writes:


+KERNEL_LD = ${LD} ${HOST_LD_KERNEL_ARCH}
...
-KERNEL_LD = ${HOST_PREFIX}ld${KERNEL_LDSUFFIX} 
${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}


that's bad... gold linker has serious problems to compile stuff like
kernel or bootloaders and setting 'KERNEL_LDSUFFIX = .bfd' was a good
way to workaround these problems.



This was not the intended use of KERNEL_LD IMO.
There are is than kernel that does not go well when using gold, I think 
the right approach would be to check ld-is-gold being present in 
DISTRO_FEATURES and appending '.bfd' to LD variable like other recipes do





Enrico




___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Khem Raj

On 1/22/13 7:41 AM, Enrico Scholz wrote:

Khem Raj raj.khem-re5jqeeqqe8avxtiumw...@public.gmane.org writes:


+KERNEL_LD = ${LD} ${HOST_LD_KERNEL_ARCH}
...
-KERNEL_LD = ${HOST_PREFIX}ld${KERNEL_LDSUFFIX} 
${HOST_LD_KERNEL_ARCH}${TOOLCHAIN_OPTIONS}


that's bad... gold linker has serious problems to compile stuff like
kernel or bootloaders and setting 'KERNEL_LDSUFFIX = .bfd' was a good
way to workaround these problems.



something like this patch here

http://git.openembedded.org/openembedded-core-contrib/commit/?h=kraj/miscid=70b3efc5fc4b31f8ad17c23e77e80cb6abcac258

should work for you. Can you try it out ?




Enrico




___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Darren Hart


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?

--
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


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Khem Raj
On Tue, Jan 22, 2013 at 12:44 PM, Darren Hart dvh...@linux.intel.com wrote:

 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?

little but then I did not propose it for inclusion into master yet so
why worry ?

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Khem Raj
On Tue, Jan 22, 2013 at 1:50 PM, Darren Hart dvh...@linux.intel.com wrote:
 I assumed that would be the target eventually - is that not the case?

yes when we have tested it
However, I don’t see any other better way of coping with the case where we
would like to use gold as default linker distrowide. One could cook up
a patch for kernel
to demand ld.bfd always like I did for uboot but we have way too many kernels
to patch. I am open for other suggestions.

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-22 Thread Darren Hart


On 01/22/2013 02:12 PM, Khem Raj wrote:
 On Tue, Jan 22, 2013 at 1:50 PM, Darren Hart dvh...@linux.intel.com wrote:
 I assumed that would be the target eventually - is that not the case?
 
 yes when we have tested it
 However, I don’t see any other better way of coping with the case where we
 would like to use gold as default linker distrowide. One could cook up
 a patch for kernel
 to demand ld.bfd always like I did for uboot but we have way too many kernels
 to patch. I am open for other suggestions.
 

I don't object to the approach, I was just wanting to boost my
confidence level with testing results. Sounds like that's coming, and I
should probably do some runs myself.

-- 
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


[OE-core] [PATCH 1/4] kernel.bbclass, module-base.bbclass: Use CC to form KERNEL_CC

2013-01-19 Thread Khem Raj
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

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}
-- 
1.7.9.5


___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core