diff --git a/CMake-Don-t-prefer-python2.7.patch b/CMake-Don-t-prefer-python2.7.patch new file mode 100644 index 0000000000000000000000000000000000000000..ddea2997c6a3867e8904d290734a054f6e206613 --- /dev/null +++ b/CMake-Don-t-prefer-python2.7.patch @@ -0,0 +1,27 @@ +From 1e0f1c5481a96d760f7840d4dde103353a0131f8 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Thu, 30 Aug 2018 11:38:51 -0700 +Subject: [PATCH] CMake: Don't prefer python2.7 + +--- + CMakeLists.txt | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 31df640..2603f1c 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -613,10 +613,6 @@ message(STATUS "LLVM default target triple: ${LLVM_DEFAULT_TARGET_TRIPLE}") + + include(HandleLLVMOptions) + +-# Verify that we can find a Python 2 interpreter. Python 3 is unsupported. +-# FIXME: We should support systems with only Python 3, but that requires work +-# on LLDB. +-set(Python_ADDITIONAL_VERSIONS 2.7) + include(FindPythonInterp) + if( NOT PYTHONINTERP_FOUND ) + message(FATAL_ERROR +-- +1.8.3.1 + diff --git a/CMake-Split-static-library-exports-into-their-own-ex.patch b/CMake-Split-static-library-exports-into-their-own-ex.patch new file mode 100644 index 0000000000000000000000000000000000000000..903821e4eacf434a342021fc002c4393e05d097d --- /dev/null +++ b/CMake-Split-static-library-exports-into-their-own-ex.patch @@ -0,0 +1,86 @@ +From f9e66a883e1fb748e6ac826fde188efaae249361 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Sat, 29 Apr 2017 02:03:23 +0000 +Subject: [PATCH] CMake: Split static library exports into their own export + file + +Summary: +This is to better support distros which split the static libraries into +their own package. + +The current problem is that any project the includes LLVMConfig.cmake +will fail to configure unless the static libraries are installed. This +is because LLVMConfig.cmake includes LLVMExports.cmake, which throws an +error if it can't find files linked to one of the exported targets. + +This patch resolves the problem by putting the static library targets +into their own export file, LLVMStaticExports.cmake. This file +is optionally included by LLVMConfig.cmake, so distros can put this +new file in their static library package to make LLVMConfig.cmake +no longer depend on these libraries when they are not installed. + +Reviewers: beanz, mgorny, chapuni + +Subscribers: llvm-commits + +Differential Revision: https://reviews.llvm.org/D32668 +--- + cmake/modules/AddLLVM.cmake | 6 +++++- + cmake/modules/CMakeLists.txt | 3 +++ + cmake/modules/LLVMConfig.cmake.in | 2 ++ + 3 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index fd5627e..78f106f 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -635,7 +635,11 @@ macro(add_llvm_library name) + + if(${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR + NOT LLVM_DISTRIBUTION_COMPONENTS) +- set(export_to_llvmexports EXPORT LLVMExports) ++ if (ARG_SHARED) ++ set(export_to_llvmexports EXPORT LLVMExports) ++ else() ++ set(export_to_llvmexports EXPORT LLVMStaticExports) ++ endif() + set_property(GLOBAL PROPERTY LLVM_HAS_EXPORTS True) + endif() + +diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt +index 6074e83..e9fcb11 100644 +--- a/cmake/modules/CMakeLists.txt ++++ b/cmake/modules/CMakeLists.txt +@@ -91,6 +91,7 @@ set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") + set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") + set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") + set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}") ++set(LLVM_CONFIG_STATIC_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMStaticExports.cmake") + configure_file( + LLVMConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake +@@ -107,6 +108,8 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + if(llvm_has_exports) + install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} + COMPONENT cmake-exports) ++ install(EXPORT LLVMStaticExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} ++ COMPONENT cmake-exports) + endif() + + install(FILES +diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in +index 0772016..f471625 100644 +--- a/cmake/modules/LLVMConfig.cmake.in ++++ b/cmake/modules/LLVMConfig.cmake.in +@@ -78,6 +78,8 @@ if(NOT TARGET LLVMSupport) + set(LLVM_EXPORTED_TARGETS "@LLVM_CONFIG_EXPORTS@") + include("@LLVM_CONFIG_EXPORTS_FILE@") + @llvm_config_include_buildtree_only_exports@ ++ ++ include("@LLVM_CONFIG_STATIC_EXPORTS_FILE@" OPTIONAL) + endif() + + # By creating intrinsics_gen here, subprojects that depend on LLVM's +-- +1.8.3.1 + diff --git a/Don-t-set-rpath-when-installing.patch b/Don-t-set-rpath-when-installing.patch new file mode 100644 index 0000000000000000000000000000000000000000..d92a387d6081a46bc54901d4aed5ac1ae31eae1e --- /dev/null +++ b/Don-t-set-rpath-when-installing.patch @@ -0,0 +1,24 @@ +From e67ace2ecb42c24e124f1738dc67b22055a22500 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Thu, 13 Sep 2018 10:10:08 -0700 +Subject: [PATCH] Don't set rpath when installing + +--- + cmake/modules/AddLLVM.cmake | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index ce2057f..de309b5 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -1621,6 +1621,7 @@ function(llvm_codesign name) + endfunction() + + function(llvm_setup_rpath name) ++ return() + if(CMAKE_INSTALL_RPATH) + return() + endif() +-- +1.8.3.1 + diff --git a/Filter-out-cxxflags-not-supported-by-clang.patch b/Filter-out-cxxflags-not-supported-by-clang.patch new file mode 100644 index 0000000000000000000000000000000000000000..31b819bb137120726fc3edf561c04c06cc5adcac --- /dev/null +++ b/Filter-out-cxxflags-not-supported-by-clang.patch @@ -0,0 +1,28 @@ +From 5f7fd92155db77c7608e3a07e5dcfad1ec7bd4e4 Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Fri, 16 Mar 2018 07:52:33 -0700 +Subject: [PATCH] Filter out cxxflags not supported by clang + +--- + tools/llvm-config/CMakeLists.txt | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt +index a0bd36c..4193b0e 100644 +--- a/tools/llvm-config/CMakeLists.txt ++++ b/tools/llvm-config/CMakeLists.txt +@@ -34,7 +34,11 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) + set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) + set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") + set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") ++STRING(REGEX REPLACE "-mcet" "" LLVM_CFLAGS ${LLVM_CFLAGS}) ++STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CFLAGS ${LLVM_CFLAGS}) + set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") ++STRING(REGEX REPLACE "-mcet" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) ++STRING(REGEX REPLACE "-fcf-protection" "" LLVM_CXXFLAGS ${LLVM_CXXFLAGS}) + set(LLVM_BUILD_SYSTEM cmake) + set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) + set(LLVM_DYLIB_VERSION "${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX}") +-- +1.8.3.1 + diff --git a/llvm-10.0.0.src.tar.xz b/llvm-7.0.0.src.tar.xz similarity index 65% rename from llvm-10.0.0.src.tar.xz rename to llvm-7.0.0.src.tar.xz index f01eaceddec6b47840feb215e85d9e6955432eec..e326b04fe96e6da80d5e388a8e397e1239a562d1 100644 Binary files a/llvm-10.0.0.src.tar.xz and b/llvm-7.0.0.src.tar.xz differ diff --git a/llvm.spec b/llvm.spec index 1b05fadf2c11212180258e5860b614c6e3bdeb11..cd3a31a04296f5ce322e6bc4f461bf1b84ac50c0 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,14 +1,18 @@ Name: llvm -Version: 10.0.0 -Release: 0 +Version: 7.0.0 +Release: 9 Summary: The Low Level Virtual Machine License: NCSA URL: http://llvm.org -Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{name}-%{version}.src.tar.xz +Source0: http://releases.llvm.org/7.0.0/%{name}-%{version}.src.tar.xz +Patch0: CMake-Split-static-library-exports-into-their-own-ex.patch +Patch1: Filter-out-cxxflags-not-supported-by-clang.patch +Patch2: CMake-Don-t-prefer-python2.7.patch +Patch3: Don-t-set-rpath-when-installing.patch + BuildRequires: gcc gcc-c++ cmake ninja-build zlib-devel libffi-devel ncurses-devel libstdc++-static BuildRequires: python3-sphinx binutils-devel valgrind-devel libedit-devel python3-devel -BuildRequires: python3-recommonmark %description LLVM is a compiler infrastructure designed for compile-time, link-time, @@ -114,7 +118,6 @@ ninja -v cd _build ninja -v install -find %{buildroot}%{_libdir}/cmake/llvm/ -type f | xargs sed -i "s|%{buildroot}||g" mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}} for f in lli-child-target llvm-isel-fuzzer llvm-opt-fuzzer yaml-bench; do @@ -188,9 +191,6 @@ fi %{_mandir}/man1/* %changelog -* Wed Jun 03 2020 SimpleUpdate Robot - 10.0.0-0 -- Update to version 10.0.0 - * Wed Mar 18 2020 openEuler Buildteam - 7.0.0-9 - Type: enhancement - ID: NA