All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
@ 2009-08-29  0:00 Khem Raj
  2009-08-29  2:02 ` Tom Rini
  2009-08-29  8:14 ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = " Phil Blundell
  0 siblings, 2 replies; 40+ messages in thread
From: Khem Raj @ 2009-08-29  0:00 UTC (permalink / raw)
  To: openembedded-devel

Target triplet powerpc-*-linux-gnuspe is chosen for machines with SPE
which is e500 cores.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 conf/distro/include/sane-toolchain-eglibc.inc |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 88719f5..6b66679 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -5,6 +5,8 @@
 
 TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
 
+TARGET_OS = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
+
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
-- 
1.6.3.3




^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  0:00 [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500 Khem Raj
@ 2009-08-29  2:02 ` Tom Rini
  2009-08-29  7:50   ` Khem Raj
  2009-08-29  8:14 ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = " Phil Blundell
  1 sibling, 1 reply; 40+ messages in thread
From: Tom Rini @ 2009-08-29  2:02 UTC (permalink / raw)
  To: openembedded-devel

On Fri, Aug 28, 2009 at 05:00:44PM -0700, Khem Raj wrote:

> Target triplet powerpc-*-linux-gnuspe is chosen for machines with SPE
> which is e500 cores.

Two things.  First, doesn't that override the previous TARGET_OS?  Or
did I miss some magic in there to use the previous result?  Second, can
we trigger this on something other than the machine list?  This will get
larger, not smaller.  BASE_PACKAGE_ARCH perhaps?  Or would that not be
allowed?

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  2:02 ` Tom Rini
@ 2009-08-29  7:50   ` Khem Raj
  2009-08-30  1:22     ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-08-29  7:50 UTC (permalink / raw)
  To: openembedded-devel

On Fri, Aug 28, 2009 at 7:02 PM, Tom Rini<trini@embeddedalley.com> wrote:
> On Fri, Aug 28, 2009 at 05:00:44PM -0700, Khem Raj wrote:
>
>> Target triplet powerpc-*-linux-gnuspe is chosen for machines with SPE
>> which is e500 cores.
>
> Two things.  First, doesn't that override the previous TARGET_OS?  Or
> did I miss some magic in there to use the previous result?

hmm yes it wil if it is linux-gnueabi then the second assignment will
reset it to linux

Discard it.  I think we need something better

Second, can
> we trigger this on something other than the machine list?  This will get
> larger, not smaller.  BASE_PACKAGE_ARCH perhaps?  Or would that not be
> allowed?

yeah sounds a better idea let me look into it a bit.

>
> --
> Tom Rini
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  0:00 [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500 Khem Raj
  2009-08-29  2:02 ` Tom Rini
@ 2009-08-29  8:14 ` Phil Blundell
  2009-08-29  8:33   ` Khem Raj
  1 sibling, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-08-29  8:14 UTC (permalink / raw)
  To: openembedded-devel

On Fri, 2009-08-28 at 17:00 -0700, Khem Raj wrote:
> Target triplet powerpc-*-linux-gnuspe is chosen for machines with SPE
> which is e500 cores.
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
>  conf/distro/include/sane-toolchain-eglibc.inc |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
> index 88719f5..6b66679 100644
> --- a/conf/distro/include/sane-toolchain-eglibc.inc
> +++ b/conf/distro/include/sane-toolchain-eglibc.inc
> @@ -5,6 +5,8 @@
>  
>  TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
>  
> +TARGET_OS = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
> +

This change looks like it will break the -gnueabi thing on ARM, which
presumably isn't intended.

Also, is this really specific to eglibc?  Per our conversation on IRC
the other day, I kind of feel that this sort of logic belongs somewhere
else; it seems somewhat inappropriate for sane-toolchain-xx.inc to be
frobbing fundamental variables like TARGET_OS in this way.

p.




^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  8:14 ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = " Phil Blundell
@ 2009-08-29  8:33   ` Khem Raj
  2009-08-29  8:53     ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-08-29  8:33 UTC (permalink / raw)
  To: openembedded-devel

On Sat, Aug 29, 2009 at 1:14 AM, Phil Blundell<philb@gnu.org> wrote:
> On Fri, 2009-08-28 at 17:00 -0700, Khem Raj wrote:
>> Target triplet powerpc-*-linux-gnuspe is chosen for machines with SPE
>> which is e500 cores.
>>
>> Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> ---
>>  conf/distro/include/sane-toolchain-eglibc.inc |    2 ++
>>  1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
>> index 88719f5..6b66679 100644
>> --- a/conf/distro/include/sane-toolchain-eglibc.inc
>> +++ b/conf/distro/include/sane-toolchain-eglibc.inc
>> @@ -5,6 +5,8 @@
>>
>>  TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
>>
>> +TARGET_OS = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
>> +
>
> This change looks like it will break the -gnueabi thing on ARM, which
> presumably isn't intended.

yes indeed see my previous reply
>
> Also, is this really specific to eglibc?  Per our conversation on IRC
> the other day, I kind of feel that this sort of logic belongs somewhere
> else; it seems somewhat inappropriate for sane-toolchain-xx.inc to be
> frobbing fundamental variables like TARGET_OS in this way.

TARGET_OS is really equivalent of TARGET_TRIPLET here and it is tied
to system C library you choose.
so logically it seems ok to me. You can also define it in distro confs but then
you have to check like if LIBC == uclibc do one thing  else LIBC =
glibc do other thing

Thx

-Khem

>

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  8:33   ` Khem Raj
@ 2009-08-29  8:53     ` Phil Blundell
  2009-08-29 14:30       ` Koen Kooi
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-08-29  8:53 UTC (permalink / raw)
  To: openembedded-devel

On Sat, 2009-08-29 at 01:33 -0700, Khem Raj wrote:
> TARGET_OS is really equivalent of TARGET_TRIPLET here and it is tied
> to system C library you choose.
> so logically it seems ok to me. You can also define it in distro confs but then
> you have to check like if LIBC == uclibc do one thing  else LIBC =
> glibc do other thing

Well, I dunno.  It seems like there are three parts to this
determination, really:

1) does the target hardware support SPE?
2) does the toolchain support it?
3) does the distro want to use it?

Of those, it seems fairly clear that (1) belongs in MACHINE.conf or some
similar place, and (3) belongs in DISTRO.conf or some part of it.  The
only one of these that's really tied to the C library would seem to be
(2), and even there I would have thought it would be better for the libc
to just raise an error if it doesn't support the selected options rather
than trying to guess what they should be.

The same thing applies to the ARM EABI, incidentally: the choice of
whether to use EABI or the old ABI ought to be one that's made primarily
(or entirely) by the DISTRO.  The current situation where parts of the
toolchain are guessing whether or not the EABI is wanted, based on
${MACHINE}, is somewhat unsatisfactory: it'd be perfectly legitimate,
for example, for a DISTRO to want to use eabi on h3900.  The current
EABI logic that resides in sane-toolchain-xxx.inc seems like it is
really a misplaced piece of Angstrom policy.

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  8:53     ` Phil Blundell
@ 2009-08-29 14:30       ` Koen Kooi
  2009-08-29 17:08         ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Koen Kooi @ 2009-08-29 14:30 UTC (permalink / raw)
  To: openembedded-devel

On 29-08-09 10:53, Phil Blundell wrote:
> The current
> EABI logic that resides in sane-toolchain-xxx.inc seems like it is
> really a misplaced piece of Angstrom policy.

Angstrom does not use the sane-toolchain stuff. The sane-toolchain thing 
is a misguided unilateral attempt to 'unify' OE distros. As you point 
out, it forces way too much policy onto it's users.




^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29 14:30       ` Koen Kooi
@ 2009-08-29 17:08         ` Khem Raj
  0 siblings, 0 replies; 40+ messages in thread
From: Khem Raj @ 2009-08-29 17:08 UTC (permalink / raw)
  To: openembedded-devel

On Sat, Aug 29, 2009 at 7:30 AM, Koen Kooi<k.kooi@student.utwente.nl> wrote:
> On 29-08-09 10:53, Phil Blundell wrote:
>>
>> The current
>> EABI logic that resides in sane-toolchain-xxx.inc seems like it is
>> really a misplaced piece of Angstrom policy.
>
> Angstrom does not use the sane-toolchain stuff. The sane-toolchain thing is
> a misguided unilateral attempt to 'unify' OE distros. As you point out, it
> forces way too much policy onto it's users.

in general its hard to put a toolchain together rightly. So in a way
it will help the users I think.
distros are free to use these. They may decide not to use it. Its
fine. I think distros should
be able to build upon sanetoolchains it will be simpler for them
instead of pulling bits together
themselves.



>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-29  7:50   ` Khem Raj
@ 2009-08-30  1:22     ` Khem Raj
  2009-08-30  8:10       ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-08-30  1:22 UTC (permalink / raw)
  To: openembedded-devel

On (29/08/09 00:50), Khem Raj wrote:
> On Fri, Aug 28, 2009 at 7:02 PM, Tom Rini<trini@embeddedalley.com> wrote:
> > On Fri, Aug 28, 2009 at 05:00:44PM -0700, Khem Raj wrote:
> >
> >> Target triplet powerpc-*-linux-gnuspe is chosen for machines with SPE
> >> which is e500 cores.
> >
> > Two things.  First, doesn't that override the previous TARGET_OS?  Or
> > did I miss some magic in there to use the previous result?
> 
> hmm yes it wil if it is linux-gnueabi then the second assignment will
> reset it to linux
> 
> Discard it.  I think we need something better

We can override only for powerpc second time around. So changing it to 

TARGET_OS_powerpc =
"linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc',
'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"

will that be ok ?

Thanks

-Khem



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  1:22     ` Khem Raj
@ 2009-08-30  8:10       ` Phil Blundell
  2009-08-30  8:29         ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-08-30  8:10 UTC (permalink / raw)
  To: openembedded-devel

On Sat, 2009-08-29 at 18:22 -0700, Khem Raj wrote:
> We can override only for powerpc second time around. So changing it to 
> 
> TARGET_OS_powerpc =
> "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc',
> 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
> 
> will that be ok ?

That's better, but it still doesn't seem terribly elegant.  I also
remain slightly unconvinced that the eglibc-specific file is,
conceptually, the right place for this logic.  I would propose:

a) write a single, generic function to generate an appropriate TARGET_OS
suffix based on the distro properties, something along the approximate
lines of:

if target_os == "linux":
  # compute and apply appropriate suffix
  linux_suffix = ""
  if bb.data.getVar("LIBC", d, 1) == "uclibc":
    linux_suffix += "uclibc"
  if bb.data.getVar("TARGET_ARCH", d, 1) in [ 'arm', 'armeb' ] and
arm_abi == "eabi":
    linux_suffix += "gnueabi"
  # does this really need to mention both ppc and powerpc; can't we just
pick one?
  if bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and
bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540'] and "spe" in
distro_features:
    linux_suffix += "gnuspe"
  if linux_suffix != "":
    target_os = "%s-%s" % (target_os, linux_suffix)

(the above is obviously incomplete but I imagine you get the idea)

b) absent an obviously more appropriate place, put it in the top level
sane-toolchain.inc

That way at least we only have this stuff in one place, rather than the
current proliferation of duplicated logic (see the eabi selector for
example).

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  8:10       ` Phil Blundell
@ 2009-08-30  8:29         ` Phil Blundell
  2009-08-30  9:22           ` Khem Raj
                             ` (2 more replies)
  0 siblings, 3 replies; 40+ messages in thread
From: Phil Blundell @ 2009-08-30  8:29 UTC (permalink / raw)
  To: openembedded-devel

On Sun, 2009-08-30 at 09:10 +0100, Phil Blundell wrote:
> On Sat, 2009-08-29 at 18:22 -0700, Khem Raj wrote:
> > We can override only for powerpc second time around. So changing it
> to 
> > 
> > TARGET_OS_powerpc =
> > "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc',
> > 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari',
> 'tqm8540']]}"
> > 
> > will that be ok ?
> 
> That's better, but it still doesn't seem terribly elegant.  I also
> remain slightly unconvinced that the eglibc-specific file is,
> conceptually, the right place for this logic. 

Actually, there is still a bigger problem with this change: it will
cause the ABI to change in a semi-random way depending on the selected
MACHINE and this will screw up people who are trying to do multimachine
builds.

For example, if I set MACHINE=calamari and then bitbake micro-image, it
will select linux-gnuspe and I will presumably get the SPE ABI.  But
then, if I set MACHINE=efika, say, and build another package in the same
tree, it'll now select regular linux and the ABI will change, although
this won't be reflected in the naming of the output packages: they'll
all just be named "powerpc".  Worse, if eglibc itself happens to be
version-bumped while I am building for efika, my C library will be
quietly recompiled with a different ABI and, presumably, lose in a
fairly serious way.

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  8:29         ` Phil Blundell
@ 2009-08-30  9:22           ` Khem Raj
  2009-08-30  9:54             ` Phil Blundell
  2009-08-30  9:33           ` Koen Kooi
  2009-08-30  9:48           ` Khem Raj
  2 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-08-30  9:22 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1686 bytes --]

On (30/08/09 09:29), Phil Blundell wrote:
> On Sun, 2009-08-30 at 09:10 +0100, Phil Blundell wrote:
> > On Sat, 2009-08-29 at 18:22 -0700, Khem Raj wrote:
> > > We can override only for powerpc second time around. So changing it
> > to 
> > > 
> > > TARGET_OS_powerpc =
> > > "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc',
> > > 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari',
> > 'tqm8540']]}"
> > > 
> > > will that be ok ?
> > 
> > That's better, but it still doesn't seem terribly elegant.  I also
> > remain slightly unconvinced that the eglibc-specific file is,
> > conceptually, the right place for this logic. 
> 
> Actually, there is still a bigger problem with this change: it will
> cause the ABI to change in a semi-random way depending on the selected
> MACHINE and this will screw up people who are trying to do multimachine
> builds.
> 
> For example, if I set MACHINE=calamari and then bitbake micro-image, it
> will select linux-gnuspe and I will presumably get the SPE ABI.  But
> then, if I set MACHINE=efika, say, and build another package in the same
> tree, it'll now select regular linux and the ABI will change, although
> this won't be reflected in the naming of the output packages: they'll
> all just be named "powerpc".  Worse, if eglibc itself happens to be
> version-bumped while I am building for efika, my C library will be
> quietly recompiled with a different ABI and, presumably, lose in a
> fairly serious way.

based upon your idea in last email. Here is something I put together
seems to work. It will need testing ofcourse

What do you think about this one ?

Thanks

-Khem

[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 4322 bytes --]

diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 006f1d6..4c5f44f 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -3,10 +3,6 @@
 # eglibc:
 # [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
-TARGET_OS_powerpc = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
-
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index f3da7c3..f029c6f 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -2,8 +2,6 @@
 
 # glibc:
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 # perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 04935fe..3069820 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -15,9 +15,6 @@ USE_NLS_glib-2.0 = "yes"
 USE_NLS_glib-2.0-native = "yes"
 USE_NLS_gcc-cross = "no"
 
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index cebe77b..7279936 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -137,6 +137,38 @@ ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
 #qemu has taken a dislike to armeb as well
 ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
 
+python detect_arm_abi () {
+	if bb.data.getVar("TARGET_ARCH", d, 1) in [ 'arm', 'armeb' ]:          
+		if bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']:
+			return "oabi"
+		return "eabi"
+	else
+		return ""
+}
+
+python compute_os_portion_of_target_triplet () {
+
+	if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
+		os_suffix = "uclinux"
+	else
+  		os_suffix = "linux"
+
+	arm_abi	= detect_arm_abi(d)
+  	if bb.data.getVar("LIBC", d, 1) == "uclibc":
+    		libc_suffix = "uclibc"
+	else
+		libc_suffix = "gnu"
+	
+  	if arm_abi == "eabi":
+    		abi_suffix = "eabi"
+  	if bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and
+	bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540'] and 
+	bb.data.getVar('DISTRO_FEATURES',d) in ['spe']:
+    		abi_suffix = "spe"
+    	target_os = "%s-%s%s" % (os_suffix, libc_suffix, abi_suffix)
+	return target_os
+}
 # This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
-ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+ARM_ABI ?= "${@detect_arm_abi(d,1)}"
+TARGET_OS ?= "${@compute_os_portion_of_target_triplet (d, 1)}"
 include conf/distro/include/sane-toolchain-${ARM_ABI}.inc

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  8:29         ` Phil Blundell
  2009-08-30  9:22           ` Khem Raj
@ 2009-08-30  9:33           ` Koen Kooi
  2009-08-30  9:48           ` Khem Raj
  2 siblings, 0 replies; 40+ messages in thread
From: Koen Kooi @ 2009-08-30  9:33 UTC (permalink / raw)
  To: openembedded-devel

On 30-08-09 10:29, Phil Blundell wrote:
> On Sun, 2009-08-30 at 09:10 +0100, Phil Blundell wrote:
>> On Sat, 2009-08-29 at 18:22 -0700, Khem Raj wrote:
>>> We can override only for powerpc second time around. So changing it
>> to
>>>
>>> TARGET_OS_powerpc =
>>> "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc',
>>> 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari',
>> 'tqm8540']]}"
>>>
>>> will that be ok ?
>>
>> That's better, but it still doesn't seem terribly elegant.  I also
>> remain slightly unconvinced that the eglibc-specific file is,
>> conceptually, the right place for this logic.
>
> Actually, there is still a bigger problem with this change: it will
> cause the ABI to change in a semi-random way depending on the selected
> MACHINE and this will screw up people who are trying to do multimachine
> builds.
>
> For example, if I set MACHINE=calamari and then bitbake micro-image, it
> will select linux-gnuspe and I will presumably get the SPE ABI.  But
> then, if I set MACHINE=efika, say, and build another package in the same
> tree, it'll now select regular linux and the ABI will change, although
> this won't be reflected in the naming of the output packages: they'll
> all just be named "powerpc".

The efika ones are named 'ppc603e' fwiw.

regards,

Koen




^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  8:29         ` Phil Blundell
  2009-08-30  9:22           ` Khem Raj
  2009-08-30  9:33           ` Koen Kooi
@ 2009-08-30  9:48           ` Khem Raj
  2009-08-31 11:33             ` Marcin Juszkiewicz
  2 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-08-30  9:48 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1824 bytes --]

On (30/08/09 09:29), Phil Blundell wrote:
> On Sun, 2009-08-30 at 09:10 +0100, Phil Blundell wrote:
> > On Sat, 2009-08-29 at 18:22 -0700, Khem Raj wrote:
> > > We can override only for powerpc second time around. So changing it
> > to 
> > > 
> > > TARGET_OS_powerpc =
> > > "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc',
> > > 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari',
> > 'tqm8540']]}"
> > > 
> > > will that be ok ?
> > 
> > That's better, but it still doesn't seem terribly elegant.  I also
> > remain slightly unconvinced that the eglibc-specific file is,
> > conceptually, the right place for this logic. 
> 
> Actually, there is still a bigger problem with this change: it will
> cause the ABI to change in a semi-random way depending on the selected
> MACHINE and this will screw up people who are trying to do multimachine
> builds.
> 
> For example, if I set MACHINE=calamari and then bitbake micro-image, it
> will select linux-gnuspe and I will presumably get the SPE ABI.  But
> then, if I set MACHINE=efika, say, and build another package in the same
> tree, it'll now select regular linux and the ABI will change, although
> this won't be reflected in the naming of the output packages: they'll
> all just be named "powerpc".  Worse, if eglibc itself happens to be
> version-bumped while I am building for efika, my C library will be
> quietly recompiled with a different ABI and, presumably, lose in a
> fairly serious way.
> 

attaching the patch that actually will get further than parsing.

Thx

-Khem

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

[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 4341 bytes --]

diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 006f1d6..4c5f44f 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -3,10 +3,6 @@
 # eglibc:
 # [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
-TARGET_OS_powerpc = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
-
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index f3da7c3..f029c6f 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -2,8 +2,6 @@
 
 # glibc:
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 # perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 04935fe..3069820 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -15,9 +15,6 @@ USE_NLS_glib-2.0 = "yes"
 USE_NLS_glib-2.0-native = "yes"
 USE_NLS_gcc-cross = "no"
 
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index cebe77b..ac4c657 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -137,6 +137,38 @@ ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
 #qemu has taken a dislike to armeb as well
 ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
 
