[OE-core] [PATCH 37/58] gnu-config-native: add dependency on perl-native

Cui, Dexuan dexuan.cui at intel.com
Mon Apr 18 14:18:16 UTC 2011


Richard Purdie wrote:
> On Mon, 2011-04-18 at 13:43 +0800, Cui, Dexuan wrote:
>> Richard Purdie wrote:
>>> On Fri, 2011-04-15 at 23:54 -0700, Saul Wold wrote:
>>>> @@ -3,12 +3,14 @@ DESCRIPTION = "Tool that installs the GNU
>>>>  config.guess / config.sub into a direc  SECTION = "devel" LICENSE
>>>> =  "GPLv1+" LIC_FILES_CHKSUM =
>>>> "file://config.guess;endline=39;md5=a089987af4a25cb0419d1c2fd6d495e3"
>>>>  -DEPENDS = "" + +DEPENDS_virtclass-native = "perl-native" +
>>>> INHIBIT_DEFAULT_DEPS = "1" 
>>> 
>>> I haven't taken this. Having looked at the shear number of horrible
>>> perl-native issues, I'd like to take the same approach we took with
>>> the toolchain staging and place perl into its own bin directory we
>>> add to PATH when needed.
>> 
>> If a recipe does need perl-native but we fail to realize that, the
>> host's perl (e.g. /usr/bin/perl) will be used -- this will further
>> hinder us from realizing the recipe needs perl-native.
>> 
>> As to bug #968, the build failure happens because perl-native's
>> do_populate_sysroot has begun but hasn't finished. If perl-native
>> hasn't started to populate_sysroot, running gnu-configize won't fail
>> since host's perl will be used.
>> 
>> so I've 3 questions:
>> 1) in poky how to exclude host's perl from PATH? need to write a
>> python function to filter out various possible host perl paths? e.g.,
>> ~/bin/perl, /usr/local/bin/perl, /usr/bin/perl, /bin/perl,... too
>> many paths... 
>> 
>> 2) how to identify the recipes that need perl-native? I think we have
>> to identify them manually one by one? This is time comsuming?
>> 
>> 3) Even if we solve the above 2 issues, we still need to add
>> perl-native into the recipes' (that need perl-native) DEPENDS,
>> correct? 
>> 
>> I'm not sure my above understanding is ok. Please correct me if I'm
>> wrong.
> 
> What I'd like to do is have perl install into a bindir which isn't
> part of our PATH by default. For anything which has DEPENDS =
> "perl-native", we add this directory to PATH. Anything that doesn't
> have the DEPENDS doesn't see it. We can probably make this a
> perlnative.bbclass or something which just contains
> 
> PATH_prepend = "${STAGING_BINDIR_NATIVE}/perl-native:"
> DEPENDS += "perl-native"
> 
> This should ensure that anything that really needs perl-native finds
> it but we don't have *everything* depending on it unnecessarily.

Hi Richard,
Thanks very much for the detailed explanation!
Now I understand and will make changes accordingly.

Thanks,
-- Dexuan



More information about the Openembedded-core mailing list