mirror of
				https://git.proxmox.com/git/llvm-toolchain
				synced 2025-10-31 15:59:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			150 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| include required runtimes as dependencies to openmp targets to make sure
 | |
| they are built first when included as part of a runtimes build since openmp
 | |
| can depend on them
 | |
| <<<<<<< Updated upstream
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/llvm/runtimes/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/llvm/runtimes/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/llvm/runtimes/CMakeLists.txt
 | |
| @@ -236,6 +236,7 @@ function(runtime_default_target)
 | |
|                                        -DLLVM_ENABLE_PROJECTS_USED=${LLVM_ENABLE_PROJECTS_USED}
 | |
|                                        -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=${LLVM_ENABLE_PER_TARGET_RUNTIME_DIR}
 | |
|                                        -DLLVM_BUILD_TOOLS=${LLVM_BUILD_TOOLS}
 | |
| +                                      -DCMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}
 | |
|                                        -DCMAKE_C_COMPILER_WORKS=ON
 | |
|                                        -DCMAKE_CXX_COMPILER_WORKS=ON
 | |
|                                        -DCMAKE_ASM_COMPILER_WORKS=ON
 | |
| @@ -496,7 +497,7 @@ if(runtimes)
 | |
|      # build directory cannot find the C++ headers in certain configurations.
 | |
|      # I need to build a mechanism for runtime projects to provide CMake code
 | |
|      # that executes at LLVM configuration time to handle this case.
 | |
| -    add_dependencies(clang-bootstrap-deps runtimes-configure)
 | |
| +    #add_dependencies(clang-bootstrap-deps runtimes-configure)
 | |
|      # We need to add the runtimes as a dependency because compiler-rt can be
 | |
|      # built as part of runtimes and we need the profile runtime for PGO
 | |
|      add_dependencies(clang-bootstrap-deps runtimes)
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/CMakeLists.txt
 | |
| @@ -94,6 +94,28 @@ else()
 | |
|    get_clang_resource_dir(LIBOMP_HEADERS_INSTALL_PATH SUBDIR include)
 | |
|  endif()
 | |
|  
 | |
| +option(OPENMP_USE_LLVM_UNWINDER "Build and use the LLVM unwinder" OFF)
 | |
| +
 | |
| +option(LIBOMP_ENABLE_RTTI "Enabling RTTI forces libomp to be a c++ lib" ${LLVM_ENABLE_RTTI})
 | |
| +
 | |
| +macro(add_runtimes_build_depends_if_needed target)
 | |
| +  if(RUNTIMES_BUILD)
 | |
| +    # required for rtti and libomp/libomptarget profiling if enabled
 | |
| +    add_dependencies(${target} cxx-headers cxxabi_static cxx_static cxxabi_shared cxx_shared)
 | |
| +    if(OPENMP_USE_LLVM_UNWINDER AND (NOT target STREQUAL "omp" AND NOT LIBOMP_ENABLE_RTTI))
 | |
| +      add_dependencies(${target} unwind_static unwind_shared)
 | |
| +      get_target_property(target_link_flags ${target} LINK_FLAGS)
 | |
| +      set(runtimes_link_flags "-lunwind")
 | |
| +      if(target_link_flags)
 | |
| +        set(runtimes_link_flags "${target_link_flags} -lunwind")
 | |
| +      endif()
 | |
| +      set_target_properties(${target}
 | |
| +        PROPERTIES
 | |
| +        LINK_FLAGS "${runtimes_link_flags}")
 | |
| +    endif()
 | |
| +  endif()
 | |
| +endmacro()
 | |
| +
 | |
|  # Build host runtime library, after LIBOMPTARGET variables are set since they are needed
 | |
|  # to enable time profiling support in the OpenMP runtime.
 | |
|  add_subdirectory(runtime)
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/libomptarget/plugins-nextgen/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/libomptarget/plugins-nextgen/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/libomptarget/plugins-nextgen/CMakeLists.txt
 | |
| @@ -62,6 +62,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "${tma
 | |
|          "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/../exports")
 | |
|      endif()
 | |
|  
 | |
| +  add_runtimes_build_depends_if_needed("omptarget.rtl.${tmachine_libname}")
 | |
| +
 | |
|      # Install plugin under the lib destination folder.
 | |
