gnu: dyninst: Remove patch-bad-logic phase.

The short circuit logic (return failure to resolve library path
if ldconfig not found) is no longer present on Dyninst 13.

* gnu/packages/instrumentation.scm (dyninst):
  Remove patch-bad-logic phase.

Fixes: 254c8f2c8c ("gnu: dyninst: Update to 13.0.0.")
References: https://github.com/dyninst/dyninst/pull/1362
Change-Id: I021ec71416da90d11705ef04fba7c170558ef3c6
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Nguyễn Gia Phong 2024-09-26 18:21:29 +09:00 committed by Ludovic Courtès
parent c51d7fd569
commit f0a1915564
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -222,23 +222,8 @@ (define-public dyninst
;; source.
#:configure-flags
(list "-DSTERILE_BUILD=ON")
;; NOTE: dyninst needs to search for shared libraries that are linked
;; against the instrumented binary in order to rebuild the entire
;; program. For this purpose, one can use LD_LIBRARY_PATH or
;; DYNISNT_REWRITER_PATHS environment variables to add paths for dyinst
;; to search. However, dyninst also tries to be smart by executing
;; ldconfig, which is not portable. If ldconfig is not available on
;; the system, dyinst wrongly assumes that the shared libraries can not
;; be found, even though it can. This bad logic is still there with
;; newer versions of dyinst. Thus, this substitution makes the bad
;; code path unreachable.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-bad-logic
(lambda _
(substitute* "dyninstAPI/src/linux.C"
(("if\\(fgets\\(buffer, buffer_size, ldconfig\\)\\)")
"fgets(buffer, buffer_size, ldconfig); if (true)"))))
(add-after 'unpack 'adjust-supported-platform-name
(lambda _
;; That file checks for "i386" but