2024-07-22 12:25:34 +00:00
|
|
|
#region LLVM lit package
|
2024-07-30 14:59:07 +00:00
|
|
|
%if %{with python_lit}
|
2024-08-02 07:32:13 +00:00
|
|
|
%package -n python%{python3_pkgversion}-lit
|
2024-07-22 12:25:34 +00:00
|
|
|
Summary: LLVM lit test runner for Python 3
|
|
|
|
|
|
|
|
BuildArch: noarch
|
2024-08-02 07:32:13 +00:00
|
|
|
Requires: python%{python3_pkgversion}-setuptools
|
|
|
|
%if 0%{?rhel} == 8
|
|
|
|
# Became python3.12-clang in LLVM 20
|
|
|
|
Obsoletes: python3-lit < 19.9
|
|
|
|
%else
|
|
|
|
# This optional dependency is not available for python3.12 on RHEL 8.
|
|
|
|
Recommends: python%{python3_pkgversion}-psutil
|
|
|
|
%endif
|
2024-07-22 12:25:34 +00:00
|
|
|
|
2024-08-02 07:32:13 +00:00
|
|
|
%description -n python%{python3_pkgversion}-lit
|
2024-07-22 12:25:34 +00:00
|
|
|
lit is a tool used by the LLVM project for executing its test suites.
|
2024-07-30 14:59:07 +00:00
|
|
|
%endif
|
2024-07-22 12:25:34 +00:00
|
|
|
#endregion
|
|
|
|
|
2023-10-12 09:15:14 +00:00
|
|
|
#region LLVM packages
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-devel
|
|
|
|
Summary: Libraries and header files for LLVM
|
|
|
|
Requires: %{pkg_name_llvm}%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{pkg_name_llvm}-libs%{?_isa} = %{version}-%{release}
|
|
|
|
# The installed LLVM cmake files will add -ledit to the linker flags for any
|
|
|
|
# app that requires the libLLVMLineEditor, so we need to make sure
|
|
|
|
# libedit-devel is available.
|
|
|
|
Requires: libedit-devel
|
2024-08-28 11:21:20 +00:00
|
|
|
Requires: libzstd-devel
|
2023-10-12 09:15:14 +00:00
|
|
|
# The installed cmake files reference binaries from llvm-test, llvm-static, and
|
|
|
|
# llvm-gtest. We tried in the past to split the cmake exports for these binaries
|
|
|
|
# out into separate files, so that llvm-devel would not need to Require these packages,
|
|
|
|
# but this caused bugs (rhbz#1773678) and forced us to carry two non-upstream
|
|
|
|
# patches.
|
|
|
|
Requires: %{pkg_name_llvm}-static%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{pkg_name_llvm}-test%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{pkg_name_llvm}-googletest%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
|
|
|
|
Requires(post): %{_sbindir}/alternatives
|
|
|
|
Requires(postun): %{_sbindir}/alternatives
|
|
|
|
|
|
|
|
Provides: llvm-devel(major) = %{maj_ver}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-devel
|
|
|
|
This package contains library and header files needed to develop new native
|
|
|
|
programs that use the LLVM infrastructure.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-doc
|
|
|
|
Summary: Documentation for LLVM
|
|
|
|
BuildArch: noarch
|
|
|
|
Requires: %{pkg_name_llvm} = %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-doc
|
|
|
|
Documentation for the LLVM compiler infrastructure.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-libs
|
|
|
|
Summary: LLVM shared libraries
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-libs
|
|
|
|
Shared libraries for the LLVM compiler infrastructure.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-static
|
|
|
|
Summary: LLVM static libraries
|
|
|
|
Conflicts: %{pkg_name_llvm}-devel < 8
|
|
|
|
|
|
|
|
Provides: llvm-static(major) = %{maj_ver}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-static
|
|
|
|
Static libraries for the LLVM compiler infrastructure.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-cmake-utils
|
|
|
|
Summary: CMake utilities shared across LLVM subprojects
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-cmake-utils
|
|
|
|
CMake utilities shared across LLVM subprojects.
|
|
|
|
This is for internal use by LLVM packages only.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-test
|
|
|
|
Summary: LLVM regression tests
|
|
|
|
Requires: %{pkg_name_llvm}%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: %{pkg_name_llvm}-libs%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
Provides: llvm-test(major) = %{maj_ver}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-test
|
|
|
|
LLVM regression tests.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_llvm}-googletest
|
|
|
|
Summary: LLVM's modified googletest sources
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-googletest
|
|
|
|
LLVM's modified googletest sources.
|
|
|
|
|
2024-05-28 16:19:54 +00:00
|
|
|
%if %{with snapshot_build}
|
|
|
|
%package -n %{pkg_name_llvm}-build-stats
|
|
|
|
Summary: Statistics for the RPM build
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-build-stats
|
|
|
|
Statistics for the RPM build. Only available in snapshot builds.
|
|
|
|
%endif
|
|
|
|
|
2023-10-12 09:15:14 +00:00
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region CLANG packages
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}
|
|
|
|
Summary: A C language family front-end for LLVM
|
|
|
|
|
|
|
|
Requires: %{pkg_name_clang}-libs%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
# clang requires gcc, clang++ requires libstdc++-devel
|
|
|
|
# - https://bugzilla.redhat.com/show_bug.cgi?id=1021645
|
|
|
|
# - https://bugzilla.redhat.com/show_bug.cgi?id=1158594
|
|
|
|
Requires: libstdc++-devel
|
|
|
|
Requires: gcc-c++
|
|
|
|
|
|
|
|
Provides: clang(major) = %{maj_ver}
|
|
|
|
|
|
|
|
Conflicts: compiler-rt < 11.0.0
|
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}
|
|
|
|
clang: noun
|
|
|
|
1. A loud, resonant, metallic sound.
|
|
|
|
2. The strident call of a crane or goose.
|
|
|
|
3. C-language family front-end toolkit.
|
|
|
|
|
|
|
|
The goal of the Clang project is to create a new C, C++, Objective C
|
|
|
|
and Objective C++ front-end for the LLVM compiler. Its tools are built
|
|
|
|
as libraries and designed to be loosely-coupled and extensible.
|
|
|
|
|
|
|
|
Install compiler-rt if you want the Blocks C language extension or to
|
|
|
|
enable sanitization and profiling options when building, and
|
|
|
|
libomp-devel to enable -fopenmp.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}-libs
|
|
|
|
Summary: Runtime library for clang
|
|
|
|
Requires: %{pkg_name_clang}-resource-filesystem%{?_isa} = %{version}
|
2024-07-31 12:38:37 +00:00
|
|
|
Recommends: %{pkg_name_compiler_rt}%{?_isa} = %{version}
|
2024-07-22 16:12:00 +00:00
|
|
|
Requires: %{pkg_name_llvm}-libs = %{version}
|
2023-10-12 09:15:14 +00:00
|
|
|
# atomic support is not part of compiler-rt
|
|
|
|
Recommends: libatomic%{?_isa}
|
|
|
|
# libomp-devel is required, so clang can find the omp.h header when compiling
|
|
|
|
# with -fopenmp.
|
2024-07-31 12:38:37 +00:00
|
|
|
Recommends: %{pkg_name_libomp}-devel%{_isa} = %{version}
|
|
|
|
Recommends: %{pkg_name_libomp}%{_isa} = %{version}
|
2023-10-12 09:15:14 +00:00
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}-libs
|
|
|
|
Runtime library for clang.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}-devel
|
|
|
|
Summary: Development header files for clang
|
|
|
|
Requires: %{pkg_name_clang}-libs = %{version}-%{release}
|
|
|
|
Requires: %{pkg_name_clang}%{?_isa} = %{version}-%{release}
|
|
|
|
# The clang CMake files reference tools from clang-tools-extra.
|
|
|
|
Requires: %{pkg_name_clang}-tools-extra%{?_isa} = %{version}-%{release}
|
2024-07-25 12:05:10 +00:00
|
|
|
Provides: clang-devel(major) = %{maj_ver}
|
2023-10-12 09:15:14 +00:00
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}-devel
|
|
|
|
Development header files for clang.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}-resource-filesystem
|
|
|
|
Summary: Filesystem package that owns the clang resource directory
|
2024-07-25 12:05:10 +00:00
|
|
|
Provides: clang-resource-filesystem(major) = %{maj_ver}
|
2023-10-12 09:15:14 +00:00
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}-resource-filesystem
|
|
|
|
This package owns the clang resouce directory: $libdir/clang/$version/
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}-analyzer
|
|
|
|
Summary: A source code analysis framework
|
|
|
|
License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT
|
|
|
|
BuildArch: noarch
|
|
|
|
Requires: %{pkg_name_clang} = %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}-analyzer
|
|
|
|
The Clang Static Analyzer consists of both a source code analysis
|
|
|
|
framework and a standalone tool that finds bugs in C and Objective-C
|
|
|
|
programs. The standalone tool is invoked from the command-line, and is
|
|
|
|
intended to run in tandem with a build of a project or code base.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}-tools-extra
|
|
|
|
Summary: Extra tools for clang
|
|
|
|
Requires: %{pkg_name_clang}-libs%{?_isa} = %{version}-%{release}
|
|
|
|
Requires: emacs-filesystem
|
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}-tools-extra
|
|
|
|
A set of extra tools built using Clang's tooling API.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_clang}-tools-extra-devel
|
|
|
|
Summary: Development header files for clang tools
|
|
|
|
Requires: %{pkg_name_clang}-tools-extra = %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_clang}-tools-extra-devel
|
|
|
|
Development header files for clang tools.
|
|
|
|
|
|
|
|
# Put git-clang-format in its own package, because it Requires git
|
|
|
|
# and we don't want to force users to install all those dependenices if they
|
|
|
|
# just want clang.
|
2024-07-31 12:38:37 +00:00
|
|
|
%package -n git-clang-format%{pkg_suffix}
|
2023-10-12 09:15:14 +00:00
|
|
|
Summary: Integration of clang-format for git
|
|
|
|
Requires: %{pkg_name_clang}-tools-extra = %{version}-%{release}
|
|
|
|
Requires: git
|
2024-07-16 14:14:11 +00:00
|
|
|
Requires: python%{python3_pkgversion}
|
2023-10-12 09:15:14 +00:00
|
|
|
|
2024-07-31 12:38:37 +00:00
|
|
|
%description -n git-clang-format%{pkg_suffix}
|
2023-10-12 09:15:14 +00:00
|
|
|
clang-format integration for git.
|
|
|
|
|
2024-07-31 12:38:37 +00:00
|
|
|
%if %{without compat_build}
|
2024-07-16 14:14:11 +00:00
|
|
|
%package -n python%{python3_pkgversion}-clang
|
2023-10-12 09:15:14 +00:00
|
|
|
Summary: Python3 bindings for clang
|
|
|
|
Requires: %{pkg_name_clang}-devel%{?_isa} = %{version}-%{release}
|
2024-07-16 14:14:11 +00:00
|
|
|
Requires: python%{python3_pkgversion}
|
|
|
|
%if 0%{?rhel} == 8
|
2024-08-02 07:32:13 +00:00
|
|
|
# Became python3.12-clang in LLVM 20
|
|
|
|
Obsoletes: python3-clang < 19.9
|
2024-07-16 14:14:11 +00:00
|
|
|
%endif
|
|
|
|
%description -n python%{python3_pkgversion}-clang
|
2023-10-12 09:15:14 +00:00
|
|
|
%{summary}.
|
|
|
|
|
|
|
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region COMPILER-RT packages
|
|
|
|
|
|
|
|
%package -n %{pkg_name_compiler_rt}
|
|
|
|
Summary: LLVM "compiler-rt" runtime libraries
|
|
|
|
|
|
|
|
License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT
|
|
|
|
|
|
|
|
Requires: clang-resource-filesystem%{?isa} = %{version}
|
2024-07-25 10:50:12 +00:00
|
|
|
Provides: compiler-rt(major) = %{maj_ver}
|
2023-10-12 09:15:14 +00:00
|
|
|
|
|
|
|
%description -n %{pkg_name_compiler_rt}
|
|
|
|
The compiler-rt project is a part of the LLVM project. It provides
|
|
|
|
implementation of the low-level target-specific hooks required by
|
|
|
|
code generation, sanitizer runtimes and profiling library for code
|
|
|
|
instrumentation, and Blocks C language extension.
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region OPENMP packages
|
|
|
|
|
|
|
|
%package -n %{pkg_name_libomp}
|
|
|
|
Summary: OpenMP runtime for clang
|
|
|
|
|
|
|
|
URL: http://openmp.llvm.org
|
|
|
|
|
|
|
|
Requires: elfutils-libelf%{?isa}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_libomp}
|
|
|
|
OpenMP runtime for clang.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_libomp}-devel
|
|
|
|
Summary: OpenMP header files
|
2024-05-10 05:57:26 +00:00
|
|
|
|
|
|
|
URL: http://openmp.llvm.org
|
|
|
|
|
2023-10-12 09:15:14 +00:00
|
|
|
Requires: %{name}%{?isa} = %{version}-%{release}
|
|
|
|
Requires: clang-resource-filesystem%{?isa} = %{version}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_libomp}-devel
|
|
|
|
OpenMP header files.
|
2024-05-10 05:56:12 +00:00
|
|
|
URL: http://openmp.llvm.org
|
|
|
|
|
2023-10-12 09:15:14 +00:00
|
|
|
#endregion
|
2024-05-03 11:12:47 +00:00
|
|
|
|
|
|
|
#region LLD packages
|
|
|
|
|
|
|
|
%package -n %{pkg_name_lld}
|
|
|
|
Summary: The LLVM Linker
|
|
|
|
|
|
|
|
Requires(post): %{_sbindir}/update-alternatives
|
|
|
|
Requires(preun): %{_sbindir}/update-alternatives
|
|
|
|
|
|
|
|
Requires: %{pkg_name_lld}-libs = %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_lld}
|
|
|
|
The LLVM project linker.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_lld}-devel
|
|
|
|
Summary: Libraries and header files for LLD
|
|
|
|
Requires: %{pkg_name_lld}-libs%{?_isa} = %{version}-%{release}
|
|
|
|
%if %{without compat_build}
|
|
|
|
# lld tools are referenced in the cmake files, so we need to add lld as a
|
|
|
|
# dependency.
|
|
|
|
Requires: %{pkg_name_lld}%{?_isa} = %{version}-%{release}
|
|
|
|
%endif
|
2024-07-25 12:10:51 +00:00
|
|
|
Provides: lld-devel(major) = %{maj_ver}
|
2024-05-03 11:12:47 +00:00
|
|
|
|
|
|
|
%description -n %{pkg_name_lld}-devel
|
|
|
|
This package contains library and header files needed to develop new native
|
|
|
|
programs that use the LLD infrastructure.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_lld}-libs
|
|
|
|
Summary: LLD shared libraries
|
|
|
|
|
|
|
|
%description -n %{pkg_name_lld}-libs
|
|
|
|
Shared libraries for LLD.
|
|
|
|
|
|
|
|
#endregion
|
2024-07-01 11:30:45 +00:00
|
|
|
|
2024-07-02 12:39:32 +00:00
|
|
|
#region Toolset package
|
|
|
|
%if 0%{?rhel}
|
|
|
|
%package -n %{pkg_name_llvm}-toolset
|
|
|
|
Summary: Package that installs llvm-toolset
|
|
|
|
Requires: clang = %{version}
|
|
|
|
Requires: llvm = %{version}
|
|
|
|
Requires: lld = %{version}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_llvm}-toolset
|
|
|
|
This is the main package for llvm-toolset.
|
|
|
|
%endif
|
|
|
|
#endregion
|
|
|
|
|
2024-07-01 11:30:45 +00:00
|
|
|
#region LLDB packages
|
2024-07-30 14:59:07 +00:00
|
|
|
%if %{with lldb}
|
2024-07-01 11:30:45 +00:00
|
|
|
%package -n %{pkg_name_lldb}
|
|
|
|
Summary: Next generation high-performance debugger
|
|
|
|
License: Apache-2.0 WITH LLVM-exception OR NCSA
|
|
|
|
URL: http://lldb.llvm.org/
|
|
|
|
|
2024-07-16 14:14:11 +00:00
|
|
|
Requires: python%{python3_pkgversion}-lldb
|
2024-07-01 11:30:45 +00:00
|
|
|
|
|
|
|
%description -n %{pkg_name_lldb}
|
|
|
|
LLDB is a next generation, high-performance debugger. It is built as a set
|
|
|
|
of reusable components which highly leverage existing libraries in the
|
|
|
|
larger LLVM Project, such as the Clang expression parser and LLVM
|
|
|
|
disassembler.
|
|
|
|
|
|
|
|
%package -n %{pkg_name_lldb}-devel
|
|
|
|
Summary: Development header files for LLDB
|
|
|
|
Requires: %{pkg_name_lldb}%{?_isa} = %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n %{pkg_name_lldb}-devel
|
|
|
|
The package contains header files for the LLDB debugger.
|
|
|
|
|
2024-07-16 14:14:11 +00:00
|
|
|
%package -n python%{python3_pkgversion}-lldb
|
|
|
|
%{?python_provide:%python_provide python%{python3_pkgversion}-lldb}
|
2024-07-01 11:30:45 +00:00
|
|
|
Summary: Python module for LLDB
|
2024-07-02 21:15:43 +00:00
|
|
|
|
2024-07-16 14:14:11 +00:00
|
|
|
Requires: python%{python3_pkgversion}-six
|
2024-07-01 11:30:45 +00:00
|
|
|
Requires: %{pkg_name_lldb}%{?_isa} = %{version}-%{release}
|
|
|
|
|
2024-07-16 14:14:11 +00:00
|
|
|
%if 0%{?rhel} == 8
|
2024-08-02 07:32:13 +00:00
|
|
|
# Became python3.12-lldb in LLVM 20
|
|
|
|
Obsoletes: python3-lldb < 19.9
|
2024-07-16 14:14:11 +00:00
|
|
|
%endif
|
|
|
|
|
|
|
|
%description -n python%{python3_pkgversion}-lldb
|
2024-07-01 11:30:45 +00:00
|
|
|
The package contains the LLDB Python module.
|
2024-07-30 14:59:07 +00:00
|
|
|
%endif
|
2024-07-01 11:30:45 +00:00
|
|
|
#endregion
|