Re: [PATCHv3] tools build: Make fixdep parsing wait for last target

From: Arnaldo Carvalho de Melo
Date: Fri Dec 02 2016 - 10:11:11 EST


Em Fri, Dec 02, 2016 at 10:15:39AM +0100, Jiri Olsa escreveu:
> On Thu, Dec 01, 2016 at 04:53:23PM -0200, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Dec 01, 2016 at 09:48:40AM -0800, Peter Foley escreveu:
> > > On Thu, Dec 1, 2016 at 5:00 AM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> > > > ok, so v3 actually ;-)

> > > > the v2 was tricky for the case when fixdep is not available,
> > > > so I decided to go with Peter's fix and fixing 'fixdep' tool
> > > > to properly parse out the target in case we hit the ccache
> > > > error.. we need to be able to do it anyway

> > > > please apply this patch before Peter's so we keep clean bisect

> > Doesn't work with ccache installed, but then after reinstalling ccache to check
> > its version, I can't reproduce it anymore, go figure :-\
> >
> > Can you guys please take a look at tmp.perf/fixdep in my tree and check that
> > the last two patches are the ones that should go upstream and that you are able
> > to build it _with_ ccache installed?

> yep, works for me

So I saw it again, while processing Wang's eBPF/llvm patchkit, right after
removing the build dir and starting from scratch, doing that process one more
time made it work, so it looks like a race, and look it is in a HOSTCC bit,
related?

[acme@jouet linux]$ rm -rf /tmp/build/perf/ ; mkdir -p /tmp/build/perf ; make -k O=/tmp/build/perf -C tools/perf install-bin
make: Entering directory '/home/acme/git/linux/tools/perf'
BUILD: Doing 'make -j4' parallel build

Auto-detecting system features:
... dwarf: [ on ]
... dwarf_getlocations: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... numa_num_possible_cpus: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libslang: [ on ]
... libcrypto: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... zlib: [ on ]
... lzma: [ on ]
... get_cpuid: [ on ]
... bpf: [ on ]

GEN /tmp/build/perf/common-cmds.h
HOSTCC /tmp/build/perf/fixdep.o
HOSTLD /tmp/build/perf/fixdep-in.o
LINK /tmp/build/perf/fixdep
MKDIR /tmp/build/perf/pmu-events/
HOSTCC /tmp/build/perf/pmu-events/json.o
/bin/sh: /tmp/build/perf//fixdep: Permission denied
/home/acme/git/linux/tools/build/Makefile.build:91: recipe for target '/tmp/build/perf/pmu-events/json.o' failed
make[2]: *** [/tmp/build/perf/pmu-events/json.o] Error 1
Makefile.perf:469: recipe for target '/tmp/build/perf/pmu-events/jevents-in.o' failed
make[1]: *** [/tmp/build/perf/pmu-events/jevents-in.o] Error 2
make[1]: *** Waiting for unfinished jobs....
PERF_VERSION = 4.9.rc6.g165081a
make[1]: *** wait: No child processes. Stop.
Makefile:108: recipe for target 'install-bin' failed
make: *** [install-bin] Error 2
make: Leaving directory '/home/acme/git/linux/tools/perf'