File perf.spec of Package perf.23962
#
# 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: 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-include-bpf-add-bpf_tail_call-prototype.patch
Patch2: perf-bpf-do-not-attach-a-bpf-prog-to-a-tracepoint-if-its-name-starts-with.patch
Patch3: perf-evsel-store-backpointer-to-attached-bpf_object.patch
Patch4: perf-trace-add-pointer-to-bpf-object-containing-_augmented_syscalls__.patch
Patch5: perf-trace-look-up-maps-just-on-the-_augmented_syscalls__-bpf-object.patch
Patch6: perf-trace-order-e-syscalls-table.patch
Patch7: perf-trace-add-bpf-handler-for-unaugmented-syscalls.patch
Patch8: perf-trace-allow-specifying-the-bpf-prog-to-augment-specific-syscalls.patch
Patch9: perf-trace-put-the-per-syscall-entry-exit-prog_array-bpf-map-infrastructure-in-place.patch
Patch10: perf-trace-handle-raw_syscalls-sys_enter-just-like-the-bpf_output-augmented-event.patch
Patch11: perf-augmented_raw_syscalls-add-handler-for-openat.patch
Patch12: perf-augmented_raw_syscalls-switch-to-using-bpf_map_type_prog_array.patch
Patch13: perf-augmented_raw_syscalls-support-copying-two-string-syscall-args.patch
Patch14: perf-trace-look-for-default-name-for-entries-in-the-syscalls-prog-array.patch
Patch15: perf-augmented_raw_syscalls-rename-augmented_args_filename-to-augmented_args_payload.patch
Patch16: perf-augmented_raw_syscalls-augment-sockaddr-arg-in-connect.patch
Patch17: perf-trace-beauty-make-connect-s-addrlen-be-printed-as-an-int-not-hex.patch
Patch18: perf-trace-beauty-disable-fd-pathname-when-close-not-enabled.patch
Patch19: perf-trace-beauty-do-not-try-to-use-the-fd-pathname-beautifier-for-bind-connect-fd-arg.patch
Patch20: perf-trace-beauty-beautify-sendto-s-sockaddr-arg.patch
Patch21: perf-trace-beauty-beautify-bind-s-sockaddr-arg.patch
Patch22: perf-trace-beauty-add-bpf-augmenter-for-the-rename-syscall.patch
Patch23: perf-trace-forward-error-codes-when-trying-to-read-syscall-info.patch
Patch24: perf-trace-mark-syscall-ids-that-are-not-allocated-to-avoid-unnecessary-error-messages.patch
Patch25: perf-trace-preallocate-the-syscall-table.patch
Patch26: perf-trace-reuse-bpf-augmenters-from-syscalls-with-similar-args-signature.patch
Patch27: perf-trace-add-sendfile64-alias-to-the-sendfile-syscall.patch
Patch28: perf-stat-move-loaded-out-of-struct-perf_counts_values.patch
Patch29: perf-cpu_map-rename-struct-cpu_map-to-struct-perf_cpu_map.patch
Patch30: perf-tools-rename-struct-thread_map-to-struct-perf_thread_map.patch
Patch31: perf-evsel-rename-struct-perf_evsel-to-struct-evsel.patch
Patch32: perf-evlist-rename-struct-perf_evlist-to-struct-evlist.patch
Patch33: perf-evsel-rename-perf_evsel__init-to-evsel__init.patch
Patch34: perf-evlist-rename-perf_evlist__init-to-evlist__init.patch
Patch35: perf-evlist-rename-perf_evlist__new-to-evlist__new.patch
Patch36: perf-evlist-rename-perf_evlist__delete-to-evlist__delete.patch
Patch37: perf-evsel-rename-perf_evsel__delete-to-evsel__delete.patch
Patch38: perf-evsel-rename-perf_evsel__new-to-evsel__new.patch
Patch39: perf-evlist-rename-perf_evlist__add-to-evlist__add.patch
Patch40: perf-evlist-rename-perf_evlist__remove-to-evlist__remove.patch
Patch41: perf-evsel-rename-perf_evsel__open-to-evsel__open.patch
Patch42: perf-evsel-rename-perf_evsel__enable-to-evsel__enable.patch
Patch43: perf-evsel-rename-perf_evsel__disable-to-evsel__disable.patch
Patch44: perf-evsel-rename-perf_evsel__apply_filter-to-evsel__apply_filter.patch
Patch45: perf-evsel-rename-perf_evsel__cpus-to-evsel__cpus.patch
Patch46: perf-evlist-rename-perf_evlist__open-to-evlist__open.patch
Patch47: perf-evlist-rename-perf_evlist__close-to-evlist__close.patch
Patch48: perf-evlist-rename-perf_evlist__enable-to-evlist__enable.patch
Patch49: perf-evlist-rename-perf_evlist__disable-to-evlist__disable.patch
Patch50: libperf-make-libperf-a-part-of-the-perf-build.patch
Patch51: libperf-add-build-version-support.patch
Patch52: libperf-add-libperf-to-the-python-so-build.patch
Patch53: libperf-add-perf-core-h-header.patch
Patch54: libperf-add-debug-output-support.patch
Patch55: libperf-add-perf_cpu_map-struct.patch
Patch56: libperf-add-perf_cpu_map__dummy_new-function.patch
Patch57: libperf-add-perf_cpu_map__get-perf_cpu_map__put.patch
Patch58: libperf-add-perf_thread_map-struct.patch
Patch59: libperf-add-perf_thread_map__new_dummy-function.patch
Patch60: libperf-add-perf_thread_map__get-perf_thread_map__put.patch
Patch61: libperf-add-perf_evlist-and-perf_evsel-structs.patch
Patch62: libperf-include-perf_evsel-in-evsel-object.patch
Patch63: libperf-include-perf_evlist-in-evlist-object.patch
Patch64: libperf-add-perf_evsel__init-function.patch
Patch65: libperf-add-perf_evlist__init-function.patch
Patch66: libperf-add-perf_evlist__add-function.patch
Patch67: libperf-add-perf_evlist__remove-function.patch
Patch68: libperf-add-nr_entries-to-struct-perf_evlist.patch
Patch69: perf-vendor-events-intel-add-icelake-v1-00-event-file.patch
Patch70: perf-top-set-display-thread-comm-to-help-with-debugging.patch
Patch71: perf-tools-add-aux_output-attribute-flag.patch
Patch72: perf-tools-add-itrace-option-o-to-synthesize-aux-output-events.patch
Patch73: perf-intel-pt-process-options-for-pebs-event-synthesis.patch
Patch74: perf-tools-add-aux-output-config-term.patch
Patch75: perf-intel-pt-add-brief-documentation-for-pebs-via-intel-pt.patch
Patch76: perf-vendor-events-intel-add-tremontx-event-file-v1-02.patch
Patch77: perf-tools-tools-include-should-come-before-tools-uapi-include.patch
Patch78: perf-report-dump-lbr-callstack-data-by-d-jointly-with-thread-stack.patch
Patch79: perf-kvm-s390-add-missing-string-h-header.patch
Patch80: perf-metricgroup-remove-needless-includes-from-metricgroup-h.patch
Patch81: perf-c2c-fix-report-with-offline-cpus.patch
Patch82: perf-cacheline-move-cacheline-related-routines-to-separate-files.patch
Patch83: perf-srcline-add-missing-srcline-h-header-to-files-needing-its-defs.patch
Patch84: perf-sort-remove-needless-headers-from-sort-h-provide-fwd-struct-decls.patch
Patch85: perf-c2c-display-proper-cpu-count-in-nodes-column.patch
Patch86: perf-tools-remove-debug-h-from-header-files-not-needing-it.patch
Patch87: perf-debug-remove-needless-include-directives-from-debug-h.patch
Patch88: perf-tools-remove-needless-thread-h-include-directives-partial.patch
Patch89: perf-tools-remove-needless-evlist-h-include-directives-partial.patch
Patch90: perf-pmu-change-convert_scale-from-static-to-global.patch
Patch91: perf-metricgroup-scale-the-metric-result.patch
Patch92: perf-metricgroup-support-multiple-events-for-metricgroup.patch
Patch93: perf-tools-remove-util-h-from-where-it-is-not-needed.patch
Patch94: perf-env-remove-needless-cpumap-h-header-partial.patch
Patch95: perf-vendor-events-amd-add-l3-cache-events-for-family-17h.patch
Patch96: perf-vendor-events-amd-remove-redundant.patch
Patch97: perf-list-allow-plurals-for-metric-metricgroup.patch
Patch98: perf-evsel-remove-need-for-symbol_conf-in-evsel_fprintf-c.patch
Patch99: perf-stat-fix-free-memory-access-memory-leaks-in-metrics.patch
Patch100: perf-vendor-events-remove-p8-hw-events-which-are-not-supported.patch
Patch101: perf-vendor-events-s390-add-json-transaction-for-machine-type-8561.patch
Patch102: perf-vendor-events-s390-use-s390-machine-name-instead-of-type-8561.patch
Patch103: perf-script-allow-time-with-reltime.patch
Patch104: perf-diff-report-noisy-for-cycles-diff.patch
Patch105: perf-test-report-failure-for-mmap-events.patch
Patch106: perf-stat-support-all-kernel-all-user.patch
Patch107: perf-vendor-events-arm64-fix-hisi-hip08-ddrc-pmu-eventname.patch
Patch108: perf-list-hide-deprecated-events-by-default.patch
Patch109: perf-tests-remove-needless-headers-for-bp_account.patch
Patch110: perf-probe-fix-to-find-range-only-function-instance.patch
Patch111: perf-probe-walk-function-lines-in-lexical-blocks.patch
Patch112: perf-probe-fix-to-show-function-entry-line-as-probe-able.patch
Patch113: perf-jevents-fix-resource-leak-in-process_mapfile-and-main.patch
Patch114: perf-probe-fix-wrong-address-verification.patch
Patch115: perf-probe-fix-to-probe-a-function-which-has-no-entry-pc.patch
Patch116: perf-probe-fix-to-probe-an-inline-function-which-has-no-entry-pc.patch
Patch117: perf-probe-fix-to-list-probe-event-with-correct-line-number.patch
Patch118: perf-probe-fix-to-show-inlined-function-callsite-without-entry_pc.patch
Patch119: perf-probe-fix-to-show-ranges-of-variables-in-functions-without-entry_pc.patch
Patch120: perf-vendor-events-intel-update-cascadelakex-events-to-v1-05.patch
Patch121: perf-vendor-events-intel-update-all-the-intel-json-metrics-from-tmam-3-6.patch
Patch122: perf-probe-skip-end-of-sequence-and-non-statement-lines.patch
Patch123: perf-probe-filter-out-instances-except-for-inlined-subroutine-and-subprogram.patch
Patch124: perf-probe-fix-to-show-calling-lines-of-inlined-functions.patch
Patch125: perf-probe-skip-overlapped-location-on-searching-variables.patch
Patch126: perf-tests-fix-out-of-bounds-memory-access.patch
Patch127: perf-diff-don-t-use-hack-to-skip-column-length-calculation.patch
Patch128: perf-block-cleanup-and-refactor-block-info-functions.patch
Patch129: perf-hist-count-the-total-cycles-of-all-samples.patch
Patch130: perf-hist-support-block-formats-with-compare-sort-display.patch
Patch131: perf-report-sort-by-sampled-cycles-percent-per-block-for-stdio.patch
Patch132: perf-report-support-percent-limit-for-total-cycles.patch
Patch133: perf-report-sort-by-sampled-cycles-percent-per-block-for-tui.patch
Patch134: perf-map_groups-pass-the-object-to-map_groups__find_ams.patch
Patch135: perf-tools-add-map_groups-to-struct-addr_location.patch
Patch136: perf-unwind-use-struct-map_symbol-in-struct-unwind_entry.patch
Patch137: perf-callchain-use-struct-map_symbol-in-struct-callchain_cursor_node.patch
Patch138: pref-tools-make-struct-addr_map_symbol-contain-struct-map_symbol.patch
Patch139: perf-map-no-need-to-adjust-the-long-name-of-modules.patch
Patch140: perf-callchain-fix-segfault-in-thread__resolve_callchain_sample.patch
Patch141: perf-util-move-block-tui-function-to-ui-browsers.patch
Patch142: perf-report-jump-to-symbol-source-view-from-total-cycles-view.patch
Patch143: perf-diff-use-llabs-with-64-bit-values.patch
Patch144: perf-regs-make-perf_reg_name-return-unknown-instead-of-null.patch
Patch145: perf-script-fix-brstackinsn-for-auxtrace.patch
Patch146: perf-metricgroup-fix-printing-event-names-of-metric-group-with-multiple-events.patch
Patch147: perf-vendor-events-s390-remove-name-from-l1d_ro_excl_writes-description.patch
Patch148: perf-report-fix-incorrectly-added-dimensions-as-switch-perf-data-file.patch
Patch149: perf-hists-fix-variable-name-s-inconsistency-in-hists__for_each-macro.patch
Patch150: perf-hists-browser-restore-esc-as-zoom-out-of-dso-thread-etc.patch
Patch151: perf-report-top-do-not-offer-annotation-for-symbols-without-samples.patch
Patch152: perf-tools-use-define-api-pure-full-instead-of-pure-parser.patch
Patch153: perf-ui-gtk-add-missing-zalloc-object.patch
Patch154: perf-make-perf-able-to-build-with-latest-libbfd.patch
Patch155: perf-stat-don-t-report-a-null-stalled-cycles-per-insn-metric.patch
Patch156: perf-env-do-not-return-pointers-to-local-variables.patch
Patch157: perf-bench-futex-wake-restore-thread-count-default-to-online-cpu-count.patch
Patch158: perf-map-fix-off-by-one-in-strncpy-size-argument.patch
Patch159: perf-stat-show-percore-counts-in-per-cpu-output.patch
Patch160: perf-tools-add-hw_idx-in-struct-branch_stack.patch
Patch161: perf-expr-add-expr-c-object.patch
Patch162: perf-expr-move-expr-lexer-to-flex.patch
Patch163: perf-expr-increase-expr_max_other-to-support-metrics-with-more-than-15-variables.patch
Patch164: perf-expr-straighten-expr__parse-expr__find_other-interface.patch
Patch165: perf-expr-make-expr__parse-return-1-on-error.patch
Patch166: perf-vendor-events-s390-add-new-deflate-counters-for-ibm-z15.patch
Patch167: perf-jevents-support-metric-constraint.patch
Patch168: perf-metricgroup-factor-out-metricgroup__add_metric_weak_group.patch
Patch169: perf-util-factor-out-sysctl__nmi_watchdog_enabled.patch
Patch170: perf-metricgroup-support-metric-constraint.patch
Patch171: perf-vendor-events-intel-add-no_nmi_watchdog-metric-constraint.patch
Patch172: perf-record-fix-binding-of-aio-user-space-buffers-to-nodes.patch
Patch173: perf-report-fix-no-branch-type-statistics-report-issue.patch
Patch174: perf-expr-fix-copy-paste-mistake.patch
Patch175: perf-report-support-interactive-annotation-of-code-without-symbols.patch
Patch176: perf-report-top-tui-support-hotkey-a-for-annotation-of-unresolved-addresses.patch
Patch177: perf-report-allow-specifying-event-to-be-used-as-sort-key-in-group-output.patch
Patch178: perf-report-support-a-new-key-to-reload-the-browser.patch
Patch179: perf-stat-align-the-output-for-interval-aggregation-mode.patch
Patch180: perf-metricgroup-fix-printing-event-names-of-metric-group-with-multiple-events-incase-of-overlapping-events.patch
Patch181: perf-vendor-events-amd-restrict-model-detection-for-zen1-based-processors.patch
Patch182: perf-vendor-events-amd-add-zen2-events.patch
Patch183: perf-vendor-events-amd-update-zen1-events-to-v2.patch
Patch184: perf-cpumap-fix-snprintf-overflow-check.patch
Patch185: perf-script-introduce-deltatime-option.patch
Patch186: perf-top-support-group-sort-idx-to-change-the-sort-order.patch
Patch187: perf-top-support-hotkey-to-change-sort-order.patch
Patch188: perf-events-parser-add-missing-intel-cpu-events-to-parser.patch
Patch189: perf-stat-honour-timeout-for-forked-workloads.patch
Patch190: perf-expr-add-expr_-prefix-for-parse_ctx-and-parse_id.patch
Patch191: perf-expr-add-expr_scanner_ctx-object.patch
Patch192: perf-metrictroup-split-the-metricgroup__add_metric-function.patch
Patch193: perf-auxtrace-add-an-option-to-synthesize-callchains-for-regular-events.patch
Patch194: perf-pmu-add-support-for-pmu-capabilities.patch
Patch195: perf-header-support-cpu-pmu-capabilities.patch
Patch196: perf-machine-remove-the-indent-in-resolve_lbr_callchain_sample.patch
Patch197: perf-machine-refine-the-function-for-lbr-call-stack-reconstruction.patch
Patch198: perf-machine-factor-out-lbr_callchain_add_kernel_ip.patch
Patch199: perf-machine-factor-out-lbr_callchain_add_lbr_ip.patch
Patch200: perf-thread-add-a-knob-for-lbr-stitch-approach.patch
Patch201: perf-thread-save-previous-sample-for-lbr-stitching-approach.patch
Patch202: perf-callchain-save-previous-cursor-nodes-for-lbr-stitching-approach.patch
Patch203: perf-callchain-stitch-lbr-call-stack.patch
Patch204: perf-report-add-option-to-enable-the-lbr-stitching-approach.patch
Patch205: perf-script-add-option-to-enable-the-lbr-stitching-approach.patch
Patch206: perf-c2c-add-option-to-enable-the-lbr-stitching-approach.patch
Patch207: perf-hist-add-fast-path-for-duplicate-entries-check.patch
Patch208: perf-stat-zero-all-the-ena-and-run-array-slot-stats-for-interval-mode.patch
Patch209: perf-stat-improve-runtime-stat-for-interval-mode.patch
Patch210: perf-test-session-topology-fix-data-path.patch
Patch211: perf-metricgroups-enhance-json-metric-infrastructure-to-handle.patch
Patch212: perf-tests-expr-added-test-for-runtime-param-in-metric-expression.patch
Patch213: perf-tools-enable-hz-hz-prinitg-for-metric-only-option.patch
Patch214: perf-vendor-events-power9-add-hv_24x7-socket-chip-level-metric-events.patch
Patch215: perf-tools-fix-reading-new-topology-attribute-core_cpus.patch
Patch216: perf-auxtrace-add-option-to-synthesize-branch-stack-for-regular-events.patch
Patch217: perf-cs-etm-move-definition-of-traceid_list-global-variable-from-header-file.patch
Patch218: perf-probe-fix-to-check-blacklist-address-correctly.patch
Patch219: perf-probe-check-address-correctness-by-map-instead-of-etext.patch
Patch220: perf-probe-do-not-show-the-skipped-events.patch
Patch221: perf-metrics-fix-parse-errors-in-skylake-metrics.patch
Patch222: perf-metrics-fix-parse-errors-in-power8-metrics.patch
Patch223: perf-metrics-fix-parse-errors-in-power9-metrics.patch
Patch224: perf-stat-increase-perf-metric-output-resolution.patch
Patch225: perf-vendor-events-power9-add-missing-metrics-to-power9-cpi_breakdown.patch
Patch226: perf-stat-fix-duration_time-value-for-higher-intervals.patch
Patch227: perf-stat-fix-wrong-per-thread-runtime-stat-for-interval-mode.patch
Patch228: perf-bpf-loader-add-missing-for-key_scan_pos.patch
Patch229: perf-tools-move-arm-spe-pkt-decoder-h-c-to-the-new-dir.patch
Patch230: perf-auxtrace-add-four-itrace-options.patch
Patch231: perf-arm-spe-support-synthetic-events.patch
Patch232: perf-stat-ensure-group-is-defined-on-top-of-the-same-cpu-mask.patch
Patch233: perf-report-fix-null-pointer-dereference-in-hists__fprintf_nr_sample_events.patch
Patch234: perf-stat-fix-null-pointer-dereference.patch
Patch235: perf-parse-events-fix-an-incompatible-pointer.patch
Patch236: perf-scripts-python-export-to-postgresql-py-fix-struct-pack-int-argument.patch
Patch237: perf-scripts-python-exported-sql-viewer-py-fix-unexpanded-find-result.patch
Patch238: perf-scripts-python-exported-sql-viewer-py-fix-zero-id-in-call-graph-find-result.patch
Patch239: perf-scripts-python-exported-sql-viewer-py-fix-zero-id-in-call-tree-find-result.patch
Patch240: perf-report-tui-fix-segmentation-fault-in-perf_evsel__hists_browse.patch
Patch241: perf-intel-pt-fix-pebs-sample-for-xmm-registers.patch
Patch242: s390-cpum_cf-perf-change-dflt_ccerror-counter-name-partial.patch
Patch243: perf-tools-fix-record-failure-when-mixed-with-arm-spe-event.patch
Patch244: perf-tools-powerpc-add-support-for-extended-register-capability.patch
Patch245: perf-tools-powerpc-add-support-for-extended-regs-in-power10.patch
Patch246: perf-bench-numa-fix-cpumask-memory-leak-in-node_has_cpus.patch
Patch247: perf-bench-numa-use-numa_node_to_cpus-to-bind-tasks-to-nodes.patch
Patch248: perf-vendor-events-amd-remove-trailing-commas.patch
Patch249: perf-vendor-events-amd-add-l2-prefetch-events-for-zen1.patch
Patch250: perf-vendor-events-amd-add-itlb-instruction-fetch-hits-event-for-zen1.patch
Patch251: perf-vendor-events-amd-add-recommended-events.patch
Patch252: perf-vendor-events-amd-enable-family-19h-users-by-matching-zen2-events.patch
Patch253: perf-stat-support-new-per-thread-topdown-metrics.patch
Patch254: perf-tools-add-documentation-for-topdown-metrics.patch
Patch255: perf-streams-introduce-branch-history-streams.patch
Patch256: perf-streams-get-the-evsel_streams-by-evsel_idx.patch
Patch257: perf-streams-compare-two-streams.patch
Patch258: perf-streams-link-stream-pair.patch
Patch259: perf-streams-calculate-the-sum-of-total-streams-hits.patch
Patch260: perf-streams-report-hot-streams.patch
Patch261: perf-diff-support-hot-streams-comparison.patch
Patch262: perf-powerpc-support-exposing-performance-monitor-counter-sprs-as-part-of-extended-regs.patch
# non upstream patches
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).
%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 CORESIGHT=1 PYTHON=python3 EXTRA_CFLAGS="%{optflags}" ASCIIDOC8=1 prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core all doc %{_perf_unwind} tipdir=share/doc/packages/perf
%install
cd tools/perf
export WERROR=0
make -f Makefile.perf V=1 CORESIGHT=1 PYTHON=python3 EXTRA_CFLAGS="%{optflags}" prefix=/usr libdir=%{_libdir} perfexecdir=lib/%{name}-core DESTDIR=%{buildroot} install install-doc %{_perf_unwind} tipdir=share/doc/packages/perf
mkdir -p %{buildroot}/%{_docdir}/perf/examples/bpf
mv %{buildroot}/usr/lib/perf/include/bpf/* %{buildroot}/%{_docdir}/perf/examples/bpf
mv %{buildroot}/usr/lib/perf/examples/bpf/* %{buildroot}/%{_docdir}/perf/examples/bpf
%files
%defattr(-, root, root)
%attr(0644, root, root) %doc COPYING CREDITS README tools/perf/design.txt
%if 0%{?suse_version} > 1315
%attr(0644, root, root) %doc %{_docdir}/perf/tips.txt
%endif
%{_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 %{_docdir}/perf
%dir %{_docdir}/perf/examples
%dir %{_docdir}/perf/examples/bpf
%{_docdir}/perf/examples/bpf/*
%changelog