llvm16/llvm_build_tablegen_component_as_shared_library.patch

72 lines
2.8 KiB
Diff
Raw Normal View History

Accepting request 1072964 from home:aaronpuchert:llvm-next - New major release version 16.0.0. * For details, see the release notes: - https://releases.llvm.org/16.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/16.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/16.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/16.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/16.0.0/tools/lld/docs/ReleaseNotes.html * New LLVM tools: - llvm-debuginfo-analyzer: Print a logical representation of low-level debug information. - llvm-remarkutil: Remark file utilities. * The test tool split-file is no longer installed. * New Clang tools: - amdgpu-arch and nvptx-arch: Tools used to detect locally available GPUs by the Clang OpenMP driver. - clang-include-cleaner: Standalone tool to determine which headers are used, using existing functionality in clangd. - clang-tblgen: Table Generation for Clang. * Removed Clang tools: clang-{nvlink,offload}-wrapper. - Rebase patches: * assume-opensuse.patch * check-no-llvm-exegesis.patch * link-clang-shared.patch * llvm_build_tablegen_component_as_shared_library.patch * llvm-do-not-install-static-libraries.patch * llvm-suse-implicit-gnu.patch * llvm-workaround-superfluous-branches.patch * openmp-drop-rpath.patch - Drop patches that have landed upstream: * clang-test-xfail-gnuless-triple.patch * CMake-Look-up-target-subcomponents-in-LLVM_AVAILABLE_LIBS.patch * libcxxabi-fix-armv7-test.patch * llvm-armv7-fix-vector-compare-with-zero-lowering.patch * llvm-link-atomic.patch - Remove llvm-better-detect-64bit-atomics-support.patch that should not be required anymore. - Add PGP signatures and keyring for source verification. OBS-URL: https://build.opensuse.org/request/show/1072964 OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm16?expand=0&rev=1
2023-03-20 10:12:02 +01:00
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-16.0.0rc1.src/cmake/modules/TableGen.cmake
===================================================================
--- llvm-16.0.0rc1.src.orig/cmake/modules/TableGen.cmake
+++ llvm-16.0.0rc1.src/cmake/modules/TableGen.cmake
@@ -143,8 +143,8 @@ macro(add_tablegen target project)
set(LLVM_ENABLE_OBJLIB ON)
endif()
- add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB
- ${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
+ add_llvm_executable(${target} ${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
+ target_link_libraries(${target} PRIVATE LLVMTableGen)
set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
set(${project}_TABLEGEN_DEFAULT "${target}")
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
Index: llvm-14.0.3.src/utils/TableGen/GlobalISel/CMakeLists.txt
===================================================================
--- llvm-14.0.3.src.orig/utils/TableGen/GlobalISel/CMakeLists.txt
+++ llvm-14.0.3.src/utils/TableGen/GlobalISel/CMakeLists.txt
@@ -3,7 +3,7 @@ set(LLVM_LINK_COMPONENTS
TableGen
)
-add_llvm_library(LLVMTableGenGlobalISel STATIC DISABLE_LLVM_LINK_LLVM_DYLIB
+add_llvm_library(LLVMTableGenGlobalISel STATIC
CodeExpander.cpp
GIMatchDag.cpp
GIMatchDagEdge.cpp