OpenMP linking errors on Windows using Ninja and clang
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 160
- Forks
- 113
- Avg merge
- 12d 15h
- Merged PRs (30d)
- 1
Description
#1127 attempts to use Ninja on Appveyor (among trying to use sccache). It fails due to (unrelated) linking errors with OpenMP. Apparently the linker doesn't get passed the correct flag. This is likely caused by switching to Ninja, which I had to do as the VS Generator ignores the *COMPILER_LAUNCHER (I guess I could try nmake). But this is using the clang compiler as opposed to cl. so lots of things change.
errors like
lld-link: error: undefined symbol: __kmpc_dispatch_init_8
>>> referenced by iterative_KOSMAPOSL.lib(KOSMAPOSLReconstruction.cxx.obj):(.omp_outlined.)
>>> referenced by iterative_KOSMAPOSL.lib(KOSMAPOSLReconstruction.cxx.obj):(.omp_outlined..1)
and
lld-link: error: undefined symbol: omp_get_num_threads
>>> referenced by recon_buildblock.lib(PoissonLogLikelihoodWithLinearModelForMeanAndProjData.cxx.obj):(.omp_outlined.)
>>> referenced by recon_buildblock.lib(PoissonLogLikelihoodWithLinearModelForMeanAndProjData.cxx.obj):(.omp_outlined..1)
I don't think this is our problem, but CMake's FindOpenMP.
Originally posted by @KrisThielemans in https://github.com/UCL/STIR/issues/1127#issuecomment-1374934263
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the AppVeyor build from #1127 and the CMake FindOpenMP configuration used with Ninja and clang on Windows. Reproduce the linker errors for __kmpc_dispatch_init_8 and omp_get_num_threads, then confirm that a corrected configuration links the OpenMP symbols successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, cpp
- Domain
- build-system, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100