+def detect_arm_abi (d):
+    	import bb
+	if bb.data.getVar("TARGET_ARCH", d, 1) in [ 'arm', 'armeb' ]:          
+		if bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']:
+			return "oabi"
+		return "eabi"
+	else:
+		return ""
+
+def compute_os_portion_of_target_triplet (d):
+	import bb
+	if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
+		os_suffix = "uclinux"
+	else:
+  		os_suffix = "linux"
+
+	arm_abi	= detect_arm_abi(d)
+  	if bb.data.getVar("LIBC", d, 1) == "uclibc":
+    		libc_suffix = "uclibc"
+	else:
+		libc_suffix = "gnu"
+	
+  	if arm_abi == "eabi":
+    		abi_suffix = "eabi"
+  	if bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and \
+		bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540'] and  \
+		bb.data.getVar('DISTRO_FEATURES',d) in ['spe']:
+    		abi_suffix = "spe"
+    	target_os = "%s-%s%s" % (os_suffix, libc_suffix, abi_suffix)
+	return target_os
+
 # This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
-ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+ARM_ABI ?= "${@detect_arm_abi(d)}"
+TARGET_OS ?= "${@compute_os_portion_of_target_triplet(d)}"
 include conf/distro/include/sane-toolchain-${ARM_ABI}.inc

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  9:22           ` Khem Raj
@ 2009-08-30  9:54             ` Phil Blundell
  2009-08-30 10:38               ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-08-30  9:54 UTC (permalink / raw)
  To: openembedded-devel

On Sun, 2009-08-30 at 02:22 -0700, Khem Raj wrote:
> based upon your idea in last email. Here is something I put together
> seems to work. It will need testing ofcourse
> 
> What do you think about this one ?

Thanks for the update.  This looks like generally the right idea, except
that I still feel it is undesirable for an innocuous-looking change of
MACHINE to result in far-reaching abi consequences.  So we need to
figure out a way to deal with that.

A few other specific comments about the patch:

> +python detect_arm_abi () {

This doesn't really need to be an OE function.  You can declare it
directly as Python:

def detect_arm_abi():

> +       if bb.data.getVar("TARGET_ARCH", d, 1) in [ 'arm', 'armeb' ]:          
> +               if bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']:
> +                       return "oabi"
> +               return "eabi"
> +       else
> +               return ""

Notwithstanding the thing about MACHINE that I mentioned above, this
logic doesn't really look like it can be correct.  There are only two
valid ARM ABIs: eabi and oabi, and I would have thought this function
should always pick one or the other.  In other words, I don't think that
returning "" should be a valid result.

> +       if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
> +               os_suffix = "uclinux"
> +       else
> +               os_suffix = "linux"

I'm not terribly convinced that this is desirable; TARGET_OS itself has
always been a primary user configuration variable and I'm not entirely
comfortable with making it be an auto-guessed thing.  I'm also not very
keen on doing anything to cement the perception that OE is, somehow,
only for Linux targets.  But I guess I am open to persuasion on this
one.

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  9:54             ` Phil Blundell
@ 2009-08-30 10:38               ` Khem Raj
  2009-08-30 11:18                 ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-08-30 10:38 UTC (permalink / raw)
  To: openembedded-devel

On (30/08/09 10:54), Phil Blundell wrote:
> On Sun, 2009-08-30 at 02:22 -0700, Khem Raj wrote:
> > based upon your idea in last email. Here is something I put together
> > seems to work. It will need testing ofcourse
> > 
> > What do you think about this one ?
> 
> Thanks for the update.  This looks like generally the right idea, except
> that I still feel it is undesirable for an innocuous-looking change of
> MACHINE to result in far-reaching abi consequences.  So we need to
> figure out a way to deal with that.

I think some machines are incapable of dealing with EABI requirements.
thats why this dependency of machines and sometimes machines also
dictate ABI like e500 pushes you to use gnuspe. So I think ABI is tied
to machine in some ways.

> 
> A few other specific comments about the patch:
> 
> > +python detect_arm_abi () {

yeah the follow up patch was more accurate than this one
there I have made it as you suggest below.

> 
> This doesn't really need to be an OE function.  You can declare it
> directly as Python:
> 
> def detect_arm_abi():
> 
> > +       if bb.data.getVar("TARGET_ARCH", d, 1) in [ 'arm', 'armeb' ]:          
> > +               if bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']:
> > +                       return "oabi"
> > +               return "eabi"
> > +       else
> > +               return ""
> 
> Notwithstanding the thing about MACHINE that I mentioned above, this
> logic doesn't really look like it can be correct.  There are only two
> valid ARM ABIs: eabi and oabi, and I would have thought this function
> should always pick one or the other.  In other words, I don't think that
> returning "" should be a valid result.

actually it returns oabi or eabi if architecture is arm otherwise it
returns empty string

> 
> > +       if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
> > +               os_suffix = "uclinux"
> > +       else
> > +               os_suffix = "linux"
> 
> I'm not terribly convinced that this is desirable; TARGET_OS itself has
> always been a primary user configuration variable and I'm not entirely
> comfortable with making it be an auto-guessed thing.  I'm also not very
> keen on doing anything to cement the perception that OE is, somehow,
> only for Linux targets.  But I guess I am open to persuasion on this
> one.

A lot of toolchain configuration depend upon TARGET_OS one can easily
get is wrong. So IMO its better to synthesize it correctly.

For second point, I think we can accomodate non linux os_suffixes but it
will add to complexity for no good reason as of now. The function is
easily extendable when the need comes.

I think using arm-linux-gnu (OABI) arm-linux-gnueabi (EABI) would be
more  logical at present we use arm-linux for OABI that said using
linux-gnu on other arches is also nice thing to do.

Similarily for uclibc/EABI we use arm-linux-uclibcgnueabi probably using
arm-linux-uclibceabi(EABI)  and arm-linux-uclibc(OABI) would be cleaner. 

If this seems acceptable I can roll this change as well.

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30 10:38               ` Khem Raj
@ 2009-08-30 11:18                 ` Phil Blundell
  2009-08-30 18:08                   ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-08-30 11:18 UTC (permalink / raw)
  To: openembedded-devel

On Sun, 2009-08-30 at 03:38 -0700, Khem Raj wrote:
> On (30/08/09 10:54), Phil Blundell wrote:
> > On Sun, 2009-08-30 at 02:22 -0700, Khem Raj wrote:
> > > based upon your idea in last email. Here is something I put together
> > > seems to work. It will need testing ofcourse
> > > 
> > > What do you think about this one ?
> > 
> > Thanks for the update.  This looks like generally the right idea, except
> > that I still feel it is undesirable for an innocuous-looking change of
> > MACHINE to result in far-reaching abi consequences.  So we need to
> > figure out a way to deal with that.
> 
> I think some machines are incapable of dealing with EABI requirements.
> thats why this dependency of machines and sometimes machines also
> dictate ABI like e500 pushes you to use gnuspe. So I think ABI is tied
> to machine in some ways.

There are very few, if any, machines in OE that are fundamentally
incapable of running EABI code.  (There is a larger set of machines
where running true EABI code would be awkward and/or slow, but even on
those you don't necessarily want to fall back all the way to OABI; a
better compromise would be to use a non-interworking EABI variant.)  In
any case, I think the appropriate response if the user selects an
incompatible combination of machine and ABI is to issue a diagnostic,
not to silently select a different ABI that you think is more
appropriate.

> actually it returns oabi or eabi if architecture is arm otherwise it
> returns empty string

Ah, so it does.  Maybe it would be better to simply not call the
function at all on non-arm architectures.

> A lot of toolchain configuration depend upon TARGET_OS one can easily
> get is wrong. So IMO its better to synthesize it correctly.

Actually, I'm now beginning to think that this approach is backwards and
it would be better to do things the other way around.  That is, stick
with TARGET_OS as the primary configuration variable that the user sets,
and infer everything else (including ${LIBC}) from the value that they
have chosen.  That seems like it would avoid a lot of these issues with
bits of OE second-guessing the user and it would also help to prevent a
further proliferation of poorly-documented configuration variables.

> I think using arm-linux-gnu (OABI) arm-linux-gnueabi (EABI) would be
> more  logical at present we use arm-linux for OABI that said using
> linux-gnu on other arches is also nice thing to do.

Yes, agreed, I think it should ideally be CPU-linux-gnu in general, and
CPU-linux-gnuABISUFFIX for particular ABI variants.

> Similarily for uclibc/EABI we use arm-linux-uclibcgnueabi probably using
> arm-linux-uclibceabi(EABI)  and arm-linux-uclibc(OABI) would be cleaner. 

I guess that depends on what the GCC/uClibc conventions are.
"arm-linux-gnuuclibc" looks a bit ugly but presumably the GNU folks like
to keep their name in there somewhere.

p.




^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30 11:18                 ` Phil Blundell
@ 2009-08-30 18:08                   ` Khem Raj
  2009-08-30 18:11                     ` Khem Raj
  2009-08-30 20:27                     ` Phil Blundell
  0 siblings, 2 replies; 40+ messages in thread
From: Khem Raj @ 2009-08-30 18:08 UTC (permalink / raw)
  To: openembedded-devel

On Sun, Aug 30, 2009 at 4:18 AM, Phil Blundell<philb@gnu.org> wrote:
> On Sun, 2009-08-30 at 03:38 -0700, Khem Raj wrote:
>> On (30/08/09 10:54), Phil Blundell wrote:
>> > On Sun, 2009-08-30 at 02:22 -0700, Khem Raj wrote:
>> > > based upon your idea in last email. Here is something I put together
>> > > seems to work. It will need testing ofcourse
>> > >
>> > > What do you think about this one ?
>> >
>> > Thanks for the update.  This looks like generally the right idea, except
>> > that I still feel it is undesirable for an innocuous-looking change of
>> > MACHINE to result in far-reaching abi consequences.  So we need to
>> > figure out a way to deal with that.
>>
>> I think some machines are incapable of dealing with EABI requirements.
>> thats why this dependency of machines and sometimes machines also
>> dictate ABI like e500 pushes you to use gnuspe. So I think ABI is tied
>> to machine in some ways.
>
> There are very few, if any, machines in OE that are fundamentally
> incapable of running EABI code.  (There is a larger set of machines
> where running true EABI code would be awkward and/or slow, but even on
> those you don't necessarily want to fall back all the way to OABI; a
> better compromise would be to use a non-interworking EABI variant.)  In
> any case, I think the appropriate response if the user selects an
> incompatible combination of machine and ABI is to issue a diagnostic,
> not to silently select a different ABI that you think is more
> appropriate.
>
>> actually it returns oabi or eabi if architecture is arm otherwise it
>> returns empty string
>
> Ah, so it does.  Maybe it would be better to simply not call the
> function at all on non-arm architectures.
>
>> A lot of toolchain configuration depend upon TARGET_OS one can easily
>> get is wrong. So IMO its better to synthesize it correctly.
>
> Actually, I'm now beginning to think that this approach is backwards and
> it would be better to do things the other way around.  That is, stick
> with TARGET_OS as the primary configuration variable that the user sets,
> and infer everything else (including ${LIBC}) from the value that they
> have chosen.  That seems like it would avoid a lot of these issues with
> bits of OE second-guessing the user and it would also help to prevent a
> further proliferation of poorly-documented configuration variables.

hmm yes and these function could be turned into checking functions
of some sort if needed. So user can get notified for what sins he has
done by selecting a particular TARGET_OS :)

where do you think it should be defined then ?
it definitely needs to know about machine so machine conf seems
to be correct and distros are not per arch bases so defining it in
distros would not work the way it does now.

I do not like guessing work too but somehow it should not be
too much of a pain for a user to set it too.

not many users would know so many details about machine libraries
and ABIs and how they impact the target triplets. More than
often they will get it wrong.


Saying that user defines MACHINE and LIBC one wants in his DISTRO
and computing  TARGET_TRIPLET from this does not sound a bad idea to me.
may be we can change TARGET_OS to not indicate the last part of target triplet
instead it is something like say 'linux' 'freebsd' or 'none'  and then
we can concatenate them
as we are doing to form the real target triplet.

I think this would enhance the user experience of OE.

>
>> I think using arm-linux-gnu (OABI) arm-linux-gnueabi (EABI) would be
>> more  logical at present we use arm-linux for OABI that said using
>> linux-gnu on other arches is also nice thing to do.
>
> Yes, agreed, I think it should ideally be CPU-linux-gnu in general, and
> CPU-linux-gnuABISUFFIX for particular ABI variants.
>
>> Similarily for uclibc/EABI we use arm-linux-uclibcgnueabi probably using
>> arm-linux-uclibceabi(EABI)  and arm-linux-uclibc(OABI) would be cleaner.
>
> I guess that depends on what the GCC/uClibc conventions are.
> "arm-linux-gnuuclibc" looks a bit ugly but presumably the GNU folks like
> to keep their name in there somewhere.

Generally linux-gnu would mean its linux with GNU libc or eglibc
and linux-uclibc means its linux with uclibc. We can omit gnu

many places configure prods for uclibc and eabi so as long as they are there
in the last part of target triplet it wil be ok.

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30 18:08                   ` Khem Raj
@ 2009-08-30 18:11                     ` Khem Raj
  2009-08-30 20:27                     ` Phil Blundell
  1 sibling, 0 replies; 40+ messages in thread
From: Khem Raj @ 2009-08-30 18:11 UTC (permalink / raw)
  To: openembedded-devel

On Sun, Aug 30, 2009 at 11:08 AM, Khem Raj<raj.khem@gmail.com> wrote:
> On Sun, Aug 30, 2009 at 4:18 AM, Phil Blundell<philb@gnu.org> wrote:
>> On Sun, 2009-08-30 at 03:38 -0700, Khem Raj wrote:
>>> On (30/08/09 10:54), Phil Blundell wrote:
>>> > On Sun, 2009-08-30 at 02:22 -0700, Khem Raj wrote:
>>> > > based upon your idea in last email. Here is something I put together
>>> > > seems to work. It will need testing ofcourse
>>> > >
>>> > > What do you think about this one ?
>>> >
>>> > Thanks for the update.  This looks like generally the right idea, except
>>> > that I still feel it is undesirable for an innocuous-looking change of
>>> > MACHINE to result in far-reaching abi consequences.  So we need to
>>> > figure out a way to deal with that.
>>>
>>> I think some machines are incapable of dealing with EABI requirements.
>>> thats why this dependency of machines and sometimes machines also
>>> dictate ABI like e500 pushes you to use gnuspe. So I think ABI is tied
>>> to machine in some ways.
>>
>> There are very few, if any, machines in OE that are fundamentally
>> incapable of running EABI code.  (There is a larger set of machines
>> where running true EABI code would be awkward and/or slow, but even on
>> those you don't necessarily want to fall back all the way to OABI; a
>> better compromise would be to use a non-interworking EABI variant.)  In
>> any case, I think the appropriate response if the user selects an
>> incompatible combination of machine and ABI is to issue a diagnostic,
>> not to silently select a different ABI that you think is more
>> appropriate.
>>
>>> actually it returns oabi or eabi if architecture is arm otherwise it
>>> returns empty string
>>
>> Ah, so it does.  Maybe it would be better to simply not call the
>> function at all on non-arm architectures.
>>
>>> A lot of toolchain configuration depend upon TARGET_OS one can easily
>>> get is wrong. So IMO its better to synthesize it correctly.
>>
>> Actually, I'm now beginning to think that this approach is backwards and
>> it would be better to do things the other way around.  That is, stick
>> with TARGET_OS as the primary configuration variable that the user sets,
>> and infer everything else (including ${LIBC}) from the value that they
>> have chosen.  That seems like it would avoid a lot of these issues with
>> bits of OE second-guessing the user and it would also help to prevent a
>> further proliferation of poorly-documented configuration variables.
>
> hmm yes and these function could be turned into checking functions
> of some sort if needed. So user can get notified for what sins he has
> done by selecting a particular TARGET_OS :)
>
> where do you think it should be defined then ?
> it definitely needs to know about machine so machine conf seems
> to be correct and distros are not per arch bases so defining it in
> distros would not work the way it does now.
>
> I do not like guessing work too but somehow it should not be
> too much of a pain for a user to set it too.
>
> not many users would know so many details about machine libraries
> and ABIs and how they impact the target triplets. More than
> often they will get it wrong.
>
>
> Saying that user defines MACHINE and LIBC one wants in his DISTRO
> and computing  TARGET_TRIPLET from this does not sound a bad idea to me.
> may be we can change TARGET_OS to not indicate the last part of target triplet
> instead it is something like say 'linux' 'freebsd' or 'none'  and then
> we can concatenate them
> as we are doing to form the real target triplet.
>
> I think this would enhance the user experience of OE.

Moreover user can always override it in distro conf or local conf
after including sane-toolchain.inc
e.g. he only has a distro where he only cares about one arch and one
libc or some such

>
>>
>>> I think using arm-linux-gnu (OABI) arm-linux-gnueabi (EABI) would be
>>> more  logical at present we use arm-linux for OABI that said using
>>> linux-gnu on other arches is also nice thing to do.
>>
>> Yes, agreed, I think it should ideally be CPU-linux-gnu in general, and
>> CPU-linux-gnuABISUFFIX for particular ABI variants.
>>
>>> Similarily for uclibc/EABI we use arm-linux-uclibcgnueabi probably using
>>> arm-linux-uclibceabi(EABI)  and arm-linux-uclibc(OABI) would be cleaner.
>>
>> I guess that depends on what the GCC/uClibc conventions are.
>> "arm-linux-gnuuclibc" looks a bit ugly but presumably the GNU folks like
>> to keep their name in there somewhere.
>
> Generally linux-gnu would mean its linux with GNU libc or eglibc
> and linux-uclibc means its linux with uclibc. We can omit gnu
>
> many places configure prods for uclibc and eabi so as long as they are there
> in the last part of target triplet it wil be ok.
>
>>
>> p.
>>
>>
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>>
>



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30 18:08                   ` Khem Raj
  2009-08-30 18:11                     ` Khem Raj
@ 2009-08-30 20:27                     ` Phil Blundell
  1 sibling, 0 replies; 40+ messages in thread
From: Phil Blundell @ 2009-08-30 20:27 UTC (permalink / raw)
  To: openembedded-devel

On Sun, 2009-08-30 at 11:08 -0700, Khem Raj wrote:
> On Sun, Aug 30, 2009 at 4:18 AM, Phil Blundell<philb@gnu.org> wrote:
> > Actually, I'm now beginning to think that this approach is backwards and
> > it would be better to do things the other way around.  That is, stick
> > with TARGET_OS as the primary configuration variable that the user sets,
> > and infer everything else (including ${LIBC}) from the value that they
> > have chosen.  That seems like it would avoid a lot of these issues with
> > bits of OE second-guessing the user and it would also help to prevent a
> > further proliferation of poorly-documented configuration variables.
> 
> hmm yes and these function could be turned into checking functions
> of some sort if needed. So user can get notified for what sins he has
> done by selecting a particular TARGET_OS :)

That kind of thing, yes.

> where do you think it should be defined then ?
> it definitely needs to know about machine so machine conf seems
> to be correct and distros are not per arch bases so defining it in
> distros would not work the way it does now.

If "it" means TARGET_OS then I think it probably should be defined by
DISTRO.conf just as it is now.  DISTROs do need to have some
architecture knowledge (and, in fact, I would guess that the vast
majority of currently-defined DISTROs are single-architecture-only) so
this doesn't seem like it should be a problem.

> I do not like guessing work too but somehow it should not be
> too much of a pain for a user to set it too.
>
> not many users would know so many details about machine libraries
> and ABIs and how they impact the target triplets. More than
> often they will get it wrong.

All that the end user needs to do is set MACHINE and DISTRO and he
should be in business; the distro will figure everything else out.

Worrying about target triplets is the job of the distro maintainer, and
they ought to know what they're doing for at least the set of
architectures that they care about.

> Saying that user defines MACHINE and LIBC one wants in his DISTRO
> and computing  TARGET_TRIPLET from this does not sound a bad idea to me.
> may be we can change TARGET_OS to not indicate the last part of target triplet
> instead it is something like say 'linux' 'freebsd' or 'none'  and then
> we can concatenate them
> as we are doing to form the real target triplet.
> 
> I think this would enhance the user experience of OE.

