llvm18/llvm_build_tablegen_component_as_shared_library.patch
Aaron Puchert ef8f01691b Accepting request 1225866 from home:dirkmueller:Factory
- add libcxx-use-shlex-quote.patch to fix build with python 3.13

- Use correct LLVM_HOST_TRIPLE for riscv64
- Rebase llvm-do-not-install-static-libraries.patch.
- Add upstream patch to export compiler-rt FuzzedDataProvider header,
  * compiler-rt-move-fdp.patch
- Drop llvm5-devel-static. llvm5-devel contains shared library with
- Package libLLVMFuzzer
- Use gcc6 on SLE12
- Package license & credits
  * See
- Enable BPF for all arches bsc#1026191
- libc++ must depend on libc++abi
- Disable libcxx/lldb/openmp for SLE fate#319582
- Update rpmlintrc to whitelist libLTO.so
- Re-enable glibc-2.23 patch for Tumbleweed
- Add glibc-2.23-libcxx.patch to fix test failures with glibc 2.23
-  Remove FFI support because its fragile
- Enable OpenMP for x86, x86_64, ppc64 and ppc64le
- Enable all targets on x86, x86_64
- fix build on s390x (one typo in ifarch and one change in filelist)
- Add llvm-fix-parsearmarch.patch to fix parsing armv{6,7}hl archs.
- Rename llvm-remove-werror-date-time.patch to
- Require llvm-clang not just clang
- Add libcxxabi-exceptions.patch to fix libcxxabi exception handling
- Remove asan-disable-hugemalloctest.patch and
- build compiler-rt on ppc64 (don't delete it)
- complete ifarchs for s390
- Remove non-existing doc subpackage
- Update to r196371 from release_34 branch

OBS-URL: https://build.opensuse.org/request/show/1225866
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm18?expand=0&rev=35
2024-12-03 23:47:11 +00:00

72 lines
2.9 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-17.0.0rc1.src/cmake/modules/TableGen.cmake
===================================================================
--- llvm-17.0.0rc1.src.orig/cmake/modules/TableGen.cmake
+++ llvm-17.0.0rc1.src/cmake/modules/TableGen.cmake
@@ -143,8 +143,8 @@ macro(add_tablegen target project)
set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen)
- 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-18.1.0rc1.src/utils/TableGen/GlobalISel/CMakeLists.txt
===================================================================
--- llvm-18.1.0rc1.src.orig/utils/TableGen/GlobalISel/CMakeLists.txt
+++ llvm-18.1.0rc1.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
CXXPredicates.cpp
MatchDataInfo.cpp