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

From: Arnaldo Carvalho de Melo
Date: Thu Dec 01 2016 - 13:53:44 EST


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
> >
> > thanks,
> > jirka

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?

Thanks,

- Arnaldo

Checking ccache version _after_ reinstalling it.
[acme@jouet linux]$ rpm -q ccache
ccache-3.3.3-1.fc25.x86_64

Before removing ccache:

[acme@jouet linux]$ git log --oneline -2
53c0b5e56b0e Fix objtool with clang
b73bc98b88db tools build: Make fixdep parsing wait for last target
[acme@jouet linux]$

[acme@jouet linux]$ m
make: Entering directory '/home/acme/git/linux/tools/perf'
BUILD: Doing 'make -j4' parallel build
CC /tmp/build/perf/jvmti/libjvmti.o
CC /tmp/build/perf/jvmti/jvmti_agent.o
HOSTCC /tmp/build/perf/pmu-events/json.o
HOSTCC /tmp/build/perf/fixdep.o
HOSTCC /tmp/build/perf/pmu-events/jsmn.o
HOSTLD /tmp/build/perf/fixdep-in.o
LINK /tmp/build/perf/fixdep
/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/jsmn.o' failed
make[2]: *** [/tmp/build/perf/pmu-events/jsmn.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....
LD /tmp/build/perf/jvmti/jvmti-in.o
Makefile:108: recipe for target 'install-bin' failed
make: *** [install-bin] Error 2
make: Leaving directory '/home/acme/git/linux/tools/perf'

Performance counter stats for 'make -k O=/tmp/build/perf -C tools/perf install-bin':

7,842,062,842 cycles:u
10,358,806,498 instructions:u # 1.32 insn per cycle

2.698261783 seconds time elapsed

[acme@jouet linux]$

Even if I try removing the build directory it fails:


[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.g628b2a
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'
[acme@jouet linux]$