|      install(TARGETS "omptarget.rtl.${tmachine_libname}"
 | |
|        LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/libomptarget/plugins-nextgen/cuda/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/libomptarget/plugins-nextgen/cuda/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/libomptarget/plugins-nextgen/cuda/CMakeLists.txt
 | |
| @@ -84,6 +84,8 @@ else()
 | |
|                     " Use 'LIBOMPTARGET_FORCE_NVIDIA_TESTS' to override.")
 | |
|  endif()
 | |
|  
 | |
| +add_runtimes_build_depends_if_needed(omptarget.rtl.cuda)
 | |
| +
 | |
|  # Install plugin under the lib destination folder.
 | |
|  install(TARGETS omptarget.rtl.cuda LIBRARY DESTINATION "${OPENMP_INSTALL_LIBDIR}")
 | |
|  set_target_properties(omptarget.rtl.cuda PROPERTIES
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/libomptarget/src/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/libomptarget/src/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/libomptarget/src/CMakeLists.txt
 | |
| @@ -36,7 +36,9 @@ add_llvm_library(omptarget
 | |
|    omp
 | |
|  
 | |
|    NO_INSTALL_RPATH
 | |
| -)
 | |
| +  )
 | |
| +add_runtimes_build_depends_if_needed(omptarget)
 | |
| +
 | |
|  target_include_directories(omptarget PRIVATE ${LIBOMPTARGET_INCLUDE_DIR})
 | |
|  
 | |
|  if (LIBOMP_HAVE_VERSION_SCRIPT_FLAG)
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/runtime/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/runtime/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/runtime/CMakeLists.txt
 | |
| @@ -292,6 +292,10 @@ if(LIBOMP_STATS)
 | |
|    set(LIBOMP_USE_STDCPPLIB TRUE)
 | |
|  endif()
 | |
|  
 | |
| +if(LIBOMP_ENABLE_RTTI)
 | |
| +  set(LIBOMP_USE_STDCPPLIB TRUE)
 | |
| +endif()
 | |
| +
 | |
|  # Shared library can be switched to a static library
 | |
|  set(LIBOMP_ENABLE_SHARED TRUE CACHE BOOL
 | |
|    "Shared library instead of static library?")
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/runtime/src/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/runtime/src/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/runtime/src/CMakeLists.txt
 | |
| @@ -139,6 +139,7 @@ set_source_files_properties(${LIBOMP_ASM
 | |
|  if(NOT ${LIBOMP_USE_STDCPPLIB})
 | |
|    set(LIBOMP_LINKER_LANGUAGE C)
 | |
|    set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES)
 | |
| +  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -nostdlib++")
 | |
|  else()
 | |
|    set(LIBOMP_LINKER_LANGUAGE CXX)
 | |
|  endif()
 | |
| @@ -200,6 +201,8 @@ else()
 | |
|    )
 | |
|  endif()
 | |
|  
 | |
| +add_runtimes_build_depends_if_needed(omp)
 | |
| +
 | |
|  # Get the library's location within the build tree for the unit tester
 | |
|  if(NOT WIN32)
 | |
|    get_target_property(LIBOMP_LIBRARY_DIR omp LIBRARY_OUTPUT_DIRECTORY)
 | |
| Index: llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/tools/archer/CMakeLists.txt
 | |
| ===================================================================
 | |
| --- llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61.orig/openmp/tools/archer/CMakeLists.txt
 | |
| +++ llvm-toolchain-snapshot_17~++20230707101520+336d7281ad61/openmp/tools/archer/CMakeLists.txt
 | |
| @@ -15,6 +15,9 @@ if(LIBOMP_OMPT_SUPPORT AND LIBOMP_ARCHER
 | |
|    target_link_libraries(archer ${CMAKE_DL_LIBS})
 | |
|    add_library(archer_static STATIC ompt-tsan.cpp)
 | |
|  
 | |
| +  add_runtimes_build_depends_if_needed(archer)
 | |
| +  add_runtimes_build_depends_if_needed(archer_static)
 | |
| +
 | |
|    install(TARGETS archer archer_static
 | |
|      LIBRARY DESTINATION ${OPENMP_INSTALL_LIBDIR}
 | |
|      ARCHIVE DESTINATION ${OPENMP_INSTALL_LIBDIR})
 | 
