Hi, Alastair McKinstry a écrit , Le 21/05/2014 15:40: > The best solution I can think of is: > (1) make the packages install into > /usr/lib/$MPIV/... > with $MPIV equalling either mpiversion (openmpi, mpich2, ...) or > 'serial', or 'any'. > (2) Use alternatives to set a default. > (3) Mangle the libnames as follows: > /usr/lib/openmpi/lib/libhdf5.so --> > /usr/lib/$(DEB_HOST_MULTIARCH)/libhdf5_openmpi.so.7.1.1 > ie. adding _$(MPIV) to the libname. > This results in a library that uses it being hard-coded to use that > particular version, but > (4) the version in /usr/lib/any/ does _not_ mangle the libname, but > points to a version with > libhdf5.so.7.1.1 with SONAME 'libhdf5.so.7', which is just a shell for > linking against, but which itself > is linked against a version (any, default serial) of the HDF5 libs. > Hence any application which does not > care of the given features (threadsafe, compression, parallelism) can > use this version. > Binaries built with it will resolve /usr/lib/*/libhdf5.so.7.1.1 pointing > to the default version on the system. > > This will enable the building of a libnetcdf-$mpi version, for parallel > writes, and other libraries. > > Any comments? I like the idea, especially part [3] which is the clever trick I was missing. But then do we actually need the /alternatives/ + /any/ stuff? Shouldn't [1] and [3] be sufficient? Application which do not care could just go with the serial version. Thanks, _g.
Attachment:
signature.asc
Description: OpenPGP digital signature