[Openmp-commits] [PATCH] D55725: [OpenMP] Add libs to clang-dedicated directories

Joel E. Denny via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Thu Jan 24 14:00:51 PST 2019

jdenny added a comment.

I'm trying to better understand how various LLVM subprojects currently (without this patch) install to Clang-dedicated library directories.  I'm building with the following:


I then see the following effects from `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=True`:

- Rename the Clang-dedicated directory from `lib/clang/9.0.0/lib/linux` to `lib/clang/9.0.0/x86_64-unknown-linux-gnu/lib`.
- For the `libclang_rt.*-x86_64.*` there, drop the now redundant `-x86_64.` components from their names.
- Move `libc++*` and `libunwind*` from `lib` to the Clang-dedicated directory.

The OpenMP libraries to consider are:

- `libgomp.so`, `libiomp5.so`: My understanding is that these symlinks exist solely for backward compatibility.  This patch currently doesn't affect them (doesn't bother to install them to Clang-dedicated directories).  Any reason to change that?
- `libomp.so`
- `libomptarget.rtl.x86_64.so`, `libomptarget.so`
- `libomptarget-nvptx.a`, `libomptarget.rtl.cuda.so`

My plan for the non-symlinks is:

- Always install to `lib` in case that matters for backward compatibility.
- With `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=True`, additionally install to `lib/clang/9.0.0/x86_64-unknown-linux-gnu/lib`.
- Without `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=True`, where should they be additionally installed?
  - Just `lib` is bad for users because the problem this patch tries to solve then remains in the default case.
  - `lib/clang/9.0.0/lib/linux` currently appears to be specific to `libclang_rt.*`.  Unless I missed something, we'd have to modify Clang to get it to find other libraries there.
  - `lib/clang/9.0.0/lib/linux/x86_64` is what this patch currently chooses as it's another place Clang looks.  But is that any better or worse than the next option?
  - `lib/clang/9.0.0/x86_64-unknown-linux-gnu/lib` would mean `-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=True` is effectively always set for OpenMP.  Is that bad?  I'm planning to choose this option unless there are objections.

  rOMP OpenMP



More information about the Openmp-commits mailing list