#1717: hwloc: lnuma & lltdl *really* required? ------------------------------------+--------------------------------------- Reporter: zachetie@… | Owner: Type: defect | Status: new Priority: minor | Milestone: Component: EinsteinToolkit thorn | Version: development version Resolution: | Keywords: ------------------------------------+---------------------------------------
Comment (by knarf):
Replying to [comment:15 eschnett]:
Frank -- what do you suggest concretely?
I agree with Ian, as in that this should be reported either to Ubuntu, or possibly to upstream hwloc, depending on where we think the error lies. Until this is fixed, I think it would be sensible to use the workaround, which we could document well enough so that in the future this can be easily understood, and removed again.
Having said that: If I read the following correctly, this could be a rather interesting problem: http://www.open-mpi.org/community/lists/hwloc-devel/2013/05/3743.php
The problem seems to be that when used as dynamical library, hwloc does _not_ depend on libltdl as "usual dynamic library", but can load it later by itself, if found (dynamically, but ldd does not see that). If built statically of course, ltdl would need to be linked in for it to be usable. So, if I read this correctly, the hwloc-dev package has the option of depending on the other two libraries at build-time, but does not have to (it builds without these libraries, but it can use these libraries in a dynamic setup). Does anybody here agree to my interpretation?
That leaves the user with an installed hwloc that uses both numa and ltdl if present (because it was compiled with support for them), and the library correctly reports the link-dependencies both for dynamic and static linking. However, the -dev package does not have a dependency on the other two library packages because they are optional, at least for the dynamic libraries that are typically used on the system. So, the problem is: should the hwloc-dev package depend on the numa/ldtl libraries? It should for static linking, and should not for dynamic linking. Since the hwloc package only provides the dynamic version, and since by far the majority of users would link dynamically, their decision to not add the dependency is correct in my eyes.
Now the question would be: what do we do in this situation? We could test for these libraries to be present when we build hwloc and link statically, and give a better error message.