I am trying to build the kernel(v4.3) for a 32 bit architecture. I use a custom 
linux kernel recipe and do not use any defconfig file explicitly. I expect 
yocto to assume the right config file based on the MACHINE variable specified.
The config file is generated by this command in the configme script:
make ARCH=$KARCH O=$BUILD_DIR \
            KBUILD_DEFCONFIG=../../../$META_DIR/cfg/$KTGT/$CFGFILE \
            defconfig > $META_DIR/cfg/$KTGT/config.log 2>&1

In this case, KARCH is set to x86, which leads to the expansion of make 
ARCH=x86 defconfig, which takes the x86-64 defconfig, and thus gives an error 
while compiling. I also use a config fragment which has the configs required to 
build a particular test suite.

On the other hand, when we build linux-yocto, the KARCH is set to i386, which 
results in make ARCH=i386 defconfig and a 32 bit config file. Hence ,there is 
no error.

Is there some other way to ensure a 32 bit config is generated when a 32 bit 
MACHINE type is selected?

-----Original Message-----
From: Saul Wold [mailto:s...@linux.intel.com] 
Sent: Tuesday, January 5, 2016 9:45 PM
To: Ashfield, Bruce (Wind River) <bruce.ashfi...@windriver.com>; Dey, Megha 
<megha....@intel.com>; linux-yocto@yoctoproject.org
Cc: Ricardo Neri <ricardo.neri-calde...@linux.intel.com>
Subject: Re: [linux-yocto] [PATCH] configme : Match KARCH onto kernel.org arch

On Tue, 2016-01-05 at 23:16 -0500, Bruce Ashfield wrote:
> On 2016-01-05 5:12 PM, Megha Dey wrote:
> > When qemux86 is selected as MACHINE type, and a custom linux kernel 
> > is built, yocto assumes KARCH to be x86. This leads to a 64 bit 
> > config file getting generated instead of a 32 bit one. Hence, always 
> > make KARCH as i386 when a 32 bit MACHINE type is selected.
> > 
> > Signed-off-by: Megha Dey <megha....@intel.com>
> > ---
> >   tools/configme | 3 +++
> >   1 file changed, 3 insertions(+)
> > 
> > diff --git a/tools/configme b/tools/configme index 903b3c1..9651280 
> > 100755
> > --- a/tools/configme
> > +++ b/tools/configme
> > @@ -201,6 +201,9 @@ run_board_config()
> >       if [ $KARCH == "mips64" ]; then
> >     KARCH=mips
> >       fi
> > +    if [ $KARCH == "x86" ]; then
> > +   KARCH=i386
> 
> i386 is obsolete, and x86 should be used with the appropriate
> 32 bit configs.
> 
> I purged all i386 references quite some time ago, since they can 
> trigger other subtle errors.
> 
> Can you elaborate on what exactly what you are building, and what 
> fragments are in play that a 64 bit kernel is being generated 
> incorrectly ? We always go out of our way to specify
> 32 or 64 bit for that reason.
> 
Is this similar to the problem that Jianxun encountered and sent a patch before 
the break to the OE-Core list 
http://lists.openembedded.org/pipermail/openembedded-core/2015-December
/113708.html

It looks very close, we are working on validating this patch with a 
lttng-modules failures first.


Sau!


> Bruce
> 
> > +    fi
> > 
> >       if [ -z "$BUILD_DIR" ]; then
> >     echo No build dir specified.  Use \"-o\" to specify one.
> > 
> 
-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to