diff --git a/llvm-build/build.py b/llvm-build/build.py index 6112f4f3359c215f1d5bcc86e21a9eb4a1064d20..f973dc508652ae67baff39b4c0d44335d9e0bfdd 100755 --- a/llvm-build/build.py +++ b/llvm-build/build.py @@ -838,7 +838,8 @@ class LlvmCore(BuildUtils): linker_path = os.path.join(llvm_clang_install, 'bin', 'ld.lld') llvm_defines['CMAKE_LINKER'] = linker_path - self.build_llvm(targets=self.build_config.TARGETS, + # OHOS_LOCAL + self.build_llvm(targets=self.build_config.TARGETS + ";XVM", build_dir=llvm_path, install_dir=out_dir, build_name=build_name, diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 34c1f19a9f95a1866b5778f079893b548f6927eb..1cc0e305db3c0796587e3bb9482b02815ff4fba8 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -704,6 +704,8 @@ else() set(LLVM_BUILD_LLVM_DYLIB_default ON) endif() option(LLVM_BUILD_LLVM_DYLIB "Build libllvm dynamic library" ${LLVM_BUILD_LLVM_DYLIB_default}) + # OHOS_LOCAL + option(LLVM_SPLIT_LLVM_DYLIB_TARGETS "Build dynamic target libraries" OFF) endif() if (LLVM_LINK_LLVM_DYLIB AND BUILD_SHARED_LIBS) diff --git a/llvm/lib/Target/XVM/CMakeLists.txt b/llvm/lib/Target/XVM/CMakeLists.txt index 0f5ef89440fd00a1890c299e43d389c4e462675f..0fe324ea3f8b1d4ce0a5c11fa486f463f4442684 100644 --- a/llvm/lib/Target/XVM/CMakeLists.txt +++ b/llvm/lib/Target/XVM/CMakeLists.txt @@ -1,5 +1,5 @@ -if(LLVM_BUILD_LLVM_DYLIB) +if(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 04738c3f0a8cb98011dc86c9ed5225ba3d29d07c..d290513bf9114e7b214de0e623bc366fa5d9881f 100644 --- a/llvm/lib/Target/XVM/MCTargetDesc/CMakeLists.txt +++ b/llvm/lib/Target/XVM/MCTargetDesc/CMakeLists.txt @@ -1,5 +1,5 @@ -if(LLVM_BUILD_LLVM_DYLIB) +if(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 aad77bae6d276a1a2145a840907dd4001f08a4e2..efe91ea71359e30a5179b9ca0d51a32db9be58c9 100644 --- a/llvm/lib/Target/XVM/TargetInfo/CMakeLists.txt +++ b/llvm/lib/Target/XVM/TargetInfo/CMakeLists.txt @@ -1,6 +1,6 @@ -if(LLVM_BUILD_LLVM_DYLIB) -ADD_DEFINITIONS("-DXVM_DYLIB_MODE=1") +if(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 f481963784894574b2733ee9830949d8eb989738..5843590401e5d80a46ad40dd42ddb9ed97e8ae9e 100644 --- a/llvm/tools/llvm-shlib/CMakeLists.txt +++ b/llvm/tools/llvm-shlib/CMakeLists.txt @@ -28,20 +28,22 @@ if(LLVM_BUILD_LLVM_DYLIB) list(REMOVE_ITEM LIB_NAMES "LLVMTableGen") # OHOS_LOCAL begin - 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}) + 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}) - endforeach() + endforeach() + endif() # OHOS_LOCAL end if(LLVM_DYLIB_EXPORTED_SYMBOL_FILE) @@ -50,8 +52,11 @@ if(LLVM_BUILD_LLVM_DYLIB) endif() add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES}) - # OHOS_LOCAL - target_compile_definitions(LLVM PRIVATE "LLVM_BUILD_BACKEND_MODULE") + # 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) @@ -86,9 +91,11 @@ if(LLVM_BUILD_LLVM_DYLIB) target_link_libraries(LLVM PRIVATE ${LIB_NAMES}) # OHOS_LOCAL begin - foreach(target ${LLVM_TARGETS_TO_BUILD}) - add_dependencies(LLVM LLVM${target}Target) - endforeach() + 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)