[PATCH] D106674: Runtime for Interop directive

Andrey Churbanov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 28 02:24:36 PST 2022


AndreyChurbanov added inline comments.


================
Comment at: openmp/runtime/src/dllexports:553
+    omp_get_interop_ptr                     761
+    omp_get_interop_str                     762
 
----------------
mstorsjo wrote:
> mstorsjo wrote:
> > jdoerfert wrote:
> > > Those values are taken by now, you need new values that are not taken yet.
> > This broke building for Windows:
> > ```
> > generate-def.pl: (x) Error parsing file "llvm-project/openmp/runtime/src/dllexports" line 556:
> > generate-def.pl: (x)         omp_get_interop_int                     2514
> > generate-def.pl: (x) Ordinal of user-callable entry must be < 1000
> > ```
> > 
> ... and even with those ordinals changed to something in the right range, the build later fails with linker errors:
> ```
> ld.lld: error: <root>: undefined symbol: OMP_GET_INTEROP_INT
> ld.lld: error: <root>: undefined symbol: OMP_GET_INTEROP_PTR
> ld.lld: error: <root>: undefined symbol: OMP_GET_INTEROP_STR
> ```
> So please fix the Windows build of OpenMP, before the 14.x branch is made early next week.
As the warning says these should be < 1000, because lowercase are automatically replicated in uppercase adding +1000 to the ordinal and still be < 2000 (for some particular Fortran usages).
There are free ordinals below 1000 starting at 807.  So, e.g. 807, 808, etc. should work fine.

Actually these interfaces described as "C/C++"-only in the specification, so there is no need to provide Fortran-specific versions, though it should not harm. Probably making them C-only does not worth efforts for now.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106674/new/

https://reviews.llvm.org/D106674



More information about the llvm-commits mailing list