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

Richard Purdie richard.purdie at linuxfoundation.org
Mon Apr 18 06:54:07 UTC 2011


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.

Cheers,

Richard





More information about the Openembedded-core mailing list