diff mbox series

[bug#64082] gnu: dyninst: fix runtime error with new glibc

Message ID 0a9c6779a942f280f82839de2900394b6b44dba4.1686846742.git.olivier.dion@polymtl.ca
State New
Headers show
Series [bug#64082] gnu: dyninst: fix runtime error with new glibc | expand

Commit Message

Olivier Dion June 15, 2023, 4:32 p.m. UTC
From: Olivier Dion <odion@efficios.com>

* gnu/packages/instrumentation.scm (dyninst): fix the error
[source]: add patch.
* gnu/packages/patches/dyninst-fix-glibc-compatibility.patch: New file.
---
 gnu/packages/instrumentation.scm              |  5 ++-
 .../dyninst-fix-glibc-compatibility.patch     | 33 +++++++++++++++++++
 2 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/dyninst-fix-glibc-compatibility.patch


base-commit: f6047c5b716e5d8f3d8a749f389954e4e4c36c16

Comments

Ludovic Courtès June 24, 2023, 2:55 p.m. UTC | #1
Hi Olivier,

odion@efficios.com skribis:

> From: Olivier Dion <odion@efficios.com>
>
> * gnu/packages/instrumentation.scm (dyninst): fix the error
> [source]: add patch.
> * gnu/packages/patches/dyninst-fix-glibc-compatibility.patch: New file.

qa.guix failed to process it due to obscure reasons (see
<https://issues.guix.gnu.org/64197>):

  https://qa.guix.gnu.org/issue/64082

I tested it locally on x86_64-linux: it works fine and it fixes a bug,
so I applied it (after adding the patch to ‘gnu/local.mk’ and tweaking
the commit log).

Thanks,
Ludo’.
diff mbox series

Patch

diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm
index 5d862b5df1..263c2909f3 100644
--- a/gnu/packages/instrumentation.scm
+++ b/gnu/packages/instrumentation.scm
@@ -18,6 +18,7 @@ 
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages instrumentation)
+  #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
@@ -178,7 +179,9 @@  (define-public dyninst
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1m04pg824rqx647wvk9xl33ri8i6mm0vmrz9924li25dxbr4zqd5"))))
+               (base32 "1m04pg824rqx647wvk9xl33ri8i6mm0vmrz9924li25dxbr4zqd5"))
+              (patches
+               (search-patches "dyninst-fix-glibc-compatibility.patch"))))
 
     (build-system cmake-build-system)
     (arguments
diff --git a/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch b/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch
new file mode 100644
index 0000000000..cd018da6cc
--- /dev/null
+++ b/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch
@@ -0,0 +1,33 @@ 
+From f233c46ac7b415104d04e4bb74bd7a0fcf24a333 Mon Sep 17 00:00:00 2001
+From: Olivier Dion <odion@efficios.com>
+Date: Thu, 15 Jun 2023 12:02:08 -0400
+Subject: [PATCH] Fix compatibility with glibc 2.35
+
+Something has change with the visibility of the _r_debug structure in
+glibc 2.35.  See this issue
+<https://github.com/dyninst/dyninst/issues/1282>.
+
+This patch is essentially the upstream fix
+<https://github.com/dyninst/dyninst/commit/273803a4c643ed3506f9a69c6ec71d5ab337489c>
+backported.
+
+Signed-off-by: Olivier Dion <odion@efficios.com>
+---
+ dyninstAPI_RT/src/RTlinux.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/dyninstAPI_RT/src/RTlinux.c b/dyninstAPI_RT/src/RTlinux.c
+index fc231d0a4..2f17ff677 100644
+--- a/dyninstAPI_RT/src/RTlinux.c
++++ b/dyninstAPI_RT/src/RTlinux.c
+@@ -406,7 +406,6 @@ void dyninstTrapHandler(int sig, siginfo_t *sg, ucontext_t *context)
+ #if defined(cap_binary_rewriter)
+ 
+ extern struct r_debug _r_debug;
+-DLLEXPORT struct r_debug _r_debug __attribute__ ((weak));
+ 
+ /* Verify that the r_debug variable is visible */
+ void r_debugCheck() { assert(_r_debug.r_map); }
+-- 
+2.40.1
+