On 2018年04月24日 08:45, Bruce Ashfield wrote:


On Mon, Apr 23, 2018 at 6:05 PM, Richard Purdie <richard.pur...@linuxfoundation.org <mailto:richard.pur...@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....@windriver.com
    <mailto:hongxu....@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@lists.openembedded.org
    <mailto:Openembedded-core@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"


-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to