Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linking errors in hwloc_topology #2509

Closed
mcopik opened this issue Feb 17, 2017 · 5 comments · Fixed by #2551
Closed

Linking errors in hwloc_topology #2509

mcopik opened this issue Feb 17, 2017 · 5 comments · Fixed by #2551

Comments

@mcopik
Copy link
Contributor

mcopik commented Feb 17, 2017

I have been able to repeat issue #2410. Although the fix proposed there by @hkaiser allows to build library but example transpose_block_numa fails due to missing references to hpx::threads::hwloc_topology ctor and dtor. The problem can be reproduced on OpenMPI full installation where all hwloc headers are present. The bug is caused by their lowercase rename macro hwloc_topology, as described here. I have confirmed it with:

nm -gC lib/libhpx.so | grep hwloc_topology
0000000000752d90 T hpx::threads::opal_hwloc191_hwloc_topology::opal_hwloc191_hwloc_topology()

Right now I have solved the problem by manually undefining the macro after each inclusion of hwloc.h. I doubt they're going to fix it, hwloc has dozens of lowercase macros defining their API. If current solution is not reliable enough, I can rename the class and open a pull request.

@hkaiser
Copy link
Member

hkaiser commented Feb 17, 2017

I think the best would be to rename our type hpx::threads::hwloc_topology to something not conflicting with any of the macros used by the hwloc library (for instance: hpx::threads::hwloc_topology_info).

@mcopik
Copy link
Contributor Author

mcopik commented Feb 17, 2017

Hartmut, I got a response from OpenMPI devs and according to them, those headers should never leak into libraries using hwloc. In their opinion, it is a bug in their build system or an improper installation of OpenMPI. I just opened a ticket at my local IT department and I'm going wait and see what happens.

It may not be necessary to rename anything. However, if it's not a bug but a human mistake then #2410 suggests that it may be a recurring problem, we don't know how many German HPC clusters have an incorrectly installed OpenMPI. In this case renaming may be a better option.

@hkaiser
Copy link
Member

hkaiser commented Feb 18, 2017

Let's rename our type anyways. Even if they fix it, this is something we can't avoid to see out in the wild.

@hkaiser
Copy link
Member

hkaiser commented Mar 3, 2017

@mcopik Do you still plan to provide a PR renaming the symbol in HPX?

@mcopik
Copy link
Contributor Author

mcopik commented Mar 3, 2017

@hkaiser Yes, though it was a low priority issue for me (the problem has been partially fixed by IT team). I should fix it soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants