diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 372678612f0dbd12795b63f4a1a818f2f8b234ba..b27b07c7eeff3a3c269afb44916bdadaf95d1f12 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -389,6 +389,11 @@ set(LLVM_ALL_TARGETS XVM ) +# OHOS_LOCAL begin +# List of all targets called via dynamic libraries: +set(LLVM_TARGETS_CALLED_VIA_DYLIB XVM) +# OHOS_LOCAL end + # List of targets with JIT support: set(LLVM_TARGETS_WITH_JIT X86 PowerPC AArch64 ARM Mips SystemZ) diff --git a/llvm/cmake/modules/LLVMDistributionSupport.cmake b/llvm/cmake/modules/LLVMDistributionSupport.cmake index 526f36dcda830c703d2559478b858d8150438e21..891af3543b2d7af7337e285dfd9d69a43a6ff78d 100644 --- a/llvm/cmake/modules/LLVMDistributionSupport.cmake +++ b/llvm/cmake/modules/LLVMDistributionSupport.cmake @@ -235,6 +235,16 @@ function(llvm_distribution_add_targets) endif() endif() + # OHOS_LOCAL begin + if (LLVM_SPLIT_LLVM_DYLIB_TARGETS) + foreach(target ${LLVM_TARGETS_CALLED_VIA_DYLIB}) + if (target IN_LIST LLVM_TARGETS_TO_BUILD) + list(APPEND LLVM_DISTRIBUTION_COMPONENTS "LLVM${target}Target") + endif() + endforeach() + endif() + # OHOS_LOCAL end + set(distributions "${LLVM_DISTRIBUTIONS}") if(NOT distributions) # CMake seemingly doesn't distinguish between an empty list and a list diff --git a/llvm/lib/Target/XVM/CMakeLists.txt b/llvm/lib/Target/XVM/CMakeLists.txt index 0fe324ea3f8b1d4ce0a5c11fa486f463f4442684..f203cf837bb3751c120f17abdcc93a34afa609bb 100644 --- a/llvm/lib/Target/XVM/CMakeLists.txt +++ b/llvm/lib/Target/XVM/CMakeLists.txt @@ -1,5 +1,5 @@ -if(LLVM_SPLIT_LLVM_DYLIB_TARGETS) +if(XVM IN_LIST LLVM_TARGETS_CALLED_VIA_DYLIB AND LLVM_SPLIT_LLVM_DYLIB_TARGETS) ADD_DEFINITIONS("-DXVM_DYLIB_MODE=1") endif() diff --git a/llvm/lib/Target/XVM/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/XVM/MCTargetDesc/CMakeLists.txt index d290513bf9114e7b214de0e623bc366fa5d9881f..8f8c771a765821f4c4045c6d0f64b969daa77acb 100644 --- a/llvm/lib/Target/XVM/MCTargetDesc/CMakeLists.txt +++ b/llvm/lib/Target/XVM/MCTargetDesc/CMakeLists.txt @@ -1,5 +1,5 @@ -if(LLVM_SPLIT_LLVM_DYLIB_TARGETS) +if(XVM IN_LIST LLVM_TARGETS_CALLED_VIA_DYLIB AND LLVM_SPLIT_LLVM_DYLIB_TARGETS) ADD_DEFINITIONS("-DXVM_DYLIB_MODE=1") endif() diff --git a/llvm/lib/Target/XVM/TargetInfo/CMakeLists.txt b/llvm/lib/Target/XVM/TargetInfo/CMakeLists.txt index 3d9481cfe3e674ee45986302e1d6a6c4510b7bf3..2032722ee9a145d824d377504e12ca6f23873157 100644 --- a/llvm/lib/Target/XVM/TargetInfo/CMakeLists.txt +++ b/llvm/lib/Target/XVM/TargetInfo/CMakeLists.txt @@ -1,6 +1,6 @@ -if(LLVM_SPLIT_LLVM_DYLIB_TARGETS) -ADD_DEFINITIONS("-DXVM_DYLIB_MODE=1") +if(XVM IN_LIST LLVM_TARGETS_CALLED_VIA_DYLIB AND LLVM_SPLIT_LLVM_DYLIB_TARGETS) + ADD_DEFINITIONS("-DXVM_DYLIB_MODE=1") endif() add_llvm_component_library(LLVMXVMInfo diff --git a/llvm/tools/llvm-shlib/CMakeLists.txt b/llvm/tools/llvm-shlib/CMakeLists.txt index 45adda0b88e53d1d6668be485057d6e4f288263f..798bb937fa6bcf5f155132ea59ce4f43afdb0856 100644 --- a/llvm/tools/llvm-shlib/CMakeLists.txt +++ b/llvm/tools/llvm-shlib/CMakeLists.txt @@ -29,18 +29,20 @@ if(LLVM_BUILD_LLVM_DYLIB) # OHOS_LOCAL begin if (LLVM_SPLIT_LLVM_DYLIB_TARGETS) - foreach(target ${LLVM_TARGETS_TO_BUILD}) - get_property(target_link_components TARGET ${target} PROPERTY LLVM_LINK_COMPONENTS) - set(objects "") - foreach(component ${target_link_components}) - list(REMOVE_ITEM LIB_NAMES "LLVM${component}") - list(APPEND objects "$") - endforeach() - add_llvm_library("LLVM${target}Target" - MODULE - DISABLE_LLVM_LINK_LLVM_DYLIB - ${INSTALL_WITH_TOOLCHAIN} - OBJLIBS ${objects}) + foreach(target ${LLVM_TARGETS_CALLED_VIA_DYLIB}) + if (target IN_LIST LLVM_TARGETS_TO_BUILD) + get_property(target_link_components TARGET ${target} PROPERTY LLVM_LINK_COMPONENTS) + set(objects "") + foreach(component ${target_link_components}) + list(REMOVE_ITEM LIB_NAMES "LLVM${component}") + list(APPEND objects "$") + endforeach() + add_llvm_library("LLVM${target}Target" + MODULE + DISABLE_LLVM_LINK_LLVM_DYLIB + ${INSTALL_WITH_TOOLCHAIN} + OBJLIBS ${objects}) + endif() endforeach() endif() # OHOS_LOCAL end @@ -51,11 +53,6 @@ if(LLVM_BUILD_LLVM_DYLIB) endif() add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES}) - # OHOS_LOCAL begin - if (LLVM_SPLIT_LLVM_DYLIB_TARGETS) - target_compile_definitions(LLVM PRIVATE "LLVM_BUILD_BACKEND_MODULE") - endif() - # OHOS_LOCAL end list(REMOVE_DUPLICATES LIB_NAMES) if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU) @@ -89,13 +86,6 @@ if(LLVM_BUILD_LLVM_DYLIB) endif() target_link_libraries(LLVM PRIVATE ${LIB_NAMES}) - # OHOS_LOCAL begin - if (LLVM_SPLIT_LLVM_DYLIB_TARGETS) - foreach(target ${LLVM_TARGETS_TO_BUILD}) - add_dependencies(LLVM LLVM${target}Target) - endforeach() - endif() - # OHOS_LOCAL end if (APPLE) set_property(TARGET LLVM APPEND_STRING PROPERTY