mirror of
git://sourceware.org/git/libabigail.git
synced 2025-01-20 08:20:46 +00:00
The Git repository of the Libabigail Project
6381bbebe6
After the IR is constructed, decl-only classes and enums are resolved to their definition, for cases where the link between the declaration and the definition is not obviously stated in the DWARF representation. During that resolution, it often happens that types are compared. As that comparison happens before type canonicalization, the comparison is structural. So it takes time and it can take forever. As pre-canonicalization type comparison happens between artifacts that are from the same binary, we can consider that two types of the same name and kind having the same source location are equivalent. This optimization speeds up things A LOT. So much so that self-comparing the usr/libexec/gcc/s390x-redhat-linux/12/gnat1 binary (from the gcc-gnat package) now takes less than 4 minutes, down from more than one hour! * src/abg-dwarf-reader.cc (reader::compare_before_canonicalisation): If the two types being compared are of the same kind and name, and are declared at the same source location, then they ought to be equivalent. * tests/data/test-annotate/test14-pr18893.so.abi: Adjust. * tests/data/test-read-dwarf/test14-pr18893.so.abi: Likewise. * tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt: Likewise. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
.github | ||
autoconf-archive | ||
bash-completion | ||
big-tests@8447ddfd40 | ||
doc | ||
docker | ||
include | ||
m4 | ||
relicensing-scripts | ||
scripts | ||
src | ||
tests | ||
tools | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
.mailmap | ||
abigail.m4 | ||
ABIXML-FORMAT-VERSIONS | ||
AUTHORS | ||
ChangeLog | ||
COMMIT-LOG-GUIDELINES | ||
COMPILING | ||
configure.ac | ||
CONTRIBUTING | ||
default.abignore | ||
gen-changelog.py | ||
install-sh | ||
libabigail.pc.in | ||
license-change-2020.txt | ||
LICENSE.txt | ||
ltmain.sh | ||
Makefile.am | ||
NEWS | ||
README | ||
README-DOCKER.md | ||
release-text-template.txt | ||
update-copyright.sh | ||
VISIBILITY |
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, functions 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.