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.



Attachment: signature.asc
Description: OpenPGP digital signature

Pkg-grass-devel mailing list

Reply via email to