Another Dwarf Error with rawhide

Jakub Jelinek jakub at redhat.com
Mon Apr 6 08:10:12 UTC 2009


On Sun, Apr 05, 2009 at 09:26:41AM -0400, Tom spot Callaway wrote:
> > Can you post a src.rpm or something like that, then I can try to
> > reproduce the error and see if I can fix the undefined references.
> 
> http://www.auroralinux.org/people/spot/review/new/flock-2.0-1.fc11.src.rpm

>From a quick look, it is most probably flock's or clucene's fault.
If you look why it can't find the symbols in libclucene.so, you should find:

   177: 0000000000000000     0 NOTYPE  GLOBAL HIDDEN  UND _ZN6lucene5index11IndexReader5closeEv

in flockLuceneImpl.o (and similarly for other symbols it couldn't find).
Looking at the preprocessed source (flockLuceneImpl.ii), you can see that
config/gcc_hidden.h header very early on adds
#pragma GCC visibility push(hidden)
and then some of the system headers either temporarily
#pragma GCC visibility push(default)
...
#pragma GCC visibility pop
or add visibility attribute to some namespaces (like std::, __gnu_cxx::
etc.).  But this doesn't seem to be done for the clucene headers, so you
are telling gcc that all symbols declared in those headers bind locally to
the same shared library.  You need to either wrap those headers with
#pragma GCC visibility push(default)
...
#pragma GCC visibility pop,
or add visibility attribute to the clucene namespaces.

	Jakub




More information about the fedora-devel-list mailing list