The Git repository of the Libabigail Project
Go to file
Dodji Seketeli 1176c1c4ed Try harder to detect a DWARF attribute pointing into alternate DWARF section
This is bug https://sourceware.org/bugzilla/show_bug.cgi?id=17655.
There are several issues conflated into that one problem report.  This
patch addresses one of them.

The value of a DW_AT_type attribute on a DW_TAG_subprogram DIE can be
a type that lies in an alternate DWARF section.  The link from the
DW_TAG_subprogram die to the attribute value can be very much
indirect; for instance, the DW_TAG_subprogram might be linked to an
abstract origin function through a DW_AT_abstract_origin, which itself
can be linked to a function specification that lies in the alternate
DWARF section through a DW_AT_specification attribute.  It's that last
function specification (in the alternate DWARF section) that would
have the DW_AT_type that points to the return type of the function,
defined in the alternate DWARF section.  In this specific case, we
were failing to detect that the DW_AT_type was inside the alternate
debug info section; note that detecting that is not obvious because
the elfutils function dwarf_attr_integrate that we use to get the
value of the DW_AT_type magically does the walking through all the
hops, but doesn't tell us if the resulting type is in the alternate
debug info section or not.  So we do have our own function that does
the detection.

This patch makes the detection work in this case.

	* src/abg-dwarf-reader.cc
	(is_die_attribute_resolved_through_gnu_ref_alt): Support the case
	of the origin function itself having a specification function
	link.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
2014-12-11 13:48:43 +01:00
doc Avoid showing ugly version info in the libabigail online manual 2014-12-05 15:43:31 +01:00
include Make determining of compatible types complete 2014-12-10 08:02:32 +01:00
m4 Remove some m4 auto-generated files from version control 2014-11-05 09:59:26 +01:00
scripts Initial DOT work. 2013-07-23 23:13:55 +02:00
src Try harder to detect a DWARF attribute pointing into alternate DWARF section 2014-12-11 13:48:43 +01:00
tests Temporarily disable redundant diff report elimination 2014-12-10 19:19:57 +01:00
tools Temporarily disable redundant diff report elimination 2014-12-10 19:19:57 +01:00
.gitignore Update .gitignore 2014-11-01 12:10:06 +01:00
abigail.m4 For usage from within GCC set header path to $includedir/libabigail 2013-08-14 16:10:15 +02:00
AUTHORS Initial AUTHORS and README 2013-02-28 13:25:20 +01:00
changelog Implement generic diff tree walking and port categorization over it 2014-10-10 13:18:04 +02:00
ChangeLog Added a ChangeLog that is auto-generated by gen-changelog.py 2014-11-18 23:18:06 +01:00
COMMIT-LOG-GUIDELINES Allow introductory text in commit log and ignore it when generating ChangeLog 2014-11-18 23:18:06 +01:00
COMPILING White space fix in COMPILING 2013-08-22 17:40:50 +02:00
config.h.in Make the use of a C++-11 compiler optional 2014-11-05 10:45:07 +01:00
configure.ac Fix conditional build wrt zip archives and cx11 2014-12-10 14:35:55 +01:00
CONTRIBUTING Fix checkout & build instructions 2014-01-14 15:39:34 +01:00
COPYING Leave license stuff for later 2013-02-28 13:20:19 +01:00
COPYING-LGPLV2 Initial import of gen-changelog.py 2014-11-18 23:18:06 +01:00
COPYING-LGPLV3 LGPLv3 License the library 2013-07-23 23:13:55 +02:00
gen-changelog.py [gen-changelog] Make subject line always come first 2014-11-18 23:18:06 +01:00
install-sh Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
libabigail.pc.in Make libxml2 a private dependency wrt pkconfig 2013-08-22 17:41:29 +02:00
ltmain.sh Add missing autoconfiscation files into version control 2013-03-01 00:47:49 +01:00
Makefile.am INSTALL file is not yet in the distribution 2014-11-19 10:21:06 +01:00
README Prepare for publishing 2013-07-23 23:13:55 +02:00
test21-type-suppr-0.suppr Pimplify abigail::comparison::diff type 2014-09-19 12:28:18 +02:00
test21-type-suppr-report-0.txt Pimplify abigail::comparison::diff type 2014-09-19 12:28:18 +02:00

This is the Application Binary Interface Generic Analysis and
Instrumentation Library.

It aims at constructing, manipulating, serializing and de-serializing
ABI-relevant artifacts.

The set of artifacts that we are intersted is made of quantities like
types, variable, fonctions and declarations of a given library or
program.  For a given library or program this set of quantities is
called an ABI corpus.

This library aims at (among other things) providing a way to comparing
two ABI Corpuses, provide detailed information about their
differences, and help build tools to infer interesting conclusions
about these differences.

You are welcome to contribute to this project after reading the files
CONTRIBUTING and COMMIT-LOG-GUIDELINES files in the source tree.

Communicating with the maintainers of this project -- including
sending patches to be include to the source code -- happens via email
at libabigail@sourceware.org.