From fa2c1689c8972a1cdd111bcbc114c25fbf447904 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 14 Apr 2023 21:43:24 -0400 Subject: [PATCH] gnu: valgrind/interactive: Rely on non-stripped glibc symbols. * gnu/packages/valgrind.scm (valgrind/interactive) [source]: Remove patches. [arguments]: Delete field. * gnu/packages/patches/valgrind-fix-default-debuginfo-path.patch: Delete file. * gnu/local.mk (dist_patch_DATA): De-register it. --- gnu/local.mk | 1 - .../valgrind-fix-default-debuginfo-path.patch | 100 ------------------ gnu/packages/valgrind.scm | 39 +------ 3 files changed, 1 insertion(+), 139 deletions(-) delete mode 100644 gnu/packages/patches/valgrind-fix-default-debuginfo-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index f473082203..e29e09b688 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1999,7 +1999,6 @@ dist_patch_DATA = \ %D%/packages/patches/ustr-fix-build-with-gcc-5.patch \ %D%/packages/patches/util-linux-tests.patch \ %D%/packages/patches/valgrind-enable-arm.patch \ - %D%/packages/patches/valgrind-fix-default-debuginfo-path.patch \ %D%/packages/patches/vboot-utils-fix-format-load-address.patch \ %D%/packages/patches/vboot-utils-fix-tests-show-contents.patch \ %D%/packages/patches/vboot-utils-skip-test-workbuf.patch \ 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 -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 ---- - 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: - 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. - - By default Valgrind searches in several well-known paths - for debug objects, such -- as /usr/lib/debug/. -+ as DEFAULT_DEBUGINFO_PATH/. - - 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 '())))