[all-commits] [llvm/llvm-project] e682a7: [OpenMP] Use `add_llvm_library` to build the targe...

Shilei Tian via All-commits all-commits at lists.llvm.org
Tue Dec 6 08:37:51 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e682a76c3bf61c52628d79d6ec4db221430768c0
      https://github.com/llvm/llvm-project/commit/e682a76c3bf61c52628d79d6ec4db221430768c0
  Author: Shilei Tian <i at tianshilei.me>
  Date:   2022-12-06 (Tue, 06 Dec 2022)

  Changed paths:
    M openmp/libomptarget/plugins-nextgen/common/PluginInterface/CMakeLists.txt
    M openmp/libomptarget/plugins/common/elf_common/CMakeLists.txt

  Log Message:
  -----------
  [OpenMP] Use `add_llvm_library` to build the target `PluginInterface` in `plugins-nextgen`

This patch uses `add_llvm_library` to build the target `PluginInterface` since it can handle LLVM dependences much better. One temporary drawback of using this is that currently LLVM CMake macro doesn't support object libraries very well (there was a try a couple years ago but it was reverted later https://github.com/llvm/llvm-project/commit/29e57229497711a3a294f437b59afa6ddc36a3d8). After switching to that, `CXX_VISIBILITY_PRESET` can not be set correctly, which can cause runtime error that a function call from one plugin could go to another. As a consequence, `PluginInterface` is built as a static library for now. I have asked the question in CMake community (https://discourse.cmake.org/t/set-target-properties-doesnt-work-properly/7016). Once that issue is solved, I'll switch it back to object library. It is not necessarily too bad to use static library, especially `BUILDTREE_ONLY` is already set such that `PluginInterface.a` will not be installed.

Reviewed By: jhuber6

Differential Revision: https://reviews.llvm.org/D139371




More information about the All-commits mailing list