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.1.src.tar.xz b/llvm-7.0.0.src.tar.xz similarity index 65% rename from llvm-10.0.1.src.tar.xz rename to llvm-7.0.0.src.tar.xz index 973b4a99fa98aaa4c7637c4be6e6fd04de141392..e326b04fe96e6da80d5e388a8e397e1239a562d1 100644 Binary files a/llvm-10.0.1.src.tar.xz and b/llvm-7.0.0.src.tar.xz differ diff --git a/llvm.spec b/llvm.spec index 28439fb850051fcf6026b2d341fc03906adf979c..35512b781ad498b35797d149a69ae336ef279497 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,15 +1,18 @@ Name: llvm -Version: 10.0.1 -Release: 1 +Version: 7.0.0 +Release: 11 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 -BuildRequires: llvm-libs %description LLVM is a compiler infrastructure designed for compile-time, link-time, @@ -58,16 +61,12 @@ The %{name}-help package contains doc files for %{name}. pathfix.py -i %{__python3} -pn test/BugPoint/compile-custom.ll.py tools/opt-viewer/*.py %build -#TODO: -DLLVM_TARGETS_TO_BUILD=all in needed(temporarily) when build rust, -# clarification is required in the future mkdir -p _build cd _build %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %cmake .. -G Ninja \ -DBUILD_SHARED_LIBS:BOOL=OFF \ - -DLLVM_PARALLEL_LINK_JOBS=1 \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ - -DCMAKE_INSTALL_RPATH=";" \ -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ %if 0%{?__isa_bits} == 64 @@ -75,7 +74,6 @@ cd _build %else -DLLVM_LIBDIR_SUFFIX= \ %endif -%if 0 %ifarch %ix86 x86_64 -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU;NVPTX;BPF;ARM;AArch64" \ %endif @@ -85,14 +83,11 @@ cd _build %ifarch %{arm} -DLLVM_TARGETS_TO_BUILD="ARM;AMDGPU;BPF" \ %endif -%endif - -DLLVM_TARGETS_TO_BUILD=all \ -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ -DLLVM_ENABLE_ZLIB:BOOL=ON \ -DLLVM_ENABLE_FFI:BOOL=ON \ -DLLVM_ENABLE_RTTI:BOOL=ON \ -DLLVM_BINUTILS_INCDIR=%{_includedir} \ - -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=AVR \ -DLLVM_BUILD_RUNTIME:BOOL=ON \ -DLLVM_INCLUDE_TOOLS:BOOL=ON \ -DLLVM_BUILD_TOOLS:BOOL=ON \ @@ -102,39 +97,39 @@ cd _build -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ -DLLVM_INCLUDE_UTILS:BOOL=ON \ -DLLVM_INSTALL_UTILS:BOOL=ON \ - -DLLVM_UTILS_INSTALL_DIR:PATH=%{_bindir} \ - -DLLVM_TOOLS_INSTALL_DIR:PATH=bin \ + -DLLVM_UTILS_INSTALL_DIR:PATH=%{buildroot}%{_libdir}/%{name} \ -DLLVM_INCLUDE_DOCS:BOOL=ON \ -DLLVM_BUILD_DOCS:BOOL=ON \ -DLLVM_ENABLE_SPHINX:BOOL=ON \ -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ - -DLLVM_VERSION_SUFFIX='' \ -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ -DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \ -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ - -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ + -DCMAKE_INSTALL_PREFIX=%{buildroot}/usr \ + -DLLVM_INSTALL_SPHINX_HTML_DIR=%{buildroot}%{_pkgdocdir}/html \ -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 -%ninja_build LLVM -%ninja_build +ninja -v %install -%ninja_install -C _build +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 llvm-isel-fuzzer llvm-opt-fuzzer; do -install -m 0755 ./_build/bin/$f %{buildroot}%{_bindir} +for f in lli-child-target llvm-isel-fuzzer llvm-opt-fuzzer yaml-bench; do +install -m 0755 ./bin/$f %{buildroot}%{_libdir}/%{name} done %global install_srcdir %{buildroot}%{_datadir}/llvm/src %global lit_cfg test/lit.site.cfg.py %global lit_unit_cfg test/Unit/lit.site.cfg.py +cd .. + install -d %{install_srcdir} install -d %{install_srcdir}/utils/ cp -R utils/unittest %{install_srcdir}/utils/ @@ -150,14 +145,9 @@ install -d %{buildroot}%{_libexecdir}/tests/llvm install -d %{buildroot}%{_datadir}/llvm/ tar -czf %{install_srcdir}/test.tar.gz test/ -mkdir -p %{buildroot}%{_libdir}/%{name} cp -R _build/unittests %{buildroot}%{_libdir}/%{name}/ find %{buildroot}%{_libdir}/%{name} -ignore_readdir_race -iname 'cmake*' -exec rm -Rf '{}' ';' || true -#TODO: clang rust mesa packages will be unresolvable without this work-around -cp -p %{_libdir}/libLLVM-7*.so %{buildroot}%{_libdir} -cp -p %{_libdir}/libLTO.so.7 %{buildroot}%{_libdir} - %check cd _build ninja check-all || : @@ -201,6 +191,12 @@ fi %{_mandir}/man1/* %changelog +* Wed Sep 23 2020 Liquor - 7.0.0-11 +- Type: downgrade +- ID: NA +- SUG: NA +- DESC:revert "update to 10.0.1" + * Mon Aug 24 2020 Liquor - 10.0.1-1 - Type: update - ID: NA