-
-
Save abel0b/b1881e41b9e1c4b16d84e5e083c38a13 to your computer and use it in GitHub Desktop.
apt install flex bison | |
git clone https://github.com/microsoft/WSL2-Linux-Kernel --depth 1 | |
cd WSL2-Linux-Kernel/tools/perf | |
make -j8 | |
sudo cp perf /usr/local/bin |
Fixed by resetting my WSL back to base and using the latest. Idk what was up with it.
PSA, if you have installed a different version of gdb than the version that usually comes with your system installation, you may fail to build perf.
I am on Ubuntu 22.04 and tried to do this.
I had previously compiled from source and installed gdb 13.1 and perf failed to build with an obscure warning.
After downgrading gdb to 12.1, which is the same version which is available from the apt repository, perf built successfully.
In my case it was not as simple as doing 'sudo apt-get install gdb' as my installation of gdb from source had overwritten many files. I needed to download the source of gdb 12.1, build it, and install it, overwriting all the existing 13.1 files.
Looks like it may be broken on newer Python versions:
util/scripting-engines/trace-event-python.c: In function ‘python_start_scrip’:
util/scripting-engines/trace-event-python.c:1851:9: error: ‘PySys_SetArgv’ is deprecated [-Werror=deprecated-declarations]
1851 | PySys_SetArgv(argc + 1, command_line);
| ^~~~~~~~~~~~~
In file included from /home/lcrown/.pyenv/versions/3.11.4/include/python3.11/Python.h:96,
from util/scripting-engines/trace-event-python.c:22:
/home/lcrown/.pyenv/versions/3.11.4/include/python3.11/sysmodule.h:13:38: note: declared here
13 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **);
| ^~~~~~~~~~~~~
CC util/intel-bts.o
LD util/arm-spe-decoder/perf-in.o
CC util/arm-spe.o
CC util/s390-cpumsf.o
CC util/parse-branch-options.o
CC util/dump-insn.o
CC util/parse-regs-options.o
CC util/parse-sublevel-options.o
CC util/term.o
CC util/help-unknown-cmd.o
CC util/dlfilter.o
CC util/mem-events.o
CC util/vsprintf.o
CC util/units.o
CC util/time-utils.o
BISON util/expr-bison.c
CC util/branch.o
CC util/mem2node.o
CC util/clockid.o
CC util/bpf-loader.o
CC util/bpf_map.o
CC util/bpf-prologue.o
CC util/symbol-elf.o
CC util/probe-file.o
CC util/probe-event.o
CC util/probe-finder.o
CC util/dwarf-aux.o
CC util/dwarf-regs.o
cc1: all warnings being treated as errors
CC util/unwind-libunwind-local.o
make[5]: *** [/home/lcrown/code/repos/WSL2-Linux-Kernel/tools/build/Makefile.build:96: util/scripting-engines/trace-event-python.o] Error 1
make[4]: *** [/home/lcrown/code/repos/WSL2-Linux-Kernel/tools/build/Makefile.build:139: scripting-engines] Error 2
make[4]: *** Waiting for unfinished jobs....
LD util/intel-pt-decoder/perf-in.o
make[3]: *** [/home/lcrown/code/repos/WSL2-Linux-Kernel/tools/build/Makefile.build:139: util] Error 2
make[2]: *** [Makefile.perf:658: perf-in.o] Error 2
make[1]: *** [Makefile.perf:238: sub-make] Error 2
make: *** [Makefile:70: all] Error 2
same problem with you ~~
Looks like it may be broken on newer Python versions:
util/scripting-engines/trace-event-python.c: In function ‘python_start_scrip’: util/scripting-engines/trace-event-python.c:1851:9: error: ‘PySys_SetArgv’ is deprecated [-Werror=deprecated-declarations] 1851 | PySys_SetArgv(argc + 1, command_line); | ^~~~~~~~~~~~~ In file included from /home/lcrown/.pyenv/versions/3.11.4/include/python3.11/Python.h:96, from util/scripting-engines/trace-event-python.c:22: /home/lcrown/.pyenv/versions/3.11.4/include/python3.11/sysmodule.h:13:38: note: declared here 13 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **); | ^~~~~~~~~~~~~ CC util/intel-bts.o LD util/arm-spe-decoder/perf-in.o CC util/arm-spe.o CC util/s390-cpumsf.o CC util/parse-branch-options.o CC util/dump-insn.o CC util/parse-regs-options.o CC util/parse-sublevel-options.o CC util/term.o CC util/help-unknown-cmd.o CC util/dlfilter.o CC util/mem-events.o CC util/vsprintf.o CC util/units.o CC util/time-utils.o BISON util/expr-bison.c CC util/branch.o CC util/mem2node.o CC util/clockid.o CC util/bpf-loader.o CC util/bpf_map.o CC util/bpf-prologue.o CC util/symbol-elf.o CC util/probe-file.o CC util/probe-event.o CC util/probe-finder.o CC util/dwarf-aux.o CC util/dwarf-regs.o cc1: all warnings being treated as errors CC util/unwind-libunwind-local.o make[5]: *** [/home/lcrown/code/repos/WSL2-Linux-Kernel/tools/build/Makefile.build:96: util/scripting-engines/trace-event-python.o] Error 1 make[4]: *** [/home/lcrown/code/repos/WSL2-Linux-Kernel/tools/build/Makefile.build:139: scripting-engines] Error 2 make[4]: *** Waiting for unfinished jobs.... LD util/intel-pt-decoder/perf-in.o make[3]: *** [/home/lcrown/code/repos/WSL2-Linux-Kernel/tools/build/Makefile.build:139: util] Error 2 make[2]: *** [Makefile.perf:658: perf-in.o] Error 2 make[1]: *** [Makefile.perf:238: sub-make] Error 2 make: *** [Makefile:70: all] Error 2
yes, python 3.10.12 is ok, but 3.11 will broken
Downgraded to Python 3.10.13 and it also worked.
Downgraded to Python 3.10.13 and it also worked.
Ty, worked
what about WSL1 ?
Why do you even use it?
What about this one?
In file included from /home/vaqxai/perf-install/perf-6.9.0/tools/perf/util/evsel.c:43:
/home/vaqxai/perf-install/perf-6.9.0/tools/perf/util/trace-event.h:152:62: error: operator '&&' has no right operand
152 | #if defined(LIBTRACEEVENT_VERSION) && LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0)
| ^~
error: command '/usr/bin/gcc' failed with exit code 1
What about this one?
In file included from /home/vaqxai/perf-install/perf-6.9.0/tools/perf/util/evsel.c:43: /home/vaqxai/perf-install/perf-6.9.0/tools/perf/util/trace-event.h:152:62: error: operator '&&' has no right operand 152 | #if defined(LIBTRACEEVENT_VERSION) && LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) | ^~ error: command '/usr/bin/gcc' failed with exit code 1
I delete ./util/debug.c:31 and it works for me.
What about this one?
In file included from /home/vaqxai/perf-install/perf-6.9.0/tools/perf/util/evsel.c:43: /home/vaqxai/perf-install/perf-6.9.0/tools/perf/util/trace-event.h:152:62: error: operator '&&' has no right operand 152 | #if defined(LIBTRACEEVENT_VERSION) && LIBTRACEEVENT_VERSION >= MAKE_LIBTRACEEVENT_VERSION(1, 5, 0) | ^~ error: command '/usr/bin/gcc' failed with exit code 1
I delete ./util/debug.c:31 and it works for me.
didn't work for me
Also missing libpfm4-dev libtraceevent-dev pkg-config
With sudo apt install libpfm4-dev libtraceevent-dev pkg-config
the compilation error issue get solved.
With
sudo apt install libpfm4-dev libtraceevent-dev pkg-config
the compilation error issue get solved.
Had the same issue as crucinal1, and that solution worked.
Can anyone decifer this
I followed @MondayCha 's instructions.
I think maybe I have another
perf
installed and don't know how to get rid of it.openjdk-8-jdk is already the newest version (8u382-ga-1~22.04.1).