diff --git a/CMake-Don-t-prefer-python2.7.patch b/CMake-Don-t-prefer-python2.7.patch deleted file mode 100644 index ddea2997c6a3867e8904d290734a054f6e206613..0000000000000000000000000000000000000000 --- a/CMake-Don-t-prefer-python2.7.patch +++ /dev/null @@ -1,27 +0,0 @@ -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 deleted file mode 100644 index 903821e4eacf434a342021fc002c4393e05d097d..0000000000000000000000000000000000000000 --- a/CMake-Split-static-library-exports-into-their-own-ex.patch +++ /dev/null @@ -1,86 +0,0 @@ -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 deleted file mode 100644 index d92a387d6081a46bc54901d4aed5ac1ae31eae1e..0000000000000000000000000000000000000000 --- a/Don-t-set-rpath-when-installing.patch +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index 31b819bb137120726fc3edf561c04c06cc5adcac..0000000000000000000000000000000000000000 --- a/Filter-out-cxxflags-not-supported-by-clang.patch +++ /dev/null @@ -1,28 +0,0 @@ -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-7.0.0.src.tar.xz b/llvm-10.0.1.src.tar.xz similarity index 65% rename from llvm-7.0.0.src.tar.xz rename to llvm-10.0.1.src.tar.xz index e326b04fe96e6da80d5e388a8e397e1239a562d1..973b4a99fa98aaa4c7637c4be6e6fd04de141392 100644 Binary files a/llvm-7.0.0.src.tar.xz and b/llvm-10.0.1.src.tar.xz differ diff --git a/llvm.spec b/llvm.spec index 35512b781ad498b35797d149a69ae336ef279497..5663092696bb77c9ec8a6e39292311e73578b646 100644 --- a/llvm.spec +++ b/llvm.spec @@ -1,18 +1,15 @@ Name: llvm -Version: 7.0.0 -Release: 11 +Version: 10.0.1 +Release: 1 Summary: The Low Level Virtual Machine License: NCSA URL: http://llvm.org -Source0: http://releases.llvm.org/7.0.0/%{name}-%{version}.src.tar.xz +Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{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, @@ -61,12 +58,16 @@ 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 @@ -74,6 +75,7 @@ cd _build %else -DLLVM_LIBDIR_SUFFIX= \ %endif +%if 0 %ifarch %ix86 x86_64 -DLLVM_TARGETS_TO_BUILD="X86;AMDGPU;NVPTX;BPF;ARM;AArch64" \ %endif @@ -83,11 +85,14 @@ 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 \ @@ -97,39 +102,39 @@ cd _build -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ -DLLVM_INCLUDE_UTILS:BOOL=ON \ -DLLVM_INSTALL_UTILS:BOOL=ON \ - -DLLVM_UTILS_INSTALL_DIR:PATH=%{buildroot}%{_libdir}/%{name} \ + -DLLVM_UTILS_INSTALL_DIR:PATH=%{_bindir} \ + -DLLVM_TOOLS_INSTALL_DIR:PATH=bin \ -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 \ - -DCMAKE_INSTALL_PREFIX=%{buildroot}/usr \ - -DLLVM_INSTALL_SPHINX_HTML_DIR=%{buildroot}%{_pkgdocdir}/html \ + -DLLVM_INSTALL_SPHINX_HTML_DIR=%{_pkgdocdir}/html \ -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 -ninja -v +%ninja_build LLVM +%ninja_build %install -cd _build -ninja -v install +%ninja_install -C _build +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 -install -m 0755 ./bin/$f %{buildroot}%{_libdir}/%{name} +for f in llvm-isel-fuzzer llvm-opt-fuzzer; do +install -m 0755 ./_build/bin/$f %{buildroot}%{_bindir} 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/ @@ -145,9 +150,14 @@ 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 || : @@ -191,6 +201,12 @@ fi %{_mandir}/man1/* %changelog +* Sat Oct 10 2020 Liquor - 10.0.1-1 +- Type: update +- ID: NA +- SUG: NA +- DESC: update to 10.0.1 + * Wed Sep 23 2020 Liquor - 7.0.0-11 - Type: downgrade - ID: NA