libdrgn: orc_info: work around ORC backports in RHEL 9.6
Resolves: RHEL-136527 Upstream: https://github.com/osandov/drgn This problem is fixed in the kernel with b9f174c811e3 ("x86/unwind/orc: Add ELF section with ORC version identifier"). But the fix won't work as expected due to missing commit 321648455061 ("kbuild: use obj-y instead extra-y for objects placed at the head"). The second commit however is very invasive and shouldn't be backported this late in the RHEL9 cycle (see RHEL-27234 for details). So backport the workaround in drgn instead. commit 8660ee186377aabf28cd54d76beb942b9a06d09a Author: Stephen Brennan <stephen.s.brennan@oracle.com> Date: Fri Dec 5 10:43:44 2025 -0800 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 <stephen.s.brennan@oracle.com> Signed-off-by: Philipp Rudo <prudo@redhat.com>
This commit is contained in:
parent
7fddd23252
commit
395e648256
@ -0,0 +1,44 @@
|
|||||||
|
From 8660ee186377aabf28cd54d76beb942b9a06d09a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephen Brennan <stephen.s.brennan@oracle.com>
|
||||||
|
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 <stephen.s.brennan@oracle.com>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ scripting in Python.}
|
|||||||
|
|
||||||
Name: python-%{pypi_name}
|
Name: python-%{pypi_name}
|
||||||
Version: 0.0.33
|
Version: 0.0.33
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Programmable debugger
|
Summary: Programmable debugger
|
||||||
|
|
||||||
License: LGPL-2.1-or-later
|
License: LGPL-2.1-or-later
|
||||||
@ -46,6 +46,8 @@ BuildRequires: autoconf
|
|||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
|
|
||||||
|
Patch001: 0001-libdrgn-orc_info-work-around-ORC-backports-in-RHEL-9.patch
|
||||||
|
|
||||||
%description %{_description}
|
%description %{_description}
|
||||||
|
|
||||||
%package -n %{pypi_name}
|
%package -n %{pypi_name}
|
||||||
@ -125,6 +127,10 @@ cp -PR man/drgn.1* %{buildroot}%{_mandir}/man1
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Dec 17 2025 Philipp Rudo <prudo@redhat.com> - 0.0.33-2
|
||||||
|
- Work around ORC backports in RHEL 9.6
|
||||||
|
Resolves: RHEL-136527
|
||||||
|
|
||||||
* Thu Nov 13 2025 Philipp Rudo <prudo@redhat.com> - 0.0.33-1
|
* Thu Nov 13 2025 Philipp Rudo <prudo@redhat.com> - 0.0.33-1
|
||||||
- Rebase to upstream v0.0.33
|
- Rebase to upstream v0.0.33
|
||||||
Resolves: RHEL-114118
|
Resolves: RHEL-114118
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user