From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 115508 invoked by alias); 2 Oct 2019 21:27:33 -0000 Mailing-List: contact libabigail-help@sourceware.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Id: List-Subscribe: Sender: libabigail-owner@sourceware.org Received: (qmail 114720 invoked by uid 48); 2 Oct 2019 21:27:29 -0000 From: "simark at simark dot ca" To: libabigail@sourceware.org Subject: [Bug default/25058] New: abigail does not recognize Date: Tue, 01 Jan 2019 00:00:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: libabigail X-Bugzilla-Component: default X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: simark at simark dot ca X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: dodji at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2019-q4/txt/msg00010.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=3D25058 Bug ID: 25058 Summary: abigail does not recognize Product: libabigail Version: unspecified Status: NEW Severity: normal Priority: P2 Component: default Assignee: dodji at redhat dot com Reporter: simark at simark dot ca CC: libabigail at sourceware dot org Target Milestone: --- When running abidiff on the provided libraries: abidiff liblttng-ctl2.10.so liblttng-ctl.so some functions, like lttng_destruction_handle_wait_for_completion are supposedly not referenced by the debug info, when in fact they are. More precisely, this is unexpected: 3 Added function symbols not referenced by debug info: lttng_destruction_handle_wait_for_completion lttng_session_descriptor_destroy lttng_userspace_probe_location_destroy It is correct that the function symbols are added in the new version of the library, but it is incorrect that they are not referenced by debug info. I traced down the problem to the fact that these functions' DIEs use DW_AT_ranges to describe multiple PC ranges instead of DW_AT_low_pc to desc= ribe a single range. For example: 0x0001bb61: DW_TAG_subprogram DW_AT_external (true) DW_AT_name=20=20=20=20=20 ("lttng_destruction_handle_wait_for_completion") DW_AT_decl_file ("/tmp/tools-master/src/lttng-tools/src/lib/lttng-ctl/destruction-handle.c") DW_AT_decl_line (237) DW_AT_decl_column (0x01) DW_AT_prototyped (true) DW_AT_type (0x0001a018 "lttng_destruction_handle_status") DW_AT_ranges (0x00002420 [0x0000000000018f20, 0x000000000001942d) [0x0000000000011400, 0x000000000001140a)) DW_AT_frame_base (DW_OP_call_frame_cfa) DW_AT_GNU_all_call_sites (true) DW_AT_sibling (0x0001c28e) This makes abigail::dwarf_reader::read_context::get_function_address fail to find the function address. This makes build_function_decl fail to find the corresponding ELF symbol, therefore not set the `is_in_public_symbol_table` property of the function_decl. This makes corpus::exported_decls_builder::maybe_add_fn_to_exported_fns not add that function to the functions described by debug info. We would probably not see this if we built the binaries with -O0 (or at lea= st with -fno-reorder-blocks-and-partition), but it's still probably a bug that abigail doesn't understand DW_AT_ranges. --=20 You are receiving this mail because: You are on the CC list for the bug.