Re: [PATCH 4.4 14/43] tools build: fix # escaping in .cmd files for future Make

From: Konstantin Khlebnikov
Date: Tue Jul 17 2018 - 15:51:37 EST


On 17.07.2018 16:15, Greg Kroah-Hartman wrote:
On Tue, Jul 17, 2018 at 03:57:21PM +0300, Konstantin Khlebnikov wrote:
This commit depends on commit 9564a8cf422d7b58f6e857e3546d346fa970191e
"Kbuild: fix # escaping in .cmd files for future Make"
which is missing in 4.4.141


this breaks compilation of tools/perf for me

make -C tools/perf V=1 JOBS=24 WERROR=0 NO_GTK2=1 LDFLAGS=-static all
make[1]: Entering directory `/tmp/buildd/linux-yandex-4.4.141/tools/perf'
BUILD: Doing 'make -j24' parallel build

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

config/Makefile:274: No libdw DWARF unwind found, Please install elfutils-devel/libdw-dev >= 0.158 and/or set LIBDW_DIR
config/Makefile:282: Old libdw.h, finding variables at given 'perf probe' point will not work, install elfutils-devel/libdw-dev >= 0.157
config/Makefile:458: Missing perl devel files. Disabling perl scripting support, please install perl-ExtUtils-Embed/libperl-dev
config/Makefile:501: No 'Python.h' (for Python 2.x support) was found: disables Python support - please install python-devel/python-dev
$(:)
make -C /tmp/buildd/linux-yandex-4.4.141/tools/build fixdep
/bin/sh util/PERF-VERSION-GEN
make -f /tmp/buildd/linux-yandex-4.4.141/tools/build/Makefile.build dir=. obj=fixdep
. util/generate-cmdlist.sh > common-cmds.h+ && mv common-cmds.h+ common-cmds.h
.fixdep.o.cmd:1: *** missing separator. Stop.
make[3]: *** [fixdep-in.o] Error 2
make[2]: *** [fixdep] Error 2

Ok, backporting the Makefile fixes resolves this issue. But perf still
fails to build for me due to some futex errors, which is odd, do you see
that too?

Compilation fails only for modern glibc, like in ubuntu 18.04 bionic.
Xenial 16.04 and precise 12.04 are fine.

I've bisected to indirect fix in linux 4.8
commit cec07f53c398f22576df77052c4777dc13f14962
("perf tools: Move syscall number fallbacks from perf-sys.h to tools/arch/x86/include/asm/")

To 4.4.y it applies clearly.


thanks,

greg k-h