%bcond_without ocaml # OCaml binding
%bcond_without z3 # Z3 constraint solver support in Clang Static Analyzer
%bcond_without doc # HTML docs and man pages
+%bcond_with cxxmodules # C++20 modules (requires support in bootstrap compiler)
%bcond_with apidocs # doxygen docs (HUGE, so they are not built by default)
%bcond_with tests # run tests
Summary: The Low Level Virtual Machine (An Optimizing Compiler Infrastructure)
Summary(pl.UTF-8): Niskopoziomowa maszyna wirtualna (infrastruktura kompilatora optymalizującego)
Name: llvm
-Version: 9.0.0
-Release: 1
+Version: 10.0.0
+Release: 2
License: University of Illinois/NCSA Open Source License
Group: Development/Languages
-#Source0Download: http://releases.llvm.org/download.html
-Source0: http://releases.llvm.org/%{version}/%{name}-%{version}.src.tar.xz
-# Source0-md5: 0fd4283ff485dffb71a4f1cc8fd3fc72
-Source1: http://releases.llvm.org/%{version}/cfe-%{version}.src.tar.xz
-# Source1-md5: 0df6971e2f99b1e99e7bfb533e4067af
-Source2: http://releases.llvm.org/%{version}/compiler-rt-%{version}.src.tar.xz
-# Source2-md5: c92b8a1aed654463962d77445ebee10b
-Source3: http://releases.llvm.org/%{version}/lldb-%{version}.src.tar.xz
-# Source3-md5: 963b43e591d9501965e932fc4218d1a0
-Source4: http://releases.llvm.org/%{version}/polly-%{version}.src.tar.xz
-# Source4-md5: 5cd3222a5d7f96cf789dd0bdba14d0fc
-Source5: http://releases.llvm.org/%{version}/clang-tools-extra-%{version}.src.tar.xz
-# Source5-md5: 6d1b6e8a9c24ccf98b6ed4f63dbb6356
-Source6: http://releases.llvm.org/%{version}/lld-%{version}.src.tar.xz
-# Source6-md5: aa70e956ddbe0c7bff029b8358ff6c44
+#Source0Download: https://github.com/llvm/llvm-project/releases/
+Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/%{name}-%{version}.src.tar.xz
+# Source0-md5: 693cefdc49d618f828144486a18b473f
+Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-%{version}.src.tar.xz
+# Source1-md5: 717ef92318fed4dbe1ee058368cfb552
+Source2: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/compiler-rt-%{version}.src.tar.xz
+# Source2-md5: 3a8477233f69600f3e2ca997405c29db
+Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lldb-%{version}.src.tar.xz
+# Source3-md5: 9828da982f3088cece20e0db9e76e06d
+Source4: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/polly-%{version}.src.tar.xz
+# Source4-md5: f71e6f808676c211338ad10b3ad5c10d
+Source5: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/clang-tools-extra-%{version}.src.tar.xz
+# Source5-md5: 19adb2918e88d682ba2f97ac7280a25d
+Source6: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lld-%{version}.src.tar.xz
+# Source6-md5: 481ab4e01c8c5549c8aff5ef1bd25425
Patch1: %{name}-pld.patch
Patch2: %{name}-python-modules.patch
Patch3: x32-gcc-toolchain.patch
Patch4: cmake-buildtype.patch
Patch5: %{name}-ocaml-shared.patch
+Patch6: lld-sphinx2.patch
URL: http://llvm.org/
BuildRequires: bash
BuildRequires: bison
BuildRequires: groff
BuildRequires: libedit-devel
BuildRequires: libltdl-devel
+BuildRequires: libpfm-devel
BuildRequires: libstdc++-devel >= 5:3.4
+BuildRequires: libxml2-devel >= 2
BuildRequires: ncurses-devel
%if %{with ocaml}
BuildRequires: ocaml >= 4.00.0
%endif
BuildRequires: libxml2-devel >= 2
BuildRequires: ncurses-ext-devel
-BuildRequires: python-devel >= 2
+BuildRequires: python-devel >= 1:2.7
%{?with_doc:BuildRequires: python3-recommonmark}
BuildRequires: swig-python >= 3.0.11
%endif
ExcludeArch: ppc64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define abi 9
+%define abi 10
%define _sysconfdir /etc/%{name}
%define specflags_ppc -fno-var-tracking-assignments
Group: Development/Languages
Requires: %{name}-devel = %{version}-%{release}
Requires: clang = %{version}-%{release}
+%{?with_polly:Requires: llvm-polly-devel = %{version}-%{release}}
%description -n clang-devel
This package contains header files for the Clang compiler.
%prep
%setup -q -n %{name}-%{version}.src -a1 %{?with_rt:-a2} %{?with_lldb:-a3} %{?with_polly:-a4} -a5 -a6
-%{__mv} cfe-%{version}.src tools/clang
+%{__mv} clang-%{version}.src tools/clang
%{?with_rt:%{__mv} compiler-rt-%{version}.src projects/compiler-rt}
%{?with_lldb:%{__mv} lldb-%{version}.src tools/lldb}
%{?with_polly:%{__mv} polly-%{version}.src tools/polly}
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
-grep -rl /usr/bin/env tools utils | xargs sed -i -e '1{
+grep -rl /usr/bin/env projects tools utils | xargs sed -i -e '1{
s,^#!.*bin/env python,#!%{__python},
s,^#!.*bin/env perl,#!%{__perl},
}'
%cmake .. \
-DBUILD_SHARED_LIBS:BOOL=OFF \
- %{!?with_z3:-DCLANG_ANALYZER_ENABLE_Z3_SOLVER:BOOL=OFF} \
-DENABLE_LINKER_BUILD_ID:BOOL=ON \
-DLLVM_BINDINGS_LIST:LIST="%{?with_ocaml:ocaml}" \
-DLLVM_BINUTILS_INCDIR:STRING=%{_includedir} \
%if %{with apidocs}
-DLLVM_ENABLE_DOXYGEN:BOOL=ON \
%endif
+ %{?with_cxxmodules:-DLLVM_ENABLE_MODULES:BOOL=ON} \
-DLLVM_ENABLE_PIC:BOOL=ON \
-DLLVM_ENABLE_RTTI:BOOL=ON \
%if %{with doc}
-DLLVM_ENABLE_SPHINX:BOOL=ON \
%endif
+ %{!?with_z3:-DLLVM_ENABLE_Z3_SOLVER:BOOL=OFF} \
%if "%{_lib}" == "lib64"
-DLLVM_LIBDIR_SUFFIX:STRING=64 \
%endif
%{__make} -C tools/clang/docs docs-clang-man
%{__make} -C tools/lld/docs docs-lld-html
# workaround failed import of _lldb
-cp -an %{_lib}/python%{py_ver}/site-packages/lldb/_lldb.so tools/lldb/docs/lldb
+cp -pnL %{_lib}/python%{py_ver}/site-packages/lldb/_lldb.so tools/lldb/docs/lldb
%{__make} \
LD_LIBRARY_PATH=$(pwd)/%{_lib} \
-C tools/lldb/docs lldb-python-doc
%{__rm} $RPM_BUILD_ROOT%{py_sitedir}/six.py*
# it seems it is used internally by an extra clang tool
%{__rm} $RPM_BUILD_ROOT%{_libdir}/libfindAllSymbols.a
-# examples only
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/{CheckerDependencyHandling,CheckerOptionHandling,Sample}AnalyzerPlugin.so
# disable completeness check incompatible with split packaging
%{__sed} -i -e '/^foreach(target .*IMPORT_CHECK_TARGETS/,/^endforeach/d; /^unset(_IMPORT_CHECK_TARGETS)/d' $RPM_BUILD_ROOT%{_libdir}/cmake/llvm/LLVMExports.cmake
%attr(755,root,root) %{_bindir}/llvm-elfabi
%attr(755,root,root) %{_bindir}/llvm-exegesis
%attr(755,root,root) %{_bindir}/llvm-extract
+%attr(755,root,root) %{_bindir}/llvm-ifs
+%attr(755,root,root) %{_bindir}/llvm-install-name-tool
%attr(755,root,root) %{_bindir}/llvm-jitlink
%attr(755,root,root) %{_bindir}/llvm-lib
%attr(755,root,root) %{_bindir}/llvm-link
%attr(755,root,root) %{_bindir}/llvm-rc
%attr(755,root,root) %{_bindir}/llvm-readelf
%attr(755,root,root) %{_bindir}/llvm-readobj
+%attr(755,root,root) %{_bindir}/llvm-reduce
%attr(755,root,root) %{_bindir}/llvm-rtdyld
%attr(755,root,root) %{_bindir}/llvm-size
%attr(755,root,root) %{_bindir}/llvm-split
%{_mandir}/man1/llvm-lib.1*
%{_mandir}/man1/llvm-link.1*
%{_mandir}/man1/llvm-lipo.1*
+%{_mandir}/man1/llvm-locstats.1*
%{_mandir}/man1/llvm-mca.1*
%{_mandir}/man1/llvm-nm.1*
%{_mandir}/man1/llvm-objcopy.1*
%attr(755,root,root) %{_libdir}/libLLVM-%{abi}.so
# non-soname symlink
%attr(755,root,root) %{_libdir}/libLLVM-%{version}.so
-%attr(755,root,root) %ghost %{_libdir}/libLTO.so.9
+%attr(755,root,root) %ghost %{_libdir}/libLTO.so.10
%attr(755,root,root) %{_libdir}/LLVMgold.so
-%attr(755,root,root) %{_libdir}/libRemarks.so.9
-%attr(755,root,root) %{_libdir}/libclang-cpp.so.9
+%attr(755,root,root) %{_libdir}/libRemarks.so.10
+%attr(755,root,root) %{_libdir}/libclang-cpp.so.10
%files devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/clang-format
%attr(755,root,root) %{_bindir}/clang-import-test
%attr(755,root,root) %{_bindir}/clang-offload-bundler
+%attr(755,root,root) %{_bindir}/clang-offload-wrapper
%attr(755,root,root) %{_bindir}/git-clang-format
%dir %{_libdir}/clang
%dir %{_libdir}/clang/%{version}
%{_libdir}/clang/%{version}/include
%if %{with rt}
-%ifarch %{ix86} %{x8664}
+%ifarch %{x8664} aarch64
+%dir %{_libdir}/clang/%{version}/bin
+%attr(755,root,root) %{_libdir}/clang/%{version}/bin/hwasan_symbolize
+%endif
+%ifarch %{ix86} %{x8664} aarch64
%dir %{_libdir}/clang/%{version}/lib
%dir %{_libdir}/clang/%{version}/lib/linux
%dir %{_libdir}/clang/%{version}/share
%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.so
%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-x86_64.a.syms
%endif
+%ifarch aarch64
+%{_libdir}/clang/%{version}/lib/linux/clang_rt.*-aarch64.o
+%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-aarch64.a
+%attr(755,root,root) %{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-aarch64.so
+%{_libdir}/clang/%{version}/lib/linux/libclang_rt.*-aarch64.a.syms
+%endif
%ifarch %{ix86} %{x8664} %{arm} aarch64 mips mips64 ppc64
%{_libdir}/clang/%{version}/share/asan_blacklist.txt
%endif
-%ifarch %{ix86} %{x8664} mips64
+%ifarch %{ix86} %{x8664} mips64 aarch64
%{_libdir}/clang/%{version}/share/cfi_blacklist.txt
%endif
%ifarch %{x8664} aarch64 mips64
%attr(755,root,root) %{_bindir}/clang-change-namespace
%attr(755,root,root) %{_bindir}/clang-extdef-mapping
%attr(755,root,root) %{_bindir}/clang-include-fixer
+%attr(755,root,root) %{_bindir}/clang-move
%attr(755,root,root) %{_bindir}/clang-query
%attr(755,root,root) %{_bindir}/clang-refactor
%attr(755,root,root) %{_bindir}/clang-rename
%attr(755,root,root) %{_bindir}/lldb
%attr(755,root,root) %{_bindir}/lldb-argdumper
%attr(755,root,root) %{_bindir}/lldb-instr
-%attr(755,root,root) %{_bindir}/lldb-mi
%attr(755,root,root) %{_bindir}/lldb-server
%attr(755,root,root) %{_bindir}/lldb-vscode
%attr(755,root,root) %{_libdir}/liblldb.so.%{version}
-%attr(755,root,root) %ghost %{_libdir}/liblldb.so.9
-%attr(755,root,root) %ghost %{_libdir}/liblldbIntelFeatures.so.9
+%attr(755,root,root) %ghost %{_libdir}/liblldb.so.10
+%attr(755,root,root) %ghost %{_libdir}/liblldbIntelFeatures.so.10
%dir %{py_sitedir}/lldb
%attr(755,root,root) %{py_sitedir}/lldb/lldb-argdumper
%{py_sitedir}/lldb/formatters
-%{py_sitedir}/lldb/runtime
%{py_sitedir}/lldb/utils
%{py_sitedir}/lldb/__init__.py[co]
%{py_sitedir}/lldb/embedded_interpreter.py[co]