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
openSUSE Build Service is sponsored by