[OE-core] [PATCH 09/10] x86 tune inc files: add x32 abi tune parameters

Kamble, Nitin A nitin.a.kamble at intel.com
Fri Aug 5 15:37:24 UTC 2011



> -----Original Message-----
> From: openembedded-core-bounces at lists.openembedded.org
> [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf Of
> Phil Blundell
> Sent: Friday, August 05, 2011 12:51 AM
> To: Patches and discussions about the oe-core layer
> Subject: Re: [OE-core] [PATCH 09/10] x86 tune inc files: add x32 abi
> tune parameters
> 
> On Thu, 2011-08-04 at 15:18 -0700, Kamble, Nitin A wrote:
> >
> > > -----Original Message-----
> > > From: openembedded-core-bounces at lists.openembedded.org
> > > [mailto:openembedded-core-bounces at lists.openembedded.org] On Behalf
> Of
> > > Phil Blundell
> > > Sent: Thursday, August 04, 2011 2:57 PM
> > > To: Patches and discussions about the oe-core layer
> > > Subject: Re: [OE-core] [PATCH 09/10] x86 tune inc files: add x32
> abi
> > > tune parameters
> > >
> > > On Thu, 2011-08-04 at 08:01 -0700, nitin.a.kamble at intel.com wrote:
> > > >  # ELF32 ABI
> > > >  TUNEVALID[m32] = "IA32 ELF32 standard ABI"
> > > > -TUNECONFLICTS[m32] = "m64"
> > > > +TUNECONFLICTS[m32] = "m64 mx32"
> > > >  TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32",
> > > "${X86ARCH32}", "" ,d)}"
> > > > +ABIEXTENSION .= "${@bb.utils.contains("TUNE_FEATURES", "m32",
> "32",
> > > "" ,d)}"
> > > >  TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "m32", "-
> m32",
> > > "", d)}"
> > >
> > > This is going to cause TARGET_OS to change for everyone using the
> i586
> > > ABI, right?  That doesn't seem like it is either necessary or
> > > desirable,
> > > and it isn't mentioned in the checkin comment either.
> >
> > Correct, this will change the TARGET_OS from linux_gnu to
> linux_gnu32. And it is also applicable for x86-64 machine set with x86
> tune. This change is be needed if multiple tunes are built from the
> same build directory. If such situation is not important then the
> ABIEXTENSION part can be dropped.
> 
> Well, if you build i686 and x32 in the same tree they will already be
> disambiguated through TARGET_ARCH.  Likewise i686 and x86-64 already
> works for the same reason.  So, the only possible conflict is between
> x86-64 and x32, and setting ABIEXTENSION for x32 (only) would be
> sufficient to avoid that.
> 
Now for TARGET_ARCH=x86_64 there are multiple targets, one is 64bit, another 
is x32 and yet another is 32. This is new addition due to multilib changes. 
To distinguish the these different ABI target, TARGET_OS is appended with 
the ABIEXTENSION.

> Though, I do wonder whether x32 ought to just have its own TARGET_ARCH
> value rather than trying to disambiguate it through TARGET_OS hackery.


Changing TARGET_ARCH is not correct way to handle it. Because HW/ARCH is 
not different, the difference is in the ABI of the OS. And also changing 
TARGET_ARCH would bring lot of other changes in recipes and classes in the 
Tree.

Thanks,
Nitin

> 
> p.
> 
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core




More information about the Openembedded-core mailing list