Hi,
I'm trying to use openmp offloading to gpu, and I'm getting linking errors
during compilation:
[ 7%] Linking CXX executable MPI_PMRF
/usr/bin/ld:
CMakeFiles/MPI_PMRF.dir-------/cfuncs-pmrf.c.o:(.rodata..omp_offloading.device_images[.omp_offloading.descriptor_reg.nvptx64-nvidia-cuda]+0x10):
undefined reference to `.omp_offloading.entries_begin'
/usr/bin/ld:
CMakeFiles/MPI_PMRF.dir-------/cfuncs-pmrf.c.o:(.rodata..omp_offloading.device_images[.omp_offloading.descriptor_reg.nvptx64-nvidia-cuda]+0x18):
undefined reference to `.omp_offloading.entries_end'
/usr/bin/ld:
CMakeFiles/MPI_PMRF.dir/-------/cfuncs-pmrf.c.o:(.rodata..omp_offloading.descriptor[.omp_offloading.descriptor_reg.nvptx64-nvidia-cuda]+0x10):
undefined reference to `.omp_offloading.entries_begin'
/usr/bin/ld:
CMakeFiles/MPI_PMRF.dir/-------/cfuncs-pmrf.c.o:(.rodata..omp_offloading.descriptor[.omp_offloading.descriptor_reg.nvptx64-nvidia-cuda]+0x18):
undefined reference to `.omp_offloading.entries_end'
/usr/bin/ld: link errors found, deleting executable `MPI_PMRF'
clang-9: error: linker command failed with exit code 1 (use -v to see
invocation)
CMakeFiles/MPI_PMRF.dir/build.make:265: recipe for target 'MPI_PMRF' failed
make[2]: *** [MPI_PMRF] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/MPI_PMRF.dir/all'
failed
make[1]: *** [CMakeFiles/MPI_PMRF.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
I actually can compile the code just fine without the #pragma omp target.
Some additional info:
- I'm compiling the code with *-fopenmp
-fopenmp-targets=nvptx64-nvidia-cuda*
- *clang version 9.0.0* (https://github.com/clang-ykt/clang
e50a43ae7e2fe6e6ff515cedb2a8ae658120e32f) (https://github.com/clang-ykt/llvm
3cd66813b063ab08a389470f1bc53e18fbe595b2)
- *cuda info:*