[OE-core] [PATCH V2] perf: make a copy of kernel source to perf workdir
Hongxu Jia
hongxu.jia at windriver.com
Tue Apr 24 01:44:39 UTC 2018
On 2018年04月24日 08:45, Bruce Ashfield wrote:
>
>
> On Mon, Apr 23, 2018 at 6:05 PM, Richard Purdie
> <richard.purdie at linuxfoundation.org
> <mailto:richard.purdie at linuxfoundation.org>> wrote:
>
> On Mon, 2018-04-23 at 13:51 -0400, Bruce Ashfield wrote:
> > On 2018-04-23 4:13 AM, Hongxu Jia wrote:
> > >
> > > Since perf modify kernel source which shared by multiple
> > > recipes, it probably caused kernel-devsrc compile failure
> > > at world build.
> > > ...
> > > >
> > > > 0 blocks
> > > > cpio: ./tools/perf/arch/arm/util/sedr7ORqk: Cannot stat:
> > > No such file or directory
> > > >
> > > > 0 blocks
> > > ...
> > > cpio tried to find a file at ${S}/tools/perf and failed
> > > if the input list is not valid.
> > >
> > > Make a copy of kernel shared source directory into a perf workdir
> > > could fix the issue.
> > >
> > > Drop `Fix for rebuilding' which is obsolete
> > >
> > > Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com
> <mailto:hongxu.jia at windriver.com>>
> > > ---
> > > meta/recipes-kernel/perf/perf.bb <http://perf.bb> | 11
> ++++++-----
> > > 1 file changed, 6 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/meta/recipes-kernel/perf/perf.bb <http://perf.bb>
> b/meta/recipes-
> > > kernel/perf/perf.bb <http://perf.bb>
> > > index 872b5f0..8b40806 100644
> > > --- a/meta/recipes-kernel/perf/perf.bb <http://perf.bb>
> > > +++ b/meta/recipes-kernel/perf/perf.bb <http://perf.bb>
> > > @@ -61,7 +61,7 @@ export PERL_ARCHLIB =
> "${STAGING_LIBDIR}${PERL_OW
> > > N_DIR}/perl/${@get_perl_version
> > >
> > > inherit kernelsrc
> > >
> > > -B = "${WORKDIR}/${BPN}-${PV}"
> > > +S = "${WORKDIR}/${BP}"
> > > SPDX_S = "${S}/tools/perf"
> > >
> > > # The LDFLAGS is required or some old kernels fails due missing
> > > @@ -119,11 +119,12 @@ do_install() {
> > > fi
> > > }
> > >
> > > -do_configure_prepend () {
> > > - # Fix for rebuilding
> > > - rm -rf ${B}/
> > > - mkdir -p ${B}/
> > > +do_configure[prefuncs] += "git_clone_kernel_source"
> > > +git_clone_kernel_source () {
> > > + git clone --single-branch ${STAGING_KERNEL_DIR} ${S}
> > I probably would have used "cp -a -r", or similar. Since it
> > is possible that a kernel may not actually be a git repo
> (linux-yocto
> > always is, but that is just one data point).
> >
> > Also, did you try just copying the tools SRC dir + whatever
> > infrastructure is needed to build ? That will save us a LOT
> > of i/o when moving the source around for perf to build.
> >
>
OK, I will copy the perf used src dir rather than the entire project source.
> > But outside of those details/mechanics, the approach is sound.
>
> Our "copy hardlink tree" function, whatever its called is sometimes of
> use in these cases...
>
Got it, I will use oe.path.copyhardlinktree
//Hongxu
> I think I'm the current owner of a bug in this area which I've sadly
> not gotten to yet :(.
>
> Also, have we considered the alternative - not copying tools/perf for
> the kernel devsrc?
>
>
> We could, but sometimes the devsrc is actually used to build the tools.
> I know that I have used it to build perf in the past.
>
> It is mostly skipped in my rewritten version (which I'll resubmit
> after 2.5
> releases). So for now, I'm thinking the smallest footprint change makes
> the most sense (as to which that is, that is probably not black and
> white).
>
> Bruce
>
>
> Cheers,
>
> Richard
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> <mailto:Openembedded-core at lists.openembedded.org>
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>
>
>
>
> --
> "Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180424/177220b2/attachment-0002.html>
More information about the Openembedded-core
mailing list