Re: [PATCH 4.4 14/43] tools build: fix # escaping in .cmd files for future Make
From: Greg Kroah-Hartman
Date: Wed Jul 18 2018 - 04:24:50 EST
On Tue, Jul 17, 2018 at 10:51:29PM +0300, Konstantin Khlebnikov wrote:
> 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.
Yes! Thanks for figuring this out, it's been bothering me for a while
now. Now queued up.
greg k-h