Merge #160259: separateDebugInfo: Use --strip-unneeded

...into staging
This commit is contained in:
Vladimír Čunát 2022-03-23 08:32:39 +01:00
commit 848091a52b
No known key found for this signature in database
GPG Key ID: E747DF1F9575A3AA
4 changed files with 40 additions and 1 deletions

View File

@ -34,7 +34,7 @@ _separateDebugInfo() {
# firmware blobs in QEMU.)
(
$OBJCOPY --only-keep-debug "$i" "$dst/${id:0:2}/${id:2}.debug"
$STRIP --strip-debug "$i"
$STRIP --strip-unneeded "$i"
# Also a create a symlink <original-name>.debug.
ln -sfn ".build-id/${id:0:2}/${id:2}.debug" "$dst/../$(basename "$i")"

View File

@ -3,6 +3,7 @@
, autoreconfHook
, docbook_xsl
, docbook_xml_dtd_43
, glibc
, gtk-doc
, lzip
, libidn2
@ -38,6 +39,7 @@ in stdenv.mkDerivation rec {
python3
libxslt
] ++ lib.optionals enableValgrindTests [
glibc.debug
valgrind
];

View File

@ -0,0 +1,31 @@
diff --git a/coregrind/m_debuginfo/readelf.c b/coregrind/m_debuginfo/readelf.c
index c586e3f33..e3bb1717f 100644
--- a/coregrind/m_debuginfo/readelf.c
+++ b/coregrind/m_debuginfo/readelf.c
@@ -1508,13 +1508,25 @@ DiImage* find_debug_file( struct _DebugInfo* di,
HChar* debugpath = NULL; /* where we found it */
if (buildid != NULL) {
+ const HChar *dir = VG_(getenv)("NIX_DEBUG_INFO_DIRS");
debugpath = ML_(dinfo_zalloc)("di.fdf.1",
- VG_(strlen)(buildid) + 33);
+ VG_(strlen)(buildid) + 33 +
+ (dir ? VG_(strlen)(dir) : 0));
VG_(sprintf)(debugpath, "/usr/lib/debug/.build-id/%c%c/%s.debug",
buildid[0], buildid[1], buildid + 2);
dimg = open_debug_file(debugpath, buildid, 0, rel_ok, NULL);
+
+ while (!dimg && dir) {
+ const HChar *sep = VG_(strchr)(dir, ':');
+ Int size = sep ? sep - dir : VG_(strlen)(dir);
+ VG_(sprintf)(debugpath, "%.*s/.build-id/%c%c/%s.debug",
+ size, dir, buildid[0], buildid[1], buildid + 2);
+ dimg = open_debug_file(debugpath, buildid, 0, rel_ok, NULL);
+ dir = sep ? sep + 1 : NULL;
+ }
+
if (!dimg) {
ML_(dinfo_free)(debugpath);
debugpath = NULL;

View File

@ -1,6 +1,7 @@
{ lib, stdenv, fetchurl, fetchpatch
, autoreconfHook, perl
, gdb, cctools, xnu, bootstrap_cmds
, setupDebugInfoDirs
}:
stdenv.mkDerivation rec {
@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
url = "https://bugsfiles.kde.org/attachment.cgi?id=143535";
sha256 = "036zyk30rixjvpylw3c7n171n4gpn6zcp7h6ya2dz4h5r478l9i6";
})
./debug-info-from-env.patch
];
outputs = [ "out" "dev" "man" "doc" ];
@ -32,6 +34,10 @@ stdenv.mkDerivation rec {
# Perl is also a native build input.
nativeBuildInputs = [ autoreconfHook perl ];
# Not propagatedNativeBuildInputs because of
# https://github.com/NixOS/nixpkgs/issues/64992.
propagatedBuildInputs = [ setupDebugInfoDirs ];
enableParallelBuilding = true;
separateDebugInfo = stdenv.isLinux;