[linux-yocto] [PATCH 2/2] perf tools: Fix parallel build

Paul Gortmaker paul.gortmaker at windriver.com
Tue Oct 9 08:42:03 PDT 2012


On 12-10-05 12:35 PM, tom.zanussi at intel.com wrote:
> From: Eric Sandeen

In keeping with what is done for the -stable releases, if we have:

commit e6048fb8602648eabee96476b2703807d5e89409 upstream

right here before the long log, then it makes it easy to script
what gets tossed out on kernel uprevs.  We just look for such
a line, and we can run "git describe --contains ..." on it and
know which newer kernels already have it.

Also, you can feel free to use normal "Signed-off-by:" instead
of inventing "Backported-to-linux-yocto-3.4-by:" -- if there
really was something you needed to alter in the commit vs. a
trivial cherry pick, then it is generally noted in [...] above
the SOB line -- e.g.

Signed-off-by: Arnaldo Carvalho de Melo
[TZ: delete lines for foo; 3.4 doesn't have f3bedc8 which adds foo]
Signed-off-by: Tom Zanussi <tom.zanussi at intel.com>

You'd be correct in saying that the above defacto "-stable" method
probably isn't documented anywhere, so hopefully this helps.  I've
attached a $0.02 script to help automate this; you can save it to
somewhere in $PATH  and then use it just like any other git command
(i.e. "git cextract e6048fb86 ; git am -s 0001-blahblah.patch")

Thanks,
Paul.
--

> 
> Parallel builds of perf were failing for me on a 32p box, with:
> 
>     * new build flags or prefix
> util/pmu.l:7:23: error: pmu-bison.h: No such file or directory
> 
> ...
> 
> make: *** [util/pmu-flex.o] Error 1
> make: *** Waiting for unfinished jobs....
> 
> This can pretty quickly be seen by adding a sleep in front of the bison
> calls in tools/perf/Makefile and running make -j4 on a smaller box i.e.:
> 
> 	sleep 10; $(QUIET_BISON)$(BISON) -v util/pmu.y -d -o $(OUTPUT)util/pmu-bison.c
> 
> Adding the following dependencies fixes it for me.
> 
> Signed-off-by: Eric Sandeen
> Reviewed-by: Namhyung Kim
> Cc: Namhyung Kim
> Link: http://lkml.kernel.org/r/505BD190.40707
> Signed-off-by: Arnaldo Carvalho de Melo
> 
> Backported-to-linux-yocto-3.4-by: Tom Zanussi <tom.zanussi at intel.com>
> ---
>  tools/perf/Makefile | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/Makefile b/tools/perf/Makefile
> index 3262f98..b223a60 100644
> --- a/tools/perf/Makefile
> +++ b/tools/perf/Makefile
> @@ -237,13 +237,13 @@ export PERL_PATH
>  FLEX = flex
>  BISON= bison
>  
> -$(OUTPUT)util/parse-events-flex.c: util/parse-events.l
> +$(OUTPUT)util/parse-events-flex.c: util/parse-events.l $(OUTPUT)util/parse-events-bison.c
>  	$(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/parse-events-flex.h -t util/parse-events.l > $(OUTPUT)util/parse-events-flex.c
>  
>  $(OUTPUT)util/parse-events-bison.c: util/parse-events.y
>  	$(QUIET_BISON)$(BISON) -v util/parse-events.y -d -o $(OUTPUT)util/parse-events-bison.c
>  
> -$(OUTPUT)util/pmu-flex.c: util/pmu.l
> +$(OUTPUT)util/pmu-flex.c: util/pmu.l $(OUTPUT)util/pmu-bison.c
>  	$(QUIET_FLEX)$(FLEX) --header-file=$(OUTPUT)util/pmu-flex.h -t util/pmu.l > $(OUTPUT)util/pmu-flex.c
>  
>  $(OUTPUT)util/pmu-bison.c: util/pmu.y
> 
-------------- next part --------------
#!/bin/bash
# Assume that $1 might be HEAD, or a tag, or an abbrev. ID.
GIT_ID=`git rev-parse $1`
if [ $? != 0 ]; then
	echo $1 doesnt appear to be a valid git ref
	exit -1
fi

TMPF=`mktemp`
git format-patch -p $1^..$1 > $TMPF 2>&1
if [ $? != 0 ]; then
	echo format-patch failed
	cat $TMPF
	rm -f $TMPF
	exit -1
fi

FILE=`cat $TMPF`
rm -f $TMPF
if [ ! -f "$FILE" ];then
	echo cant find patch file $FILE
	exit -1
fi

# echo Commit is $FILE

(
	echo '/^$/a'
	echo -e "commit $GIT_ID upstream.\n"
	echo .
	echo w
	echo q 
) | ed -s $FILE


More information about the linux-yocto mailing list