Subject: [bug#73190] [PATCH 3/3] gnu: dyninst: Update to 13.0.0.

From: Nguyễn Gia Phong <[email-masked]>
Date: Thu, 12 Sep 2024 11:28:34 +0900

* gnu/packages/instrumentations.scm (dyninst): Update to 13.0.0.
  [propagated-inputs]: Add libiberty.
* gnu/packages/patches/dyninst-fix-glibc-compatibility.patch:
  Remove file.

Change-Id: I6e5dfa9d698de4d45614c535b5dd5cdaad239425
---
 gnu/local.mk                                  |  1 -
 gnu/packages/instrumentation.scm              | 17 +++++-----
 .../dyninst-fix-glibc-compatibility.patch     | 33 -------------------
 3 files changed, 8 insertions(+), 43 deletions(-)
 delete mode 100644 gnu/packages/patches/dyninst-fix-glibc-compatibility.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ed630041ff95..2485b4ab1669 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1160,7 +1160,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/dvd+rw-tools-add-include.patch 		\
   %D%/packages/patches/dwarves-threading-reproducibility.patch	\
   %D%/packages/patches/dynaconf-unvendor-deps.patch		\
-  %D%/packages/patches/dyninst-fix-glibc-compatibility.patch	\
   %D%/packages/patches/efivar-211.patch			\
   %D%/packages/patches/eigen-fix-strict-aliasing-bug.patch	\
   %D%/packages/patches/einstein-build.patch			\
diff --git a/gnu/packages/instrumentation.scm b/gnu/packages/instrumentation.scm
index f8bc2702bc37..0cc9a3a8d751 100644
--- a/gnu/packages/instrumentation.scm
+++ b/gnu/packages/instrumentation.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2021, 2022 Olivier Dion <[email-masked]>
 ;;; Copyright © 2023 Andy Tai <[email-masked]>
 ;;; Copyright © 2023 Marius Bakke <[email-masked]>
+;;; Copyright © 2024 Nguyễn Gia Phong <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@ (define-module (gnu packages instrumentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gawk)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages haskell-xyz)
@@ -202,9 +204,7 @@ (define-public barectf
 (define-public dyninst
   (package
     (name "dyninst")
-    ;; Newer versions are not promoted on main home page.
-    ;; Upgrade to 12.0.1 if anyone require a newer version.
-    (version "10.2.1")
+    (version "13.0.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -212,9 +212,8 @@ (define-public dyninst
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
-               (base32 "1m04pg824rqx647wvk9xl33ri8i6mm0vmrz9924li25dxbr4zqd5"))
-              (patches
-               (search-patches "dyninst-fix-glibc-compatibility.patch"))))
+               (base32
+                "0vkd9z6zwvn13ynfys2fg5yanv7n9pl7x5z8m1lcnmnb0kwgi035"))))
 
     (build-system cmake-build-system)
     (arguments
@@ -238,10 +237,10 @@ (define-public dyninst
          (add-after 'unpack 'patch-bad-logic
            (lambda _
              (substitute* "dyninstAPI/src/linux.C"
-               (("if\\(\\!fgets\\(buffer, 512, ldconfig\\)\\)")
-                "fgets(buffer, 512, ldconfig); if (false)")))))))
+               (("if\\(fgets\\(buffer, buffer_size, ldconfig\\)\\)")
+                "fgets(buffer, buffer_size, ldconfig); if (true)")))))))
     (propagated-inputs
-     (list elfutils boost tbb-2020))
+     (list elfutils libiberty boost tbb))
     (home-page "https://dyninst.org/")
     (synopsis "Dynamic instrumentation")
     (description "Dyninst is a collection of libraries for instrumenting,
diff --git a/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch b/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch
deleted file mode 100644
index cd018da6cce1..000000000000
--- a/gnu/packages/patches/dyninst-fix-glibc-compatibility.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From f233c46ac7b415104d04e4bb74bd7a0fcf24a333 Mon Sep 17 00:00:00 2001
-From: Olivier Dion <[email-masked]>
-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 <[email-masked]>
----
- 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
-
-- 
2.46.0