SHA256
1
0
forked from pool/llvm14
llvm14/llvm_build_tablegen_component_as_shared_library.patch
Martin Pluskal a5973cd8b1 Accepting request 966700 from home:aaronpuchert:llvm-next
- Update to version 14.0.0.
  * For details, see the release notes:
    - https://releases.llvm.org/14.0.0/docs/ReleaseNotes.html
    - https://releases.llvm.org/14.0.0/tools/clang/docs/ReleaseNotes.html
    - https://releases.llvm.org/14.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html
    - https://releases.llvm.org/14.0.0/projects/libcxx/docs/ReleaseNotes.html
    - https://releases.llvm.org/14.0.0/tools/lld/docs/ReleaseNotes.html
  * New LLVM tools:
    - llvm-debuginfod-find: Tool to fetch debuginfod artifacts.
    - llvm-tli-checker: LLVM TargetLibraryInfo versus SDK checker.
  * New Clang tools:
    - clang-linker-wrapper: A wrapper utility over the host linker.
    - clang-nvlink-wrapper: A wrapper tool over nvlink program.
- Add clang-repl-private-deps.patch to make link dependencies of
  clang-repl private, otherwise CMake can't install.
- Add PPCISelLowering-Avoid-emitting-calls-to-__multi3.patch to
  fix build on PowerPC (32-bit).
- Drop llvm-exegesis-link-dylib.patch, instead we don't build
  llvm-exegesis anymore and add check-no-llvm-exegesis.patch to
  disable the corresponding tests.
- Rebase patches:
  * lldb-cmake.patch
  * llvm-do-not-install-static-libraries.patch
  * lvm-normally-versioned-libllvm.patch
- Drop patches that have landed upstream:
  * llvm-update-extract-section-script.patch

OBS-URL: https://build.opensuse.org/request/show/966700
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm14?expand=0&rev=1
2022-04-04 11:49:45 +00:00

58 lines
2.2 KiB
Diff

The LLVMTableGen component is a special case that is excluded from libLLVM and
normally is only built as static library and linked into llvm-tblgen.
We need to have it as a shared library to be available for other projects such
as ldc.
This patch makes it even more special and forces it to be build and installed
as separate shared library.
Index: llvm-8.0.0rc3.src/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm-8.0.0rc3.src.orig/cmake/modules/AddLLVM.cmake
+++ llvm-8.0.0rc3.src/cmake/modules/AddLLVM.cmake
@@ -541,7 +541,7 @@ function(llvm_add_library name)
if(ARG_MODULE AND LLVM_EXPORT_SYMBOLS_FOR_PLUGINS AND ARG_PLUGIN_TOOL AND (WIN32 OR CYGWIN))
# On DLL platforms symbols are imported from the tool by linking against it.
set(llvm_libs ${ARG_PLUGIN_TOOL})
- elseif (NOT ARG_COMPONENT_LIB)
+ elseif (NOT ARG_COMPONENT_LIB OR (${name} STREQUAL "LLVMTableGen" AND LLVM_BUILD_LLVM_DYLIB))
if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)
set(llvm_libs LLVM)
else()
Index: llvm-8.0.0rc3.src/cmake/modules/TableGen.cmake
===================================================================
--- llvm-8.0.0rc3.src.orig/cmake/modules/TableGen.cmake
+++ llvm-8.0.0rc3.src/cmake/modules/TableGen.cmake
@@ -115,7 +115,8 @@ macro(add_tablegen target project)
set(LLVM_ENABLE_OBJLIB ON)
endif()
- add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB ${ARGN})
+ add_llvm_executable(${target} ${ARGN})
+ target_link_libraries(${target} PRIVATE LLVMTableGen)
set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
set(${project}_TABLEGEN "${target}" CACHE
Index: llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
===================================================================
--- llvm-8.0.0rc3.src.orig/lib/TableGen/CMakeLists.txt
+++ llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
@@ -1,3 +1,7 @@
+if (LLVM_BUILD_LLVM_DYLIB)
+ set(MAYBE_SHARED SHARED)
+endif()
+
add_llvm_component_library(LLVMTableGen
DetailedRecordsBackend.cpp
Error.cpp
@@ -9,6 +13,8 @@ add_llvm_library(LLVMTableGen
TGLexer.cpp
TGParser.cpp
+ ${MAYBE_SHARED}
+
ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/TableGen