--- /dev/null
+Adjust for intel-xed 2023.12.19, which replaces SYSCALL_AMD iclass with SYSCALL_32 by "fred" instruction set
+--- libipt-2.1/ptxed/src/ptxed.c.orig 2023-10-12 09:39:11.000000000 +0200
++++ libipt-2.1/ptxed/src/ptxed.c 2024-01-10 20:19:27.212066096 +0100
+@@ -48,6 +48,9 @@
+
+ #include <xed-interface.h>
+
++#if !defined(XED_ICLASS_SYSCALL_AMD_DEFINED) && defined(XED_ICLASS_SYSCALL_32_DEFINED)
++# define XED_ICLASS_SYSCALL_AMD XED_ICLASS_SYSCALL_32
++#endif
+
+ /* The type of decoder to be used. */
+ enum ptxed_decoder_type {
Avoid build failure with -Werror=maybe-uninitialized
---- libipt-2.0.1/libipt/test/src/ptunit-msec_cache.c.orig 2019-08-13 10:39:44.000000000 +0200
-+++ libipt-2.0.1/libipt/test/src/ptunit-msec_cache.c 2021-11-17 19:14:27.713062249 +0100
-@@ -296,7 +296,7 @@ static struct ptunit_result read(struct
+--- libipt-2.1/libipt/test/src/ptunit-msec_cache.c.orig 2023-10-12 09:39:11.000000000 +0200
++++ libipt-2.1/libipt/test/src/ptunit-msec_cache.c 2024-01-10 18:37:13.791960352 +0100
+@@ -228,7 +228,7 @@ static struct ptunit_result fill_null(vo
+ const struct pt_mapped_section *msec;
+ struct pt_msec_cache mcache;
+ struct pt_image image;
+- struct pt_asid asid;
++ struct pt_asid asid = {0, };
+ int status;
+
+ memset(&mcache, 0, sizeof(mcache));
+@@ -300,7 +300,7 @@ static struct ptunit_result read(struct
static struct ptunit_result fill_nomap(struct test_fixture *tfix)
{
const struct pt_mapped_section *msec;
struct pt_section *section;
int status;
-@@ -320,7 +320,7 @@ static struct ptunit_result fill(struct
+@@ -325,7 +325,7 @@ static struct ptunit_result fill(struct
{
const struct pt_mapped_section *msec;
struct pt_section *section;
+ struct pt_asid asid = {0, };
int status;
- status = pt_msec_cache_fill(&tfix->mcache, &msec, &tfix->image, &asid,
+ memset(&asid, 0, sizeof(asid));
Summary: Intel Processor Trace Decoder Library
Summary(pl.UTF-8): Biblioteka dekodera Intel PT (śladów procesora Intel)
Name: libipt
-Version: 2.0.4
-Release: 2
+Version: 2.1
+Release: 1
License: BSD
Group: Libraries
#Source0Download: https://github.com/intel/libipt/tags
Source0: https://github.com/intel/libipt/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: cf2c97292dc61ea898dd84b460921f79
+# Source0-md5: 064e0d369bd30f78ec771a10c88a71ef
Patch0: %{name}-uninitialized.patch
+Patch1: %{name}-intel-xed.patch
URL: https://github.com/intel/libipt
-BuildRequires: cmake >= 2.8.6
+BuildRequires: cmake >= 3.1
%{?with_xed:BuildRequires: intel-xed-devel}
# C++ is required only for -DPTUNIT test "ptunit-cpp".
%{?with_tests:BuildRequires: libstdc++-devel}
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
install -d build
-DPEVENT:BOOL=ON \
-DPTDUMP:BOOL=ON \
%{?with_tests:-DPTUNIT:BOOL=ON} \
- %{?with_xed:-DPTXED:BOOL=ON -DXED_INCLUDE=%{_includedir}/xed}
-# -DSIDEBAND:BOOL=ON not yet: not installed, binaries depend on it
+ %{?with_xed:-DPTXED:BOOL=ON -DXED_INCLUDE=%{_includedir}/xed} \
+ -DSIDEBAND:BOOL=ON
%{__make}
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
+# not installed by cmake
+cp -a build/lib/libipt-sb.so* $RPM_BUILD_ROOT%{_libdir}
+
install -d $RPM_BUILD_ROOT%{_bindir}
install build/bin/ptdump $RPM_BUILD_ROOT%{_bindir}
%if %{with xed}
%doc LICENSE README
%attr(755,root,root) %{_libdir}/libipt.so.*.*
%attr(755,root,root) %ghost %{_libdir}/libipt.so.2
+%attr(755,root,root) %{_libdir}/libipt-sb.so.*.*
+%attr(755,root,root) %ghost %{_libdir}/libipt-sb.so.2
%files devel
%defattr(644,root,root,755)
%doc doc/{getting_started,howto_capture,howto_libipt}.md
%attr(755,root,root) %{_libdir}/libipt.so
+%attr(755,root,root) %{_libdir}/libipt-sb.so
%{_includedir}/intel-pt.h
%if %{with ghc}
%{_mandir}/man3/pt_*.3*