481c78feb0
This should make it easier to analyze which parts of the build are slow. The new package is only available in snapshot builds, we don't want to ship it in production.
347 lines
10 KiB
PHP
347 lines
10 KiB
PHP
#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
|
|
# 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}
|
|
%if %{without compat_build}
|
|
Requires: %{pkg_name_llvm}-test%{?_isa} = %{version}-%{release}
|
|
Requires: %{pkg_name_llvm}-googletest%{?_isa} = %{version}-%{release}
|
|
%endif
|
|
|
|
|
|
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
|
|
BuildRequires: graphviz
|
|
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.
|
|
|
|
%if %{without compat_build}
|
|
|
|
%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.
|
|
|
|
%endif
|
|
|
|
%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
|
|
|
|
#endregion
|
|
|
|
#region CLANG packages
|
|
|
|
%package -n %{pkg_name_clang}
|
|
Summary: A C language family front-end for LLVM
|
|
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: perl-generators
|
|
|
|
# According to https://fedoraproject.org/wiki/Packaging:Emacs a package
|
|
# should BuildRequires: emacs if it packages emacs integration files.
|
|
BuildRequires: emacs
|
|
|
|
BuildRequires: libatomic
|
|
|
|
%if %{without compat_build}
|
|
# For reproducible pyc file generation
|
|
# See https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_Appendix/#_byte_compilation_reproducibility
|
|
BuildRequires: /usr/bin/marshalparser
|
|
%global py_reproducible_pyc_path %{buildroot}%{python3_sitelib}
|
|
%endif
|
|
|
|
# scan-build uses these perl modules so they need to be installed in order
|
|
# to run the tests.
|
|
BuildRequires: perl(Digest::MD5)
|
|
BuildRequires: perl(File::Copy)
|
|
BuildRequires: perl(File::Find)
|
|
BuildRequires: perl(File::Path)
|
|
BuildRequires: perl(File::Temp)
|
|
BuildRequires: perl(FindBin)
|
|
BuildRequires: perl(Hash::Util)
|
|
BuildRequires: perl(lib)
|
|
BuildRequires: perl(Term::ANSIColor)
|
|
BuildRequires: perl(Text::ParseWords)
|
|
BuildRequires: perl(Sys::Hostname)
|
|
|
|
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}
|
|
Recommends: compiler-rt%{?_isa} = %{version}
|
|
# 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.
|
|
Recommends: libomp-devel%{_isa} = %{version}
|
|
Recommends: libomp%{_isa} = %{version}
|
|
|
|
%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}
|
|
%if %{without compat_build}
|
|
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}
|
|
%endif
|
|
|
|
%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
|
|
Provides: %{pkg_name_clang}-resource-filesystem(major) = %{maj_ver}
|
|
|
|
%description -n %{pkg_name_clang}-resource-filesystem
|
|
This package owns the clang resouce directory: $libdir/clang/$version/
|
|
|
|
%if %{without compat_build}
|
|
%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.
|
|
%package -n git-clang-format
|
|
Summary: Integration of clang-format for git
|
|
Requires: %{pkg_name_clang}-tools-extra = %{version}-%{release}
|
|
Requires: git
|
|
Requires: python3
|
|
|
|
%description -n git-clang-format
|
|
clang-format integration for git.
|
|
|
|
|
|
%package -n python3-clang
|
|
Summary: Python3 bindings for clang
|
|
Requires: %{pkg_name_clang}-devel%{?_isa} = %{version}-%{release}
|
|
Requires: python3
|
|
%description -n python3-clang
|
|
%{summary}.
|
|
|
|
|
|
%endif
|
|
|
|
#endregion
|
|
|
|
#region COMPILER-RT packages
|
|
|
|
%if %{without compat_build}
|
|
|
|
%package -n %{pkg_name_compiler_rt}
|
|
Summary: LLVM "compiler-rt" runtime libraries
|
|
|
|
License: Apache-2.0 WITH LLVM-exception OR NCSA OR MIT
|
|
|
|
BuildRequires: python3
|
|
|
|
Requires: clang-resource-filesystem%{?isa} = %{version}
|
|
|
|
%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.
|
|
|
|
%endif
|
|
|
|
#endregion
|
|
|
|
#region OPENMP packages
|
|
|
|
%if %{without compat_build}
|
|
|
|
%package -n %{pkg_name_libomp}
|
|
Summary: OpenMP runtime for clang
|
|
|
|
URL: http://openmp.llvm.org
|
|
|
|
# For clang-offload-packager
|
|
BuildRequires: elfutils-libelf-devel
|
|
BuildRequires: perl
|
|
BuildRequires: perl-Data-Dumper
|
|
BuildRequires: perl-Encode
|
|
BuildRequires: libffi-devel
|
|
|
|
Requires: elfutils-libelf%{?isa}
|
|
|
|
%description -n %{pkg_name_libomp}
|
|
OpenMP runtime for clang.
|
|
|
|
%package -n %{pkg_name_libomp}-devel
|
|
Summary: OpenMP header files
|
|
|
|
URL: http://openmp.llvm.org
|
|
|
|
Requires: %{name}%{?isa} = %{version}-%{release}
|
|
Requires: clang-resource-filesystem%{?isa} = %{version}
|
|
|
|
%description -n %{pkg_name_libomp}-devel
|
|
OpenMP header files.
|
|
URL: http://openmp.llvm.org
|
|
|
|
%endif
|
|
|
|
#endregion
|
|
|
|
#region LLD packages
|
|
|
|
%package -n %{pkg_name_lld}
|
|
Summary: The LLVM Linker
|
|
|
|
BuildRequires: clang
|
|
BuildRequires: cmake
|
|
BuildRequires: ninja-build
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: zlib-devel
|
|
|
|
# For make check:
|
|
BuildRequires: python3-rpm-macros
|
|
BuildRequires: python3-lit
|
|
|
|
# For gpg source verification
|
|
BuildRequires: gnupg2
|
|
|
|
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
|
|
Provides: %{pkg_name_lld}-devel(major) = %{maj_ver}
|
|
|
|
%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
|