[yocto] Warnings using Yocto1.4(M3) when building kernel modules for Atom arch

Letnes, Thaddeus C thaddeus.c.letnes at intel.com
Mon Mar 4 16:17:37 PST 2013


I have several recipes for kernel modules that are raising the following error:

error: SSE instruction set disabled, using 387 arithmetics [-Werror]

in these recipes ${CC} is being reported as: "i586-poky-linux-gcc  -m32    -march=core2 -msse3 -mtune=generic -mfpmath=sse --sysroot=/proj/build/tmp/sysroots/proj "

My question is, am I encountering a new bug in Yocto 1.4, or are my recipes incorrect?



Obviously the error is arising because there was a warning that SSE should not be used, but is specified in ${CC}. I have traced this back and find that:

(this part is the same in 1.3 and 1.4)
conf/machine/include/tune-atom.inc includes:
conf/machine/include/tune-core2.inc which sets:
TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "core2", "-march=core2 -msse3 -mtune=generic -mfpmath=sse", "", d)}"

(this part has changed)
meta/conf/bitbake.conf sets:
TUNE_CCARGS[vardepvalue] = "${TUNE_CCARGS}"
This was changed in the following commit:
Revision: 7cbc3cf64bf68138fbbbb8bcae76ecd22d583c98
Author: Martin Jansa <Martin.Jansa at gmail.com<mailto:Martin.Jansa at gmail.com>>
Date: 9/22/2012 5:08:13 AM
Message:
bitbake.conf: add TUNE_CCARGS[vardepvalue]

* we don't care about expression but value
* e.g. tune-xscale and tune-arm926ejs have different expression
  in TUNE_CCARGS but with the same DEFAULTTUNE the result is the same
  http://lists.linuxtogo.org/pipermail/openembedded-core/2012-September/030032.html

(From OE-Core rev: 03f1e34ea3ce80931e9c3cd2ab22824f28a7233b)

Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com<mailto:Martin.Jansa at gmail.com>>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org<mailto:richard.purdie at linuxfoundation.org>>
----
Modified: meta/conf/bitbake.conf


(this part is the same in 1.3 and 1.4)
meta/conf/bitbake.conf sets:
TARGET_CC_ARCH = "${TUNE_CCARGS}"

meta/classes/toolchain-scripts.bbclass writes scripts that set:
CC="${TARGET_PREFIX}gcc ${TARGET_CC_ARCH} --sysroot=<script dependent path>"

The result is (in my case) that we are building kernel modules with invalid options.

It is not clear to me why TUNE_CCARGS[vardepvalue] would be used to replace ${TUNE_CCARGS}, but it seems to be what is happening.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20130305/a5bc78b1/attachment.html>


More information about the yocto mailing list