From 7cf4586e5b429c0fa74d3ae73f49e6cda6660e93 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 3 Mar 2024 00:45:34 +0100 Subject: [PATCH] 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 --- libdw/libdwP.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libdw/libdwP.h b/libdw/libdwP.h index 8b2f06fa..c1c84ed3 100644 --- a/libdw/libdwP.h +++ b/libdw/libdwP.h @@ -1153,8 +1153,7 @@ str_offsets_base_off (Dwarf *dbg, Dwarf_CU *cu) if (cu == NULL && dbg != NULL) { Dwarf_CU *first_cu; - if (INTUSE(dwarf_get_units) (dbg, NULL, &first_cu, - NULL, NULL, NULL, NULL) == 0) + if (dwarf_get_units (dbg, NULL, &first_cu, NULL, NULL, NULL, NULL) == 0) cu = first_cu; } -- 2.47.2