File perf.spec of Package perf.35610
#
# spec file for package perf
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: perf
%define version %(rpm -q --qf '%{VERSION}' kernel-source)
Version: %{version}
Release: 0
Summary: Performance Monitoring Tools for Linux
License: GPL-2.0-only
Group: Development/Tools/Debuggers
Url: https://perf.wiki.kernel.org/
BuildRequires: asciidoc
BuildRequires: audit-devel
BuildRequires: binutils-devel
BuildRequires: bison
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: gtk2-devel
BuildRequires: kernel-source >= 2.6.31
BuildRequires: libdw-devel
BuildRequires: libelf-devel
BuildRequires: OpenCSD-devel
BuildRequires: python3-devel
BuildRequires: xz-devel
%ifarch aarch64 ia64 x86_64 ppc64 ppc64le ppc %sparc
BuildRequires: libnuma-devel
%endif
%ifarch s390x s390
%define _perf_unwind NO_LIBUNWIND=1
%else
%define _perf_unwind %{nil}
BuildRequires: libunwind-devel
%endif
BuildRequires: newt-devel
BuildRequires: openssl-devel
BuildRequires: xmlto
BuildRequires: zlib-devel
# dl_open requirement so not autodetected
%ifarch ppc64 ppc64le
Requires: libebl
%endif
%{perl_requires}
%{?libperl_requires}
# upstream patches
Patch1: perf-vendor-events-intel-Add-core-event-list-for-Tigerlake.patch
Patch2: perf-vendor-events-Add-metrics-for-Tigerlake.patch
Patch3: perf-vendor-events-intel-Add-core-event-list-for-Elkhartlake.patch
Patch4: perf-vendor-events-intel-Add-basic-metrics-for-Elkhartlake.patch
Patch5: perf-tools-Remove-repipe-argument-from-perf_session__new.patch
Patch6: perf-tools-Pass-a-fd-to-perf_file_header__read_pipe.patch
Patch7: perf-inject-Fix-output-from-a-pipe-to-a-file.patch
Patch8: perf-inject-Fix-output-from-a-file-to-a-pipe.patch
Patch9: perf-bench-futex-Group-test-parameters-cleanup.patch
Patch10: perf-vendor-events-Add-metrics-for-Icelake-Server.patch
Patch11: perf-env-Track-kernel-64-bit-mode-in-environment.patch
Patch12: perf-vendor-events-intel-Update-core-event-list-for-CascadeLake-Server.patch
Patch13: perf-vendor-events-intel-Update-uncore-event-list-for-CascadeLake-Server.patch
Patch14: perf-vendor-events-Update-metrics-for-CascadeLake-Server.patch
Patch15: perf-vendor-events-intel-Update-core-event-list-for-SkyLake-Server.patch
Patch16: perf-vendor-events-intel-Update-uncore-event-list-for-SkyLake-Server.patch
Patch17: perf-vendor-events-Update-metrics-for-SkyLake-Server-c4ad8fab.patch
Patch18: perf-env-Add-perf_env__cpuid-perf_env__-nr_-pmu_mappings.patch
Patch19: perf-report-Add-support-to-print-a-textual-representation-of-IBS-raw-sample-data.patch
Patch20: perf-tools-Add-an-option-to-build-without-libbfd.patch
Patch21: perf-vendor-events-powerpc-Fix-spelling-mistake-icach-icache.patch
Patch22: perf-tests-attr-Add-missing-topdown-metrics-events.patch
Patch23: tools-perf-Add-mem_hops-field-in-perf_mem_data_src-structure.patch
Patch24: perf-vendor-events-arm64-Revise-hip08-uncore-events.patch
Patch25: perf-vendor-events-Fix-all-remaining-invalid-JSON-files.patch
Patch26: perf-vendor-events-Syntax-corrections-in-Neoverse-N1-json.patch
Patch27: perf-vendor-events-arm64-Add-new-armv8-pmu-events.patch
Patch28: perf-vendor-events-arm64-Categorise-the-Neoverse-V1-counters.patch
Patch29: perf-powerpc-Add-support-to-expose-instruction-and-data-address-registers-as-part-of-extended-regs.patch
Patch30: tools-build-Drop-needless-slang-include-path-in-test-all.patch
Patch31: perf-evsel-Add-bitfield_swap-to-handle-branch_stack-endian-issue.patch
Patch32: perf-test-sample-parsing-Add-endian-test-for-struct-branch_flags.patch
Patch33: perf-evsel-don-t-set-exclude_guest-by-default.patch
Patch34: perf-vendor-events-power10-Add-metric-events-JSON-file-for-power10-platform.patch
Patch35: perf-bpf-Avoid-memory-leak-from-perf_env__insert_btf.patch
Patch36: perf-tests-Remove-bash-construct-from-record-zstd_comp_decomp.sh.patch
Patch37: perf-test-sample-parsing-Fix-branch_stack-entry-endianness-check.patch
Patch38: perf-bench-Fix-two-memory-leaks-detected-with-ASan.patch
Patch39: perf-tools-Fix-SMT-detection-fast-read-path.patch
Patch40: tools-build-Remove-needless-libpython-version-feature-check-that-breaks-test-all-fast-path.patch
Patch41: perf-bpf-Fix-building-perf-with-BUILD_BPF_SKEL-1-by-default-in-more-distros.patch
Patch42: perf-bpf_skel-Do-not-use-typedef-to-avoid-error-on-old-clang.patch
Patch43: perf-intel-pt-Fix-some-PGE-packet-generation-enable-control-flow-packets-usage.patch
Patch44: perf-intel-pt-Fix-sync-state-when-a-PSB-synchronization-packet-is-found.patch
Patch45: perf-intel-pt-Fix-intel_pt_fup_event-assumptions-about-setting-state-type.patch
Patch46: perf-intel-pt-Fix-state-setting-when-receiving-overflow-OVF-packet.patch
Patch47: perf-intel-pt-Fix-next-err-value-walking-trace.patch
Patch48: perf-intel-pt-Fix-missing-instruction-events-with-q-option.patch
Patch49: perf-intel-pt-Fix-error-timestamp-setting-on-the-decoder-error-path.patch
Patch50: perf-inject-Fix-segfault-due-to-close-without-open.patch
Patch51: perf-inject-Fix-segfault-due-to-perf_data__fd-without-open.patch
Patch52: perf-intel-pt-Fix-parsing-of-VM-time-correlation-arguments.patch
Patch53: perf-script-Fix-CPU-filtering-of-a-script-s-switch-events.patch
Patch54: perf-scripts-python-intel-pt-events.py-Fix-printing-of-switch-events.patch
Patch55: perf-evlist-Allow-setting-arbitrary-leader.patch
Patch56: perf-parse-events-Architecture-specific-leader-override.patch
Patch57: perf-stat-Support-cputype-option-for-hybrid-events.patch
Patch58: perf-vendor-events-arm64-Fix-JSON-indentation-to-4-spaces-standard.patch
Patch59: perf-vendor-events-For-the-Arm-Neoverse-N2.patch
Patch60: perf-vendor-events-Rename-arm64-arch-std-event-files.patch
Patch61: tools-headers-UAPI-Add-new-macros-for-mem_hops-field-to-perf_event.h.patch
Patch62: perf-script-Fix-hex-dump-character-output.patch
Patch63: perf-evsel-Improve-error-message-for-uncore-events.patch
Patch64: perf-probe-Fix-ppc64-perf-probe-add-events-failed-case.patch
Patch65: perf-evsel-Override-attr-sample_period-for-non-libpfm4-events.patch
Patch66: perf-stat-Fix-display-of-grouped-aliased-events.patch
Patch67: perf-bpf-Defer-freeing-string-after-possible-strlen-on-it.patch
Patch68: perf-data-Fix-double-free-in-perf_session__delete.patch
Patch69: perf-symbols-Fix-symbol-size-calculation-condition.patch
Patch70: perf-parse-events-Ignore-case-in-topdown.slots-check.patch
Patch71: perf-vendor-events-Update-metrics-for-SkyLake-Server-3bad20d7.patch
Patch72: perf-vendor-events-Update-metrics-for-Broadwell-DE.patch
Patch73: perf-vendor-events-Update-metrics-for-CascadelakeX.patch
Patch74: perf-vendor-events-Update-metrics-for-HaswellX.patch
Patch75: perf-vendor-events-Update-metrics-for-Ivybridge.patch
Patch76: perf-vendor-events-Update-for-Westmere-EP-DP.patch
Patch77: perf-vendor-events-Update-metrics-for-IcelakeX.patch
Patch78: perf-vendor-events-Update-for-Bonnell.patch
Patch79: perf-vendor-events-Update-metrics-for-Broadwell.patch
Patch80: perf-vendor-events-Update-metrics-for-BroadwellX.patch
Patch81: perf-vendor-events-Update-for-Goldmont.patch
Patch82: perf-vendor-events-Update-for-GoldmontPlus.patch
Patch83: perf-vendor-events-Update-metrics-for-Haswell.patch
Patch84: perf-vendor-events-Update-metrics-for-Icelake.patch
Patch85: perf-vendor-events-Update-metrics-for-Ivytown.patch
Patch86: perf-vendor-events-Update-metrics-for-Jaketown.patch
Patch87: perf-vendor-events-Update-Knights-Landing.patch
Patch88: perf-vendor-events-Update-Nehalem-EP.patch
Patch89: perf-vendor-events-Update-metrics-for-Skylake.patch
Patch90: perf-vendor-events-Update-Sandybridge.patch
Patch91: perf-vendor-events-Update-Silvermont.patch
Patch92: perf-vendor-events-Update-Tigerlake.patch
Patch93: perf-vendor-events-Update-Westmere-EP-SP.patch
Patch94: perf-vendor-events-Update-Westmere-EX.patch
Patch95: perf-vendor-events-Update-TremontX.patch
Patch96: perf-jevents-Add-support-for-HiSilicon-CPA-PMU-aliasing.patch
Patch97: perf-vendor-events-intel-Add-core-event-list-for-Alderlake.patch
Patch98: perf-vendor-events-intel-Add-uncore-event-list-for-Alderlake.patch
Patch99: perf-vendor-events-intel-Update-events-for-CascadelakeX.patch
Patch100: perf-vendor-events-intel-Update-events-for-Elkhartlake.patch
Patch101: perf-vendor-events-intel-Update-events-for-Icelake.patch
Patch102: perf-vendor-events-intel-Update-events-for-IcelakeX.patch
Patch103: perf-vendor-events-intel-Update-events-for-Skylake.patch
Patch104: perf-vendor-events-intel-Update-events-for-SkylakeX.patch
Patch105: perf-vendor-events-intel-Update-events-for-Tigerlake.patch
Patch106: perf-vendor-events-intel-Update-events-for-TremontX.patch
Patch107: perf-parse-events-Move-slots-only-with-topdown.patch
Patch108: perf-evsel-Make-evsel__env-always-return-a-valid-env.patch
Patch109: perf-stat-Fix-forked-applications-enablement-of-counters.patch
Patch110: perf-python-Add-perf_env-stubs-that-will-be-needed-in-evsel__open_strerror.patch
Patch111: perf-evsel-Improve-AMD-IBS-Instruction-Based-Sampling-error-handling-messages.patch
Patch112: perf-arm-spe-Fix-perf-report-mem-mode.patch
Patch113: perf-tools-Fix-perf-s-libperf_print-callback.patch
Patch114: perf-bench-Fix-futex-bench-to-correct-usage-of-affinity-for-machines-with-CPUs-1K.patch
Patch115: perf-bench-Fix-epoll-bench-to-correct-usage-of-affinity-for-machines-with-CPUs-1K.patch
Patch116: perf-session-Remap-buf-if-there-is-no-space-for-event.patch
Patch117: perf-tools-Fix-misleading-add-event-PMU-debug-message.patch
Patch118: perf-bench-Fix-numa-testcase-to-check-if-CPU-used-to-bind-task-is-online.patch
Patch119: perf-bench-Fix-numa-bench-to-fix-usage-of-affinity-for-machines-with-CPUs-1K.patch
Patch120: perf-script-Always-allow-field-data_src-for-auxtrace.patch
Patch121: perf-report-Set-PERF_SAMPLE_DATA_SRC-bit-for-Arm-SPE-event.patch
Patch122: perf-arm-spe-Fix-addresses-of-synthesized-SPE-events.patch
Patch123: perf-bench-Fix-two-numa-NDEBUG-warnings.patch
Patch124: perf-vendor-events-intel-Fix-icelake-cstate-metrics.patch
Patch125: perf-vendor-events-intel-Fix-icelakex-cstate-metrics.patch
Patch126: perf-vendor-events-intel-Add-sapphirerapids-events.patch
Patch127: perf-vendor-events-intel-Update-CLX-uncore-to-v1.14.patch
Patch128: perf-vendor-events-intel-Update-SKX-uncore.patch
Patch129: perf-vendor-events-intel-Update-nehalemep-event-topics.patch
Patch130: perf-vendor-events-intel-Update-tigerlake-topic.patch
Patch131: perf-vendor-events-intel-Update-tremontx-uncore-and-topics.patch
Patch132: perf-vendor-events-intel-Update-westmereep-dp-event-topics.patch
Patch133: perf-vendor-events-intel-Update-westmereep-sp-event-topics.patch
Patch134: perf-vendor-events-intel-Update-westmereex-event-topics.patch
Patch135: perf-vendor-events-intel-Update-elkhartlake-event-topics.patch
Patch136: perf-vendor-events-intel-Update-goldmontplus-event-topics.patch
Patch137: perf-vendor-events-intel-Update-goldmont-event-topics.patch
Patch138: perf-vendor-events-intel-Add-metrics-for-Alderlake.patch
Patch139: perf-stat-Support-hybrid-topdown-option.patch
Patch140: perf-vendor-events-intel-Update-ICL-events-to-v1.13.patch
Patch141: perf-vendor-events-intel-Update-IVT-events-to-v21.patch
Patch142: perf-vendor-events-intel-Update-SKL-events-to-v53.patch
Patch143: perf-vendor-events-intel-Update-SKX-events-to-v1.27.patch
Patch144: perf-vendor-events-intel-Update-WSM-EP-SP-events-to-v3.patch
Patch145: perf-vendor-events-intel-Update-WSM-EX-events-to-v3.patch
Patch146: perf-vendor-events-intel-Update-core-event-list-for-Sapphirerapids.patch
Patch147: perf-vendor-events-intel-Add-uncore-event-list-for-Sapphirerapids.patch
Patch148: perf-vendor-events-intel-Update-CLX-events-to-v1.15.patch
Patch149: perf-evlist-Keep-topdown-counters-in-weak-group.patch
Patch150: perf-test-Add-basic-stat-and-topdown-group-test.patch
Patch151: perf-evsel-Fixes-topdown-events-in-a-weak-group-for-the-hybrid-platform.patch
Patch152: perf-stat-Always-keep-perf-metrics-topdown-events-in-a-group.patch
Patch153: perf-parse-events-Support-different-format-of-the-topdown-event-name.patch
Patch154: perf-parse-events-Move-slots-event-for-the-hybrid-platform-too.patch
Patch155: perf-vendor-events-Fix-Alderlake-metric-groups.patch
Patch156: perf-vendor-events-Fix-Ivytown-UNC_M_ACT_COUNT.RD-umask.patch
Patch157: perf-header-Add-ability-to-keep-feature-sections.patch
Patch158: libperf-Add-preadn.patch
Patch159: perf-inject-Keep-some-features-sections-from-input-file.patch
Patch160: perf-vendors-events-arm64-Arm-Cortex-A34.patch
Patch161: perf-vendors-events-arm64-Arm-Cortex-A35.patch
Patch162: perf-vendors-events-arm64-Arm-Cortex-A55.patch
Patch163: perf-vendors-events-arm64-Arm-Cortex-A510.patch
Patch164: perf-vendors-events-arm64-Arm-Cortex-A65.patch
Patch165: perf-vendors-events-arm64-Arm-Cortex-A73.patch
Patch166: perf-vendors-events-arm64-Arm-Cortex-A75.patch
Patch167: perf-vendors-events-arm64-Arm-Cortex-A77.patch
Patch168: perf-vendors-events-arm64-Arm-Cortex-A78.patch
Patch169: perf-vendors-events-arm64-Arm-Cortex-A710.patch
Patch170: perf-vendors-events-arm64-Arm-Cortex-X1.patch
Patch171: perf-vendors-events-arm64-Arm-Cortex-X2.patch
Patch172: perf-vendors-events-arm64-Arm-Neoverse-E1.patch
Patch173: perf-vendors-events-arm64-Update-Cortex-A57-A72.patch
Patch174: perf-evlist-Extend-arch_evsel__must_be_in_group-to-support-hybrid-systems.patch
Patch175: perf-record-Support-sample-read-topdown-metric-group-for-hybrid-platforms.patch
Patch176: perf-list-Add-IBM-z16-event-description-for-s390.patch
Patch177: perf-list-Update-event-description-for-IBM-z10-to-latest-level.patch
Patch178: perf-list-Update-event-description-for-IBM-z13-to-latest-level.patch
Patch179: perf-list-Update-event-description-for-IBM-z14-to-latest-level.patch
Patch180: perf-list-Update-event-description-for-IBM-z15-to-latest-level.patch
Patch181: perf-list-Update-event-description-for-IBM-z196-z114-to-latest-level.patch
Patch182: perf-list-Update-event-description-for-IBM-zEC12-zBC12-to-latest-level.patch
Patch183: perf-vendor-events-intel-Add-metrics-for-Sapphirerapids.patch
Patch184: perf-vendor-events-intel-Update-metrics-for-Alderlake.patch
Patch185: perf-record-ibs-Warn-about-sampling-period-skew.patch
Patch186: perf-pmu-Parse-pmu-caps-sysfs-only-once.patch
Patch187: perf-header-Pass-cpu-pmu-name-while-printing-caps.patch
Patch188: perf-header-Store-PMU-caps-in-an-array-of-strings.patch
Patch189: perf-header-Record-non-CPU-PMU-capabilities.patch
Patch190: perf-tool-ibs-Sync-AMD-IBS-header-file.patch
Patch191: perf-script-ibs-Support-new-IBS-bits-in-raw-trace-dump.patch
Patch192: perf-vendor-events-intel-Update-event-list-for-Alderlake.patch
Patch193: perf-vendor-events-intel-Update-event-list-for-Sapphirerapids.patch
Patch194: perf-vendor-events-intel-Rename-tremontx-to-snowridgex.patch
Patch195: perf-vendor-events-intel-Update-event-list-for-Snowridgex.patch
Patch196: perf-vendor-events-intel-Update-event-list-for-broadwellx.patch
Patch197: perf-vendor-events-intel-Update-event-list-for-haswellx.patch
Patch198: perf-vendor-events-Update-Intel-broadwellx-4266081e.patch
Patch199: perf-vendor-events-Update-Intel-broadwell-1775634e.patch
Patch200: perf-vendor-events-Update-Intel-broadwellde-ef908a19.patch
Patch201: perf-vendor-events-Update-Intel-alderlake-a95ab294.patch
Patch202: perf-vendor-events-Update-bonnell-mapfile.csv.patch
Patch203: perf-vendor-events-Update-Intel-cascadelakex-f9d45862.patch
Patch204: perf-vendor-events-Update-Intel-elkhartlake.patch
Patch205: perf-vendor-events-Update-goldmont-mapfile.csv.patch
Patch206: perf-vendor-events-Update-goldmontplus-mapfile.csv.patch
Patch207: perf-vendor-events-Update-Intel-haswell-8e6389f9.patch
Patch208: perf-vendor-events-Update-Intel-haswellx-859fe0f4.patch
Patch209: perf-vendor-events-Update-Intel-icelake-a4a4353e.patch
Patch210: perf-vendor-events-Update-Intel-icelakex-d214d0c2.patch
Patch211: perf-vendor-events-Update-Intel-ivybridge-80c14459.patch
Patch212: perf-vendor-events-Update-Intel-ivytown-62201368.patch
Patch213: perf-vendor-events-Update-Intel-jaketown-376d8b58.patch
Patch214: perf-vendor-events-Update-Intel-knightslanding.patch
Patch215: perf-vendor-events-Add-Intel-meteorlake.patch
Patch216: perf-vendor-events-Update-Intel-nehalemep.patch
Patch217: perf-vendor-events-Update-Intel-nehalemex.patch
Patch218: perf-vendor-events-Update-Intel-sandybridge-777e1312.patch
Patch219: perf-vendor-events-Update-Intel-sapphirerapids-34122105.patch
Patch220: perf-vendor-events-Update-Intel-silvermont.patch
Patch221: perf-vendor-events-Update-Intel-skylake-35d65277.patch
Patch222: perf-vendor-events-Update-Intel-skylakex-59fd7d32.patch
Patch223: perf-vendor-events-Update-Intel-tigerlake-5e1dd4f2.patch
Patch224: perf-vendor-events-Update-Intel-westmereep-dp.patch
Patch225: perf-vendor-events-Update-Intel-westmereep-sp.patch
Patch226: perf-vendor-events-Update-Intel-westmereex.patch
Patch227: perf-vendor-events-Update-Intel-snowridgex.patch
Patch228: perf-vendor-events-arm64-Arm-Cortex-A78C-and-X1C.patch
Patch229: perf-evlist-Always-use-arch_evlist__add_default_attrs.patch
Patch230: perf-x86-evlist-Add-default-hybrid-events-for-perf-stat.patch
Patch231: perf-stat-Add-topdown-metrics-in-the-default-perf-stat-on-the-hybrid-machine.patch
Patch232: tools-build-Add-feature-test-for-init_disassemble_info-API-changes.patch
Patch233: tools-build-Don-t-display-disassembler-four-args-feature-test.patch
Patch234: tools-include-add-dis-asm-compat.h-to-handle-version-differences.patch
Patch235: tools-perf-Fix-compilation-error-with-new-binutils.patch
Patch236: tools-build-Retry-detection-of-bfd-related-features.patch
Patch237: perf-vendor-events-Remove-bad-broadwellde-uncore-events.patch
Patch238: perf-vendor-events-Remove-bad-ivytown-uncore-events.patch
Patch239: perf-vendor-events-Remove-bad-jaketown-uncore-events.patch
Patch240: perf-list-Add-PMU-pai_crypto-event-description-for-IBM-z16.patch
Patch241: perf-vendor-events-Update-metrics-for-broadwellde.patch
Patch242: perf-vendor-events-Update-events-and-metrics-for-broadwellx.patch
Patch243: perf-vendor-events-Update-events-and-metrics-for-cascadelakex.patch
Patch244: perf-vendor-events-Update-events-and-metrics-for-haswellx.patch
Patch245: perf-vendor-events-Update-events-and-metrics-for-icelakex.patch
Patch246: perf-vendor-events-Update-metrics-for-ivytown.patch
Patch247: perf-vendor-events-Update-metrics-for-jaketown.patch
Patch248: perf-vendor-events-Update-events-for-knightslanding.patch
Patch249: perf-vendor-events-Update-metrics-for-sapphirerapids.patch
Patch250: perf-vendor-events-Update-events-and-metrics-for-skylakex.patch
Patch251: perf-vendor-events-Update-events-for-snowridgex.patch
Patch252: perf-vendor-events-Add-missing-Neoverse-V1-events.patch
Patch253: perf-vendor-events-arm64-Move-REMOTE_ACCESS-to-memory-category.patch
Patch254: perf-vendor-events-Update-events-for-Neoverse-E1.patch
Patch255: perf-vendor-events-Update-Intel-skylakex-313b2f38.patch
Patch256: perf-vendor-events-Update-Intel-alderlake-a80de066.patch
Patch257: perf-vendor-events-Update-Intel-broadwell-eb4f8d77.patch
Patch258: perf-vendor-events-Update-Intel-broadwellx-5bc4e39e.patch
Patch259: perf-vendor-events-Update-Intel-cascadelakex-55b201a8.patch
Patch260: perf-vendor-events-Update-elkhartlake-cpuids.patch
Patch261: perf-vendor-events-Update-Intel-haswell-dd7aae2c.patch
Patch262: perf-vendor-events-Update-Intel-haswellx-08ce57dd.patch
Patch263: perf-vendor-events-Update-Intel-icelake-8fb4ddf4.patch
Patch264: perf-vendor-events-Update-Intel-icelakex-bd035250.patch
Patch265: perf-vendor-events-Update-Intel-ivybridge-3bd2d211.patch
Patch266: perf-vendor-events-Update-Intel-ivytown-d2aaf040.patch
Patch267: perf-vendor-events-Update-Intel-jaketown-3405de19.patch
Patch268: perf-vendor-events-Update-Intel-sandybridge-db35c1dc.patch
Patch269: perf-vendor-events-Update-Intel-sapphirerapids-9a1b4aa4.patch
Patch270: perf-vendor-events-Update-silvermont-cpuids.patch
Patch271: perf-vendor-events-Update-Intel-skylake-aac53e8f.patch
Patch272: perf-vendor-events-Update-Intel-tigerlake-a7c1aaa6.patch
Patch273: perf-vendor-events-Update-Intel-broadwellde-d7184d94.patch
Patch274: perf-vendor-events-power10-Fix-hv-24x7-metric-events.patch
Patch275: perf-list-Fix-PMU-name-pai_crypto-in-perf-list-on-s390.patch
Patch276: perf-vendor-events-arm64-Fix-incorrect-Hisi-hip08-L3-metrics.patch
Patch277: perf-arch-events-riscv-sbi-firmware-std-event-files.patch
Patch278: perf-vendor-events-riscv-add-Sifive-U74-JSON-file.patch
Patch279: perf-vendor-events-Add-Arm-Neoverse-V2-PMU-events.patch
Patch280: perf-vendor-events-intel-Add-core-event-list-for-Alderlake-N.patch
Patch281: perf-vendor-events-intel-Add-uncore-event-list-for-Alderlake-N.patch
Patch282: perf-vendor-events-intel-Add-metrics-for-Alderlake-N.patch
Patch283: perf-vendor-events-intel-Update-events-and-metrics-for-alderlake.patch
Patch284: perf-vendor-events-intel-Refresh-alderlake-metrics.patch
Patch285: perf-vendor-events-intel-Refresh-alderlake-n-metrics.patch
Patch286: perf-vendor-events-intel-Refresh-bonnell-events.patch
Patch287: perf-vendor-events-intel-Refresh-broadwell-metrics-and-events.patch
Patch288: perf-vendor-events-intel-Refresh-broadwellde-metrics-and-events.patch
Patch289: perf-vendor-events-intel-Refresh-broadwellx-metrics-and-events.patch
Patch290: perf-vendor-events-intel-Refresh-cascadelakex-metrics-and-events.patch
Patch291: perf-vendor-events-intel-Refresh-elkhartlake-events.patch
Patch292: perf-vendor-events-intel-Refresh-goldmont-events.patch
Patch293: perf-vendor-events-intel-Refresh-goldmontplus-events.patch
Patch294: perf-vendor-events-intel-Refresh-haswell-metrics-and-events.patch
Patch295: perf-vendor-events-intel-Refresh-haswellx-metrics-and-events.patch
Patch296: perf-vendor-events-intel-Refresh-icelake-metrics-and-events.patch
Patch297: perf-vendor-events-intel-Refresh-icelakex-metrics-and-events.patch
Patch298: perf-vendor-events-intel-Refresh-ivybridge-metrics-and-events.patch
Patch299: perf-vendor-events-intel-Refresh-ivytown-metrics-and-events.patch
Patch300: perf-vendor-events-intel-Refresh-jaketown-metrics-and-events.patch
Patch301: perf-vendor-events-intel-Refresh-knightslanding-events.patch
Patch302: perf-vendor-events-intel-Refresh-meteorlake-events.patch
Patch303: perf-vendor-events-intel-Refresh-nehalemep-events.patch
Patch304: perf-vendor-events-intel-Refresh-nehalemex-events.patch
Patch305: perf-vendor-events-intel-Refresh-sandybridge-metrics-and-events.patch
Patch306: perf-vendor-events-intel-Refresh-sapphirerapids-metrics-and-events.patch
Patch307: perf-vendor-events-intel-Refresh-silvermont-events.patch
Patch308: perf-vendor-events-intel-Refresh-skylake-metrics-and-events.patch
Patch309: perf-vendor-events-intel-Refresh-skylakex-metrics-and-events.patch
Patch310: perf-vendor-events-intel-Refresh-snowridgex-events.patch
Patch311: perf-vendor-events-intel-Refresh-tigerlake-metrics-and-events.patch
Patch312: perf-vendor-events-intel-Refresh-westmereep-dp-events.patch
Patch313: perf-vendor-events-intel-Refresh-westmereep-sp-events.patch
Patch314: perf-vendor-events-intel-Refresh-westmereex-events.patch
Patch315: perf-vendor-events-amd-Add-Zen-4-core-events.patch
Patch316: perf-vendor-events-amd-Add-Zen-4-uncore-events.patch
Patch317: perf-vendor-events-amd-Add-Zen-4-metrics.patch
Patch318: perf-vendor-events-amd-Add-Zen-4-mapping.patch
# non upstream patches
Patch1000: perf-local-use-sframe-for-bfd.patch
Patch1001: perf-local-check-alloc-histogram-return.patch
Requires: kernel >= 2.6.31
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
This package provides a userspace tool 'perf', which monitors performance for
either unmodified binaries or the entire system. It requires a Linux kernel
which includes the Performance Counters for Linux (PCL) subsystem (>= 2.6.31).
This subsystem utilizes the Performance Monitoring Unit (PMU) / hardware
counters of the underlying cpu architecture (if supported).
%package devel
Summary: Development headers for perf
Group: Development/Libraries/Other
Requires: %{name} = %{version}
%description devel
Development headers for perf.
%prep
# copy necessary files from kernel-source since we need to modify them
(cd /usr/src/linux ; tar -cf - COPYING CREDITS README tools include scripts Kbuild Makefile arch/*/{include,lib,Makefile} lib) | tar -xf -
chmod +x tools/perf/util/generate-cmdlist.sh
%autopatch -p1
# don't error out on deprecated definitions in gtk2.h
sed -i 's@ignored "-Wstrict-prototypes"@&\n#pragma GCC diagnostic ignored "-Wdeprecated-declarations"@' tools/build/feature/test-gtk2.c
%build
cd tools/perf
export WERROR=0
# PASS rpm optflags as EXTRA_FLAGS, passing as CFLAGS overrides and breaks build
make %{?_smp_mflags} -f Makefile.perf feature-libbfd-liberty=1 feature-disassembler-four-args=1 V=1 VF=1 GTK2=1 CORESIGHT=1 PYTHON=python3 EXTRA_CFLAGS="%{optflags}" ASCIIDOC8=1 prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core %{_perf_unwind} tipdir=share/doc/packages/perf all
make %{?_smp_mflags} -f Makefile.perf V=1 VF=1 GTK2=1 CORESIGHT=1 PYTHON=python3 EXTRA_CFLAGS="%{optflags}" ASCIIDOC8=1 prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core %{_perf_unwind} tipdir=share/doc/packages/perf doc
%install
cd tools/perf
export WERROR=0
make -f Makefile.perf GTK2=1 CORESIGHT=1 PYTHON=python3 EXTRA_CFLAGS="%{optflags}" prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core DESTDIR=%{buildroot} %{_perf_unwind} tipdir=share/doc/packages/perf install
make -f Makefile.perf GTK2=1 CORESIGHT=1 PYTHON=python3 EXTRA_CFLAGS="%{optflags}" prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core DESTDIR=%{buildroot} install %{_perf_unwind} tipdir=share/doc/packages/perf install-doc
mkdir -p %{buildroot}/%{_docdir}/perf/examples/bpf
mv %{buildroot}/usr/lib/perf/examples/bpf/* %{buildroot}/%{_docdir}/perf/examples/bpf
%fdupes %{buildroot}/%{_prefix}/lib/%{name}-core
%files
%defattr(-, root, root)
%attr(0644, root, root) %doc COPYING CREDITS README tools/perf/design.txt
%attr(0644, root, root) %doc %{_docdir}/perf/tips.txt
%{_bindir}/perf
%{_bindir}/trace
%{_libdir}/libperf-gtk.so
%ifnarch armv7l
%dir %{_libdir}/traceevent
%dir %{_libdir}/traceevent/plugins
%{_libdir}/traceevent/plugins/plugin_*.so
%endif
%attr(0644, -, -) %{_sysconfdir}/bash_completion.d/perf
%{_libexecdir}/%{name}-core
%{_datarootdir}/%{name}-core
%{_mandir}/man1/perf*
%dir /usr/lib/perf
%files devel
%dir %{_includedir}/perf/
%attr(0644, root, root) %{_includedir}/perf/*.h
%dir /usr/lib/perf/include
%dir /usr/lib/perf/include/bpf
%attr(0644, root, root) /usr/lib/perf/include/bpf/*.h
%dir /usr/lib/perf/include/bpf/linux
%attr(0644, root, root) /usr/lib/perf/include/bpf/linux/*.h
%dir %{_docdir}/perf/examples
%dir %{_docdir}/perf/examples/bpf
%attr(0644, root, root) %{_docdir}/perf/examples/bpf/*
%changelog