2013-08-21 12:58:03 +00:00
|
|
|
/*!
|
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
\mainpage The ABI Generic Analysis and Instrumentation Library
|
2013-08-21 12:58:03 +00:00
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
\tableofcontents
|
|
|
|
|
|
|
|
\section presentation Presentation
|
2013-08-21 12:58:03 +00:00
|
|
|
|
|
|
|
This project aims at providing a C++ library for constructing,
|
|
|
|
manipulating, serializing and de-serializing ABI-relevant artifacts.
|
|
|
|
The set of artifacts that we are interested in is made of
|
2013-08-21 18:06:57 +00:00
|
|
|
constructions like types, variables, functions and declarations of a
|
2013-08-21 12:58:03 +00:00
|
|
|
given library or program. For a given program or library, this set of
|
|
|
|
constructions is called an ABI corpus.
|
|
|
|
|
2013-08-27 13:18:59 +00:00
|
|
|
Thus the project aims at providing a library to manipulate ABI
|
2014-11-10 14:47:10 +00:00
|
|
|
corpora, compare them, provide detailed information about their
|
2013-08-21 12:58:03 +00:00
|
|
|
differences and help build tools to infer interesting conclusions
|
|
|
|
about these differences.
|
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
\section documentation Documentation
|
2013-08-21 12:58:03 +00:00
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
The documentations of the libabigail tools is available online <a
|
2014-09-30 15:53:35 +00:00
|
|
|
href="http://sourceware.org/libabigail/manual">here</a>.
|
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
The html documentation of the API of the library itself is available
|
|
|
|
online <a href="http://sourceware.org/libabigail/apidoc">here</a>.
|
|
|
|
|
|
|
|
\section communication IRC and Mailing lists
|
|
|
|
|
|
|
|
To hang out with libabigail developers and users, you can chat with us
|
|
|
|
via <a href="http://en.wikipedia.org/wiki/Wikipedia:IRC">IRC</a> at
|
2014-11-18 22:14:49 +00:00
|
|
|
<em>irc://irc.oftc.net\#libabigail</em>.
|
2014-11-10 14:47:10 +00:00
|
|
|
|
|
|
|
To send us patches or just drop by to say Hi, please send an email to
|
2015-03-19 11:19:33 +00:00
|
|
|
our mailing list <em>libabigail@sourceware.org</em>. The archives of
|
|
|
|
the mailing list can be read <a
|
|
|
|
href="https://sourceware.org/ml/libabigail">online</a>. To send us an
|
|
|
|
email, you first need to register to the mailing list by feeling the
|
|
|
|
form below.
|
2014-11-10 14:47:10 +00:00
|
|
|
|
|
|
|
\htmlonly
|
|
|
|
|
|
|
|
<form method="get" action="http://sourceware.org/cgi-bin/ml-request">
|
|
|
|
Mailing list name:
|
|
|
|
<input type="text" name="listname" value="libabigail" size="10"/>
|
|
|
|
<br>
|
|
|
|
Your e-mail address:
|
|
|
|
<input type="text" name="username" size="14"/>
|
|
|
|
<br>
|
|
|
|
<input type="checkbox" name="digest"/>Digest version
|
|
|
|
<tt> </tt>
|
|
|
|
<select name="operation">
|
|
|
|
<option value="subscribe">subscribe</option>
|
|
|
|
<option value="unsubscribe">unsubscribe</option>
|
|
|
|
</select>
|
|
|
|
<tt> </tt>
|
|
|
|
<input type="Submit" name="submit" value="Send in the request"/>
|
|
|
|
</form>
|
|
|
|
\endhtmlonly
|
|
|
|
|
|
|
|
\section bugs Bug reports
|
|
|
|
|
|
|
|
Bug reports are to be filed into our <a
|
|
|
|
href="http://sourceware.org/bugzilla/enter_bug.cgi?product=libabigail">Bugzilla
|
|
|
|
database</a>.
|
|
|
|
|
|
|
|
\section license License
|
|
|
|
|
|
|
|
The source code of the library is under <a href="http://www.gnu.org/licenses/lgpl.html"> LGPL version 3</a> or later.
|
|
|
|
|
2013-08-21 12:58:03 +00:00
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
\section source Getting the source code
|
2013-08-21 12:58:03 +00:00
|
|
|
|
|
|
|
This project is still in an early stage; we haven't released any
|
|
|
|
official tarball yet. You can get the source code in a read-only
|
|
|
|
manner from our <a
|
|
|
|
href="http://sourceware.org/git/gitweb.cgi?p=libabigail.git">Git
|
|
|
|
repository</a> by doing:
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2013-08-21 12:58:03 +00:00
|
|
|
git clone git://sourceware.org/git/libabigail.git
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
If you have write access on sourceware.org, you can check the source
|
|
|
|
out in read-write by doing:
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2013-08-21 12:58:03 +00:00
|
|
|
git clone ssh://sourceware.org/git/libabigail.git
|
|
|
|
\endcode
|
|
|
|
|
2014-11-10 14:47:10 +00:00
|
|
|
\section compile Compiling the source code
|
2013-08-21 12:58:03 +00:00
|
|
|
|
|
|
|
To compile libabigail, you first need to install its dependencies. At
|
|
|
|
the moment the dependencies are the following Free Software packages:
|
|
|
|
|
|
|
|
\li <a href="http://www.gnu.org/software/autoconf/">autoconf</a>
|
2015-03-19 11:19:33 +00:00
|
|
|
\li <a href="http://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>
|
|
|
|
\li <a href="http://www.xmlsoft.org">libxml2</a>
|
2014-01-14 14:39:34 +00:00
|
|
|
\li <a href="https://fedorahosted.org/elfutils/">elfutils</a>
|
2013-08-21 12:58:03 +00:00
|
|
|
|
|
|
|
Then go to your local libabigail.git directory where the source code
|
|
|
|
you've checked out lies and create a 'build' directory that will
|
|
|
|
receive the binaries resulting from the compilation:
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2014-01-14 14:39:34 +00:00
|
|
|
cd libabigail
|
2013-08-21 12:58:03 +00:00
|
|
|
mkdir build
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
Generate the relevant build-system-related information needed to
|
|
|
|
configure the package for compilation, by typing:
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2014-01-14 14:39:34 +00:00
|
|
|
autoreconf -i
|
2013-08-21 12:58:03 +00:00
|
|
|
\endcode
|
|
|
|
|
|
|
|
Then configure the package:
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2013-08-21 12:58:03 +00:00
|
|
|
cd build
|
|
|
|
../configure --prefix=<absolute-path-of-where-you-want-the-binaries-to-be-installed>
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
Then build the package
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2013-08-21 12:58:03 +00:00
|
|
|
make
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
And then install its resulting binaries and documentation:
|
|
|
|
|
2015-03-19 11:19:33 +00:00
|
|
|
\code
|
2013-08-21 12:58:03 +00:00
|
|
|
make install
|
|
|
|
\endcode
|
|
|
|
|
|
|
|
|
|
|
|
*/
|