[Openmp-dev] Pass arch-specific OpenMP library name to the linker

Pirama Arumuga Nainar via Openmp-dev openmp-dev at lists.llvm.org
Fri Dec 9 15:09:09 PST 2016


Reposting PR https://llvm.org/bugs/show_bug.cgi?id=31300 to reach a wider
audience.  Can you please share any thoughts?

Currently, '-fopenmp' just gets translated to the corresponding
runtime library (-lomp, -lgomp, -lipmp5) during the link step.
However, this precludes a multilib toolchain from finding the right
library based on the target architecture without extra support from
the build system.  The sanitizers, for instance, use
libclang_rt.<sanitizer>-<arch>.{so,a}.

To do something similar for OpenMP, we need to
1. change the driver to pass the extended name to the linker.
2. change the CMake build rules to use the extended name instead of libomp.so.

My questions:
1. What is the preferred "full" name?  libomp-<arch>.so sounds reasonable to me.
2. Is the existing behavior preferable to avoid breaking existing code
or to support OpenMP runtimes from outside of this project?  If so, I
can make the above changes fire only for Android triples.  In this
case, we don't need to immediately update CMake build rules.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20161209/80cd278d/attachment.html>


More information about the Openmp-dev mailing list