public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
* [Bug debuginfod/26599] New: eu-readelf -n works on /boot/vmlinuz-*  but debuginfod-find doesn't
@ 2020-09-11 10:12 fche at redhat dot com
  2020-09-11 10:39 ` [Bug debuginfod/26599] " mark at klomp dot org
  2020-09-15 13:46 ` mark at klomp dot org
  0 siblings, 2 replies; 3+ messages in thread
From: fche at redhat dot com @ 2020-09-11 10:12 UTC (permalink / raw)
  To: elfutils-devel

https://sourceware.org/bugzilla/show_bug.cgi?id=26599

            Bug ID: 26599
           Summary: eu-readelf -n works on /boot/vmlinuz-*  but
                    debuginfod-find doesn't
           Product: elfutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: debuginfod
          Assignee: unassigned at sourceware dot org
          Reporter: fche at redhat dot com
                CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

eu-readelf appears to unwrap the bzImage header on a vmlinuz kernel file, and
can thus extract buildids, but debuginfod-find cannot:

% eu-readelf -n  /lib/modules/5.7.15-200.fc32.x86_64/vmlinuz
[...]
  GNU                   20  GNU_BUILD_ID
    Build ID: 8820b044b7717b53bd9a9795a1fbca152d2fae63

% debuginfod-find debuginfo  /lib/modules/5.7.15-200.fc32.x86_64/vmlinuz  
Cannot extract build-id from /lib/modules/5.7.15-200.fc32.x86_64/vmlinuz:
invalid `Elf' handle


It would be handy to teach debuginfod-find how to use the elfutils entry point
that unwraps bzImage.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug debuginfod/26599] eu-readelf -n works on /boot/vmlinuz-*  but debuginfod-find doesn't
  2020-09-11 10:12 [Bug debuginfod/26599] New: eu-readelf -n works on /boot/vmlinuz-* but debuginfod-find doesn't fche at redhat dot com
@ 2020-09-11 10:39 ` mark at klomp dot org
  2020-09-15 13:46 ` mark at klomp dot org
  1 sibling, 0 replies; 3+ messages in thread
From: mark at klomp dot org @ 2020-09-11 10:39 UTC (permalink / raw)
  To: elfutils-devel

https://sourceware.org/bugzilla/show_bug.cgi?id=26599

Mark Wielaard <mark at klomp dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mark at klomp dot org
             Status|NEW                         |ASSIGNED

--- Comment #1 from Mark Wielaard <mark at klomp dot org> ---
Only quickly tested patch, use dwelf_elf_begin:

/* Creates a read-only Elf handle from the given file handle.  The
   file may be compressed and/or contain a linux kernel image header,
   in which case it is eagerly decompressed in full and the Elf handle
   is created as if created with elf_memory ().  On decompression or
   file errors NULL is returned (and elf_errno will be set).  If there
   was no error, but the file is not an ELF file, then an ELF_K_NONE
   Elf handle is returned (just like with elf_begin).  The Elf handle
   should be closed with elf_end ().  The file handle will not be
   closed.  */

diff --git a/debuginfod/debuginfod-find.c b/debuginfod/debuginfod-find.c
index 83a43ce4..214256da 100644
--- a/debuginfod/debuginfod-find.c
+++ b/debuginfod/debuginfod-find.c
@@ -138,9 +138,10 @@ main(int argc, char** argv)
     }
   if (fd >= 0)
     {
-      elf = elf_begin (fd, ELF_C_READ_MMAP_PRIVATE, NULL);
+      elf = dwelf_elf_begin (fd);
       if (elf == NULL)
-        fprintf (stderr, "Cannot elf_begin %s: %s\n", build_id,
elf_errmsg(-1));
+        fprintf (stderr, "Cannot open as ELF file %s: %s\n", build_id,
+                elf_errmsg (-1));
     }
   if (elf != NULL)
     {

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug debuginfod/26599] eu-readelf -n works on /boot/vmlinuz-*  but debuginfod-find doesn't
  2020-09-11 10:12 [Bug debuginfod/26599] New: eu-readelf -n works on /boot/vmlinuz-* but debuginfod-find doesn't fche at redhat dot com
  2020-09-11 10:39 ` [Bug debuginfod/26599] " mark at klomp dot org
@ 2020-09-15 13:46 ` mark at klomp dot org
  1 sibling, 0 replies; 3+ messages in thread
From: mark at klomp dot org @ 2020-09-15 13:46 UTC (permalink / raw)
  To: elfutils-devel

https://sourceware.org/bugzilla/show_bug.cgi?id=26599

Mark Wielaard <mark at klomp dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #2 from Mark Wielaard <mark at klomp dot org> ---
commit 0ba7476d36100c015c35c744e871c4e64d52154a
Author: Mark Wielaard <mark@klomp.org>
Date:   Tue Sep 15 15:43:10 2020 +0200

    debuginfod-find: Support compressed (kernel) ELF images.

    By using dwelf_elf_begin instead of elf_begin we automatically get
    support for determining the build-id of compressed (kernel) images.

    https://sourceware.org/bugzilla/show_bug.cgi?id=26599

    Signed-off-by: Mark Wielaard <mark@klomp.org>

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-09-15 13:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-11 10:12 [Bug debuginfod/26599] New: eu-readelf -n works on /boot/vmlinuz-* but debuginfod-find doesn't fche at redhat dot com
2020-09-11 10:39 ` [Bug debuginfod/26599] " mark at klomp dot org
2020-09-15 13:46 ` mark at klomp dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).