Re: [PATCH v2] Fix objtool with clang

From: Arnaldo Carvalho de Melo
Date: Mon Nov 28 2016 - 10:00:38 EST


Em Mon, Nov 28, 2016 at 12:39:28PM +0100, Jiri Olsa escreveu:
> On Sun, Nov 27, 2016 at 09:43:46PM -0500, Peter Foley wrote:
> > Clang doesn't support multiple arguments being passed to -Wp, so split
> > them.
> >
> > Fixes this error:
> > HOSTCC tools/objtool/fixdep.o
> > cat: tools/objtool/.fixdep.o.d: No such file or directory
> >
> > v2:
> > rebased onto perf/core branch.
> >
> > Signed-off-by: Peter Foley <pefoley2@xxxxxxxxxxx>
>
> Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx>

After I applied this I started getting this:

CC /tmp/build/perf/tests/sw-clock.o
/tmp/build/perf/.plugin_jbd2.o.cmd:3: *** empty variable name. Stop.
Makefile:192: recipe for target '/tmp/build/perf/plugin_jbd2-in.o' failed
make[2]: *** [/tmp/build/perf/plugin_jbd2-in.o] Error 2
Makefile.perf:591: recipe for target '/tmp/build/perf/libtraceevent-dynamic-list' failed
make[1]: *** [/tmp/build/perf/libtraceevent-dynamic-list] Error 2
make[1]: *** Waiting for unfinished jobs....
CC /tmp/build/perf/tests/mmap-thread-lookup.o


If I remove the O= build dir and restart, I get it again:


[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
<SNIP>

CC /tmp/build/perf/util/pmu-bison.o
/tmp/build/perf/.plugin_jbd2.o.cmd:3: *** empty variable name. Stop.
Makefile:192: recipe for target '/tmp/build/perf/plugin_jbd2-in.o' failed
make[2]: *** [/tmp/build/perf/plugin_jbd2-in.o] Error 2
Makefile.perf:591: recipe for target '/tmp/build/perf/libtraceevent-dynamic-list' failed
make[1]: *** [/tmp/build/perf/libtraceevent-dynamic-list] Error 2
make[1]: *** Waiting for unfinished jobs....
CC /tmp/build/perf/util/parse-events.o
CC /tmp/build/perf/util/parse-events-flex.o

Trying to nuke my ccache dir:

Doesn't help:

[acme@jouet linux]$ rm -rf ~/.ccache/
[acme@jouet linux]$ m
make: Entering directory '/home/acme/git/linux/tools/perf'
BUILD: Doing 'make -j4' parallel build
/tmp/build/perf/jvmti/.jvmti_agent.o.cmd:3: *** empty variable name. Stop.
Makefile.perf:566: recipe for target '/tmp/build/perf/jvmti/jvmti-in.o' failed
make[1]: *** [/tmp/build/perf/jvmti/jvmti-in.o] Error 2
make[1]: *** Waiting for unfinished jobs....
/tmp/build/perf/pmu-events/.jevents.o.cmd:3: *** empty variable name. Stop.
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
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':

5,406,254,581 cycles:u
8,259,935,345 instructions:u # 1.53 insn per cycle

2.150027964 seconds time elapsed

[acme@jouet linux]$