Compare commits

...

No commits in common. "c9s-rhbz2185652" and "c8" have entirely different histories.

9 changed files with 88 additions and 112 deletions

15
.gitignore vendored
View File

@ -1,14 +1 @@
/libpfm-4.3.0.tar.gz SOURCES/libpfm-4.13.0.tar.gz
/libpfm-4.4.0.tar.gz
/libpfm-4.4.0-3.199.g0b87987.tar.gz
/libpfm-4.4.0-3.200.g9df2031.tar.gz
/libpfm-4.4.0-5.217.gbca43a5.tar.gz
/libpfm-4.5.0.tar.gz
/libpfm-4.6.0.tar.gz
/libpfm-4.7.0.tar.gz
/libpfm-4.8.0.tar.gz
/libpfm-4.9.0.tar.gz
/libpfm-4.10.0.tar.gz
/libpfm-4.10.1.tar.gz
/libpfm-4.11.0.tar.gz
/libpfm-4.13.0.tar.gz

View File

@ -1 +0,0 @@
bcb52090f02bc7bcb5ac066494cd55bbd5084e65 libpfm-4.13.0.tar.gz

View File

@ -0,0 +1,31 @@
commit 874feacbbe97fe567d3d8b1582d881d1b424dd5e
Author: William Cohen <wcohen@redhat.com>
Date: Fri Apr 14 16:07:07 2023 -0400
Make sure that p is set to a known value before using.
Need to ensure that p was initialized at the start of function
gen_tracepoint_table otherwise on some architectures such as s390x
will get the following error when compiling with -Werror:
make[1]: Entering directory '/root/rpmbuild/BUILD/libpfm-4.13.0/lib'
cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=z14 -mtune=z15 -fasynchronous-unwind-tables -fstack-clash-protection -g -Wall -Werror -Wextra -Wno-unused-parameter -I. -I/root/rpmbuild/BUILD/libpfm-4.13.0/lib/../include -DCONFIG_PFMLIB_DEBUG -DCONFIG_PFMLIB_OS_LINUX -D_REENTRANT -I. -fvisibility=hidden -DCONFIG_PFMLIB_ARCH_S390X -I. -c pfmlib_perf_event_pmu.c
pfmlib_perf_event_pmu.c: In function 'gen_tracepoint_table':
pfmlib_perf_event_pmu.c:434:35: error: 'p' may be used uninitialized in this function [-Werror=maybe-uninitialized]
434 | p->modmsk = 0;
| ~~~~~~~~~~^~~
cc1: all warnings being treated as errors
diff --git a/lib/pfmlib_perf_event_pmu.c b/lib/pfmlib_perf_event_pmu.c
index 637c5b1..8f7d7d1 100644
--- a/lib/pfmlib_perf_event_pmu.c
+++ b/lib/pfmlib_perf_event_pmu.c
@@ -361,7 +361,7 @@ gen_tracepoint_table(void)
{
DIR *dir1, *dir2;
struct dirent *d1, *d2;
- perf_event_t *p;
+ perf_event_t *p = NULL;
perf_umask_t *um;
char d2path[MAXPATHLEN];
char idpath[MAXPATHLEN];

29
SOURCES/libpfm-zen4.patch Normal file
View File

@ -0,0 +1,29 @@
commit 1befa3d200cc17d5a278fcb2f597c4876c58f949
Author: Stephane Eranian <eranian@gmail.com>
Date: Tue Apr 25 00:35:41 2023 -0700
fix AMD Zen3/Zen4 detection
To cover more models of Zen4.
Signed-off-by: Stephane Eranian <eranian@gmail.com>
diff --git a/lib/pfmlib_amd64.c b/lib/pfmlib_amd64.c
index e51a43d..0c6702d 100644
--- a/lib/pfmlib_amd64.c
+++ b/lib/pfmlib_amd64.c
@@ -181,10 +181,10 @@ amd64_get_revision(pfm_amd64_config_t *cfg)
} else if (cfg->family == 22) { /* family 16h */
rev = PFM_PMU_AMD64_FAM16H;
} else if (cfg->family == 25) { /* family 19h */
- if (cfg->model <= 0x0f || (cfg->model >= 0x20 && cfg->model <= 0x5f)) {
- rev = PFM_PMU_AMD64_FAM19H_ZEN3;
- } else if (cfg->model == 17) {
- rev = PFM_PMU_AMD64_FAM19H_ZEN4;
+ if (cfg->model >= 0x60 || (cfg->model >= 0x10 && cfg->model <= 0x1f)) {
+ rev = PFM_PMU_AMD64_FAM19H_ZEN4;
+ } else {
+ rev = PFM_PMU_AMD64_FAM19H_ZEN3;
}
}

View File

@ -1,29 +1,27 @@
# Default to no static libraries
%{!?with_static: %global with_static 1}
%bcond_without python %bcond_without python
%if %{with python} %if %{with python}
%define python_sitearch %(python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(1))") %define python_sitearch %(python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(1))")
%define python_prefix %(python3 -c "import sys; print (sys.prefix)") %define python_prefix %(python3 -c "import sys; print (sys.prefix)")
%{?filter_setup: %{?filter_setup:
%filter_provides_in %{python3_sitearch}/perfmon/.*\.so$ %filter_provides_in %{python_sitearch}/perfmon/.*\.so$
%filter_setup %filter_setup
} }
%endif %endif
Name: libpfm Name: libpfm
Version: 4.13.0 Version: 4.13.0
Release: 1%{?dist} Release: 4%{?dist}
Summary: Library to encode performance events for use by perf tool Summary: Library to encode performance events for use by perf tool
Group: System Environment/Libraries
License: MIT License: MIT
URL: http://perfmon2.sourceforge.net/ URL: http://perfmon2.sourceforge.net/
Source0: http://sourceforge.net/projects/perfmon2/files/libpfm4/%{name}-%{version}.tar.gz Source0: http://sourceforge.net/projects/perfmon2/files/libpfm4/%{name}-%{version}.tar.gz
Patch2: libpfm-python3-setup.patch Patch2: libpfm-python3-setup.patch
Patch3: libpfm-initp.patch Patch3: libpfm-initp.patch
Patch4: libpfm-zen4.patch
BuildRequires: make
BuildRequires: gcc
%if %{with python} %if %{with python}
BuildRequires: python3 BuildRequires: python3
BuildRequires: python3-devel BuildRequires: python3-devel
@ -39,21 +37,21 @@ for the perf_events interface available in upstream Linux kernels since v2.6.31.
%package devel %package devel
Summary: Development library to encode performance events for perf_events based tools Summary: Development library to encode performance events for perf_events based tools
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel %description devel
Development library and header files to create performance monitoring Development library and header files to create performance monitoring
applications for the perf_events interface. applications for the perf_events interface.
%if %{with_static}
%package static %package static
Summary: Static library to encode performance events for perf_events based tools Summary: Static library to encode performance events for perf_events based tools
Group: Development/Libraries
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description static %description static
Static version of the libpfm library for performance monitoring Static version of the libpfm library for performance monitoring
applications for the perf_events interface. applications for the perf_events interface.
%endif
%if %{with python} %if %{with python}
%package -n python3-libpfm %package -n python3-libpfm
@ -63,6 +61,7 @@ Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release}
Summary: Python bindings for libpfm and perf_event_open system call Summary: Python bindings for libpfm and perf_event_open system call
Group: Development/Languages
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python3-libpfm %description -n python3-libpfm
@ -73,6 +72,7 @@ Python bindings for libpfm4 and perf_event_open system call.
%setup -q %setup -q
%patch2 -p1 -b .python3 %patch2 -p1 -b .python3
%patch3 -p1 -b .test %patch3 -p1 -b .test
%patch4 -p1 -b .zen4
%build %build
%if %{with python} %if %{with python}
@ -80,7 +80,7 @@ Python bindings for libpfm4 and perf_event_open system call.
%else %else
%global python_config CONFIG_PFMLIB_NOPYTHON=y %global python_config CONFIG_PFMLIB_NOPYTHON=y
%endif %endif
%make_build %{python_config} \ make %{python_config} %{?_smp_mflags} \
OPTIM="%{optflags}" LDFLAGS="%{build_ldflags}" OPTIM="%{optflags}" LDFLAGS="%{build_ldflags}"
@ -100,11 +100,8 @@ make \
LDCONFIG=/bin/true \ LDCONFIG=/bin/true \
install install
%if !%{with_static} %post -p /sbin/ldconfig
rm $RPM_BUILD_ROOT%{_libdir}/lib*.a %postun -p /sbin/ldconfig
%endif
%ldconfig_scriptlets
%files %files
%doc README %doc README
@ -115,76 +112,35 @@ rm $RPM_BUILD_ROOT%{_libdir}/lib*.a
%{_mandir}/man3/* %{_mandir}/man3/*
%{_libdir}/lib*.so %{_libdir}/lib*.so
%if %{with_static}
%files static %files static
%{_libdir}/lib*.a %{_libdir}/lib*.a
%endif
%if %{with python} %if %{with python}
%files -n python3-libpfm %files -n python3-libpfm
%{python3_sitearch}/* %{python_sitearch}/*
%endif %endif
%changelog %changelog
* Fri Apr 14 2023 William cohen <wcohen@redhat.com> - 4.13.0-1 * Mon Jun 12 2023 William cohen <wcohen@redhat.com> - 4.13.0-4
- Rebase to libpf-4.13.0 (rhbz #2185652) - Identify AMD Bergamo processors.
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 4.11.0-6 * Wed May 3 2023 William cohen <wcohen@redhat.com> - 4.13.0-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Rebuild for rhbz #2161146.
Related: rhbz#1991688
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 4.11.0-5 * Fri Apr 14 2023 William Cohen <wcohen@redhat.com> - 4.13.0-1
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - Rebase to libpfm-4.13.0 (RHBZ #2185653)
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.11.0-4 * Sun May 8 2022 William Cohen <wcohen@redhat.com> - 4.10.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Add AMD Zen 2/3 support (RHBZ #2067218)
* Sat Jan 23 2021 William Cohen <wcohen@redhat.com> - 4.11.0-3 * Thu May 20 2021 William Cohen <wcohen@redhat.com> - 4.10.1-4
- Reenable generation of static libraries for time being. - Add Fujitsu A64FX support (RHBZ #1908126)
* Fri Jan 22 2021 William Cohen <wcohen@redhat.com> - 4.11.0-2 * Wed May 27 2020 William Cohen <wcohen@redhat.com> - 4.10.1-3
- By default disable generation of static libraries - Add Marvell TunderX2 UNC support. (RHBZ #1726070)
* Tue Sep 08 2020 William Cohen <wcohen@redhat.com> - 4.11.0-1 * Tue Oct 15 2019 William Cohen <wcohen@redhat.com> - 4.10.1-2
- Rebase on libpfm-4.11.0. - Add IBM zseries support. (RHBZ #1731019)
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 4.10.1-12
- Use make macros
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-11
- Rebuilt for Python 3.9
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-9
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-8
- Rebuilt for Python 3.8
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Tue Jul 17 2018 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-5
- Update Python macros to new packaging standards
(See https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package)
* Sun Jul 15 2018 William Cohen <wcohen@redhat.com> - 4.10.1-4
- Add gcc Buildrequires.
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-2
- Rebuilt for Python 3.7
* Fri Jun 15 2018 William Cohen <wcohen@redhat.com> - 4.10.1-1 * Fri Jun 15 2018 William Cohen <wcohen@redhat.com> - 4.10.1-1
- Rebase on libpfm-4.10.1. - Rebase on libpfm-4.10.1.

View File

@ -1,6 +0,0 @@
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}

View File

@ -1,19 +0,0 @@
commit 75d8bb06f6ea0d7a8edf8e080c7ea6d434d598ff
Author: William Cohen <wcohen@redhat.com>
Date: Fri Apr 14 16:07:07 2023 -0400
Make sure that p is set to a known value before using.
diff --git a/lib/pfmlib_perf_event_pmu.c b/lib/pfmlib_perf_event_pmu.c
index 637c5b1..8f7d7d1 100644
--- a/lib/pfmlib_perf_event_pmu.c
+++ b/lib/pfmlib_perf_event_pmu.c
@@ -361,7 +361,7 @@ gen_tracepoint_table(void)
{
DIR *dir1, *dir2;
struct dirent *d1, *d2;
- perf_event_t *p;
+ perf_event_t *p = NULL;
perf_umask_t *um;
char d2path[MAXPATHLEN];
char idpath[MAXPATHLEN];

View File

@ -1 +0,0 @@
SHA512 (libpfm-4.13.0.tar.gz) = e61b210aa2ce80f0e47603c88eee2e4f2fe30ca2c0e194a5472b6a8de3bf9dc1085e5261bbb9ddbe5b6531c4b391fb34f20d038e5ebd8e6f4c14c2112aee508f