diff --git a/.gitignore b/.gitignore index b36cfb5..ee58b79 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/drgn-0.0.31.tar.gz +SOURCES/drgn-0.0.33.tar.gz diff --git a/.python-drgn.metadata b/.python-drgn.metadata index 1c4cd40..5f149b7 100644 --- a/.python-drgn.metadata +++ b/.python-drgn.metadata @@ -1 +1 @@ -40a36081b89d0d3228cbc6fe2f0b25b0afe9a5ab SOURCES/drgn-0.0.31.tar.gz +6dad706ad553c7345a16b941e6cb084b654ad332 SOURCES/drgn-0.0.33.tar.gz diff --git a/SOURCES/0001-libdrgn-orc_info-work-around-ORC-backports-in-RHEL-9.patch b/SOURCES/0001-libdrgn-orc_info-work-around-ORC-backports-in-RHEL-9.patch new file mode 100644 index 0000000..c865e7c --- /dev/null +++ b/SOURCES/0001-libdrgn-orc_info-work-around-ORC-backports-in-RHEL-9.patch @@ -0,0 +1,44 @@ +From 8660ee186377aabf28cd54d76beb942b9a06d09a Mon Sep 17 00:00:00 2001 +From: Stephen Brennan +Date: Fri, 5 Dec 2025 10:43:44 -0800 +Subject: [PATCH] libdrgn: orc_info: work around ORC backports in RHEL 9.6 + +Add a special case to detect RHEL 9 kernel versions since release +5.14.0-517.el9, and use ORC "v3" for these kernels. + +Fixes #578. + +Signed-off-by: Stephen Brennan +--- + libdrgn/orc_info.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/libdrgn/orc_info.c b/libdrgn/orc_info.c +index 7015d096..83ea3f4e 100644 +--- a/libdrgn/orc_info.c ++++ b/libdrgn/orc_info.c +@@ -254,6 +254,21 @@ static int orc_version_from_osrelease(struct drgn_program *prog) + long minor = 0; + if (*p == '.') + minor = strtol(p + 1, NULL, 10); ++ ++ // RHEL & derivatives started shipping backported ORC patches without ++ // the ".orc_header" section in 9.6. According to git history this was ++ // introduced in kernel version 5.14.0-517.el9. With those changes, the ++ // kernel's ORC "format" is indeed v3, but we cannot detect that without ++ // the ORC header hash. Add special-case detection for this situation. ++ // If it is fixed by including the ".orc_header" section, this fix will ++ // not be active, but will still be necessary for the already released ++ // kernels. ++ char *rhrelease = NULL; ++ if (major == 5 && minor == 14 && strstr(p, ".el9") ++ && (rhrelease = strchr(p, '-')) ++ && strtol(rhrelease + 1, NULL, 10) >= 517) ++ return 3; ++ + if (major > 6 || (major == 6 && minor >= 4)) + return 3; + else if (major == 6 && minor == 3) +-- +2.52.0 + diff --git a/SPECS/python-drgn.spec b/SPECS/python-drgn.spec index f687a43..160fdc6 100644 --- a/SPECS/python-drgn.spec +++ b/SPECS/python-drgn.spec @@ -14,8 +14,8 @@ drgn exposes the types and variables in a program for easy, expressive scripting in Python.} Name: python-%{pypi_name} -Version: 0.0.31 -Release: 4%{?dist} +Version: 0.0.33 +Release: 2%{?dist} Summary: Programmable debugger License: LGPL-2.1-or-later @@ -46,6 +46,8 @@ BuildRequires: autoconf BuildRequires: automake BuildRequires: libtool +Patch001: 0001-libdrgn-orc_info-work-around-ORC-backports-in-RHEL-9.patch + %description %{_description} %package -n %{pypi_name} @@ -125,6 +127,14 @@ cp -PR man/drgn.1* %{buildroot}%{_mandir}/man1 %endif %changelog +* Wed Dec 17 2025 Philipp Rudo - 0.0.33-2 +- Work around ORC backports in RHEL 9.6 + Resolves: RHEL-136527 + +* Thu Nov 13 2025 Philipp Rudo - 0.0.33-1 +- Rebase to upstream v0.0.33 + Resolves: RHEL-114118 + * Wed Jul 16 2025 Philipp Rudo - 0.0.31-4 - Fix regression in selftest introduced in 0.0.31-3