On Tue, 2021-08-31 at 15:26 +0200, Andrey Zhizhikin wrote:
> Richard,
> 
> On Tue, Aug 31, 2021 at 2:29 PM Andrey Zhizhikin via
> lists.openembedded.org <andrey.z=gmail....@lists.openembedded.org>
> wrote:
> > 
> > On Tue, Aug 31, 2021 at 2:19 PM Richard Purdie
> > <richard.pur...@linuxfoundation.org> wrote:
> > > 
> > > On Tue, 2021-08-31 at 13:54 +0200, Andrey Zhizhikin wrote:
> > > > Hello Richard,
> > > > 
> > > > On Tue, Aug 31, 2021 at 12:03 PM Richard Purdie
> > > > <richard.pur...@linuxfoundation.org> wrote:
> > > > > 
> > > > > On Tue, 2021-08-31 at 11:53 +0200, Andrey Zhizhikin wrote:
> > > > > > Hello Bruce,
> > > > > > 
> > > > > > On Mon, Aug 30, 2021 at 11:12 PM Bruce Ashfield
> > > > > > <bruce.ashfi...@gmail.com> wrote:
> > > > > > > 
> > > > > > > On Mon, Aug 30, 2021 at 4:55 PM Andrey Zhizhikin 
> > > > > > > <andre...@gmail.com> wrote:
> > > > > > > > 
> > > > > > > > Hello Richard,
> > > > > > > > 
> > > > > > > > On Mon, Aug 30, 2021 at 10:30 PM Richard Purdie
> > > > > > > > <richard.pur...@linuxfoundation.org> wrote:
> > > > > > > > > 
> > > > > > > > > On Mon, 2021-08-30 at 20:05 +0000, Andrey Zhizhikin wrote:
> > > > > > > > > > Kernel commit 12dd461ebd19 ("crypto: arm64 - generate *.S 
> > > > > > > > > > by Perl at
> > > > > > > > > > build time instead of shipping them") uses perl to generate 
> > > > > > > > > > assembler
> > > > > > > > > > files for crypto functionality, which relies on the 
> > > > > > > > > > integer.pm module to
> > > > > > > > > > be provided.
> > > > > > > > > > 
> > > > > > > > > > Add this module to FILES and export it for build system.
> > > > > > > > > > 
> > > > > > > > > > Signed-off-by: Andrey Zhizhikin <andre...@gmail.com>
> > > > > > > > > > Cc: Bruce Ashfield <bruce.ashfi...@gmail.com>
> > > > > > > > > > Cc: Alexander Kanavin <alex.kana...@gmail.com>
> > > > > > > > > > ---
> > > > > > > > > >  meta/recipes-devtools/perl/perl_5.34.0.bb | 1 +
> > > > > > > > > >  1 file changed, 1 insertion(+)
> > > > > > > > > > 
> > > > > > > > > > diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb 
> > > > > > > > > > b/meta/recipes-devtools/perl/perl_5.34.0.bb
> > > > > > > > > > index ab19a8d0be0..7a07b3f4911 100644
> > > > > > > > > > --- a/meta/recipes-devtools/perl/perl_5.34.0.bb
> > > > > > > > > > +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
> > > > > > > > > > @@ -248,6 +248,7 @@ FILES:${PN} = "${bindir}/perl 
> > > > > > > > > > ${bindir}/perl.real ${bindir}/perl${PV} ${libdir}/
> > > > > > > > > >                 ${libdir}/perl5/${PV}/strict.pm \
> > > > > > > > > >                 ${libdir}/perl5/${PV}/warnings.pm \
> > > > > > > > > >                 ${libdir}/perl5/${PV}/warnings \
> > > > > > > > > > +               ${libdir}/perl5/${PV}/integer.pm \
> > > > > > > > > >                 ${libdir}/perl5/${PV}/vars.pm \
> > > > > > > > > >                 ${libdir}/perl5/site_perl \
> > > > > > > > > >                 
> > > > > > > > > > ${libdir}/perl5/${PV}/ExtUtils/MANIFEST.SKIP \
> > > > > > > > > 
> > > > > > > > > Doesn't that mean something is missing an RDEPENDS on 
> > > > > > > > > perl-module-integer rather
> > > > > > > > > than adding to the main perl package?
> > > > > > > > 
> > > > > > > > Good point! Now that I look at it - this does look a bit too 
> > > > > > > > intrusive
> > > > > > > > (even though it did serve the purpose).
> > > > > > > > 
> > > > > > > > I'm just not sure if I can craft it to RDEPENDS in kernel class 
> > > > > > > > instead...
> > > > > > > > 
> > > > > > > > This is definitely required by newer kernel builds (>= 5.14), 
> > > > > > > > but I'm
> > > > > > > > no expert in how those dependencies are set in kernel class. 
> > > > > > > > Would
> > > > > > > > need to look a bit deeper there.
> > > > > > > 
> > > > > > > Doing it consistently is the challenge, so we tend to not set 
> > > > > > > them in
> > > > > > > the classes themselves.
> > > > > > 
> > > > > > Understood. Now I see the reason why I didn't observe any of those
> > > > > > dependencies in the kernel classes themselves.
> > > > > > 
> > > > > > > 
> > > > > > > You have to check both the architecture and the version for many 
> > > > > > > of
> > > > > > > the depends/rdepends.
> > > > > > > 
> > > > > > > Which is why I tend to carry dependencies like this in the 
> > > > > > > individual
> > > > > > > recipes, since the version is known and the arch is an easy check.
> > > > > > 
> > > > > > This is not a problem for me, as I can add it to the layer kernel
> > > > > > recipe. What I believe the problem might be is that after kernel
> > > > > > migration, eventually all BSP layers would have the same RDEPENDS
> > > > > > defined in their respective kernel recipes. This does call for some
> > > > > > unification imho, but I'm not sure how this can be properly done.
> > > > > > 
> > > > > > The other thing here is: the same Perl module would be required in 
> > > > > > the
> > > > > > SDK in order to build Kernels >= 5.14 standalone.
> > > > > > I was planning to include it into RDEPENDS of
> > > > > > nativesdk-packagegroup-sdk-host, but contemplating now if this is a
> > > > > > proper way of doing it. I see that the package group contains flex 
> > > > > > and
> > > > > > bison for kernel builds, so adding perl integer module there seems
> > > > > > quite logical to me. Unless there are good reasons not to do it this
> > > > > > way.
> > > > > 
> > > > > Isn't the kernel-devsrc recipe the place this should be added? You'd 
> > > > > need that
> > > > > to be building the kernel on target?
> > > > 
> > > > This is needed to build kernel on the host using standalone SDK.
> > > > 
> > > > To my knowledge, Perl (as a base package) is already provided in the
> > > > SDK, but required module is not. This makes the tooling incomplete and
> > > > breaks the build when kernel is upgraded to latest versions.
> > > > 
> > > > I've just tried it, and adding it to kernel-devsrc did not solve the
> > > > missing module issue.
> > > 
> > > As far as I recall we don't include perl in our SDKs and rely on the one 
> > > from
> > > the host. Which SDK exactly are you using?
> > 
> > This is then rather strange and confusing...
> > 
> > I do generate standalone SDK via 'bitbake meta-toolchain', which to my
> > current understanding should pull only minimal set of toolchain
> > component into its content. This does include Perl, perhaps through
> > some dependency resolution.
> > 
> > Since I use distro from meta-freescale layer - it might be (but less
> > likely) coming from some dependencies inside of it... I can try to
> > generate it off Poky distro now to see if it has Perl inside as well.
> 
> Just to follow-up on this: nativesdk-perl and a bunch of modules are
> pulled into the SDK by autoconf, which lists them in it's RDEPENDS.
> 
> This behavior is distro-agnostic, and making Perl to be installed into
> SDK in any case.

I had a further look and I think I'm confusing nativesdk-buildtools-perl-dummy
which is included in buildtool-tarball and nativesdk-sdk-provides-dummy which is
included in wider SDKs. The latter excludes things like bash and env but not
perl. Just to help confuse things, target-sdk-provides-dummy does exclude perl.

I guess that brings us back to nativesdk-packagegroup-sdk-host as the place
these things are listed (and where autoconf comes from).

Cheers,

Richard



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155530): 
https://lists.openembedded.org/g/openembedded-core/message/155530
Mute This Topic: https://lists.openembedded.org/mt/85260468/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to