I'm not sure that changing the meaning of TARGET_OS at this stage is a
good idea.  If you wanted to add a new include file that folks can use
to auto-compute a TARGET_OS value from a (LIBC, ABI) kind of tuple then
that wouldn't be an unreasonable thing to do.  I still feel that random
fluctuations of target abi as a result of changes to MACHINE are
probably a toxic idea and something best avoided, unless there is a
reliable method of interlocking them with PACKAGE_ARCH in some way.

p.




^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500
  2009-08-30  9:48           ` Khem Raj
@ 2009-08-31 11:33             ` Marcin Juszkiewicz
  2009-08-31 18:57               ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= " Khem Raj
  2009-09-01  5:57               ` Khem Raj
  0 siblings, 2 replies; 40+ messages in thread
From: Marcin Juszkiewicz @ 2009-08-31 11:33 UTC (permalink / raw)
  To: openembedded-devel

What about using MACHINE_FEATURES (or CPU_FEATURES) for things like eabi/spe?

TARGET_OS = "linux-"
if ARCH in [ppc,powerpc] and MACHINE_FEATURES.find('spe') then

  if LIBC=uclibc then
    TARGET_OS += "uclibc"
  fi

  TARGET_OS += "gnuspe"
fi

Same for adding eabi:

TARGET_OS = "linux-"
if ARCH in [arm,armeb] and MACHINE_FEATURES.find('eabi') then

  if LIBC=uclibc then
    TARGET_OS += "uclibc"
  fi

  TARGET_OS += "gnueabi"
fi

spe/eabi can be added to MACHINE_FEATURES in conf/machine/include/tune-* files 
and distros can choose do they support it or not by DISTRO_FEATURES (examples 
needs to be changed then to use COMBINED_FEATURES variable). This way no one 
has to change XY files just because he has new board with ppc500v2 core, we do 
not have to remember about armv4 devices which are not capable of EABI with 
gcc 4.3.x and older (but if they will support EABI in future we just change 
tune-strongarm.inc file).

Regards, 
-- 
JID:      hrw@jabber.org
Website:  http://marcin.juszkiewicz.com.pl/
LinkedIn: http://www.linkedin.com/in/marcinjuszkiewicz





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-08-31 11:33             ` Marcin Juszkiewicz
@ 2009-08-31 18:57               ` Khem Raj
  2009-09-01  5:57               ` Khem Raj
  1 sibling, 0 replies; 40+ messages in thread
From: Khem Raj @ 2009-08-31 18:57 UTC (permalink / raw)
  To: openembedded-devel

On (31/08/09 13:33), Marcin Juszkiewicz wrote:
> What about using MACHINE_FEATURES (or CPU_FEATURES) for things like eabi/spe?

yes that is a very good idea.

> 
> TARGET_OS = "linux-"
> if ARCH in [ppc,powerpc] and MACHINE_FEATURES.find('spe') then
> 
>   if LIBC=uclibc then
>     TARGET_OS += "uclibc"
>   fi
> 
>   TARGET_OS += "gnuspe"
> fi
> 
> Same for adding eabi:
> 
> TARGET_OS = "linux-"
> if ARCH in [arm,armeb] and MACHINE_FEATURES.find('eabi') then
> 
>   if LIBC=uclibc then
>     TARGET_OS += "uclibc"
>   fi
> 
>   TARGET_OS += "gnueabi"
> fi
> 
> spe/eabi can be added to MACHINE_FEATURES in conf/machine/include/tune-* files 
> and distros can choose do they support it or not by DISTRO_FEATURES (examples 
> needs to be changed then to use COMBINED_FEATURES variable). This way no one 
> has to change XY files just because he has new board with ppc500v2 core, we do 
> not have to remember about armv4 devices which are not capable of EABI with 
> gcc 4.3.x and older (but if they will support EABI in future we just change 
> tune-strongarm.inc file).

seems a nice approach. Let me try to implement something on these lines.

