summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/patches/valgrind-fix-default-debuginfo-path.patch100
-rw-r--r--gnu/packages/valgrind.scm39
2 files changed, 1 insertions, 138 deletions
diff --git a/gnu/packages/patches/valgrind-fix-default-debuginfo-path.patch b/gnu/packages/patches/valgrind-fix-default-debuginfo-path.patch
deleted file mode 100644
index f78dec02dc..0000000000
--- a/gnu/packages/patches/valgrind-fix-default-debuginfo-path.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From a7f17b57a94e9cde6d7fa96ac86be5c4fc4f9211 Mon Sep 17 00:00:00 2001
-From: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
-Date: Sun, 24 Apr 2022 22:20:50 +0200
-Subject: [PATCH] valgrind: fix default debuginfo path
-
-Description: Workaround for missing symbol in Guix's ld.so. The
- correct fix (not stripping all the ld.so symbols) will be done in the
- next Guix release as it requires to recompile a lot of packages.
-
-Forwarded: not-needed
-Bug-Guix: https://issues.guix.gnu.org/54728
-Author: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
----
- coregrind/m_debuginfo/readelf.c | 11 ++++++-----
- docs/xml/manual-core-adv.xml | 4 ++--
- docs/xml/manual-core.xml | 2 +-
- 3 files changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c
-index c586e3f33..947fcc500 100644
---- a/coregrind/m_debuginfo/readelf.c
-+++ b/coregrind/m_debuginfo/readelf.c
-@@ -1509,9 +1509,9 @@ DiImage* find_debug_file( struct _DebugInfo* di,
-
- if (buildid != NULL) {
- debugpath = ML_(dinfo_zalloc)("di.fdf.1",
-- VG_(strlen)(buildid) + 33);
-+ VG_(strlen)(buildid) + DEBUGPATH_EXTRA_BYTES_1);
-
-- VG_(sprintf)(debugpath, "/usr/lib/debug/.build-id/%c%c/%s.debug",
-+ VG_(sprintf)(debugpath, "DEFAULT_DEBUGINFO_PATH/.build-id/%c%c/%s.debug",
- buildid[0], buildid[1], buildid + 2);
-
- dimg = open_debug_file(debugpath, buildid, 0, rel_ok, NULL);
-@@ -1536,7 +1536,8 @@ DiImage* find_debug_file( struct _DebugInfo* di,
-
- debugpath = ML_(dinfo_zalloc)(
- "di.fdf.3",
-- VG_(strlen)(objdir) + VG_(strlen)(debugname) + 64
-+ VG_(strlen)(objdir) + VG_(strlen)(debugname)
-+ + VG_(strlen)("DEFAULT_DEBUGINFO_PATH/") + 1
- + (extrapath ? VG_(strlen)(extrapath) : 0)
- + (serverpath ? VG_(strlen)(serverpath) : 0));
-
-@@ -1561,7 +1562,7 @@ DiImage* find_debug_file( struct _DebugInfo* di,
-
- TRY_OBJDIR_USRMERGE_OBJDIR("%s/%s");
- TRY_OBJDIR_USRMERGE_OBJDIR("%s/.debug/%s");
-- TRY_OBJDIR_USRMERGE_OBJDIR("/usr/lib/debug%s/%s");
-+ TRY_OBJDIR_USRMERGE_OBJDIR("DEFAULT_DEBUGINFO_PATH%s/%s");
-
- if (extrapath) {
- TRY_OBJDIR("%s%s/%s", extrapath, objdir, debugname);
-@@ -1631,7 +1632,7 @@ DiImage* find_debug_file_ad_hoc( const DebugInfo* di,
-
- debugpath = ML_(dinfo_zalloc)(
- "di.fdfah.3",
-- VG_(strlen)(objdir) + 64
-+ VG_(strlen)(objdir) + DEBUGPATH_EXTRA_BYTES_2
- + (extrapath ? VG_(strlen)(extrapath) : 0)
- + (serverpath ? VG_(strlen)(serverpath) : 0));
-
-diff --git a/docs/xml/manual-core-adv.xml b/docs/xml/manual-core-adv.xml
-index 1fa801edc..a7c01d5e6 100644
---- a/docs/xml/manual-core-adv.xml
-+++ b/docs/xml/manual-core-adv.xml
-@@ -447,7 +447,7 @@ Valgrind embedded gdbserver:</para>
- Remote debugging using | vgdb
- relaying data between gdb and process 2418
- Reading symbols from /lib/ld-linux.so.2...done.
--Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so.debug...done.
-+Reading symbols from DEFAULT_DEBUGINFO_PATH/lib/ld-2.11.2.so.debug...done.
- Loaded symbols for /lib/ld-linux.so.2
- [Switching to Thread 2418]
- 0x001f2850 in _start () from /lib/ld-linux.so.2
-@@ -475,7 +475,7 @@ Remote communication error: Resource temporarily unavailable.
- Remote debugging using | vgdb --pid=2479
- relaying data between gdb and process 2479
- Reading symbols from /lib/ld-linux.so.2...done.
--Reading symbols from /usr/lib/debug/lib/ld-2.11.2.so.debug...done.
-+Reading symbols from DEFAULT_DEBUGINFO_PATH/lib/ld-2.11.2.so.debug...done.
- Loaded symbols for /lib/ld-linux.so.2
- [Switching to Thread 2479]
- 0x001f2850 in _start () from /lib/ld-linux.so.2
-diff --git a/docs/xml/manual-core.xml b/docs/xml/manual-core.xml
-index dc33e1269..f6eb60086 100644
---- a/docs/xml/manual-core.xml
-+++ b/docs/xml/manual-core.xml
-@@ -1409,7 +1409,7 @@ that can report errors, e.g. Memcheck, but not Cachegrind.</para>
- <listitem>
- <para>By default Valgrind searches in several well-known paths
- for debug objects, such
-- as <computeroutput>/usr/lib/debug/</computeroutput>.</para>
-+ as <computeroutput>DEFAULT_DEBUGINFO_PATH/</computeroutput>.</para>
-
- <para>However, there may be scenarios where you may wish to put
- debug objects at an arbitrary location, such as external storage
---
-2.35.1
-
diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm
index bd08dffc83..204dd4a3c5 100644
--- a/gnu/packages/valgrind.scm
+++ b/gnu/packages/valgrind.scm
@@ -106,45 +106,8 @@ also use Valgrind to build new tools.")
"/valgrind-" version ".tar.bz2")))
(sha256
(base32
- "1ipkp6yi202pml2r0qwflysmq86dkqd8iyi1y51d6y70vcqw0dl5"))
- (patches (search-patches
- "valgrind-fix-default-debuginfo-path.patch"))))
+ "1ipkp6yi202pml2r0qwflysmq86dkqd8iyi1y51d6y70vcqw0dl5"))))
(inputs
;; GDB is needed to provide a sane default for `--db-command'.
(list gdb `(,(canonical-package glibc) "debug")))
- (arguments
- (substitute-keyword-arguments (package-arguments valgrind)
- ((#:phases phases #~%standard-phases)
- #~(modify-phases #$phases
- (add-before 'configure 'patch-default-debuginfo-path
- (lambda* (#:key inputs #:allow-other-keys)
- ;; This helps Valgrind find the debug symbols of ld.so.
- ;; Without it, Valgrind does not work in a Guix shell
- ;; container and cannot be used as-is during packages tests
- ;; phases.
- ;; TODO: Remove on the next rebuild cycle, when libc is not
- ;; longer fully stripped.
- (define libc-debug
- (string-append (ungexp (this-package-input "glibc") "debug")
- "/lib/debug"))
-
- (substitute* '("coregrind/m_debuginfo/readelf.c"
- "docs/xml/manual-core-adv.xml"
- "docs/xml/manual-core.xml")
- (("DEFAULT_DEBUGINFO_PATH")
- libc-debug))
- ;; We also need to account for the bigger path in
- ;; the malloc-ed variables.
- (substitute* '("coregrind/m_debuginfo/readelf.c")
- (("DEBUGPATH_EXTRA_BYTES_1")
- (number->string
- (+ (string-length libc-debug)
- (string-length "/.build-id//.debug")
- 1))))
- (substitute* '("coregrind/m_debuginfo/readelf.c")
- (("DEBUGPATH_EXTRA_BYTES_2")
- (number->string
- (+ (string-length libc-debug)
- (string-length "/usr/lib/debug")
- 1))))))))))
(properties '())))