[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

assertion failure in abidw on libabigail master

Hi -

I'm encountering an assertion failure when running the 'abidw' utility
against a shared library that I have built.

I've checked out libabigail at
a746f4afeee5c4c3992d0b7e2cff372b9159e835 and built it as follows on an
Ubuntu 15.04 machine with the system GCC (4.9.2):

> autoreconf -fiv
> ./configure --prefix=$HOME/opt --enable-cxx11
> make -j10 all
> make install

I'm then attempting to build MongoDB from source while using abidw to
short circuit the normal SCons content based decider for shared
libraries, so that libraries are only re-linked when the ABI of their
dependencies change (see
for some more details on what I'm trying to make work). If you want to
try to reproduce the crash locally, you will need python and SCons
installed to run the MongoDB build:

> git clone https://github.com/mongodb/mongo.git
> cd mongo
> scons -j10 --dbg=on --opt=off --link-model=dynamic build/debug/third_party/boost-1.56.0/libboost_filesystem.so ABIDW=$HOME/opt/bin/abidw

This fails for me with the following assertion from abidw:

abidw: abg-hash.cc:627: size_t
abigail::ir::class_decl&) const: Assertion `cl &&
(!cl->get_is_declaration_only() ||
cl->get_definition_of_declaration())' failed.

I've also tried using clang instead of GCC, the gold linker instead of
BFD, etc., but the crash remains.

If I use the system version of abidw though everything works. That
package is versioned as 0.1~20150306-1 according to dpkg.

Please let me know if you have any suggestions. I can also try to
reduce this to a smaller test case, but not immediately.

Also, thanks for writing libabigail, it is a very useful library and
set of utilities.