%bcond_without check %bcond_without toolchain_clang %if %{with toolchain_clang} %global toolchain clang %endif %global maj_ver 18 %global min_ver 1 %global patch_ver 8 %global _scl_prefix /opt/openEuler %{?scl:%scl_package %scl} %{!?scl:%global scl_prefix llvm-toolset-%{maj_ver}-} %{!?scl:%global pkg_name %{name}} %global install_prefix %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_prefix} %global install_datadir %{!?scl:%{_scl_prefix}/llvm-toolset-%{maj_ver}/root}%{_datadir} %global install_bindir %{install_prefix}/bin %if 0%{?__isa_bits} == 64 %global install_libdir %{install_prefix}/lib64 %else %global install_libdir %{install_prefix}/lib %endif %global install_includedir %{install_prefix}/include # Don't include unittests in automatic generation of provides or requires. %global __provides_exclude_from ^%{_libdir}/lld/.*$ %global __requires_exclude ^libgtest.*$ # Disable LTO as this causes crash if gcc lto enabled. %define _lto_cflags %{nil} Name: %{?scl_prefix}lld Version: %{maj_ver}.%{min_ver}.%{patch_ver} Release: 1 Summary: The LLVM Linker License: NCSA URL: http://llvm.org Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{version}/lld-%{version}.src.tar.xz Patch1: fedora-PATCH-lld-Import-compact_unwind_encoding.h-from-libu.patch BuildRequires: clang BuildRequires: cmake BuildRequires: %{?scl_prefix}llvm-devel = %{version} BuildRequires: %{?scl_prefix}llvm-googletest = %{version} BuildRequires: %{?scl_prefix}llvm-test = %{version} BuildRequires: %{?scl_prefix}llvm-cmake-utils = %{version} BuildRequires: ncurses-devel BuildRequires: ninja-build BuildRequires: python3-rpm-macros BuildRequires: python3-lit >= %{version} BuildRequires: zlib-devel Requires(post): %{_sbindir}/update-alternatives Requires(preun): %{_sbindir}/update-alternatives Requires: %{pkg_name}-libs = %{version}-%{release} %description The LLVM project linker. %package devel Summary: Libraries and header files for LLD Requires: %{pkg_name}-libs%{?_isa} = %{version}-%{release} %description devel This package contains library and header files needed to develop new native programs that use the LLD infrastructure. %package libs Summary: LLD shared libraries %description libs Shared libraries for LLD. %prep %autosetup -n lld-%{version}.src -p2 %build mkdir -p _build cd _build %cmake .. -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=%{install_prefix} \ -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ -DLLVM_DYLIB_COMPONENTS="all" \ -DCMAKE_SKIP_RPATH:BOOL=ON \ -DPYTHON_EXECUTABLE=%{__python3} \ -DLLVM_INCLUDE_TESTS=ON \ -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \ -DLLVM_LIT_ARGS="-sv \ --path %{install_prefix}" \ -DLLVM_COMMON_CMAKE_UTILS=%{install_datadir}/llvm/cmake \ %if "%{toolchain}" == "clang" -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ %endif -DLLVM_MAIN_SRC_DIR=%{install_prefix}/src %ninja_build %install %ninja_install -C _build rm %{buildroot}%{install_includedir}/mach-o/compact_unwind_encoding.h %check %if %{with check} %ninja_build check-lld -C _build %endif %files %license LICENSE.TXT %{install_bindir}/* %files devel %{install_includedir}/lld %{install_libdir}/liblld*.so %{install_libdir}/cmake/lld/ %files libs %{install_libdir}/liblld*.so.* %changelog * Fri Dec 6 2024 liyunfei - 18.1.8-1 - init for Multi-Version LLVM-18.1.8 * Tue Nov 12 2024 Funda Wang - 17.0.6-8 - fix check section * Mon Nov 11 2024 Funda Wang - 17.0.6-7 - adopt to new cmake macro * Mon Sep 23 2024 zhanglimin - 17.0.6-6 - [LoongArch] Backport the support for call36 and extreme model relocs. * Tue Jul 30 2024 liyunfei - 17.0.6-5 - Disable toolchain_clang build for BiSheng Autotuner support temporary. * Tue Jul 16 2024 liyunfei - 17.0.6-4 - Add BiSheng Autotuner support. * Fri Jul 5 2024 liyunfei - 17.0.6-3 - Add toolchain_clang build support * Mon Mar 25 2024 zhanglimin - 17.0.6-2 - Supoort `relax` feature on LoongArch * Fri Dec 1 2023 zhoujing - 17.0.6-1 - Update to 17.0.6 * Thu May 25 2023 cf-zhao - 12.0.1-1 - Package init