Plea to fix the [ parallel | serial ] HDF5 problem

Gilles Filippini pini at debian.org
Thu May 29 15:02:45 UTC 2014


Alastair McKinstry a écrit , Le 29/05/2014 11:19:
>> Following Alastair's proposal I've adapted my previous try on this
>> topic. Here is a summary of the proposed changes from my local git log:
>>     Make serial and $mpi flavors co-installable
>>
>>     * Patch autotools configuration to add option --with-flavor which
>>       append _<flavor-name> to the libraries' names
>>     * Configure $mpi builds with flavor-name=$mpi
>>     * link $mpi flavor development libs to
>>       /usr/lib/$MULTIARCH/$mpi/libhdf5-<legacy-names> (so that existing
>>       makefiles still work using -L/usr/lib/$MULTIARCH/$mpi)
>>     * install $mpi flavor include files into /usr/include/$mpi (so
>>       that existing makefiles still work using -I/usr/include/$mpi)
>>     * Use alternatives to choose default h5p{cf}c
>>     * Deactivate patch skip_cxx_inclusion.diff
>>     * Remove related Conflicts / Provides from debian/control*
>>
>> I've successfully tested the co-installation with all packages and the
>> build of an example using each flavor.
>>
>> All this work was done against upstream release 1.8.13. I've had to bump
>> the soname to 8 because of the MPI-POSIX driver removal [1].
>>
>> Of course this will require a transition.
>>
>> Any comments before I upload to experimental?
>>
>> Thanks in advance,
>>
>> [1] <http://www.hdfgroup.org/HDF5/doc/ADGuide/Changes.html>
>>
>> _g.
>>
>
> Are you using ELF symbol versioning, etc. to enable multiple HDF5 libs
> to be linked simultaneously?
> Otherwise if two lib chains use conflicting HDF5 versions, there will be
> conflicts.
> e.g. XDMF uses parallel HDF5, netcdf (currently) uses serial HDF5, both
> are (to be) linked into visit.

No, I didn't think about this use case.

> I'm still thinking through some details of the design, especially how to
> test and how we handle upgrades. I think we can do the following:
> (1) Use HDF5_$(MPI)_$(VER) as a symbol prefix. [2]
> (2) Add aliases for HDF5_$(VER) to these for the general case.
> (3) Use weak symbols for the non-threadsafe (ie. parallel) versions [3]
>
> I need to test this, though.
>
> The test cases are that existing programs need to work, so symbols for
> hdf5_* need to resolve, and
> upgrades need to work, with three cases to test, serial, parallel and
> both installed.
>
> [2] http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html
> [3] http://en.wikipedia.org/wiki/Weak_symbols

Well... I don't know about symbol versioning / prefixing / aliasing and
the pointers you gave don't tell me much about it, actually. How would
you implement that? Any example at hand?

I've pushed my changes to the experimental branch of the git repo for
hdf5 packaging so you can have a look.

Thanks,

_g.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-grass-devel/attachments/20140529/63f7e1d7/attachment.sig>


More information about the Pkg-grass-devel mailing list