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
signature.asc
Description: Digital signature

