Re: [PATCH v2] Fix objtool with clang

From: Arnaldo Carvalho de Melo
Date: Mon Nov 28 2016 - 14:41:12 EST


Em Mon, Nov 28, 2016 at 05:58:59PM +0100, Jiri Olsa escreveu:
> On Mon, Nov 28, 2016 at 07:25:53AM -0800, Peter Foley wrote:
> > On Mon, Nov 28, 2016 at 7:00 AM, Arnaldo Carvalho de Melo
> > <acme@xxxxxxxxxx> wrote:
> > > 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
> >
> > Odd, I can't reproduce that...
> > Mind sending your gcc version + the output of make V=1 + the contents
> > of the .cmd file causing the error?
>
> same here, can't reproduce.. might be some race issue we experienced before

Ok, fails in f25 as well, will try again later taking ccache out of the way, etc.

[acme@jouet linux]$ ccache -V
ccache version 3.3.3

Copyright (C) 2002-2007 Andrew Tridgell
Copyright (C) 2009-2016 Joel Rosdahl

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
[acme@jouet linux]$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/6.2.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --disable-libgcj --with-isl --enable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 6.2.1 20160916 (Red Hat 6.2.1-2) (GCC)
[acme@jouet linux]$ make -v
GNU Make 4.1
Built for x86_64-redhat-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[acme@jouet linux]$


[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
MKDIR /tmp/build/perf/pmu-events/
HOSTCC /tmp/build/perf/pmu-events/json.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/jsmn.o
CC /tmp/build/perf/perf-read-vdso32
HOSTCC /tmp/build/perf/pmu-events/jevents.o
MKDIR /tmp/build/perf/jvmti/
CC /tmp/build/perf/jvmti/libjvmti.o
PERF_VERSION = 4.9.rc6.g47bcdb
MKDIR /tmp/build/perf/ui/gtk/
<SNIP>
CC /tmp/build/perf/builtin-buildid-list.o
LD /tmp/build/perf/pmu-events/pmu-events-in.o
CC /tmp/build/perf/arch/x86/util/intel-bts.o
CC /tmp/build/perf/builtin-buildid-cache.o
CC /tmp/build/perf/builtin-list.o
LD /tmp/build/perf/arch/x86/util/libperf-in.o
MKDIR /tmp/build/perf/arch/x86/tests/
CC /tmp/build/perf/arch/x86/tests/regs_load.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....
MKDIR /tmp/build/perf/arch/x86/tests/
CC /tmp/build/perf/arch/x86/tests/arch-tests.o
<SNIP>
CC /tmp/build/perf/util/pmu.o
CC /tmp/build/perf/util/pmu-flex.o
LD /tmp/build/perf/util/libperf-in.o
LD /tmp/build/perf/libperf-in.o
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]$