Bug#529807: [Pkg-scicomp-devel] Bug#529807: libtrilinos: Missing library links

Adam C Powell IV hazelsct at debian.org
Tue Feb 21 11:54:39 UTC 2012


Hi again,

Wow, nearly three years, sorry I neglected this bug for so long.

First, to answer your question, this is a problem because it breaks
binutils-gold, and because if the required list of libraries changes
then there's no way for dependent packages to know that.

For example: if my executable A links with and uses symbols in library
B, which needs symbols in libraries C and D, the links should look like:

A -> B
B -> C and D

Now if B changes to no longer need D, but need E, then it changes to:

A -> B
B -> C and E

If this weren't the case, if we had:

A -> B, C, D

then A and every other reverse-depends of B would need to change their
makefiles to link with B, C and E in order to build properly.  It's much
easier for B to change, since the B maintainer knows about the shift in
dependencies.  Particularly for long and complex chains of dependencies,
this can become completely unmanageable if libraries don't link to each
other properly.

[If A uses symbols in D as well as B, then that's different, it should
link with B and D.]

dpkg-shlibdeps should be complaining a lot about these missing links as
well.

There's a new missing link: in 10.4.0, libtrilinos_pytrilinos breaks
linking as follows:

============================ Linking step-9
/usr/lib/libtrilinos_pytrilinos.so: error: undefined reference to 'PyDict_SetItem'
/usr/lib/libtrilinos_pytrilinos.so: error: undefined reference to 'PyExc_ValueError'
/usr/lib/libtrilinos_pytrilinos.so: error: undefined reference to 'PyDict_SetItemString'
/usr/lib/libtrilinos_pytrilinos.so: error: undefined reference to 'PyImport_ImportModule'
[and 83 more missing symbols]
collect2: ld returned 1 exit status
make: *** [step-9] Error 1

Please make this change.  I'll see if I can get some time to help.

-Adam

On Fri, 2009-05-22 at 10:05 -0400, Adam C Powell IV wrote:
> Hi Christophe,
> 
> Thanks, I understand that the full library list is needed for now, but
> would like it to be otherwise.
> 
> Would you accept a patch to link the libraries?  It looks like you
> generate the shared libs in debian/rules, so I could add something
> there.
> 
> I won't have time to do this for a little while, so don't let it hold up
> a planned release.
> 
> Thanks,
> -Adam
> 
> On Fri, 2009-05-22 at 10:36 +0200, Christophe Prud'homme wrote:
> > Adam,
> > 
> > here is the full list of libraries to compile examples for nox
> > 
> > g++ -o ex1 -I/usr/include/trilinos -I/usr/include/mpi -I../../src
> > ex1.cpp-ltrilinos_ml -ltrilinos_galeri -ltrilinos_nox
> > -ltrilinos_noxepetra -ltrilinos_noxlapack -ltrilinos_anasazi
> > -ltrilinos_ifpack -ltrilinos_amesos -ltrilinos_aztecoo
> > -ltrilinos_epetraext -ltrilinos_triutils -ltrilinos_epetra
> > -ltrilinos_teuchos -lexpat -llapack -lblas -lmpi++ -lmpi
> > 
> > unfortunately you have to come up with the proper list of libs
> > 
> > On Thu, May 21, 2009 at 6:27 PM, Adam C Powell IV <hazelsct at debian.org> wrote:
> > > Package: libtrilinos
> > > Version: 9.0.2.dfsg-3
> > >
> > > A couple of libraries are missing important links, for example:
> > >
> > > /usr/lib/libtrilinos_teuchos.so: undefined reference to `XML_SetUserData'
> > > /usr/lib/libtrilinos_teuchos.so: undefined reference to `XML_ParserCreate'
> > > /usr/lib/libtrilinos_teuchos.so: undefined reference to `XML_Parse'
> > > /usr/lib/libtrilinos_ml.so: undefined reference to `Galeri::CreateMap(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Epetra_Comm&, Teuchos::ParameterList&)'
> > > /usr/lib/libtrilinos_teuchos.so: undefined reference to `XML_SetElementHandler'
> > > /usr/lib/libtrilinos_ml.so: undefined reference to `Galeri::CreateCrsMatrix(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, Epetra_Map const*, Teuchos::ParameterList&)'
> > > /usr/lib/libtrilinos_teuchos.so: undefined reference to `XML_SetCharacterDataHandler'
> > >
> > > So libtrilinos_teuchos.so should link with -lexpat and libtrilinos_ml.so
> > > should link with -ltrilinos_galeri .  There may be others as well.
> > >
> > > Thanks,
> > > -Adam

-- 
GPG fingerprint: D54D 1AEE B11C CE9B A02B  C5DD 526F 01E8 564E E4B6

Engineering consulting with open source tools
http://www.opennovation.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/debian-science-maintainers/attachments/20120221/def688e4/attachment.pgp>


More information about the debian-science-maintainers mailing list