Bug#902102: hypre has underlinked libraries, causing build failures with ld --as-needed

Drew Parsons dparsons at debian.org
Wed Sep 26 21:36:46 BST 2018


Package: libhypre-dev
Version: 2.14.0-3
Followup-For: Bug #902102

The missing external library (superlu) is a simple bug that can be fixed.

The other, internal library is more subtle. hypre is designed as a
monolithic library.  Original Debian developers chose to split it into
components, hence the separate lib_HYPRE_<component> libraries

The problem is that there are some circular dependencies.  parcsr_ls
depends on parcsr_mv, and parcsr_mv depends on parcsr_ls.  One needs
to be built before the other.  At the moment parcsr_mv is built first
and so is not explicitly linked at build time to parcsr_ls.  parcsr_ls
gets the explicit link to parcsr_mv.  

If you try to link parcsr_mv to parcsr_ls then there is a make error,
   No rule to make target '../parcsr_ls/libHYPRE_parcsr_ls.so', needed by
   'libHYPRE_parcsr_mv.so'.  Stop.

Similar for libHYPRE_mli (circular dependency with libHYPRE_FEI)

Is there a better way to handle the circular dependency? Can the
missing link be added afterwards (after both libraries have been
compiled)?  Should we restore upstream's monolithic library?



More information about the debian-science-maintainers mailing list