Re: [PATCH 4/4] perf intel-pt: Use shared x86 insn decoder

From: Arnaldo Carvalho de Melo
Date: Fri Aug 30 2019 - 15:59:48 EST


Em Thu, Aug 29, 2019 at 05:41:21PM -0500, Josh Poimboeuf escreveu:
> +++ b/tools/perf/util/intel-pt-decoder/Build
> @@ -1,7 +1,7 @@
> perf-$(CONFIG_AUXTRACE) += intel-pt-pkt-decoder.o intel-pt-insn-decoder.o intel-pt-log.o intel-pt-decoder.o
>
> -inat_tables_script = util/intel-pt-decoder/gen-insn-attr-x86.awk
> -inat_tables_maps = util/intel-pt-decoder/x86-opcode-map.txt
> +inat_tables_script = ../../arch/x86/tools/gen-insn-attr-x86.awk
> +inat_tables_maps = ../../arch/x86/lib/x86-opcode-map.txt

I'm having trouble building it from:

[acme@quaco perf]$ make help | grep perf
perf-tar-src-pkg - Build perf-5.3.0-rc6.tar source tarball
perf-targz-src-pkg - Build perf-5.3.0-rc6.tar.gz source tarball
perf-tarbz2-src-pkg - Build perf-5.3.0-rc6.tar.bz2 source tarball
perf-tarxz-src-pkg - Build perf-5.3.0-rc6.tar.xz source tarball

I.e. detached tarballs, outside the kernel source tree, also using O=

[acme@quaco perf]$ ls -la perf-5*
ls: cannot access 'perf-5*': No such file or directory
[acme@quaco perf]$ make perf-tarxz-src-pkg ; ls -la perf-5.*
TAR
PERF_VERSION = 5.3.rc6.gc55f04097932
-rw-rw-r--. 1 acme acme 1670016 Aug 30 16:57 perf-5.3.0-rc6.tar.xz
[acme@quaco perf]$ cp perf-5.3.0-rc6.tar.xz /tmp
[acme@quaco perf]$ cd /tmp
[acme@quaco tmp]$ ls -la perf-5*
-rw-rw-r--. 1 acme acme 1670016 Aug 30 16:57 perf-5.3.0-rc6.tar.xz
[acme@quaco tmp]$ tar xf perf-5.3.0-rc6.tar.xz
[acme@quaco tmp]$ cd perf-5.3.0-rc6/
[acme@quaco perf-5.3.0-rc6]$ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf
[acme@quaco perf-5.3.0-rc6]$ make O=/tmp/build/perf -C tools/perf install-bin
make: Entering directory '/tmp/perf-5.3.0-rc6/tools/perf'
BUILD: Doing 'make -j8' parallel build
HOSTCC /tmp/build/perf/fixdep.o
HOSTLD /tmp/build/perf/fixdep-in.o
LINK /tmp/build/perf/fixdep

Auto-detecting system features:
... dwarf: [ on ]
... dwarf_getlocations: [ on ]
... glibc: [ on ]
... gtk2: [ on ]
... libaudit: [ on ]
... libbfd: [ on ]
... libcap: [ on ]
... libelf: [ on ]
... libnuma: [ on ]
... numa_num_possible_cpus: [ on ]
... libperl: [ on ]
... libpython: [ on ]
... libcrypto: [ on ]
... libunwind: [ on ]
... libdw-dwarf-unwind: [ on ]
... zlib: [ on ]
... lzma: [ on ]
... get_cpuid: [ on ]
... bpf: [ on ]
... libaio: [ on ]
... libzstd: [ on ]
... disassembler-four-args: [ on ]

GEN /tmp/build/perf/common-cmds.h
PERF_VERSION = 5.3.rc6.gc55f04097932
CC /tmp/build/perf/exec-cmd.o
MKDIR /tmp/build/perf/fd/
MKDIR /tmp/build/perf/fs/
<SNIP>
CC /tmp/build/perf/util/rwsem.o
CC /tmp/build/perf/util/thread-stack.o
LD /tmp/build/perf/tests/perf-in.o
CC /tmp/build/perf/util/auxtrace.o
make[5]: *** No rule to make target '../../arch/x86/tools/gen-insn-attr-x86.awk', needed by '/tmp/build/perf/util/intel-pt-decoder/inat-tables.c'. Stop.
make[5]: *** Waiting for unfinished jobs....
CC /tmp/build/perf/util/intel-pt.o
MKDIR /tmp/build/perf/util/intel-pt-decoder/
CC /tmp/build/perf/util/intel-bts.o
CC /tmp/build/perf/util/intel-pt-decoder/intel-pt-pkt-decoder.o
MKDIR /tmp/build/perf/util/scripting-engines/
MKDIR /tmp/build/perf/util/scripting-engines/
CC /tmp/build/perf/util/scripting-engines/trace-event-perl.o
CC /tmp/build/perf/util/scripting-engines/trace-event-python.o
make[4]: *** [/tmp/perf-5.3.0-rc6/tools/build/Makefile.build:139: intel-pt-decoder] Error 2
make[4]: *** Waiting for unfinished jobs....
CC /tmp/build/perf/util/arm-spe.o
LD /tmp/build/perf/util/scripting-engines/perf-in.o
make[3]: *** [/tmp/perf-5.3.0-rc6/tools/build/Makefile.build:139: util] Error 2
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile.perf:597: /tmp/build/perf/perf-in.o] Error 2
make[1]: *** [Makefile.perf:221: sub-make] Error 2
make: *** [Makefile:110: install-bin] Error 2
make: Leaving directory '/tmp/perf-5.3.0-rc6/tools/perf'
[acme@quaco perf-5.3.0-rc6]$