> 
> Regards, 
> -- 
> JID:      hrw@jabber.org
> Website:  http://marcin.juszkiewicz.com.pl/
> LinkedIn: http://www.linkedin.com/in/marcinjuszkiewicz
> 
> 
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-08-31 11:33             ` Marcin Juszkiewicz
  2009-08-31 18:57               ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= " Khem Raj
@ 2009-09-01  5:57               ` Khem Raj
  2009-09-01  8:21                 ` Dirk Opfer
  1 sibling, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-01  5:57 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1569 bytes --]

On (31/08/09 13:33), Marcin Juszkiewicz wrote:
> What about using MACHINE_FEATURES (or CPU_FEATURES) for things like eabi/spe?
> 
> TARGET_OS = "linux-"
> if ARCH in [ppc,powerpc] and MACHINE_FEATURES.find('spe') then
> 
>   if LIBC=uclibc then
>     TARGET_OS += "uclibc"
>   fi
> 
>   TARGET_OS += "gnuspe"
> fi
> 
> Same for adding eabi:
> 
> TARGET_OS = "linux-"
> if ARCH in [arm,armeb] and MACHINE_FEATURES.find('eabi') then
> 
>   if LIBC=uclibc then
>     TARGET_OS += "uclibc"
>   fi
> 
>   TARGET_OS += "gnueabi"
> fi
> 
> spe/eabi can be added to MACHINE_FEATURES in conf/machine/include/tune-* files 
> and distros can choose do they support it or not by DISTRO_FEATURES (examples 
> needs to be changed then to use COMBINED_FEATURES variable). This way no one 
> has to change XY files just because he has new board with ppc500v2 core, we do 
> not have to remember about armv4 devices which are not capable of EABI with 
> gcc 4.3.x and older (but if they will support EABI in future we just change 
> tune-strongarm.inc file).

Attached implementation is based on this suggestion. I have not done
wholesale change to distro confs only for micro and minimal. 

I tested this patch with


for targ in `ls openembedded/conf/machine/*.conf|cut -d '/' -f 4|cut -d
'.' -f 1`; do echo -n "$targ "; MACHINE=$targ DISTRO=minimal bitbake -e
|grep TARGET_OS=\"; done

and all machine confs were giving correct values for TARGET_OS
also I repeated same test with DISTRO=minimal-uclibc 

Comments ?

Thanks

-Khem


[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 23288 bytes --]

diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass
index e51d7ab..2ecf76a 100644
--- a/classes/siteinfo.bbclass
+++ b/classes/siteinfo.bbclass
@@ -22,21 +22,29 @@ def get_siteinfo_list(d):
 
        targetinfo = {\
                "armeb-linux":             "endian-big bit-32 common-linux common-glibc arm-common",\
+               "armeb-linux-gnu":         "endian-big bit-32 common-linux common-glibc arm-common",\
                "armeb-linux-gnueabi":     "endian-big bit-32 common-linux common-glibc arm-common armeb-linux",\
                "armeb-linux-uclibc":      "endian-big bit-32 common-linux common-uclibc arm-common",\
                "armeb-linux-uclibcgnueabi": "endian-big bit-32 common-linux common-uclibc arm-common armeb-linux-uclibc",\
+               "armeb-linux-uclibceabi":  "endian-big bit-32 common-linux common-uclibc arm-common armeb-linux-uclibc",\
                "arm-darwin":              "endian-little bit-32 common-darwin",\
                "arm-darwin9":             "endian-little bit-32 common-darwin",\
                "arm-linux":               "endian-little bit-32 common-linux common-glibc arm-common",\
+               "arm-linux-gnu":           "endian-little bit-32 common-linux common-glibc arm-common",\
                "arm-linux-gnueabi":       "endian-little bit-32 common-linux common-glibc arm-common arm-linux",\
                "arm-linux-uclibc":        "endian-little bit-32 common-linux common-uclibc arm-common",\
                "arm-linux-uclibcgnueabi": "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\
+               "arm-linux-uclibceabi":    "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\
                "avr32-linux-uclibc":      "endian-big bit-32 common-linux common-uclibc avr32-common",\
                "bfin-uclinux-uclibc":     "endian-little bit-32 common-uclibc bfin-common",\
                "i386-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i386-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i486-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i486-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i586-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i586-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i686-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i686-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i386-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
                "i486-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
                "i586-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
@@ -50,22 +58,34 @@ def get_siteinfo_list(d):
                "i586-mingw32":            "endian-little bit-32 common-mingw ix86-common",\
                "i686-mingw32":            "endian-little bit-32 common-mingw ix86-common",\
 	       "ia64-linux":		  "endian-little bit-64 common-linux common-glibc",\
+	       "ia64-linux-gnu":	  "endian-little bit-64 common-linux common-glibc",\
                "mipsel-linux":            "endian-little bit-32 common-linux common-glibc",\
+               "mipsel-linux-gnu":        "endian-little bit-32 common-linux common-glibc",\
                "mipsel-linux-uclibc":     "endian-little bit-32 common-linux common-uclibc",\
                "mips-linux":              "endian-big bit-32 common-linux common-glibc",\
+               "mips-linux-gnu":          "endian-big bit-32 common-linux common-glibc",\
                "mips-linux-uclibc":       "endian-big bit-32 common-linux common-uclibc",\
                "powerpc-darwin":          "endian-big bit-32 common-darwin",\
                "ppc-linux":               "endian-big bit-32 common-linux common-glibc powerpc-common",\ 
+               "ppc-linux-gnu":           "endian-big bit-32 common-linux common-glibc powerpc-common",\ 
                "ppc64-linux":             "endian-big bit-64 common-linux common-glibc powerpc-common",\ 
+               "ppc64-linux-gnu":         "endian-big bit-64 common-linux common-glibc powerpc-common",\ 
 	       "powerpc-linux":           "endian-big bit-32 common-linux common-glibc powerpc-common",\
+	       "powerpc-linux-gnu":       "endian-big bit-32 common-linux common-glibc powerpc-common",\
 	       "powerpc-linux-gnuspe":    "endian-big bit-32 common-linux common-glibc powerpc-common",\
                "powerpc-linux-uclibc":    "endian-big bit-32 common-linux common-uclibc powerpc-common",\
+               "powerpc-linux-uclibcspe": "endian-big bit-32 common-linux common-uclibc powerpc-common",\
                "sh3-linux":               "endian-little bit-32 common-linux common-glibc sh-common",\
+               "sh3-linux-gnu":           "endian-little bit-32 common-linux common-glibc sh-common",\
                "sh4-linux":               "endian-little bit-32 common-linux common-glibc sh-common",\
+               "sh4-linux-gnu":           "endian-little bit-32 common-linux common-glibc sh-common",\
                "sh4-linux-uclibc":        "endian-little bit-32 common-linux common-uclibc sh-common",\
                "sparc-linux":             "endian-big bit-32 common-linux common-glibc",\
+               "sparc-linux-gnu":         "endian-big bit-32 common-linux common-glibc",\
                "viac3-linux":             "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "viac3-linux-gnu":         "endian-little bit-32 common-linux common-glibc ix86-common",\
                "x86_64-linux":            "endian-little bit-64 common-linux common-glibc",\
+               "x86_64-linux-gnu":        "endian-little bit-64 common-linux common-glibc",\
                "x86_64-linux-uclibc":     "endian-little bit-64 common-linux common-uclibc"}
        if target in targetinfo:
                info = targetinfo[target].split()
diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 006f1d6..4c5f44f 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -3,10 +3,6 @@
 # eglibc:
 # [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
-TARGET_OS_powerpc = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
-
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index f3da7c3..f029c6f 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -2,8 +2,6 @@
 
 # glibc:
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 # perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 04935fe..3069820 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -15,9 +15,6 @@ USE_NLS_glib-2.0 = "yes"
 USE_NLS_glib-2.0-native = "yes"
 USE_NLS_gcc-cross = "no"
 
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index cebe77b..fa7ef79 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -136,7 +136,44 @@ ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
 
 #qemu has taken a dislike to armeb as well
 ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
+def detect_arm_abi (d):
+    	import bb
+	if bb.data.getVar('MACHINE_FEATURES',d) is None:
+		return ""
+	if bb.data.getVar("TARGET_ARCH", d, 1) in [ 'arm', 'armeb' ]:          
+		if 'eabi' in bb.data.getVar('MACHINE_FEATURES',d).split():
+			return "eabi"
+		return "oabi"
+	return ""
+
+def compute_os_portion_of_target_triplet (d):
+	import bb
+  	if bb.data.getVar("LIBC", d, 1) == "uclibc":
+    		libc_suffix = "uclibc"
+	else:
+		libc_suffix = "gnu"
+	
+	if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
+		if libc_suffix == "gnu":
+			bb.fatal("bfin is not supported on glibc/eglibc. Please choose uclibc")
+		else:
+			os_suffix = "uclinux"
+	else:
+  		os_suffix = "linux"
+	if bb.data.getVar('MACHINE_FEATURES',d) is not None:
+		if 'eabi' in bb.data.getVar('MACHINE_FEATURES',d).split():
+			abi_suffix = "eabi"
+		elif 'spe' in bb.data.getVar('MACHINE_FEATURES',d).split():
+			abi_suffix = "spe"
+		else:
+			abi_suffix = ""
+	else:
+		bb.note("MACHINE_FEATURES is not set abi suffix not set")
+		abi_suffix = ""
+    	target_os = "%s-%s%s" % (os_suffix, libc_suffix, abi_suffix)
+	return target_os
 
 # This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
-ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+ARM_ABI = "${@detect_arm_abi(d)}"
+TARGET_OS = "${@compute_os_portion_of_target_triplet(d)}"
 include conf/distro/include/sane-toolchain-${ARM_ABI}.inc
diff --git a/conf/distro/micro.conf b/conf/distro/micro.conf
index 2d45425..21818d1 100644
--- a/conf/distro/micro.conf
+++ b/conf/distro/micro.conf
@@ -16,16 +16,10 @@ DISTRO_NAME = "micro"
 DISTRO_VERSION = "${SRCDATE}"
 
 #############################################################################
-# TARGET OS
-#############################################################################
-# Linux
-TARGET_OS = "linux"
-
-#############################################################################
 # DISTRO FEATURE SELECTION
 #############################################################################
 # No features selected
-DISTRO_FEATURES = ""
+DISTRO_FEATURES = "eabi spe"
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index fa2a926..35da909 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -25,6 +25,8 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
 DISTRO_BLUETOOTH_MANAGER = "bluez4"
 # We want images supporting the following features (for task-base)
 DISTRO_FEATURES = "nfs smbfs wifi ppp alsa ext2 vfat pcmcia usbgadget usbhost pci"
+# Following features are for ARM and E500 based machines
+DISTRO_FEATURES += "eabi spe"
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/conf/machine/beagleboard.conf b/conf/machine/beagleboard.conf
index 69cdec6..831d742 100644
--- a/conf/machine/beagleboard.conf
+++ b/conf/machine/beagleboard.conf
@@ -13,6 +13,8 @@ XSERVER = "xserver-xorg \
 # Only has DVI connector for external screen
 GUI_MACHINE_CLASS = "bigscreen"
 
+MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa"
+
 require conf/machine/include/omap3.inc
 
 IMAGE_FSTYPES += "tar.bz2 ubi"
@@ -43,4 +45,3 @@ PREFERRED_VERSION_u-boot = "git"
 
 MACHINE_EXTRA_RRECOMMENDS = " omap3-sgx-modules "
 # and sdio
-MACHINE_FEATURES = "kernel26 screen apm usbgadget usbhost vfat alsa"
diff --git a/conf/machine/include/ixp4xx.inc b/conf/machine/include/ixp4xx.inc
index 192cbb1..cf7f0dd 100644
--- a/conf/machine/include/ixp4xx.inc
+++ b/conf/machine/include/ixp4xx.inc
@@ -22,7 +22,6 @@ IMAGE_FSTYPES ?= "jffs2 tar.gz"
 EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 -n"
 
 require conf/machine/include/tune-xscale.inc
-require conf/machine/include/tune-thumb.inc
 
 #-------------------------------------------------------------------------------
 # Board defaults
diff --git a/conf/machine/include/tune-arm1136-novfp.inc b/conf/machine/include/tune-arm1136-novfp.inc
index e1f7945..9af5294 100644
--- a/conf/machine/include/tune-arm1136-novfp.inc
+++ b/conf/machine/include/tune-arm1136-novfp.inc
@@ -5,6 +5,7 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s"
 FEED_ARCH = "armv6-novfp"
 BASE_PACKAGE_ARCH = "armv6-novfp"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6-novfp"
+MACHINE_FEATURES += "eabi"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/conf/machine/include/tune-arm1136jf-s.inc b/conf/machine/include/tune-arm1136jf-s.inc
index c532b9c..65a3afc 100644
--- a/conf/machine/include/tune-arm1136jf-s.inc
+++ b/conf/machine/include/tune-arm1136jf-s.inc
@@ -2,6 +2,7 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp"
 FEED_ARCH = "armv6"
 BASE_PACKAGE_ARCH = "armv6"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6"
+MACHINE_FEATURES += "eabi"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/conf/machine/include/tune-arm1176jzf-s.inc b/conf/machine/include/tune-arm1176jzf-s.inc
index b7c5291..87f60da 100644
--- a/conf/machine/include/tune-arm1176jzf-s.inc
+++ b/conf/machine/include/tune-arm1176jzf-s.inc
@@ -2,6 +2,6 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=softfp
 FEED_ARCH = "armv6"
 BASE_PACKAGE_ARCH = "armv6"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6"
-
+MACHINE_FEATURES += "eabi"
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/conf/machine/include/tune-arm920t.inc b/conf/machine/include/tune-arm920t.inc
index 5a373e9..70de841 100644
--- a/conf/machine/include/tune-arm920t.inc
+++ b/conf/machine/include/tune-arm920t.inc
@@ -2,6 +2,7 @@ FEED_ARCH = "armv4t"
 BASE_PACKAGE_ARCH = "armv4t" 
 TARGET_CC_ARCH = "-march=armv4t -mtune=arm920t"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t"
+MACHINE_FEATURES += "eabi"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/conf/machine/include/tune-arm926ejs.inc b/conf/machine/include/tune-arm926ejs.inc
index f6f5064..12f7b1c 100644
--- a/conf/machine/include/tune-arm926ejs.inc
+++ b/conf/machine/include/tune-arm926ejs.inc
@@ -5,6 +5,7 @@ PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te"
 # For gcc 4.x you need:
 TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ej-s"
 BASE_PACKAGE_ARCH = "armv5te"
+MACHINE_FEATURES += "eabi"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/conf/machine/include/tune-armv7.inc b/conf/machine/include/tune-armv7.inc
index 05ec3da..9f36175 100644
--- a/conf/machine/include/tune-armv7.inc
+++ b/conf/machine/include/tune-armv7.inc
@@ -5,6 +5,7 @@ TARGET_CC_ARCH = "-march=armv7 -mfpu=vfp -mfloat-abi=softfp"
 FEED_ARCH = "armv7"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7"
 BASE_PACKAGE_ARCH = "armv7"
+MACHINE_FEATURES += "eabi"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/conf/machine/include/tune-cortexa8.inc b/conf/machine/include/tune-cortexa8.inc
index a2ce7de..2e022ca 100644
--- a/conf/machine/include/tune-cortexa8.inc
+++ b/conf/machine/include/tune-cortexa8.inc
@@ -7,3 +7,4 @@ TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp"
 FEED_ARCH = "armv7a"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7 armv7a"
 BASE_PACKAGE_ARCH = "armv7a"
+MACHINE_FEATURES += "eabi"
diff --git a/conf/machine/include/tune-cortexa9.inc b/conf/machine/include/tune-cortexa9.inc
index a12494f..4005042 100644
--- a/conf/machine/include/tune-cortexa9.inc
+++ b/conf/machine/include/tune-cortexa9.inc
@@ -7,3 +7,4 @@ TARGET_CC_ARCH = "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp"
 FEED_ARCH = "armv7a"
 PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7 armv7a"
 BASE_PACKAGE_ARCH = "armv7a"
+MACHINE_FEATURES += "eabi"
diff --git a/conf/machine/include/tune-cortexm1.inc b/conf/machine/include/tune-cortexm1.inc
index 6c4a70a..b867112 100644
--- a/conf/machine/include/tune-cortexm1.inc
+++ b/conf/machine/include/tune-cortexm1.inc
@@ -1,3 +1,4 @@
 TARGET_CC_ARCH = "-march=armv7 -mtune=cortex-m1 -mfpu=vfp -mfloat-abi=softfp"
 FEED_ARCH = "armv6"
 BASE_PACKAGE_ARCH = "armv6"
+MACHINE_FEATURES += "eabi"
diff --git a/conf/machine/include/tune-cortexm3.inc b/conf/machine/include/tune-cortexm3.inc
index 6da9aee..679f0d1 100644
--- a/conf/machine/include/tune-cortexm3.inc
+++ b/conf/machine/include/tune-cortexm3.inc
@@ -2,3 +2,4 @@
 TARGET_CC_ARCH = "-march=armv7-m -mtune=cortex-m3 -mfpu=vfp -mfloat-abi=softfp"
 FEED_ARCH = "armv7"
 BASE_PACKAGE_ARCH = "armv7"
+MACHINE_FEATURES += "eabi"
diff --git a/conf/machine/include/tune-cortexr4.inc b/conf/machine/include/tune-cortexr4.inc
index b8bb7f5..943548c 100644
--- a/conf/machine/include/tune-cortexr4.inc
+++ b/conf/machine/include/tune-cortexr4.inc
@@ -2,3 +2,4 @@
 TARGET_CC_ARCH = "-march=armv7-r -mtune=cortex-r4 -mfpu=vfp -mfloat-abi=softfp"
 FEED_ARCH = "armv7"
 BASE_PACKAGE_ARCH = "armv7"
+MACHINE_FEATURES += "eabi"
diff --git a/conf/machine/include/tune-ppce300c2.inc b/conf/machine/include/tune-ppce300c2.inc
index 1524c7c..f2a2993 100644
--- a/conf/machine/include/tune-ppce300c2.inc
+++ b/conf/machine/include/tune-ppce300c2.inc
@@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=e300c2"
 BASE_PACKAGE_ARCH = "ppce300c2"
 FEED_ARCH = "ppce300c2"
 PACKAGE_EXTRA_ARCHS += "ppce300c2"
+MACHINE_FEATURES += "spe"
diff --git a/conf/machine/include/tune-ppce300c3.inc b/conf/machine/include/tune-ppce300c3.inc
index 467c4cc..3fc094b 100644
--- a/conf/machine/include/tune-ppce300c3.inc
+++ b/conf/machine/include/tune-ppce300c3.inc
@@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=e300c3"
 BASE_PACKAGE_ARCH = "ppce300c3"
 FEED_ARCH = "ppce300c3"
 PACKAGE_EXTRA_ARCHS += "ppce300c3"
+MACHINE_FEATURES += "spe"
diff --git a/conf/machine/include/tune-ppce500.inc b/conf/machine/include/tune-ppce500.inc
index 44f8742..1f89a12 100644
--- a/conf/machine/include/tune-ppce500.inc
+++ b/conf/machine/include/tune-ppce500.inc
@@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=8540"
 BASE_PACKAGE_ARCH = "ppce500"
 FEED_ARCH = "ppce500"
 PACKAGE_EXTRA_ARCHS += "ppce500"
+MACHINE_FEATURES += "spe"
diff --git a/conf/machine/include/tune-ppce500v2.inc b/conf/machine/include/tune-ppce500v2.inc
index 73d8e92..b6d92cb 100644
--- a/conf/machine/include/tune-ppce500v2.inc
+++ b/conf/machine/include/tune-ppce500v2.inc
@@ -2,3 +2,4 @@ TARGET_CC_ARCH = "-mcpu=8548 -mspe=yes -mabi=spe -mhard-float -mfloat-gprs=doubl
 BASE_PACKAGE_ARCH = "ppce500v2"
 FEED_ARCH = "ppce500v2"
 PACKAGE_EXTRA_ARCHS += "ppce500v2"
+MACHINE_FEATURES += "spe"
diff --git a/conf/machine/include/tune-xscale.inc b/conf/machine/include/tune-xscale.inc
index 79d22bc..d6d1a90 100644
--- a/conf/machine/include/tune-xscale.inc
+++ b/conf/machine/include/tune-xscale.inc
@@ -4,7 +4,7 @@ TARGET_CC_ARCH = "-march=armv5te -mtune=xscale"
 TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale"
 PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
 BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-
+MACHINE_FEATURES += "eabi"
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
 
diff --git a/conf/machine/looxc550.conf b/conf/machine/looxc550.conf
index 88a1be3..3e11a51 100644
--- a/conf/machine/looxc550.conf
+++ b/conf/machine/looxc550.conf
@@ -7,7 +7,6 @@
 #
 TARGET_ARCH = "arm"
 
-require conf/machine/include/tune-xscale.inc
 
 ROOT_FLASH_SIZE = "32"
 VOLATILE_STORAGE_SIZE = "64"
@@ -32,4 +31,5 @@ module_autoload_g_ether = "g_ether"
 SERIAL_CONSOLE = "115200 ttyS0 vt100"
 USE_VT = "0"
 
+require conf/machine/include/tune-xscale.inc
 require conf/machine/include/LAB-settings.inc
diff --git a/recipes/openssl/openssl.inc b/recipes/openssl/openssl.inc
index 3972cd3..c4707fd 100644
--- a/recipes/openssl/openssl.inc
+++ b/recipes/openssl/openssl.inc
@@ -32,6 +32,9 @@ do_configure () {
 	if [ "x$os" = "xlinux-uclibc" ]; then
 		os=linux
 	fi
+	if [ "x$os" = "xlinux-uclibceabi" ]; then
+		os=linux
+	fi
 	target="$os-${HOST_ARCH}"
 	case $target in
 	linux-arm)
diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc
index 2ed7d82..88f62fa 100644
--- a/recipes/uclibc/uclibc.inc
+++ b/recipes/uclibc/uclibc.inc
@@ -146,12 +146,13 @@ do_configure() {
 
    	sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
 
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
-       		echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
-	else
-		echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+	if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
+		if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
+       			echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
+		else
+			echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+		fi
 	fi
-
 	yes '' | oe_runmake oldconfig
 }
 

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-01  5:57               ` Khem Raj
@ 2009-09-01  8:21                 ` Dirk Opfer
  2009-09-01 15:31                   ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Dirk Opfer @ 2009-09-01  8:21 UTC (permalink / raw)
  To: openembedded-devel

>
> Attached implementation is based on this suggestion. I have not done
> wholesale change to distro confs only for micro and minimal.
>
> I tested this patch with
>
>
> for targ in `ls openembedded/conf/machine/*.conf|cut -d '/' -f 4|cut -d
> '.' -f 1`; do echo -n "$targ "; MACHINE=$targ DISTRO=minimal bitbake -e
> |grep TARGET_OS=\"; done
>
> and all machine confs were giving correct values for TARGET_OS
> also I repeated same test with DISTRO=minimal-uclibc
>
> Comments ?

e300 doesn't implement the signal processing engine (SPE).
Only e500v1 and e500v2 supports these instructions.

Dirk


> Thanks
>
> -Khem
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-01  8:21                 ` Dirk Opfer
@ 2009-09-01 15:31                   ` Khem Raj
  2009-09-01 23:07                     ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-01 15:31 UTC (permalink / raw)
  To: openembedded-devel

On (01/09/09 10:21), Dirk Opfer wrote:
> >
> > Attached implementation is based on this suggestion. I have not done
> > wholesale change to distro confs only for micro and minimal.
> >
> > I tested this patch with
> >
> >
> > for targ in `ls openembedded/conf/machine/*.conf|cut -d '/' -f 4|cut -d
> > '.' -f 1`; do echo -n "$targ "; MACHINE=$targ DISTRO=minimal bitbake -e
> > |grep TARGET_OS=\"; done
> >
> > and all machine confs were giving correct values for TARGET_OS
> > also I repeated same test with DISTRO=minimal-uclibc
> >
> > Comments ?
> 
> e300 doesn't implement the signal processing engine (SPE).
> Only e500v1 and e500v2 supports these instructions.

yes thats right. Thanks for pointing it out.
-Khem



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-01 15:31                   ` Khem Raj
@ 2009-09-01 23:07                     ` Khem Raj
  2009-09-02 19:20                       ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-01 23:07 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1486 bytes --]

On (01/09/09 08:31), Khem Raj wrote:
> On (01/09/09 10:21), Dirk Opfer wrote:
> > >
> > > Attached implementation is based on this suggestion. I have not done
> > > wholesale change to distro confs only for micro and minimal.
> > >
> > > I tested this patch with
> > >
> > >
> > > for targ in `ls openembedded/conf/machine/*.conf|cut -d '/' -f 4|cut -d
> > > '.' -f 1`; do echo -n "$targ "; MACHINE=$targ DISTRO=minimal bitbake -e
> > > |grep TARGET_OS=\"; done
> > >
> > > and all machine confs were giving correct values for TARGET_OS
> > > also I repeated same test with DISTRO=minimal-uclibc
> > >
> > > Comments ?
> > 
> > e300 doesn't implement the signal processing engine (SPE).
> > Only e500v1 and e500v2 supports these instructions.
> 
> yes thats right. Thanks for pointing it out.
> -Khem


As discussed further on IRC here is another implementation which adds
eabi to be a DISTRO_FEATURE and depends on BASE_PACKAGE_ARCH to find
the machine arch which can support eabi. For SPE there is no choice
left to distro. 

Sample change for distro I have done for minimal and micro. We might
create new distro for oabi like micro-oabi and minimal-oabi similarily 
a uclibc variant if needed. For now the micro and minimal distros ask
for eabi feature.

Another change it has it changing linux-uclibcgnueabi to
linux-uclibceabi and -linux to -linux-gnu

I have built a console image successfully with this

Comments ?

Thanks

-Khem



[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 39887 bytes --]

diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 606270d..c41b84a 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -73,7 +73,7 @@ def package_qa_get_machine_dict():
                         "arm" :       (40,     0,    0,          True,          True),
                         "armeb" :     (40,     0,    0,          False,         True),
                       },
-            "linux-uclibcgnueabi" : {
+            "linux-uclibceabi" : {
                         "arm" :       (40,     0,    0,          True,          True),
                         "armeb" :     (40,     0,    0,          False,         True),
                       },
diff --git a/classes/qmake_base.bbclass b/classes/qmake_base.bbclass
index 5eccfa4..50d8bb5 100644
--- a/classes/qmake_base.bbclass
+++ b/classes/qmake_base.bbclass
@@ -33,7 +33,7 @@ oe_qmake_mkspecs () {
 
 qmake_base_do_configure() {
 	case ${QMAKESPEC} in
-	*linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++|*linux-uclibcgnueabi-oe-g++)
+	*linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++|*linux-uclibceabi-oe-g++)
 		;;
 	*-oe-g++)
 		die Unsupported target ${TARGET_OS} for oe-g++ qmake spec
diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass
index e51d7ab..2bacd69 100644
--- a/classes/siteinfo.bbclass
+++ b/classes/siteinfo.bbclass
@@ -22,21 +22,27 @@ def get_siteinfo_list(d):
 
        targetinfo = {\
                "armeb-linux":             "endian-big bit-32 common-linux common-glibc arm-common",\
+               "armeb-linux-gnu":         "endian-big bit-32 common-linux common-glibc arm-common",\
                "armeb-linux-gnueabi":     "endian-big bit-32 common-linux common-glibc arm-common armeb-linux",\
                "armeb-linux-uclibc":      "endian-big bit-32 common-linux common-uclibc arm-common",\
-               "armeb-linux-uclibcgnueabi": "endian-big bit-32 common-linux common-uclibc arm-common armeb-linux-uclibc",\
+               "armeb-linux-uclibceabi":  "endian-big bit-32 common-linux common-uclibc arm-common armeb-linux-uclibc",\
                "arm-darwin":              "endian-little bit-32 common-darwin",\
                "arm-darwin9":             "endian-little bit-32 common-darwin",\
                "arm-linux":               "endian-little bit-32 common-linux common-glibc arm-common",\
+               "arm-linux-gnu":           "endian-little bit-32 common-linux common-glibc arm-common",\
                "arm-linux-gnueabi":       "endian-little bit-32 common-linux common-glibc arm-common arm-linux",\
                "arm-linux-uclibc":        "endian-little bit-32 common-linux common-uclibc arm-common",\
-               "arm-linux-uclibcgnueabi": "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\
+               "arm-linux-uclibceabi":    "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\
                "avr32-linux-uclibc":      "endian-big bit-32 common-linux common-uclibc avr32-common",\
                "bfin-uclinux-uclibc":     "endian-little bit-32 common-uclibc bfin-common",\
                "i386-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i386-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i486-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i486-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i586-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i586-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i686-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i686-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i386-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
                "i486-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
                "i586-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
@@ -50,22 +56,34 @@ def get_siteinfo_list(d):
                "i586-mingw32":            "endian-little bit-32 common-mingw ix86-common",\
                "i686-mingw32":            "endian-little bit-32 common-mingw ix86-common",\
 	       "ia64-linux":		  "endian-little bit-64 common-linux common-glibc",\
+	       "ia64-linux-gnu":	  "endian-little bit-64 common-linux common-glibc",\
                "mipsel-linux":            "endian-little bit-32 common-linux common-glibc",\
+               "mipsel-linux-gnu":        "endian-little bit-32 common-linux common-glibc",\
                "mipsel-linux-uclibc":     "endian-little bit-32 common-linux common-uclibc",\
                "mips-linux":              "endian-big bit-32 common-linux common-glibc",\
+               "mips-linux-gnu":          "endian-big bit-32 common-linux common-glibc",\
                "mips-linux-uclibc":       "endian-big bit-32 common-linux common-uclibc",\
                "powerpc-darwin":          "endian-big bit-32 common-darwin",\
                "ppc-linux":               "endian-big bit-32 common-linux common-glibc powerpc-common",\ 
+               "ppc-linux-gnu":           "endian-big bit-32 common-linux common-glibc powerpc-common",\ 
                "ppc64-linux":             "endian-big bit-64 common-linux common-glibc powerpc-common",\ 
+               "ppc64-linux-gnu":         "endian-big bit-64 common-linux common-glibc powerpc-common",\ 
 	       "powerpc-linux":           "endian-big bit-32 common-linux common-glibc powerpc-common",\
+	       "powerpc-linux-gnu":       "endian-big bit-32 common-linux common-glibc powerpc-common",\
 	       "powerpc-linux-gnuspe":    "endian-big bit-32 common-linux common-glibc powerpc-common",\
                "powerpc-linux-uclibc":    "endian-big bit-32 common-linux common-uclibc powerpc-common",\
+               "powerpc-linux-uclibcspe": "endian-big bit-32 common-linux common-uclibc powerpc-common",\
                "sh3-linux":               "endian-little bit-32 common-linux common-glibc sh-common",\
+               "sh3-linux-gnu":           "endian-little bit-32 common-linux common-glibc sh-common",\
                "sh4-linux":               "endian-little bit-32 common-linux common-glibc sh-common",\
+               "sh4-linux-gnu":           "endian-little bit-32 common-linux common-glibc sh-common",\
                "sh4-linux-uclibc":        "endian-little bit-32 common-linux common-uclibc sh-common",\
                "sparc-linux":             "endian-big bit-32 common-linux common-glibc",\
+               "sparc-linux-gnu":         "endian-big bit-32 common-linux common-glibc",\
                "viac3-linux":             "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "viac3-linux-gnu":         "endian-little bit-32 common-linux common-glibc ix86-common",\
                "x86_64-linux":            "endian-little bit-64 common-linux common-glibc",\
+               "x86_64-linux-gnu":        "endian-little bit-64 common-linux common-glibc",\
                "x86_64-linux-uclibc":     "endian-little bit-64 common-linux common-uclibc"}
        if target in targetinfo:
                info = targetinfo[target].split()
diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 006f1d6..4c5f44f 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -3,10 +3,6 @@
 # eglibc:
 # [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
-TARGET_OS_powerpc = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
-
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index f3da7c3..f029c6f 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -2,8 +2,6 @@
 
 # glibc:
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 # perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 04935fe..3069820 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -15,9 +15,6 @@ USE_NLS_glib-2.0 = "yes"
 USE_NLS_glib-2.0-native = "yes"
 USE_NLS_gcc-cross = "no"
 
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index cebe77b..9375e1d 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -136,7 +136,58 @@ ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
 
 #qemu has taken a dislike to armeb as well
 ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
+def detect_arm_abi (d):
+    	import bb
+	if bb.data.getVar('DISTRO_FEATURES',d) is None:
+		if bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+			return "oabi"
+		else:
+			return ""
+	if bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:          
+		if 'eabi' in bb.data.getVar('DISTRO_FEATURES',d).split():
+			return "eabi"
+		return "oabi"
+	return ""
+
+def compute_os_portion_of_target_triplet (d):
+	import bb
+	arm_eabi_supporting_arches = "armv6 armv6-novfp armv5te \
+       	iwmmxt armv7a armv7 armv6 armv5teb armv5te armv4t"
+	ppc_spe_supporting_arches = "ppce500v2 ppce500"
+
+  	if bb.data.getVar("LIBC", d, 1) == "uclibc":
+    		libc_suffix = "uclibc"
+	else:
+		libc_suffix = "gnu"
+	
+	if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
+		if libc_suffix == "gnu":
+			bb.fatal("bfin is not supported on glibc/eglibc. Please choose uclibc")
+		else:
+			os_suffix = "uclinux"
+	else:
+  		os_suffix = "linux"
+	bparch = bb.data.getVar('BASE_PACKAGE_ARCH', d)
+
+	if bb.data.getVar('DISTRO_FEATURES',d) is not None and \
+	bparch is not None:
+		if 'eabi' in bb.data.getVar('DISTRO_FEATURES',d).split() and \
+		bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+			if bparch not in \
+			arm_eabi_supporting_arches.split():
+				bb.fatal("DISTRO requested EABI but selected machine does not support EABI")
+			else:
+				abi_suffix = "eabi"
+		elif bparch in ppc_spe_supporting_arches.split():
+			abi_suffix = "spe"
+		else:
+			abi_suffix = ""
+	else:
+		bb.note("DISTRO_FEATURES is not set abi suffix not set")
+		abi_suffix = ""
+	return os_suffix + "-" + libc_suffix + abi_suffix
 
 # This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
-ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+ARM_ABI = "${@detect_arm_abi(d)}"
+TARGET_OS = "${@compute_os_portion_of_target_triplet(d)}"
 include conf/distro/include/sane-toolchain-${ARM_ABI}.inc
diff --git a/conf/distro/micro.conf b/conf/distro/micro.conf
index 2d45425..ed3be5e 100644
--- a/conf/distro/micro.conf
+++ b/conf/distro/micro.conf
@@ -16,16 +16,10 @@ DISTRO_NAME = "micro"
 DISTRO_VERSION = "${SRCDATE}"
 
 #############################################################################
-# TARGET OS
-#############################################################################
-# Linux
-TARGET_OS = "linux"
-
-#############################################################################
 # DISTRO FEATURE SELECTION
 #############################################################################
 # No features selected
-DISTRO_FEATURES = ""
+DISTRO_FEATURES = "eabi"
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index fa2a926..edaf5cf 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -25,6 +25,8 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
 DISTRO_BLUETOOTH_MANAGER = "bluez4"
 # We want images supporting the following features (for task-base)
 DISTRO_FEATURES = "nfs smbfs wifi ppp alsa ext2 vfat pcmcia usbgadget usbhost pci"
+# Following features are for ARM and E500 based machines
+DISTRO_FEATURES += "eabi"
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/conf/machine/include/tune-strongarm.inc b/conf/machine/include/tune-strongarm.inc
index 5745c36..2a583fe 100644
--- a/conf/machine/include/tune-strongarm.inc
+++ b/conf/machine/include/tune-strongarm.inc
@@ -5,5 +5,5 @@
 ARM_ABI = "oabi"
 TARGET_CC_ARCH = "-march=armv4 -mtune=strongarm"
 FEED_ARCH = "arm-oabi"
-
+PACKAGE_BASE_ARCH = "armv4" 
 PACKAGE_EXTRA_ARCHS += "armv4 "
diff --git a/conf/machine/include/tune-xscale.inc b/conf/machine/include/tune-xscale.inc
index 79d22bc..7fa6447 100644
--- a/conf/machine/include/tune-xscale.inc
+++ b/conf/machine/include/tune-xscale.inc
@@ -3,7 +3,7 @@ FEED_ARCH =  "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d,
 TARGET_CC_ARCH = "-march=armv5te -mtune=xscale"
 TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale"
 PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
+BASE_PACKAGE_ARCH := "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/recipes/alsa/alsa-utils_1.0.13.bb b/recipes/alsa/alsa-utils_1.0.13.bb
index 1e6af1e..e77c2d9 100644
--- a/recipes/alsa/alsa-utils_1.0.13.bb
+++ b/recipes/alsa/alsa-utils_1.0.13.bb
@@ -12,7 +12,7 @@ SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2"
 # please close bug and remove this comment when properly fixed
 #
 EXTRA_OECONF_linux-uclibc = "--disable-nls"
-EXTRA_OECONF_linux-uclibcgnueabi = "--disable-nls"
+EXTRA_OECONF_linux-uclibceabi = "--disable-nls"
 
 inherit autotools
 
diff --git a/recipes/avahi/avahi.inc b/recipes/avahi/avahi.inc
index f5e68e2..cefb2be 100644
--- a/recipes/avahi/avahi.inc
+++ b/recipes/avahi/avahi.inc
@@ -25,7 +25,7 @@ AVAHI_PYTHON = "--disable-python"
 AVAHI_GTK = "--disable-gtk"
 
 LDFLAGS_append_linux-uclibc = " -lintl"
-LDFLAGS_append_linux-uclibcgnueabi = " -lintl "
+LDFLAGS_append_linux-uclibceabi = " -lintl "
 LDFLAGS_append_uclinux-uclibc = " -lintl"
 
 PACKAGES =+ "avahi-daemon avahi-discover libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib libavahi-ui avahi-discover-standalone avahi-autoipd avahi-utils"
diff --git a/recipes/diffutils/diffutils_2.8.1.bb b/recipes/diffutils/diffutils_2.8.1.bb
index b979fa8..590d7f4 100644
--- a/recipes/diffutils/diffutils_2.8.1.bb
+++ b/recipes/diffutils/diffutils_2.8.1.bb
@@ -15,7 +15,7 @@ inherit autotools update-alternatives
 # because it uses __mempcpy, there are other things (TBD:
 # see diffutils.mk in buildroot)
 EXTRA_OECONF_linux-uclibc = "--without-included-regex"
-EXTRA_OECONF_linux-uclibcgnueabi = "--without-included-regex"
+EXTRA_OECONF_linux-uclibceabi = "--without-included-regex"
 
 do_install_append () {
         mv ${D}${bindir}/diff ${D}${bindir}/diff.${PN}
diff --git a/recipes/eibd/eibd.inc b/recipes/eibd/eibd.inc
index f021d96..e509764 100644
--- a/recipes/eibd/eibd.inc
+++ b/recipes/eibd/eibd.inc
@@ -5,7 +5,7 @@ PRIORITY = "optional"
 LICENSE = "GPLv2"
 DEPENDS = " pthsem libxml2"
 DEPENDS_append_linux-uclibc = " argp-standalone "
-DEPENDS_append_linux-uclibcgnueabi = " argp-standalone "
+DEPENDS_append_linux-uclibceabi = " argp-standalone "
 
 SRC_URI += " file://eibd "
 
diff --git a/recipes/gcc/gcc-configure-canadian-sdk.inc b/recipes/gcc/gcc-configure-canadian-sdk.inc
index 738b120..83ae6f5 100644
--- a/recipes/gcc/gcc-configure-canadian-sdk.inc
+++ b/recipes/gcc/gcc-configure-canadian-sdk.inc
@@ -1,7 +1,7 @@
 require gcc-configure-common.inc
 
 USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}'
+USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibceabi", "no", "", d )}'
 
 #
 # We need to override this and make sure the compiler can find staging
diff --git a/recipes/gcc/gcc-configure-common.inc b/recipes/gcc/gcc-configure-common.inc
index 9363585..1c605a1 100644
--- a/recipes/gcc/gcc-configure-common.inc
+++ b/recipes/gcc/gcc-configure-common.inc
@@ -9,7 +9,7 @@ JAVA_arm ?= ""
 JAVA_armeb ?= ""
 JAVA_mipsel ?= ""
 JAVA_sh3 ?= ""
-OBJC_linux-uclibcgnueabi ?= ""
+OBJC_linux-uclibceabi ?= ""
 OBJC_linux-uclibc ?= ""
 OBJC_avr ?= ""
 OBJC ?= ",objc"
@@ -41,7 +41,7 @@ EXTRA_OECONF = "${@['--enable-clocale=generic', ''][bb.data.getVar('USE_NLS', d,
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
-EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibceabi    = " --disable-__cxa_atexit"
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 CPPFLAGS = ""
 
diff --git a/recipes/gcc/gcc-configure-sdk.inc b/recipes/gcc/gcc-configure-sdk.inc
index d04f608..205b106 100644
--- a/recipes/gcc/gcc-configure-sdk.inc
+++ b/recipes/gcc/gcc-configure-sdk.inc
@@ -2,7 +2,7 @@ require gcc-configure-common.inc
 
 # The two lines below conflict, this needs fixing - RP
 USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}'
+USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibceabi", "no", "", d )}'
 
 EXTRA_OECONF_PATHS = "--with-sysroot=${prefix}/${TARGET_SYS} \
                       --with-build-time-tools=${CROSS_DIR}/${TARGET_SYS}/bin \
diff --git a/recipes/gettext/gettext_0.14.1.bb b/recipes/gettext/gettext_0.14.1.bb
index 30fb92d..b383525 100644
--- a/recipes/gettext/gettext_0.14.1.bb
+++ b/recipes/gettext/gettext_0.14.1.bb
@@ -15,7 +15,7 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
            file://disable_java.patch;patch=1"
 
 SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
-SRC_URI_append_linux-uclibcgnueabi = " file://gettext-error_print_progname.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = " file://gettext-error_print_progname.patch;patch=1"
 
 PARALLEL_MAKE = ""
 
diff --git a/recipes/gettext/gettext_0.17.bb b/recipes/gettext/gettext_0.17.bb
index 04dee4c..9f9f695 100644
--- a/recipes/gettext/gettext_0.17.bb
+++ b/recipes/gettext/gettext_0.17.bb
@@ -14,7 +14,7 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
 	  "
 
 SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
-SRC_URI_append_linux-uclibcgnueabi = " file://gettext-error_print_progname.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = " file://gettext-error_print_progname.patch;patch=1"
 
 PARALLEL_MAKE = ""
 
diff --git a/recipes/klibc/klibc-common.inc b/recipes/klibc/klibc-common.inc
index b66bc61..3b0eb1c 100644
--- a/recipes/klibc/klibc-common.inc
+++ b/recipes/klibc/klibc-common.inc
@@ -31,7 +31,7 @@ ARM_INSTRUCTION_SET = "arm"
 
 SRC_URI_append_linux-gnueabi = "file://klibc-config-eabi.patch;patch=1 \
 				"
-SRC_URI_append_linux-uclibcgnueabi = "file://klibc-config-eabi.patch;patch=1 \
+SRC_URI_append_linux-uclibceabi = "file://klibc-config-eabi.patch;patch=1 \
 				      "
 
 EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \
diff --git a/recipes/libffi/libffi_2.0+gcc4.3.2.bb b/recipes/libffi/libffi_2.0+gcc4.3.2.bb
index be98050..3b59b6a 100644
--- a/recipes/libffi/libffi_2.0+gcc4.3.2.bb
+++ b/recipes/libffi/libffi_2.0+gcc4.3.2.bb
@@ -50,7 +50,7 @@ EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
-EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibceabi    = " --disable-__cxa_atexit"
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 
 #Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
diff --git a/recipes/libffi/libffi_3.0.8.bb b/recipes/libffi/libffi_3.0.8.bb
index cef09ae..d24e971 100644
--- a/recipes/libffi/libffi_3.0.8.bb
+++ b/recipes/libffi/libffi_3.0.8.bb
@@ -46,7 +46,7 @@ EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
-EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibceabi = " --disable-__cxa_atexit"
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 
 #Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
diff --git a/recipes/linknx/linknx.inc b/recipes/linknx/linknx.inc
index ff2492f..1feb2b7 100644
--- a/recipes/linknx/linknx.inc
+++ b/recipes/linknx/linknx.inc
@@ -7,7 +7,7 @@ LICENSE = "GPL"
 
 DEPENDS = " pthsem lua5.1 curl libesmtp"
 DEPENDS_append_linux-uclibc = " argp-standalone"
-DEPENDS_append_linux-uclibcgnueabi = " argp-standalone"
+DEPENDS_append_linux-uclibceabi = " argp-standalone"
 
 SRC_URI += "file://configure-libcurl.patch;patch=1 \
             file://linknx.start "
diff --git a/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb b/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb
index 79d90bc..b233dd7 100644
--- a/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb
+++ b/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb
@@ -27,7 +27,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb b/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb
index 642b13f..9aab5d8 100644
--- a/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb
+++ b/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb
@@ -26,7 +26,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/gumstix-linux.inc b/recipes/linux/gumstix-linux.inc
index 50111cb..030abf2 100644
--- a/recipes/linux/gumstix-linux.inc
+++ b/recipes/linux/gumstix-linux.inc
@@ -17,7 +17,7 @@ do_deploy[dirs] = "${S}"
 do_configure_prepend() {
         echo "" > ${S}/.config
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/ixp4xx-kernel.inc b/recipes/linux/ixp4xx-kernel.inc
index 8ec06e2..910819e 100644
--- a/recipes/linux/ixp4xx-kernel.inc
+++ b/recipes/linux/ixp4xx-kernel.inc
@@ -192,7 +192,7 @@ do_configure_prepend() {
 		echo 'CONFIG_CPU_BIG_ENDIAN=y' >>'${S}/.config'
 	fi
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then               
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then               
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config               
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config       
         else
diff --git a/recipes/linux/linux-bd-neon-2.6_2.6.22.bb b/recipes/linux/linux-bd-neon-2.6_2.6.22.bb
index 400fe78..3fca851 100644
--- a/recipes/linux/linux-bd-neon-2.6_2.6.22.bb
+++ b/recipes/linux/linux-bd-neon-2.6_2.6.22.bb
@@ -22,7 +22,7 @@ ALLOW_EMPTY = "1"
 do_configure() {
         cp arch/arm/configs/neon_defconfig .config || die "No default configuration for ${MACHINE} available."
 
-#        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+#        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 #                echo "CONFIG_AEABI=y"                   >> ${S}/.config
 #                echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
 #        else
diff --git a/recipes/linux/linux-hackndev-2.6_git.bb b/recipes/linux/linux-hackndev-2.6_git.bb
index 2f9f902..5c093a1 100644
--- a/recipes/linux/linux-hackndev-2.6_git.bb
+++ b/recipes/linux/linux-hackndev-2.6_git.bb
@@ -27,7 +27,7 @@ do_configure() {
 			|| die "No default configuration for ${MACHINE} available."
 	fi
 
-	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-handhelds-2.6.inc b/recipes/linux/linux-handhelds-2.6.inc
index 5270c14..fe48283 100644
--- a/recipes/linux/linux-handhelds-2.6.inc
+++ b/recipes/linux/linux-handhelds-2.6.inc
@@ -50,7 +50,7 @@ do_configure() {
 		echo "CONFIG_INITRAMFS_SOURCE=\"${WORKDIR}/initramfs.cpio\"" >> ${S}/.config
 	fi
 
-	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
 		echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
 	else
diff --git a/recipes/linux/linux-navman_2.6.18.bb b/recipes/linux/linux-navman_2.6.18.bb
index b37b68e..2c9aef9 100644
--- a/recipes/linux/linux-navman_2.6.18.bb
+++ b/recipes/linux/linux-navman_2.6.18.bb
@@ -26,7 +26,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-nokia800.inc b/recipes/linux/linux-nokia800.inc
index 0fc4740..0f52b7c 100644
--- a/recipes/linux/linux-nokia800.inc
+++ b/recipes/linux/linux-nokia800.inc
@@ -14,7 +14,7 @@ do_configure_prepend() {
 
 	rm -f ${S}/.config || true
 
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb b/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb
index 786e490..16fe38b 100644
--- a/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb
+++ b/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb
@@ -25,7 +25,7 @@ do_configure() {
 	fi
 	
 
-	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-rp.inc b/recipes/linux/linux-rp.inc
index bdeb9f3..041a095 100644
--- a/recipes/linux/linux-rp.inc
+++ b/recipes/linux/linux-rp.inc
@@ -105,7 +105,7 @@ do_configure() {
 
 	echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
 
-	if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
 		if [ "${ARM_KEEP_OABI}" = "1" ] ; then
 			echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
diff --git a/recipes/linux/linux-tornado-omap2_2.6.16.16.bb b/recipes/linux/linux-tornado-omap2_2.6.16.16.bb
index a9ebee1..9c6e133 100644
--- a/recipes/linux/linux-tornado-omap2_2.6.16.16.bb
+++ b/recipes/linux/linux-tornado-omap2_2.6.16.16.bb
@@ -24,7 +24,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux.inc b/recipes/linux/linux.inc
index 3dbb1ec..044d413 100644
--- a/recipes/linux/linux.inc
+++ b/recipes/linux/linux.inc
@@ -68,7 +68,7 @@ do_configure_prepend() {
         #
         # oabi / eabi support
         #
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 if [ "${ARM_KEEP_OABI}" = "1" ] ; then
                         echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
diff --git a/recipes/linux/mx21ads-kernel_2.6.19rc6.bb b/recipes/linux/mx21ads-kernel_2.6.19rc6.bb
index 47f363d..bc8e624 100644
--- a/recipes/linux/mx21ads-kernel_2.6.19rc6.bb
+++ b/recipes/linux/mx21ads-kernel_2.6.19rc6.bb
@@ -26,7 +26,7 @@ RPROVIDES_kernel-image += "hostap-modules"
 do_configure_prepend() {
 	install -m 0644 ${WORKDIR}/mx21ads_defconfig ${S}/defconfig
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/netbook-pro-kernel_2.6.17.bb b/recipes/linux/netbook-pro-kernel_2.6.17.bb
index 1d24646..37704dc 100644
--- a/recipes/linux/netbook-pro-kernel_2.6.17.bb
+++ b/recipes/linux/netbook-pro-kernel_2.6.17.bb
@@ -27,7 +27,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/make/make.inc b/recipes/make/make.inc
index 8a43f40..af21861 100644
--- a/recipes/make/make.inc
+++ b/recipes/make/make.inc
@@ -11,7 +11,7 @@ SRC_URI = "${GNU_MIRROR}/make/make-${PV}.tar.bz2 \
 inherit autotools
 
 do_configure_prepend() {
-	if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
 		export make_cv_sys_gnu_glob="no" 
 		export GLOBINC=-I`pwd`/glob
 		export GLOBLIB=glob/libglob.a
diff --git a/recipes/openssl/openssl.inc b/recipes/openssl/openssl.inc
index 3972cd3..c4707fd 100644
--- a/recipes/openssl/openssl.inc
+++ b/recipes/openssl/openssl.inc
@@ -32,6 +32,9 @@ do_configure () {
 	if [ "x$os" = "xlinux-uclibc" ]; then
 		os=linux
 	fi
+	if [ "x$os" = "xlinux-uclibceabi" ]; then
+		os=linux
+	fi
 	target="$os-${HOST_ARCH}"
 	case $target in
 	linux-arm)
diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb
index 521cdf6..8d97199 100644
--- a/recipes/perl/perl_5.8.8.bb
+++ b/recipes/perl/perl_5.8.8.bb
@@ -63,7 +63,7 @@ do_configure() {
         done
 
         # Fixups for uclibc
-        if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
                 sed -i -e "s,\(d_crypt_r=\)'define',\1'undef',g" \
                        -e "s,\(crypt_r_proto=\)'\w+',\1'0',g" \
                        -e "s,\(d_getnetbyname_r=\)'define',\1'undef',g" \
diff --git a/recipes/qmake/qmake-native_1.07a.bb b/recipes/qmake/qmake-native_1.07a.bb
index a80bb1b..bb3e79b 100644
--- a/recipes/qmake/qmake-native_1.07a.bb
+++ b/recipes/qmake/qmake-native_1.07a.bb
@@ -18,7 +18,7 @@ EXTRA_OEMAKE = "-e"
 
 do_configure() {
 	# Install the OE build templates
-	for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibcgnueabi-oe-g++
+	for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
 	do
 		install -d ${S}/mkspecs/$template
 		install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
diff --git a/recipes/qmake/qmake2-native.inc b/recipes/qmake/qmake2-native.inc
index f84da2a..9908200 100644
--- a/recipes/qmake/qmake2-native.inc
+++ b/recipes/qmake/qmake2-native.inc
@@ -26,7 +26,7 @@ do_configure() {
     # Make sure we regenerate all Makefiles 
     find ${S} -name "Makefile" | xargs rm
     # Install the OE build templates
-    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibcgnueabi-oe-g++
+    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
     do
         install -d ${S}/mkspecs/$template
         install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
diff --git a/recipes/qte/qte-common_2.3.10.inc b/recipes/qte/qte-common_2.3.10.inc
index 6f0b134..f24a265 100644
--- a/recipes/qte/qte-common_2.3.10.inc
+++ b/recipes/qte/qte-common_2.3.10.inc
@@ -116,8 +116,8 @@ do_configure() {
 			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibc-,'`
 		sed -e 's,-linux-,-linux-gnueabi-,g' < $f \
 			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-gnueabi-,'`
-		sed -e 's,-linux-,-linux-uclibcgnueabi-,g' < $f \
-			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibcgnueabi-,'`
+		sed -e 's,-linux-,-linux-uclibceabi-,g' < $f \
+			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibceabi-,'`
 	done
 	echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qte failed. EXTRA_OECONF was ${EXTRA_OECONF}"
 }
diff --git a/recipes/samba/samba_3.0.34.bb b/recipes/samba/samba_3.0.34.bb
index d43c50d..5ef9da5 100644
--- a/recipes/samba/samba_3.0.34.bb
+++ b/recipes/samba/samba_3.0.34.bb
@@ -4,7 +4,7 @@ require samba-basic.inc
 SRC_URI += "file://configure.patch;patch=1 \
             "
 SRC_URI_append_linux-uclibc        = "file://uclibc-strlcpy-strlcat.patch;patch=1"
-SRC_URI_append_linux-uclibcgnueabi = "file://uclibc-strlcpy-strlcat.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = "file://uclibc-strlcpy-strlcat.patch;patch=1"
 
 PR = "r5"
 
diff --git a/recipes/tasks/task-sdk-bare.bb b/recipes/tasks/task-sdk-bare.bb
index 85d3626..9c78cfa 100644
--- a/recipes/tasks/task-sdk-bare.bb
+++ b/recipes/tasks/task-sdk-bare.bb
@@ -23,7 +23,7 @@ GLIBC_PKGS = "\
 LIBC_PKGS_linux = "${GLIBC_PKGS}"
 LIBC_PKGS_linux-gnueabi = "${GLIBC_PKGS}"
 LIBC_PKGS_linux-uclibc = "uclibc uclibc-dev uclibc-thread-db"
-LIBC_PKGS_linux-uclibcgnueabi = "uclibc uclibc-dev uclibc-thread-db"
+LIBC_PKGS_linux-uclibceabi = "uclibc uclibc-dev uclibc-thread-db"
 
 RDEPENDS_${PN} = "\
     ${LIBC_PKGS} \
diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc
index 2ed7d82..88f62fa 100644
--- a/recipes/uclibc/uclibc.inc
+++ b/recipes/uclibc/uclibc.inc
@@ -146,12 +146,13 @@ do_configure() {
 
    	sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
 
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
-       		echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
-	else
-		echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+	if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
+		if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
+       			echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
+		else
+			echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+		fi
 	fi
-
 	yes '' | oe_runmake oldconfig
 }
 
diff --git a/recipes/util-linux-ng/util-linux-ng_2.14.bb b/recipes/util-linux-ng/util-linux-ng_2.14.bb
index d7eafd3..7385324 100644
--- a/recipes/util-linux-ng/util-linux-ng_2.14.bb
+++ b/recipes/util-linux-ng/util-linux-ng_2.14.bb
@@ -6,6 +6,6 @@ SRC_URI += "file://util-linux-ng-uclibc-versionsort.patch;patch=1 \
 	    file://util-linux-ng-replace-siginterrupt.patch;patch=1 \
 	   "
 LDFLAGS_append_linux-uclibc = " -lintl"
-LDFLAGS_append_linux-uclibcgnueabi = " -lintl "
+LDFLAGS_append_linux-uclibceabi = " -lintl "
 LDFLAGS_append_uclinux-uclibc = " -lintl"
 

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-01 23:07                     ` Khem Raj
@ 2009-09-02 19:20                       ` Khem Raj
  2009-09-02 20:29                         ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-02 19:20 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 1824 bytes --]

On (01/09/09 16:07), Khem Raj wrote:
> On (01/09/09 08:31), Khem Raj wrote:
> > On (01/09/09 10:21), Dirk Opfer wrote:
> > > >
> > > > Attached implementation is based on this suggestion. I have not done
> > > > wholesale change to distro confs only for micro and minimal.
> > > >
> > > > I tested this patch with
> > > >
> > > >
> > > > for targ in `ls openembedded/conf/machine/*.conf|cut -d '/' -f 4|cut -d
> > > > '.' -f 1`; do echo -n "$targ "; MACHINE=$targ DISTRO=minimal bitbake -e
> > > > |grep TARGET_OS=\"; done
> > > >
> > > > and all machine confs were giving correct values for TARGET_OS
> > > > also I repeated same test with DISTRO=minimal-uclibc
> > > >
> > > > Comments ?
> > > 
> > > e300 doesn't implement the signal processing engine (SPE).
> > > Only e500v1 and e500v2 supports these instructions.
> > 
> > yes thats right. Thanks for pointing it out.
> > -Khem
> 
> 
> As discussed further on IRC here is another implementation which adds
> eabi to be a DISTRO_FEATURE and depends on BASE_PACKAGE_ARCH to find
> the machine arch which can support eabi. For SPE there is no choice
> left to distro. 
> 
> Sample change for distro I have done for minimal and micro. We might
> create new distro for oabi like micro-oabi and minimal-oabi similarily 
> a uclibc variant if needed. For now the micro and minimal distros ask
> for eabi feature.
> 
> Another change it has it changing linux-uclibcgnueabi to
> linux-uclibceabi and -linux to -linux-gnu
> 
> I have built a console image successfully with this
> 

Hi

This is the final version of the patch that I am going to commit. 
This also changes the target triplet for linux-uclibgnueabi to
uclibc-uclibcebi. So I have also bumped up the OELAYOUT_ABI

Please raise any objections now

Thanks

-Khem

[-- Attachment #2: diff --]
[-- Type: text/plain, Size: 40330 bytes --]

diff --git a/classes/insane.bbclass b/classes/insane.bbclass
index 606270d..c41b84a 100644
--- a/classes/insane.bbclass
+++ b/classes/insane.bbclass
@@ -73,7 +73,7 @@ def package_qa_get_machine_dict():
                         "arm" :       (40,     0,    0,          True,          True),
                         "armeb" :     (40,     0,    0,          False,         True),
                       },
-            "linux-uclibcgnueabi" : {
+            "linux-uclibceabi" : {
                         "arm" :       (40,     0,    0,          True,          True),
                         "armeb" :     (40,     0,    0,          False,         True),
                       },
diff --git a/classes/qmake_base.bbclass b/classes/qmake_base.bbclass
index 5eccfa4..50d8bb5 100644
--- a/classes/qmake_base.bbclass
+++ b/classes/qmake_base.bbclass
@@ -33,7 +33,7 @@ oe_qmake_mkspecs () {
 
 qmake_base_do_configure() {
 	case ${QMAKESPEC} in
-	*linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++|*linux-uclibcgnueabi-oe-g++)
+	*linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++|*linux-uclibceabi-oe-g++)
 		;;
 	*-oe-g++)
 		die Unsupported target ${TARGET_OS} for oe-g++ qmake spec
diff --git a/classes/siteinfo.bbclass b/classes/siteinfo.bbclass
index e51d7ab..2bacd69 100644
--- a/classes/siteinfo.bbclass
+++ b/classes/siteinfo.bbclass
@@ -22,21 +22,27 @@ def get_siteinfo_list(d):
 
        targetinfo = {\
                "armeb-linux":             "endian-big bit-32 common-linux common-glibc arm-common",\
+               "armeb-linux-gnu":         "endian-big bit-32 common-linux common-glibc arm-common",\
                "armeb-linux-gnueabi":     "endian-big bit-32 common-linux common-glibc arm-common armeb-linux",\
                "armeb-linux-uclibc":      "endian-big bit-32 common-linux common-uclibc arm-common",\
-               "armeb-linux-uclibcgnueabi": "endian-big bit-32 common-linux common-uclibc arm-common armeb-linux-uclibc",\
+               "armeb-linux-uclibceabi":  "endian-big bit-32 common-linux common-uclibc arm-common armeb-linux-uclibc",\
                "arm-darwin":              "endian-little bit-32 common-darwin",\
                "arm-darwin9":             "endian-little bit-32 common-darwin",\
                "arm-linux":               "endian-little bit-32 common-linux common-glibc arm-common",\
+               "arm-linux-gnu":           "endian-little bit-32 common-linux common-glibc arm-common",\
                "arm-linux-gnueabi":       "endian-little bit-32 common-linux common-glibc arm-common arm-linux",\
                "arm-linux-uclibc":        "endian-little bit-32 common-linux common-uclibc arm-common",\
-               "arm-linux-uclibcgnueabi": "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\
+               "arm-linux-uclibceabi":    "endian-little bit-32 common-linux common-uclibc arm-common arm-linux-uclibc",\
                "avr32-linux-uclibc":      "endian-big bit-32 common-linux common-uclibc avr32-common",\
                "bfin-uclinux-uclibc":     "endian-little bit-32 common-uclibc bfin-common",\
                "i386-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i386-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i486-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i486-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i586-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i586-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i686-linux":              "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "i686-linux-gnu":          "endian-little bit-32 common-linux common-glibc ix86-common",\
                "i386-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
                "i486-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
                "i586-linux-uclibc":       "endian-little bit-32 common-linux common-uclibc ix86-common",\
@@ -50,22 +56,34 @@ def get_siteinfo_list(d):
                "i586-mingw32":            "endian-little bit-32 common-mingw ix86-common",\
                "i686-mingw32":            "endian-little bit-32 common-mingw ix86-common",\
 	       "ia64-linux":		  "endian-little bit-64 common-linux common-glibc",\
+	       "ia64-linux-gnu":	  "endian-little bit-64 common-linux common-glibc",\
                "mipsel-linux":            "endian-little bit-32 common-linux common-glibc",\
+               "mipsel-linux-gnu":        "endian-little bit-32 common-linux common-glibc",\
                "mipsel-linux-uclibc":     "endian-little bit-32 common-linux common-uclibc",\
                "mips-linux":              "endian-big bit-32 common-linux common-glibc",\
+               "mips-linux-gnu":          "endian-big bit-32 common-linux common-glibc",\
                "mips-linux-uclibc":       "endian-big bit-32 common-linux common-uclibc",\
                "powerpc-darwin":          "endian-big bit-32 common-darwin",\
                "ppc-linux":               "endian-big bit-32 common-linux common-glibc powerpc-common",\ 
+               "ppc-linux-gnu":           "endian-big bit-32 common-linux common-glibc powerpc-common",\ 
                "ppc64-linux":             "endian-big bit-64 common-linux common-glibc powerpc-common",\ 
+               "ppc64-linux-gnu":         "endian-big bit-64 common-linux common-glibc powerpc-common",\ 
 	       "powerpc-linux":           "endian-big bit-32 common-linux common-glibc powerpc-common",\
+	       "powerpc-linux-gnu":       "endian-big bit-32 common-linux common-glibc powerpc-common",\
 	       "powerpc-linux-gnuspe":    "endian-big bit-32 common-linux common-glibc powerpc-common",\
                "powerpc-linux-uclibc":    "endian-big bit-32 common-linux common-uclibc powerpc-common",\
+               "powerpc-linux-uclibcspe": "endian-big bit-32 common-linux common-uclibc powerpc-common",\
                "sh3-linux":               "endian-little bit-32 common-linux common-glibc sh-common",\
+               "sh3-linux-gnu":           "endian-little bit-32 common-linux common-glibc sh-common",\
                "sh4-linux":               "endian-little bit-32 common-linux common-glibc sh-common",\
+               "sh4-linux-gnu":           "endian-little bit-32 common-linux common-glibc sh-common",\
                "sh4-linux-uclibc":        "endian-little bit-32 common-linux common-uclibc sh-common",\
                "sparc-linux":             "endian-big bit-32 common-linux common-glibc",\
+               "sparc-linux-gnu":         "endian-big bit-32 common-linux common-glibc",\
                "viac3-linux":             "endian-little bit-32 common-linux common-glibc ix86-common",\
+               "viac3-linux-gnu":         "endian-little bit-32 common-linux common-glibc ix86-common",\
                "x86_64-linux":            "endian-little bit-64 common-linux common-glibc",\
+               "x86_64-linux-gnu":        "endian-little bit-64 common-linux common-glibc",\
                "x86_64-linux-uclibc":     "endian-little bit-64 common-linux common-uclibc"}
        if target in targetinfo:
                info = targetinfo[target].split()
diff --git a/conf/abi_version.conf b/conf/abi_version.conf
index 7939d65..7f190c3 100644
--- a/conf/abi_version.conf
+++ b/conf/abi_version.conf
@@ -4,7 +4,7 @@
 # that breaks the format and have been previously discussed on the mailing list 
 # with general agreement from the core team.
 #
-OELAYOUT_ABI = "2"
+OELAYOUT_ABI = "3"
 
 #
 # DISTRO_PR allows us to regenerate all packages when a fundamental change is
diff --git a/conf/distro/include/sane-toolchain-eglibc.inc b/conf/distro/include/sane-toolchain-eglibc.inc
index 006f1d6..4c5f44f 100644
--- a/conf/distro/include/sane-toolchain-eglibc.inc
+++ b/conf/distro/include/sane-toolchain-eglibc.inc
@@ -3,10 +3,6 @@
 # eglibc:
 # [23:00] oxo: glibc (any version) on sparc does not like (repeat me) "-Os"
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
-TARGET_OS_powerpc = "linux${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in ['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari', 'tqm8540']]}"
-
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
 FULL_OPTIMIZATION_pn-perl = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O1"
 FULL_OPTIMIZATION_sparc = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2"
diff --git a/conf/distro/include/sane-toolchain-glibc.inc b/conf/distro/include/sane-toolchain-glibc.inc
index f3da7c3..f029c6f 100644
--- a/conf/distro/include/sane-toolchain-glibc.inc
+++ b/conf/distro/include/sane-toolchain-glibc.inc
@@ -2,8 +2,6 @@
 
 # glibc:
 
-TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 # perl has some problems, see http://bugs.openembedded.net/show_bug.cgi?id=1616
diff --git a/conf/distro/include/sane-toolchain-uclibc.inc b/conf/distro/include/sane-toolchain-uclibc.inc
index 04935fe..3069820 100644
--- a/conf/distro/include/sane-toolchain-uclibc.inc
+++ b/conf/distro/include/sane-toolchain-uclibc.inc
@@ -15,9 +15,6 @@ USE_NLS_glib-2.0 = "yes"
 USE_NLS_glib-2.0-native = "yes"
 USE_NLS_gcc-cross = "no"
 
-TARGET_OS_UC = "linux${@['-uclibc','-uclibcgnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in ['arm', 'armeb'] and bb.data.getVar('MACHINE',d) not in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
-TARGET_OS = "${@['${TARGET_OS_UC}', 'uclinux-uclibc'][bb.data.getVar('TARGET_ARCH',d)  in ['bfin']]}"
-
 #mess with compiler flags to use -Os instead of -O2
 #Please see http://free-electrons.com/doc/embedded_linux_optimizations/img47.html for some more info
 FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os"
diff --git a/conf/distro/include/sane-toolchain.inc b/conf/distro/include/sane-toolchain.inc
index cebe77b..f73bc81 100644
--- a/conf/distro/include/sane-toolchain.inc
+++ b/conf/distro/include/sane-toolchain.inc
@@ -136,7 +136,58 @@ ENABLE_BINARY_LOCALE_GENERATION_armv7a = "0"
 
 #qemu has taken a dislike to armeb as well
 ENABLE_BINARY_LOCALE_GENERATION_armeb = "0"
+def detect_arm_abi (d):
+    	import bb
+	if bb.data.getVar('DISTRO_FEATURES',d) is None:
+		if bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+			return "oabi"
+		else:
+			return ""
+	if bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:          
+		if 'eabi' in bb.data.getVar('DISTRO_FEATURES',d).split():
+			return "eabi"
+		return "oabi"
+	return ""
+
+def compute_os_portion_of_target_triplet (d):
+	import bb
+	arm_eabi_supporting_arches = "armv6 armv6-novfp \
+	armv5te iwmmxt armv7a armv7 armv6 armv5teb armv5te armv4t"
+	ppc_spe_supporting_arches = "ppce500v2 ppce500"
+
+  	if bb.data.getVar("LIBC", d, 1) == "uclibc":
+    		libc_suffix = "uclibc"
+	else:
+		libc_suffix = "gnu"
+	
+	if bb.data.getVar('TARGET_ARCH',d,1) in ['bfin']:
+		if libc_suffix == "gnu":
+			bb.fatal("bfin is not supported on glibc/eglibc. Please choose uclibc")
+		else:
+			os_suffix = "uclinux"
+	else:
+  		os_suffix = "linux"
+	bparch = bb.data.getVar('BASE_PACKAGE_ARCH', d,1)
+
+	if bb.data.getVar('DISTRO_FEATURES',d,1) is not None and \
+	bparch is not None:
+		if 'eabi' in bb.data.getVar('DISTRO_FEATURES',d,1).split() and \
+		bb.data.getVar('TARGET_ARCH', d, 1) in [ 'arm', 'armeb' ]:
+			if bparch not in arm_eabi_supporting_arches.split():
+				bb.fatal("DISTRO requested EABI but selected machine does not support EABI")
+				abi_suffix = ""
+			else:
+				abi_suffix = "eabi"
+		elif bparch in ppc_spe_supporting_arches.split():
+			abi_suffix = "spe"
+		else:
+			abi_suffix = ""
+	else:
+		bb.note("DISTRO_FEATURES is not set abi suffix not set")
+		abi_suffix = ""
+	return os_suffix + "-" + libc_suffix + abi_suffix
 
 # This is needed to get a correct PACKAGE_ARCH for packages that have PACKAGE_ARCH = ${MACHINE_ARCH}
-ARM_ABI ?= "${@['','oabi'][bb.data.getVar('MACHINE',d) in ['collie','h3600', 'h3800', 'simpad', 'htcwallaby']]}"
+ARM_ABI = "${@detect_arm_abi(d)}"
+TARGET_OS = "${@compute_os_portion_of_target_triplet(d)}"
 include conf/distro/include/sane-toolchain-${ARM_ABI}.inc
diff --git a/conf/distro/micro.conf b/conf/distro/micro.conf
index 2d45425..ed3be5e 100644
--- a/conf/distro/micro.conf
+++ b/conf/distro/micro.conf
@@ -16,16 +16,10 @@ DISTRO_NAME = "micro"
 DISTRO_VERSION = "${SRCDATE}"
 
 #############################################################################
-# TARGET OS
-#############################################################################
-# Linux
-TARGET_OS = "linux"
-
-#############################################################################
 # DISTRO FEATURE SELECTION
 #############################################################################
 # No features selected
-DISTRO_FEATURES = ""
+DISTRO_FEATURES = "eabi"
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index fa2a926..edaf5cf 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -25,6 +25,8 @@ DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove thi
 DISTRO_BLUETOOTH_MANAGER = "bluez4"
 # We want images supporting the following features (for task-base)
 DISTRO_FEATURES = "nfs smbfs wifi ppp alsa ext2 vfat pcmcia usbgadget usbhost pci"
+# Following features are for ARM and E500 based machines
+DISTRO_FEATURES += "eabi"
 
 #############################################################################
 # LIBRARY NAMES
diff --git a/conf/machine/include/tune-strongarm.inc b/conf/machine/include/tune-strongarm.inc
index 5745c36..2a583fe 100644
--- a/conf/machine/include/tune-strongarm.inc
+++ b/conf/machine/include/tune-strongarm.inc
@@ -5,5 +5,5 @@
 ARM_ABI = "oabi"
 TARGET_CC_ARCH = "-march=armv4 -mtune=strongarm"
 FEED_ARCH = "arm-oabi"
-
+PACKAGE_BASE_ARCH = "armv4" 
 PACKAGE_EXTRA_ARCHS += "armv4 "
diff --git a/conf/machine/include/tune-xscale.inc b/conf/machine/include/tune-xscale.inc
index 79d22bc..7fa6447 100644
--- a/conf/machine/include/tune-xscale.inc
+++ b/conf/machine/include/tune-xscale.inc
@@ -3,7 +3,7 @@ FEED_ARCH =  "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d,
 TARGET_CC_ARCH = "-march=armv5te -mtune=xscale"
 TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale"
 PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
-BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
+BASE_PACKAGE_ARCH := "${@['armv5teb', 'armv5te'][bb.data.getVar('SITEINFO_ENDIANESS', d, 1) == 'le']}"
 
 # Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish
 require conf/machine/include/tune-thumb.inc
diff --git a/recipes/alsa/alsa-utils_1.0.13.bb b/recipes/alsa/alsa-utils_1.0.13.bb
index 1e6af1e..e77c2d9 100644
--- a/recipes/alsa/alsa-utils_1.0.13.bb
+++ b/recipes/alsa/alsa-utils_1.0.13.bb
@@ -12,7 +12,7 @@ SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2"
 # please close bug and remove this comment when properly fixed
 #
 EXTRA_OECONF_linux-uclibc = "--disable-nls"
-EXTRA_OECONF_linux-uclibcgnueabi = "--disable-nls"
+EXTRA_OECONF_linux-uclibceabi = "--disable-nls"
 
 inherit autotools
 
diff --git a/recipes/avahi/avahi.inc b/recipes/avahi/avahi.inc
index f5e68e2..cefb2be 100644
--- a/recipes/avahi/avahi.inc
+++ b/recipes/avahi/avahi.inc
@@ -25,7 +25,7 @@ AVAHI_PYTHON = "--disable-python"
 AVAHI_GTK = "--disable-gtk"
 
 LDFLAGS_append_linux-uclibc = " -lintl"
-LDFLAGS_append_linux-uclibcgnueabi = " -lintl "
+LDFLAGS_append_linux-uclibceabi = " -lintl "
 LDFLAGS_append_uclinux-uclibc = " -lintl"
 
 PACKAGES =+ "avahi-daemon avahi-discover libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib libavahi-ui avahi-discover-standalone avahi-autoipd avahi-utils"
diff --git a/recipes/diffutils/diffutils_2.8.1.bb b/recipes/diffutils/diffutils_2.8.1.bb
index b979fa8..590d7f4 100644
--- a/recipes/diffutils/diffutils_2.8.1.bb
+++ b/recipes/diffutils/diffutils_2.8.1.bb
@@ -15,7 +15,7 @@ inherit autotools update-alternatives
 # because it uses __mempcpy, there are other things (TBD:
 # see diffutils.mk in buildroot)
 EXTRA_OECONF_linux-uclibc = "--without-included-regex"
-EXTRA_OECONF_linux-uclibcgnueabi = "--without-included-regex"
+EXTRA_OECONF_linux-uclibceabi = "--without-included-regex"
 
 do_install_append () {
         mv ${D}${bindir}/diff ${D}${bindir}/diff.${PN}
diff --git a/recipes/eibd/eibd.inc b/recipes/eibd/eibd.inc
index f021d96..e509764 100644
--- a/recipes/eibd/eibd.inc
+++ b/recipes/eibd/eibd.inc
@@ -5,7 +5,7 @@ PRIORITY = "optional"
 LICENSE = "GPLv2"
 DEPENDS = " pthsem libxml2"
 DEPENDS_append_linux-uclibc = " argp-standalone "
-DEPENDS_append_linux-uclibcgnueabi = " argp-standalone "
+DEPENDS_append_linux-uclibceabi = " argp-standalone "
 
 SRC_URI += " file://eibd "
 
diff --git a/recipes/gcc/gcc-configure-canadian-sdk.inc b/recipes/gcc/gcc-configure-canadian-sdk.inc
index 738b120..83ae6f5 100644
--- a/recipes/gcc/gcc-configure-canadian-sdk.inc
+++ b/recipes/gcc/gcc-configure-canadian-sdk.inc
@@ -1,7 +1,7 @@
 require gcc-configure-common.inc
 
 USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}'
+USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibceabi", "no", "", d )}'
 
 #
 # We need to override this and make sure the compiler can find staging
diff --git a/recipes/gcc/gcc-configure-common.inc b/recipes/gcc/gcc-configure-common.inc
index 9363585..1c605a1 100644
--- a/recipes/gcc/gcc-configure-common.inc
+++ b/recipes/gcc/gcc-configure-common.inc
@@ -9,7 +9,7 @@ JAVA_arm ?= ""
 JAVA_armeb ?= ""
 JAVA_mipsel ?= ""
 JAVA_sh3 ?= ""
-OBJC_linux-uclibcgnueabi ?= ""
+OBJC_linux-uclibceabi ?= ""
 OBJC_linux-uclibc ?= ""
 OBJC_avr ?= ""
 OBJC ?= ",objc"
@@ -41,7 +41,7 @@ EXTRA_OECONF = "${@['--enable-clocale=generic', ''][bb.data.getVar('USE_NLS', d,
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
-EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibceabi    = " --disable-__cxa_atexit"
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 CPPFLAGS = ""
 
diff --git a/recipes/gcc/gcc-configure-sdk.inc b/recipes/gcc/gcc-configure-sdk.inc
index d04f608..205b106 100644
--- a/recipes/gcc/gcc-configure-sdk.inc
+++ b/recipes/gcc/gcc-configure-sdk.inc
@@ -2,7 +2,7 @@ require gcc-configure-common.inc
 
 # The two lines below conflict, this needs fixing - RP
 USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibc", "no", "", d )}'
-USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d )}'
+USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibceabi", "no", "", d )}'
 
 EXTRA_OECONF_PATHS = "--with-sysroot=${prefix}/${TARGET_SYS} \
                       --with-build-time-tools=${CROSS_DIR}/${TARGET_SYS}/bin \
diff --git a/recipes/gettext/gettext_0.14.1.bb b/recipes/gettext/gettext_0.14.1.bb
index 30fb92d..b383525 100644
--- a/recipes/gettext/gettext_0.14.1.bb
+++ b/recipes/gettext/gettext_0.14.1.bb
@@ -15,7 +15,7 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
            file://disable_java.patch;patch=1"
 
 SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
-SRC_URI_append_linux-uclibcgnueabi = " file://gettext-error_print_progname.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = " file://gettext-error_print_progname.patch;patch=1"
 
 PARALLEL_MAKE = ""
 
diff --git a/recipes/gettext/gettext_0.17.bb b/recipes/gettext/gettext_0.17.bb
index 04dee4c..9f9f695 100644
--- a/recipes/gettext/gettext_0.17.bb
+++ b/recipes/gettext/gettext_0.17.bb
@@ -14,7 +14,7 @@ SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
 	  "
 
 SRC_URI_append_linux-uclibc = " file://gettext-error_print_progname.patch;patch=1"
-SRC_URI_append_linux-uclibcgnueabi = " file://gettext-error_print_progname.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = " file://gettext-error_print_progname.patch;patch=1"
 
 PARALLEL_MAKE = ""
 
diff --git a/recipes/klibc/klibc-common.inc b/recipes/klibc/klibc-common.inc
index b66bc61..3b0eb1c 100644
--- a/recipes/klibc/klibc-common.inc
+++ b/recipes/klibc/klibc-common.inc
@@ -31,7 +31,7 @@ ARM_INSTRUCTION_SET = "arm"
 
 SRC_URI_append_linux-gnueabi = "file://klibc-config-eabi.patch;patch=1 \
 				"
-SRC_URI_append_linux-uclibcgnueabi = "file://klibc-config-eabi.patch;patch=1 \
+SRC_URI_append_linux-uclibceabi = "file://klibc-config-eabi.patch;patch=1 \
 				      "
 
 EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \
diff --git a/recipes/libffi/libffi_2.0+gcc4.3.2.bb b/recipes/libffi/libffi_2.0+gcc4.3.2.bb
index be98050..3b59b6a 100644
--- a/recipes/libffi/libffi_2.0+gcc4.3.2.bb
+++ b/recipes/libffi/libffi_2.0+gcc4.3.2.bb
@@ -50,7 +50,7 @@ EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
-EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibceabi    = " --disable-__cxa_atexit"
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 
 #Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
diff --git a/recipes/libffi/libffi_3.0.8.bb b/recipes/libffi/libffi_3.0.8.bb
index cef09ae..d24e971 100644
--- a/recipes/libffi/libffi_3.0.8.bb
+++ b/recipes/libffi/libffi_3.0.8.bb
@@ -46,7 +46,7 @@ EXTRA_OECONF_PATHS = "--with-local-prefix=${prefix}/local \
 EXTRA_OECONF_append_linux               = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-gnueabi       = " --enable-__cxa_atexit"
 EXTRA_OECONF_append_linux-uclibc        = " --disable-__cxa_atexit"
-EXTRA_OECONF_append_linux-uclibcgnueabi = " --disable-__cxa_atexit"
+EXTRA_OECONF_append_linux-uclibceabi = " --disable-__cxa_atexit"
 EXTRA_OECONF_FPU = "${@get_gcc_fpu_setting(bb, d)}"
 
 #Somehow gcc doesn't set __SOFTFP__ when passing -mfloatabi=softp :(
diff --git a/recipes/linknx/linknx.inc b/recipes/linknx/linknx.inc
index ff2492f..1feb2b7 100644
--- a/recipes/linknx/linknx.inc
+++ b/recipes/linknx/linknx.inc
@@ -7,7 +7,7 @@ LICENSE = "GPL"
 
 DEPENDS = " pthsem lua5.1 curl libesmtp"
 DEPENDS_append_linux-uclibc = " argp-standalone"
-DEPENDS_append_linux-uclibcgnueabi = " argp-standalone"
+DEPENDS_append_linux-uclibceabi = " argp-standalone"
 
 SRC_URI += "file://configure-libcurl.patch;patch=1 \
             file://linknx.start "
diff --git a/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb b/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb
index 79d90bc..b233dd7 100644
--- a/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb
+++ b/recipes/linux/ep93xx-kernel_2.6.17+2.6.18-rc1.bb
@@ -27,7 +27,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb b/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb
index 642b13f..9aab5d8 100644
--- a/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb
+++ b/recipes/linux/ep93xx-kernel_2.6.19+2.6.20-rc7.bb
@@ -26,7 +26,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/gumstix-linux.inc b/recipes/linux/gumstix-linux.inc
index 50111cb..030abf2 100644
--- a/recipes/linux/gumstix-linux.inc
+++ b/recipes/linux/gumstix-linux.inc
@@ -17,7 +17,7 @@ do_deploy[dirs] = "${S}"
 do_configure_prepend() {
         echo "" > ${S}/.config
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/ixp4xx-kernel.inc b/recipes/linux/ixp4xx-kernel.inc
index 8ec06e2..910819e 100644
--- a/recipes/linux/ixp4xx-kernel.inc
+++ b/recipes/linux/ixp4xx-kernel.inc
@@ -192,7 +192,7 @@ do_configure_prepend() {
 		echo 'CONFIG_CPU_BIG_ENDIAN=y' >>'${S}/.config'
 	fi
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then               
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then               
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config               
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config       
         else
diff --git a/recipes/linux/linux-bd-neon-2.6_2.6.22.bb b/recipes/linux/linux-bd-neon-2.6_2.6.22.bb
index 400fe78..3fca851 100644
--- a/recipes/linux/linux-bd-neon-2.6_2.6.22.bb
+++ b/recipes/linux/linux-bd-neon-2.6_2.6.22.bb
@@ -22,7 +22,7 @@ ALLOW_EMPTY = "1"
 do_configure() {
         cp arch/arm/configs/neon_defconfig .config || die "No default configuration for ${MACHINE} available."
 
-#        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+#        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 #                echo "CONFIG_AEABI=y"                   >> ${S}/.config
 #                echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
 #        else
diff --git a/recipes/linux/linux-hackndev-2.6_git.bb b/recipes/linux/linux-hackndev-2.6_git.bb
index 2f9f902..5c093a1 100644
--- a/recipes/linux/linux-hackndev-2.6_git.bb
+++ b/recipes/linux/linux-hackndev-2.6_git.bb
@@ -27,7 +27,7 @@ do_configure() {
 			|| die "No default configuration for ${MACHINE} available."
 	fi
 
-	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-handhelds-2.6.inc b/recipes/linux/linux-handhelds-2.6.inc
index 5270c14..fe48283 100644
--- a/recipes/linux/linux-handhelds-2.6.inc
+++ b/recipes/linux/linux-handhelds-2.6.inc
@@ -50,7 +50,7 @@ do_configure() {
 		echo "CONFIG_INITRAMFS_SOURCE=\"${WORKDIR}/initramfs.cpio\"" >> ${S}/.config
 	fi
 
-	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
 		echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
 	else
diff --git a/recipes/linux/linux-navman_2.6.18.bb b/recipes/linux/linux-navman_2.6.18.bb
index b37b68e..2c9aef9 100644
--- a/recipes/linux/linux-navman_2.6.18.bb
+++ b/recipes/linux/linux-navman_2.6.18.bb
@@ -26,7 +26,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-nokia800.inc b/recipes/linux/linux-nokia800.inc
index 0fc4740..0f52b7c 100644
--- a/recipes/linux/linux-nokia800.inc
+++ b/recipes/linux/linux-nokia800.inc
@@ -14,7 +14,7 @@ do_configure_prepend() {
 
 	rm -f ${S}/.config || true
 
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb b/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb
index 786e490..16fe38b 100644
--- a/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb
+++ b/recipes/linux/linux-palm-omap1_2.6.22-omap1.bb
@@ -25,7 +25,7 @@ do_configure() {
 	fi
 	
 
-	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux-rp.inc b/recipes/linux/linux-rp.inc
index bdeb9f3..041a095 100644
--- a/recipes/linux/linux-rp.inc
+++ b/recipes/linux/linux-rp.inc
@@ -105,7 +105,7 @@ do_configure() {
 
 	echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
 
-	if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
 		echo "CONFIG_AEABI=y"                   >> ${S}/.config
 		if [ "${ARM_KEEP_OABI}" = "1" ] ; then
 			echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
diff --git a/recipes/linux/linux-tornado-omap2_2.6.16.16.bb b/recipes/linux/linux-tornado-omap2_2.6.16.16.bb
index a9ebee1..9c6e133 100644
--- a/recipes/linux/linux-tornado-omap2_2.6.16.16.bb
+++ b/recipes/linux/linux-tornado-omap2_2.6.16.16.bb
@@ -24,7 +24,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/linux.inc b/recipes/linux/linux.inc
index 3dbb1ec..044d413 100644
--- a/recipes/linux/linux.inc
+++ b/recipes/linux/linux.inc
@@ -68,7 +68,7 @@ do_configure_prepend() {
         #
         # oabi / eabi support
         #
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 if [ "${ARM_KEEP_OABI}" = "1" ] ; then
                         echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
diff --git a/recipes/linux/mx21ads-kernel_2.6.19rc6.bb b/recipes/linux/mx21ads-kernel_2.6.19rc6.bb
index 47f363d..bc8e624 100644
--- a/recipes/linux/mx21ads-kernel_2.6.19rc6.bb
+++ b/recipes/linux/mx21ads-kernel_2.6.19rc6.bb
@@ -26,7 +26,7 @@ RPROVIDES_kernel-image += "hostap-modules"
 do_configure_prepend() {
 	install -m 0644 ${WORKDIR}/mx21ads_defconfig ${S}/defconfig
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/linux/netbook-pro-kernel_2.6.17.bb b/recipes/linux/netbook-pro-kernel_2.6.17.bb
index 1d24646..37704dc 100644
--- a/recipes/linux/netbook-pro-kernel_2.6.17.bb
+++ b/recipes/linux/netbook-pro-kernel_2.6.17.bb
@@ -27,7 +27,7 @@ do_configure() {
         fi
 
 
-        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" == "linux-gnueabi" -o  "${TARGET_OS}" == "linux-uclibceabi" ]; then
                 echo "CONFIG_AEABI=y"                   >> ${S}/.config
                 echo "CONFIG_OABI_COMPAT=y"             >> ${S}/.config
         else
diff --git a/recipes/make/make.inc b/recipes/make/make.inc
index 8a43f40..af21861 100644
--- a/recipes/make/make.inc
+++ b/recipes/make/make.inc
@@ -11,7 +11,7 @@ SRC_URI = "${GNU_MIRROR}/make/make-${PV}.tar.bz2 \
 inherit autotools
 
 do_configure_prepend() {
-	if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+	if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
 		export make_cv_sys_gnu_glob="no" 
 		export GLOBINC=-I`pwd`/glob
 		export GLOBLIB=glob/libglob.a
diff --git a/recipes/openssl/openssl.inc b/recipes/openssl/openssl.inc
index fea05f8..9031b7b 100644
--- a/recipes/openssl/openssl.inc
+++ b/recipes/openssl/openssl.inc
@@ -34,6 +34,9 @@ do_configure () {
 	if [ "x$os" = "xlinux-uclibc" ]; then
 		os=linux
 	fi
+	if [ "x$os" = "xlinux-uclibceabi" ]; then
+		os=linux
+	fi
 	target="$os-${HOST_ARCH}"
 	case $target in
 	linux-arm)
diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb
index 521cdf6..8d97199 100644
--- a/recipes/perl/perl_5.8.8.bb
+++ b/recipes/perl/perl_5.8.8.bb
@@ -63,7 +63,7 @@ do_configure() {
         done
 
         # Fixups for uclibc
-        if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
+        if [ "${TARGET_OS}" = "linux-uclibc" -o "${TARGET_OS}" = "linux-uclibceabi" ]; then
                 sed -i -e "s,\(d_crypt_r=\)'define',\1'undef',g" \
                        -e "s,\(crypt_r_proto=\)'\w+',\1'0',g" \
                        -e "s,\(d_getnetbyname_r=\)'define',\1'undef',g" \
diff --git a/recipes/qmake/qmake-native_1.07a.bb b/recipes/qmake/qmake-native_1.07a.bb
index a80bb1b..bb3e79b 100644
--- a/recipes/qmake/qmake-native_1.07a.bb
+++ b/recipes/qmake/qmake-native_1.07a.bb
@@ -18,7 +18,7 @@ EXTRA_OEMAKE = "-e"
 
 do_configure() {
 	# Install the OE build templates
-	for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibcgnueabi-oe-g++
+	for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
 	do
 		install -d ${S}/mkspecs/$template
 		install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
diff --git a/recipes/qmake/qmake2-native.inc b/recipes/qmake/qmake2-native.inc
index f84da2a..9908200 100644
--- a/recipes/qmake/qmake2-native.inc
+++ b/recipes/qmake/qmake2-native.inc
@@ -26,7 +26,7 @@ do_configure() {
     # Make sure we regenerate all Makefiles 
     find ${S} -name "Makefile" | xargs rm
     # Install the OE build templates
-    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibcgnueabi-oe-g++
+    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
     do
         install -d ${S}/mkspecs/$template
         install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
diff --git a/recipes/qte/qte-common_2.3.10.inc b/recipes/qte/qte-common_2.3.10.inc
index 6f0b134..f24a265 100644
--- a/recipes/qte/qte-common_2.3.10.inc
+++ b/recipes/qte/qte-common_2.3.10.inc
@@ -116,8 +116,8 @@ do_configure() {
 			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibc-,'`
 		sed -e 's,-linux-,-linux-gnueabi-,g' < $f \
 			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-gnueabi-,'`
-		sed -e 's,-linux-,-linux-uclibcgnueabi-,g' < $f \
-			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibcgnueabi-,'`
+		sed -e 's,-linux-,-linux-uclibceabi-,g' < $f \
+			> `dirname $f`/`basename $f | sed -e 's,linux-,linux-uclibceabi-,'`
 	done
 	echo yes | ./configure ${EXTRA_OECONF} || die "Configuring qte failed. EXTRA_OECONF was ${EXTRA_OECONF}"
 }
diff --git a/recipes/samba/samba_3.0.34.bb b/recipes/samba/samba_3.0.34.bb
index d43c50d..5ef9da5 100644
--- a/recipes/samba/samba_3.0.34.bb
+++ b/recipes/samba/samba_3.0.34.bb
@@ -4,7 +4,7 @@ require samba-basic.inc
 SRC_URI += "file://configure.patch;patch=1 \
             "
 SRC_URI_append_linux-uclibc        = "file://uclibc-strlcpy-strlcat.patch;patch=1"
-SRC_URI_append_linux-uclibcgnueabi = "file://uclibc-strlcpy-strlcat.patch;patch=1"
+SRC_URI_append_linux-uclibceabi = "file://uclibc-strlcpy-strlcat.patch;patch=1"
 
 PR = "r5"
 
diff --git a/recipes/tasks/task-sdk-bare.bb b/recipes/tasks/task-sdk-bare.bb
index 85d3626..9c78cfa 100644
--- a/recipes/tasks/task-sdk-bare.bb
+++ b/recipes/tasks/task-sdk-bare.bb
@@ -23,7 +23,7 @@ GLIBC_PKGS = "\
 LIBC_PKGS_linux = "${GLIBC_PKGS}"
 LIBC_PKGS_linux-gnueabi = "${GLIBC_PKGS}"
 LIBC_PKGS_linux-uclibc = "uclibc uclibc-dev uclibc-thread-db"
-LIBC_PKGS_linux-uclibcgnueabi = "uclibc uclibc-dev uclibc-thread-db"
+LIBC_PKGS_linux-uclibceabi = "uclibc uclibc-dev uclibc-thread-db"
 
 RDEPENDS_${PN} = "\
     ${LIBC_PKGS} \
diff --git a/recipes/uclibc/uclibc.inc b/recipes/uclibc/uclibc.inc
index 2ed7d82..88f62fa 100644
--- a/recipes/uclibc/uclibc.inc
+++ b/recipes/uclibc/uclibc.inc
@@ -146,12 +146,13 @@ do_configure() {
 
    	sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config
 
-        if [ "${TARGET_OS}" = "linux-gnueabi" -o  "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
-       		echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
-	else
-		echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+	if [ `echo ${TARGET_ARCH} | grep -e '^arm'` ]; then
+		if [ `echo ${TARGET_OS} | grep -e 'eabi$'` ]; then
+       			echo "CONFIG_ARM_EABI=y"                >> ${S}/.config
+		else
+			echo "# CONFIG_ARM_EABI is not set"     >> ${S}/.config
+		fi
 	fi
-
 	yes '' | oe_runmake oldconfig
 }
 
diff --git a/recipes/util-linux-ng/util-linux-ng_2.14.bb b/recipes/util-linux-ng/util-linux-ng_2.14.bb
index d7eafd3..7385324 100644
--- a/recipes/util-linux-ng/util-linux-ng_2.14.bb
+++ b/recipes/util-linux-ng/util-linux-ng_2.14.bb
@@ -6,6 +6,6 @@ SRC_URI += "file://util-linux-ng-uclibc-versionsort.patch;patch=1 \
 	    file://util-linux-ng-replace-siginterrupt.patch;patch=1 \
 	   "
 LDFLAGS_append_linux-uclibc = " -lintl"
-LDFLAGS_append_linux-uclibcgnueabi = " -lintl "
+LDFLAGS_append_linux-uclibceabi = " -lintl "
 LDFLAGS_append_uclinux-uclibc = " -lintl"
 

^ permalink raw reply related	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-02 19:20                       ` Khem Raj
@ 2009-09-02 20:29                         ` Phil Blundell
  2009-09-02 21:07                           ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-09-02 20:29 UTC (permalink / raw)
  To: openembedded-devel

On Wed, 2009-09-02 at 12:20 -0700, Khem Raj wrote:
> This also changes the target triplet for linux-uclibgnueabi to
> uclibc-uclibcebi. So I have also bumped up the OELAYOUT_ABI

Ah, that doesn't sound so good.  Changing OELAYOUT_ABI will be a
nuisance for everyone, even if they aren't using either uclibc or the
TARGET_OS auto-generator.  Is there a way to avoid that?

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-02 20:29                         ` Phil Blundell
@ 2009-09-02 21:07                           ` Khem Raj
  2009-09-03  4:36                             ` Tom Rini
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-02 21:07 UTC (permalink / raw)
  To: openembedded-devel

On Wed, Sep 2, 2009 at 1:29 PM, Phil Blundell<philb@gnu.org> wrote:
> On Wed, 2009-09-02 at 12:20 -0700, Khem Raj wrote:
>> This also changes the target triplet for linux-uclibgnueabi to
>> uclibc-uclibcebi. So I have also bumped up the OELAYOUT_ABI
>
> Ah, that doesn't sound so good.  Changing OELAYOUT_ABI will be a
> nuisance for everyone, even if they aren't using either uclibc or the
> TARGET_OS auto-generator.  Is there a way to avoid that?

It changes from linux to linux-gnu for non uclibc systems too which I
forgot to mention

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-02 21:07                           ` Khem Raj
@ 2009-09-03  4:36                             ` Tom Rini
  2009-09-03  5:15                               ` Khem Raj
  2009-09-03  9:32                               ` Phil Blundell
  0 siblings, 2 replies; 40+ messages in thread
From: Tom Rini @ 2009-09-03  4:36 UTC (permalink / raw)
  To: openembedded-devel

On Wed, Sep 02, 2009 at 02:07:54PM -0700, Khem Raj wrote:
> On Wed, Sep 2, 2009 at 1:29 PM, Phil Blundell<philb@gnu.org> wrote:
> > On Wed, 2009-09-02 at 12:20 -0700, Khem Raj wrote:
> >> This also changes the target triplet for linux-uclibgnueabi to
> >> uclibc-uclibcebi. So I have also bumped up the OELAYOUT_ABI
> >
> > Ah, that doesn't sound so good.  Changing OELAYOUT_ABI will be a
> > nuisance for everyone, even if they aren't using either uclibc or the
> > TARGET_OS auto-generator.  Is there a way to avoid that?
> 
> It changes from linux to linux-gnu for non uclibc systems too which I
> forgot to mention

Can we get away with that?  'linux-gnu' over 'linux' should be fine I
think but I'm worried about 'linux-uclibceabi', is that really a normal
standard and known host?  Also, there's some overrides that depend on
'uclibcgnueabi' iirc, which need to be updated for libc-uclibc override
instead.

-- 
Tom Rini



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-03  4:36                             ` Tom Rini
@ 2009-09-03  5:15                               ` Khem Raj
  2009-09-03  9:32                               ` Phil Blundell
  1 sibling, 0 replies; 40+ messages in thread
From: Khem Raj @ 2009-09-03  5:15 UTC (permalink / raw)
  To: openembedded-devel

On Wed, Sep 2, 2009 at 9:36 PM, Tom Rini<trini@embeddedalley.com> wrote:
> On Wed, Sep 02, 2009 at 02:07:54PM -0700, Khem Raj wrote:
>> On Wed, Sep 2, 2009 at 1:29 PM, Phil Blundell<philb@gnu.org> wrote:
>> > On Wed, 2009-09-02 at 12:20 -0700, Khem Raj wrote:
>> >> This also changes the target triplet for linux-uclibgnueabi to
>> >> uclibc-uclibcebi. So I have also bumped up the OELAYOUT_ABI
>> >
>> > Ah, that doesn't sound so good.  Changing OELAYOUT_ABI will be a
>> > nuisance for everyone, even if they aren't using either uclibc or the
>> > TARGET_OS auto-generator.  Is there a way to avoid that?
>>
>> It changes from linux to linux-gnu for non uclibc systems too which I
>> forgot to mention
>
> Can we get away with that?  'linux-gnu' over 'linux' should be fine I
> think but I'm worried about 'linux-uclibceabi', is that really a normal
> standard and known host?  Also, there's some overrides that depend on
> 'uclibcgnueabi' iirc, which need to be updated for libc-uclibc override
> instead.

linux-uclibcgnueabi is also madeup one. I think logically many tests
just check for uclibc* or
*eabi. There is no difference between both of them. I plan to fix any
fallout that come out of renaming
mostly it will be in toolchain parts only.

I have fixed all the overrides and also build and booted uclibc
arm/thumb images.


>
> --
> Tom Rini
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-03  4:36                             ` Tom Rini
  2009-09-03  5:15                               ` Khem Raj
@ 2009-09-03  9:32                               ` Phil Blundell
  2009-09-03 15:11                                 ` Khem Raj
  1 sibling, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-09-03  9:32 UTC (permalink / raw)
  To: openembedded-devel

On Wed, 2009-09-02 at 21:36 -0700, Tom Rini wrote:
> Can we get away with that?  'linux-gnu' over 'linux' should be fine I
> think but I'm worried about 'linux-uclibceabi', is that really a normal
> standard and known host?  Also, there's some overrides that depend on
> 'uclibcgnueabi' iirc, which need to be updated for libc-uclibc override
> instead.

I think Khem's patch does update most/all of the overrides in question,
but if this requires an OELAYOUT_ABI change then it seems like a lot of
disruption to fix what is (if I understand correctly) only a cosmetic
problem in the first place.

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-03  9:32                               ` Phil Blundell
@ 2009-09-03 15:11                                 ` Khem Raj
  2009-09-04 10:51                                   ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-03 15:11 UTC (permalink / raw)
  To: openembedded-devel

On Thu, Sep 3, 2009 at 2:32 AM, Phil Blundell<philb@gnu.org> wrote:
> On Wed, 2009-09-02 at 21:36 -0700, Tom Rini wrote:
>> Can we get away with that?  'linux-gnu' over 'linux' should be fine I
>> think but I'm worried about 'linux-uclibceabi', is that really a normal
>> standard and known host?  Also, there's some overrides that depend on
>> 'uclibcgnueabi' iirc, which need to be updated for libc-uclibc override
>> instead.
>
> I think Khem's patch does update most/all of the overrides in question,
> but if this requires an OELAYOUT_ABI change then it seems like a lot of
> disruption to fix what is (if I understand correctly) only a cosmetic
> problem in the first place.

The documentation around OELAYOUT_ABI says that it should be bumped
whenever there
is a change in tmp layout structure and this change will do rename few
directories and
binaries in the tmp folder thats why the bump

and incremental builds wont work anyway because cross compiler names
will be different.
thats why I was bumping it up.

Thanks

-Khem

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-03 15:11                                 ` Khem Raj
@ 2009-09-04 10:51                                   ` Phil Blundell
  2009-09-04 12:45                                     ` Leon Woestenberg
  2009-09-04 15:27                                     ` Khem Raj
  0 siblings, 2 replies; 40+ messages in thread
From: Phil Blundell @ 2009-09-04 10:51 UTC (permalink / raw)
  To: openembedded-devel

On Thu, 2009-09-03 at 08:11 -0700, Khem Raj wrote:
> On Thu, Sep 3, 2009 at 2:32 AM, Phil Blundell<philb@gnu.org> wrote:
> > On Wed, 2009-09-02 at 21:36 -0700, Tom Rini wrote:
> >> Can we get away with that?  'linux-gnu' over 'linux' should be fine I
> >> think but I'm worried about 'linux-uclibceabi', is that really a normal
> >> standard and known host?  Also, there's some overrides that depend on
> >> 'uclibcgnueabi' iirc, which need to be updated for libc-uclibc override
> >> instead.
> >
> > I think Khem's patch does update most/all of the overrides in question,
> > but if this requires an OELAYOUT_ABI change then it seems like a lot of
> > disruption to fix what is (if I understand correctly) only a cosmetic
> > problem in the first place.
> 
> The documentation around OELAYOUT_ABI says that it should be bumped
> whenever there is a change in tmp layout structure and this change will do 
> rename few directories and binaries in the tmp folder thats why the 
> bump
> 
> and incremental builds wont work anyway because cross compiler names
> will be different.
> thats why I was bumping it up.

Yes, I know what OELAYOUT_ABI is for.  The point I was making is that,
if changing the TARGET_OS strings is disruptive enough to require an
OELAYOUT_ABI bump (and hence, effectively, force everybody to delete
their working trees and rebuild from scratch), that seems like a lot of
hassle for very little actual gain.

As I understand it, there is no compelling reason why the TARGET_OS
strings need to be changed: the difference between linux and linux-gnu
(and between linux-uclibcgnueabi and linux-uclibceabi) is more of a
cosmetic one than a functional advantage.  If that's the case then the
change doesn't really seem to be important enough to justify the
upheaval; I would suggest leaving those strings alone for now.

If and when we are obliged to bump OELAYOUT_ABI for some other (more
important) reason, that would be a good time to fold in this sort of
thing.

Alternatively, a reasonable compromise might be to arrange for
OELAYOUT_ABI to be bumped only for folks who are using an affected
DISTRO (which I guess means micro and minimal in this situation).

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-04 10:51                                   ` Phil Blundell
@ 2009-09-04 12:45                                     ` Leon Woestenberg
  2009-09-04 15:27                                     ` Khem Raj
  1 sibling, 0 replies; 40+ messages in thread
From: Leon Woestenberg @ 2009-09-04 12:45 UTC (permalink / raw)
  To: openembedded-devel

Hello,

On Fri, Sep 4, 2009 at 12:51 PM, Phil Blundell<philb@gnu.org> wrote:
> On Thu, 2009-09-03 at 08:11 -0700, Khem Raj wrote:
>> On Thu, Sep 3, 2009 at 2:32 AM, Phil Blundell<philb@gnu.org> wrote:
>> >
>> > I think Khem's patch does update most/all of the overrides in question,
>> > but if this requires an OELAYOUT_ABI change then it seems like a lot of
>> > disruption to fix what is (if I understand correctly) only a cosmetic
>> > problem in the first place.
>>
>> The documentation around OELAYOUT_ABI says that it should be bumped
>> whenever there is a change in tmp layout structure and this change will do
>> rename few directories and binaries in the tmp folder thats why the
>> bump
>>
>
> Yes, I know what OELAYOUT_ABI is for.  The point I was making is that,
> if changing the TARGET_OS strings is disruptive enough to require an
> OELAYOUT_ABI bump (and hence, effectively, force everybody to delete
> their working trees and rebuild from scratch), that seems like a lot of
> hassle for very little actual gain.
>
IMHO, it's disruptive enough as per the documentation.

And building from scratch isn't necessarily bad; I've seen people not
been affected by bugs for weeks after an OE upstream regression,
simply because they were doing incremental builds and thus didn't
really test any lower level changes that crept into the framework.

Regards,
-- 
Leon



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-04 10:51                                   ` Phil Blundell
  2009-09-04 12:45                                     ` Leon Woestenberg
@ 2009-09-04 15:27                                     ` Khem Raj
  2009-09-04 15:37                                       ` Phil Blundell
  1 sibling, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-04 15:27 UTC (permalink / raw)
  To: openembedded-devel

On Fri, Sep 4, 2009 at 3:51 AM, Phil Blundell<philb@gnu.org> wrote:
> On Thu, 2009-09-03 at 08:11 -0700, Khem Raj wrote:
>> On Thu, Sep 3, 2009 at 2:32 AM, Phil Blundell<philb@gnu.org> wrote:
>> > On Wed, 2009-09-02 at 21:36 -0700, Tom Rini wrote:
>> >> Can we get away with that?  'linux-gnu' over 'linux' should be fine I
>> >> think but I'm worried about 'linux-uclibceabi', is that really a normal
>> >> standard and known host?  Also, there's some overrides that depend on
>> >> 'uclibcgnueabi' iirc, which need to be updated for libc-uclibc override
>> >> instead.
>> >
>> > I think Khem's patch does update most/all of the overrides in question,
>> > but if this requires an OELAYOUT_ABI change then it seems like a lot of
>> > disruption to fix what is (if I understand correctly) only a cosmetic
>> > problem in the first place.
>>
>> The documentation around OELAYOUT_ABI says that it should be bumped
>> whenever there is a change in tmp layout structure and this change will do
>> rename few directories and binaries in the tmp folder thats why the
>> bump
>>
>> and incremental builds wont work anyway because cross compiler names
>> will be different.
>> thats why I was bumping it up.
>
> Yes, I know what OELAYOUT_ABI is for.  The point I was making is that,
> if changing the TARGET_OS strings is disruptive enough to require an
> OELAYOUT_ABI bump (and hence, effectively, force everybody to delete
> their working trees and rebuild from scratch), that seems like a lot of
> hassle for very little actual gain.
>
> As I understand it, there is no compelling reason why the TARGET_OS
> strings need to be changed: the difference between linux and linux-gnu
> (and between linux-uclibcgnueabi and linux-uclibceabi) is more of a
> cosmetic one than a functional advantage.  If that's the case then the
> change doesn't really seem to be important enough to justify the
> upheaval; I would suggest leaving those strings alone for now.
>
> If and when we are obliged to bump OELAYOUT_ABI for some other (more
> important) reason, that would be a good time to fold in this sort of
> thing.
>
> Alternatively, a reasonable compromise might be to arrange for
> OELAYOUT_ABI to be bumped only for folks who are using an affected
> DISTRO (which I guess means micro and minimal in this situation).
>

Other distros also need this change. IMO it will be better
that we enforce a rebuild otherwise users might have issues that
are hard to debug.

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-04 15:27                                     ` Khem Raj
@ 2009-09-04 15:37                                       ` Phil Blundell
  2009-09-04 17:34                                         ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-09-04 15:37 UTC (permalink / raw)
  To: openembedded-devel

On Fri, 2009-09-04 at 08:27 -0700, Khem Raj wrote:
> Other distros also need this change. IMO it will be better
> that we enforce a rebuild otherwise users might have issues that
> are hard to debug.

Why do other DISTROs need this change?  Surely if they aren't using
sane-toolchain.inc to set TARGET_OS then they oughtn't to be affected.

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-04 15:37                                       ` Phil Blundell
@ 2009-09-04 17:34                                         ` Khem Raj
  2009-09-04 18:59                                           ` Phil Blundell
  0 siblings, 1 reply; 40+ messages in thread
From: Khem Raj @ 2009-09-04 17:34 UTC (permalink / raw)
  To: openembedded-devel

On Fri, Sep 4, 2009 at 8:37 AM, Phil Blundell<philb@gnu.org> wrote:
> On Fri, 2009-09-04 at 08:27 -0700, Khem Raj wrote:
>> Other distros also need this change. IMO it will be better
>> that we enforce a rebuild otherwise users might have issues that
>> are hard to debug.
>
> Why do other DISTROs need this change?  Surely if they aren't using
> sane-toolchain.inc to set TARGET_OS then they oughtn't to be affected.

because of the TARGET_OS OVERRIDES now depend upon the new target triplet.
Probably one way would be to leave the old overrides in there but that would
have been more confusing.

Thx

-Khem

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-04 17:34                                         ` Khem Raj
@ 2009-09-04 18:59                                           ` Phil Blundell
  2009-09-04 21:52                                             ` Khem Raj
  0 siblings, 1 reply; 40+ messages in thread
From: Phil Blundell @ 2009-09-04 18:59 UTC (permalink / raw)
  To: openembedded-devel

On Fri, 2009-09-04 at 10:34 -0700, Khem Raj wrote:
> On Fri, Sep 4, 2009 at 8:37 AM, Phil Blundell<philb@gnu.org> wrote:
> > On Fri, 2009-09-04 at 08:27 -0700, Khem Raj wrote:
> >> Other distros also need this change. IMO it will be better
> >> that we enforce a rebuild otherwise users might have issues that
> >> are hard to debug.
> >
> > Why do other DISTROs need this change?  Surely if they aren't using
> > sane-toolchain.inc to set TARGET_OS then they oughtn't to be affected.
> 
> because of the TARGET_OS OVERRIDES now depend upon the new target triplet.
> Probably one way would be to leave the old overrides in there but that would
> have been more confusing.

Oh, I see.  So anybody who sets TARGET_OS by hand is going to lose
unless they change their settings to match?  I guess there should at
least be a diagnostic for that.

p.





^ permalink raw reply	[flat|nested] 40+ messages in thread

* Re: [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= linux-gnuspe for e500
  2009-09-04 18:59                                           ` Phil Blundell
@ 2009-09-04 21:52                                             ` Khem Raj
  0 siblings, 0 replies; 40+ messages in thread
From: Khem Raj @ 2009-09-04 21:52 UTC (permalink / raw)
  To: openembedded-devel

On Fri, Sep 4, 2009 at 11:59 AM, Phil Blundell<philb@gnu.org> wrote:
> On Fri, 2009-09-04 at 10:34 -0700, Khem Raj wrote:
>> On Fri, Sep 4, 2009 at 8:37 AM, Phil Blundell<philb@gnu.org> wrote:
>> > On Fri, 2009-09-04 at 08:27 -0700, Khem Raj wrote:
>> >> Other distros also need this change. IMO it will be better
>> >> that we enforce a rebuild otherwise users might have issues that
>> >> are hard to debug.
>> >
>> > Why do other DISTROs need this change?  Surely if they aren't using
>> > sane-toolchain.inc to set TARGET_OS then they oughtn't to be affected.
>>
>> because of the TARGET_OS OVERRIDES now depend upon the new target triplet.
>> Probably one way would be to leave the old overrides in there but that would
>> have been more confusing.
>
> Oh, I see.  So anybody who sets TARGET_OS by hand is going to lose
> unless they change their settings to match?  I guess there should at
> least be a diagnostic for that.

Hmm there never was one before. one could set it to anything but I
think it would be
an improvement to check for valid TARGET_OS

-Khem

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



^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2009-09-04 22:19 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-29  0:00 [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = linux-gnuspe for e500 Khem Raj
2009-08-29  2:02 ` Tom Rini
2009-08-29  7:50   ` Khem Raj
2009-08-30  1:22     ` Khem Raj
2009-08-30  8:10       ` Phil Blundell
2009-08-30  8:29         ` Phil Blundell
2009-08-30  9:22           ` Khem Raj
2009-08-30  9:54             ` Phil Blundell
2009-08-30 10:38               ` Khem Raj
2009-08-30 11:18                 ` Phil Blundell
2009-08-30 18:08                   ` Khem Raj
2009-08-30 18:11                     ` Khem Raj
2009-08-30 20:27                     ` Phil Blundell
2009-08-30  9:33           ` Koen Kooi
2009-08-30  9:48           ` Khem Raj
2009-08-31 11:33             ` Marcin Juszkiewicz
2009-08-31 18:57               ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS?= " Khem Raj
2009-09-01  5:57               ` Khem Raj
2009-09-01  8:21                 ` Dirk Opfer
2009-09-01 15:31                   ` Khem Raj
2009-09-01 23:07                     ` Khem Raj
2009-09-02 19:20                       ` Khem Raj
2009-09-02 20:29                         ` Phil Blundell
2009-09-02 21:07                           ` Khem Raj
2009-09-03  4:36                             ` Tom Rini
2009-09-03  5:15                               ` Khem Raj
2009-09-03  9:32                               ` Phil Blundell
2009-09-03 15:11                                 ` Khem Raj
2009-09-04 10:51                                   ` Phil Blundell
2009-09-04 12:45                                     ` Leon Woestenberg
2009-09-04 15:27                                     ` Khem Raj
2009-09-04 15:37                                       ` Phil Blundell
2009-09-04 17:34                                         ` Khem Raj
2009-09-04 18:59                                           ` Phil Blundell
2009-09-04 21:52                                             ` Khem Raj
2009-08-29  8:14 ` [PATCH] sane-toolchain-eglibc.inc: Set TARGET_OS = " Phil Blundell
2009-08-29  8:33   ` Khem Raj
2009-08-29  8:53     ` Phil Blundell
2009-08-29 14:30       ` Koen Kooi
2009-08-29 17:08         ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.