[oe] [PATCH] native.bbclass: add (re)definitions for TARGET_SYS and HOST_SYS

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Fri Aug 20 16:48:45 UTC 2010


2010/8/20 Khem Raj <raj.khem at gmail.com>:
> On Fri, Aug 20, 2010 at 8:34 AM, Khem Raj <raj.khem at gmail.com> wrote:
>> On Fri, Aug 20, 2010 at 7:39 AM, Phil Blundell <philb at gnu.org> wrote:
>>> On Fri, 2010-08-20 at 16:19 +0200, Frans Meulenbroeks wrote:
>>>> @@ -23,6 +23,7 @@ TARGET_VENDOR = "${BUILD_VENDOR}"
>>>>  TARGET_PREFIX = "${BUILD_PREFIX}"
>>>>  TARGET_CC_ARCH = "${BUILD_CC_ARCH}"
>>>>  TARGET_EXEEXT = "${BUILD_EXEEXT}"
>>>> +TARGET_SYS = "${BUILD_SYS}"
>>
>> bitbake.conf already has
>>
>> TARGET_SYS=${TARGET_ARCH}${TARGET_VENDOR}${@['-' +
>> bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d,
>> 1) == ('' or 'custom')]}
>>
>> so once you have TARGET_OS set correctly this should work well for native too.
>
>
> hmm _local ok if you override TARGET_OS locally then lot of other
> things will change
> because now TARGET_OS will not be reset to whatever native wants. even if you
> redefine TARGET_SYS may not be sufficient. Somehow if you can make
> native.bbclass
> to stubbornly ignore TARGET_OS override that might work.
>
I don't want to override TARGET_OS (and in fact this could be done in
the machine definition).

The hardware I am working with is a powerpc system quite similar to
calamari. It is an e500v2 which supports/needs spe.
For calamari/angstrom things work by the grace of the following code
in angstrom.eglibc.inc:

TARGET_OS = "linux"

TARGET_OS .= "${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1) in
['arm', 'armeb']]}"
TARGET_OS .= "${@['','-gnuspe'][bb.data.getVar('TARGET_ARCH',d,1) in
['ppc', 'powerpc'] and bb.data.getVar('MACHINE',d) in ['calamari']]}"

and actually if I replace calamari with my machine name it works.
The code seems too specific because afaik each ppc e500 core requires gnuspe.

The reason the override was there and not in the machine config, is
because at some point I thought this inc file would mask my
definition, so I wanted to be really really sure I got the gnuspe
settings.
I've had a discussion on this with pb and RP on irc, the problem is
probably not here but in gmp-native. Earlier native recipes (like
openssl-native, libcurses-native etc etc) build fine but for
gmp-native configure fails.
We've also looked at the patch for gmp-native and at least the darwin
patch indicates there is something fishy here.
My "patch" fixed things for me, but as it stands it is probably not
the proper solution but the answer is in gmp.
And my misperception was that for native recipes target and host
should be the sam, but for gmp-native configure is called with

--build=x86_64-linux --host=x86_64-linux --target=x86_64-linux-gnuspe

and it barfs upon the target value. Is this target value ok??? As I
said I expected here that build==host==target (for a native recipe).

Frans

PS:  I'm doing a rebuild from scratch now with the patch undone and
TARGET_OS being defined in the machine conf. When finished I can
provide some more detailed info on the error.




More information about the Openembedded-devel mailing list