mirror of
git://sourceware.org/git/libabigail.git
synced 2025-03-06 22:58:01 +00:00
The Git repository of the Libabigail Project
This is the first patch of a series which aims at fixing: Bug 19024 - abidw --abidiff fails and aborts when run against r300_dri.so The issue reported in that bug is the manifestation of several problems that different patches in the series address on a case by case basis. Suffice it to say abidw --abidiff on my X220 laptop was taking more than 40 minutes, and north of 11GB or ram. An rather than yielding the empty set, it was emitting lots of false postives! The patchset thus applies a series of optimizations to reduce the time and memory taken, so that I can at least debug the issues that prevent abidw --abidiff from yielding the empty set, as it should. Then, with those optimizations applied, I came up with a series of fixes. With the series applies, abidw --abidiff now takes less than 8 minutes and around of 4.8GB of ram. The first seven patches are those fixes. The next five patches are the time and size optimization that allowed me to work on the first fixes. The thirteenth patch applies some needed modification (both fixes and improvements) to abidw --abidiff itself. The last patch carries the necessary adjustments to the regression tests output. Here are the short titles of the patches of the set, including this one: Force late canonicalizing of function types read from abixml Fix strip_typedef issues Do not compare access specs for member types & functions Fix "is-anonymous" abixml property impact on some tests Fix const-ness of a function parameter Handle aliased function decls when comparing decls in general Make canonicalization non sensitive to struct-ness of subtypes Set the corpus of all ABI artifact reads from abixml Implement fast type lookup in a corpus Accelerate a slow path in hash_type_or_decl() A series of small speed optimizations here and there Allow only one definition of a given type per corpus in abixml Make abidw --abidiff not show definitely harmless changes Adjust tests for the patchset We do not add the r300_dri.so library to the repository because of the time it still takes to complete. And now, here is the cover letter for this first patch. When reading the abixml format, sometimes, function types can be early-canonicalized. This can be wrong especially is the function type has sub-types that are not canonicalized yet. So this patch forces those to be late-canonicalized. * src/abg-reader.cc (build_function_type): Late-canonicalize function types. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
doc | ||
include | ||
m4 | ||
scripts | ||
src | ||
tests | ||
tools | ||
.gitignore | ||
abigail.m4 | ||
AUTHORS | ||
ChangeLog | ||
COMMIT-LOG-GUIDELINES | ||
COMPILING | ||
config.h.in | ||
configure.ac | ||
CONTRIBUTING | ||
COPYING | ||
COPYING-GPLV3 | ||
COPYING-LGPLV2 | ||
COPYING-LGPLV3 | ||
gen-changelog.py | ||
install-sh | ||
libabigail.pc.in | ||
ltmain.sh | ||
Makefile.am | ||
README |
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 compare two ABI Corpora (apparently the plural of corpus is copora, heh, that's cool), 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.