Package: libmpich1.0
Version: 1.2.5.3-5
Severity: serious
Justification: missing package dependencies; mislinked libraries

The libpmpich++.so.1.0 library in this package is not linked against
libraries that it depends on:

$ ldd -d -r /usr/lib/libpmpich++.so.1.0 
                libg2c.so.0 => /usr/lib/libg2c.so.0 (0x40036000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x40054000)
        libc.so.6 => /lib/tls/libc.so.6 (0x40060000)
        libm.so.6 => /lib/tls/libm.so.6 (0x40195000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)
undefined symbol: __cxa_pure_virtual    (/usr/lib/libpmpich++.so.1.0)
undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE 
(/usr/lib/libpmpich++.so.1.0)
undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE 
(/usr/lib/libpmpich++.so.1.0)
undefined symbol: _ZTVN10__cxxabiv121__vmi_class_type_infoE 
(/usr/lib/libpmpich++.so.1.0)
undefined symbol: __gxx_personality_v0  (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPIR_null_copy_fn     (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPIR_null_delete_fn   (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Topo_test (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Group_size        (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Test_cancelled    (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Finalize  (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Buffer_detach     (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Graph_neighbors   (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Graphdims_get     (/usr/lib/libpmpich++.so.1.0)
undefined symbol: _Znaj (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Gatherv   (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Group_translate_ranks (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Error_string      (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPIR_dup_fn   (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Wtick     (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Type_lb   (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Comm_remote_size  (/usr/lib/libpmpich++.so.1.0)
undefined symbol: MPI_Reduce_scatter    (/usr/lib/libpmpich++.so.1.0)
<snip>
$

This causes a number of problems:

- dpkg-shlibdeps cannot properly populate the Depends: field for the
  package, so libmpich1.0 is missing a dependency on libstdc++5.  Although
  libstdc++ is a base library, this doesn't help for partial upgrades across
  an ABI transition (such as the one we have right now).  This warrants
  serious severity.
- Indeed, the missing dependency means mpich has escaped notice in the g++
  4.0 ABI transition until quite late; this kind of error can contribute to
  logistics problems for the release team
- At the ELF level, libraries with undefined symbols break both prelinking
  and dlopen(), both of which are desirable to support.

libmpich1.0 should go through the C++ ABI transition, and the linkage of
libpmpich++.so.1.0 should be fixed in the process.

-- 
Steve Langasek
postmodern programmer

Attachment: signature.asc
Description: Digital signature

Reply via email to