[Openmp-commits] [PATCH] D54342: Add omp_get_device_num() and update several other device API functions

Alexey Bataev via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Thu Nov 29 15:49:50 PST 2018

ABataev added a comment.

In D54342#1313628 <https://reviews.llvm.org/D54342#1313628>, @tlwilmar wrote:

> In D54342#1313542 <https://reviews.llvm.org/D54342#1313542>, @tlwilmar wrote:
> > In D54342#1313515 <https://reviews.llvm.org/D54342#1313515>, @gtbercea wrote:
> >
> > > After this patch, omp_get_num_devices() seems to wrongly return 0 even when devices are present.
> >
> >
> > OK, on my internal build these are showing up as weak symbols with nm.  But on my LLVM build, not.  Will look into the LLVM build to make sure it allows for weak attribute.
> I was wrong -- here are the weak symbols that are showing up in libomp:
> nm runtime/exports/lin_32e.50.ompt.optional/lib/libomp.so | grep " W "
>  00000000000a4540 W omp_get_device_num
>  00000000000a5dd0 W omp_get_device_num_
>  00000000000a3f20 W omp_get_initial_device
>  00000000000a57c0 W omp_get_initial_device_
>  00000000000a3ee0 W omp_get_num_devices@@VERSION
>  00000000000a5780 W omp_get_num_devices_@@VERSION
>  00000000000a3f10 W omp_is_initial_device@@VERSION
>  00000000000a57b0 W omp_is_initial_device_@@VERSION
>  00000000000a7d20 W ompt_start_tool
> So, it looks like weak symbols work better with static libraries.  For dynamic, try linking libomptarget first.

I don't think it is a good idea to produce different results just because of the order of libomp and libomptarget. I consider this as a conflict and incompatibility. It must be fixed.




More information about the Openmp-commits mailing list