[Bug general/31439] error: undefined reference to '__dwarf_get_units_internal'

mark at klomp dot org sourceware-bugzilla@sourceware.org
Sat Mar 2 23:53:29 GMT 2024


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

Mark Wielaard <mark at klomp dot org> changed:

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

--- Comment #3 from Mark Wielaard <mark at klomp dot org> ---
Thanks for testing. I don't know why I am unable to replicate or why none of
our buildbots caught this. But it makes sense that an INTUSE used in readelf
might cause issues.

Fixed by:

commit 7cf4586e5b429c0fa74d3ae73f49e6cda6660e93
Author: Mark Wielaard <mark@klomp.org>
Date:   Sun Mar 3 00:45:34 2024 +0100

    libdw: Don't use INTUSE in libdwP.h str_offsets_base_off

    readelf.c cheats and include libdwP.h, which is an internal only
    header of libdw. It really shouldn't do that, but there are some
    internals that readelf currently needs. The str_offsets_base_off
    function used by readelf uses INTUSE when calling dwarf_get_units.
    This is a micro optimization useful inside libdw so a public
    function can be called directly, skipping a PLT call. This can
    cause issues linking readelf since it might not be able to call
    the internal function, since readelf.c isn't part of libdw itself.
    Just drop the INTUSE.

            * libdw/libdwP.h (str_offsets_base_off): Don't use INTUSE
            when calling dwarf_get_units.

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

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


More information about the Elfutils-devel mailing list