+#
+# Conditional build:
+%bcond_without tests # build without tests
+
Summary: mold: A Modern Linker
Name: mold
-Version: 1.2.0
+Version: 2.31.0
Release: 1
-License: GPL v3+
+License: MIT
Group: Development/Libraries
Source0: https://github.com/rui314/mold/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 6e9dba635bd3ed1d39a8fe6411a2005e
+# Source0-md5: fdfcddefc039071f5a7611c051a8f5ea
URL: https://github.com/rui314/mold
+BuildRequires: blake3-devel
+BuildRequires: cmake >= 3.14
+%{?with_tests:BuildRequires: glibc-static}
+%ifarch %{armv6} riscv64
+BuildRequires: libatomic-devel
+%endif
BuildRequires: libstdc++-devel >= 6:10
+%{?with_tests:BuildRequires: libstdc++-static >= 6:10}
BuildRequires: mimalloc-devel >= 1.7
-BuildRequires: openssl-devel
-BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 2.007
BuildRequires: tbb-devel >= 2021.3.0
BuildRequires: zlib-devel
+BuildRequires: zstd-devel
Requires: mimalloc >= 1.7
Requires: tbb >= 2021.3.0
-ExclusiveArch: %{ix86} %{x8664} %{arm} aarch64 riscv64
+ExclusiveArch: %{ix86} %{x8664} %{arm} aarch64 m68k ppc64 ppc64le riscv32 riscv64 s390x sparc64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
%{__rm} -r third-party/{mimalloc,tbb}
%build
-%{__make} \
- CC="%{__cc}" \
- CXX="%{__cxx}" \
- CFLAGS="%{rpmcppflags} %{rpmcflags}" \
- CXXFLAGS="%{rpmcppflags} %{rpmcxxflags}" \
- LDFLAGS="%{rpmldflags}" \
- SYSTEM_MIMALLOC=1 \
- SYSTEM_TBB=1 \
- PREFIX="%{_prefix}" \
- BINDIR="%{_bindir}" \
- LIBDIR="%{_libdir}" \
- MANDIR="%{_mandir}"
+%cmake -B build \
+ %{cmake_on_off tests BUILD_TESTING} \
+ -DMOLD_USE_MIMALLOC:BOOL=ON \
+ -DMOLD_USE_SYSTEM_MIMALLOC:BOOL=ON \
+ -DMOLD_USE_SYSTEM_TBB:BOOL=ON
+
+%{__make} -C build
+
+%if %{with tests}
+%{__make} -C build test
+%endif
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- D=$RPM_BUILD_ROOT \
- SYSTEM_MIMALLOC=1 \
- SYSTEM_TBB=1 \
- STRIP=: \
- PREFIX="%{_prefix}" \
- BINDIR="%{_bindir}" \
- LIBDIR="%{_libdir}" \
- MANDIR="%{_mandir}"
+%{__make} -C build install \
+ DESTDIR=$RPM_BUILD_ROOT
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(644,root,root,755)
-%doc CONTRIBUTING.md README.md docs/*.md
+%doc LICENSE README.md docs/*.md
%attr(755,root,root) %{_bindir}/ld.mold
-%attr(755,root,root) %{_bindir}/ld64.mold
%attr(755,root,root) %{_bindir}/mold
%dir %{_libdir}/mold
%attr(755,root,root) %{_libdir}/mold/mold-wrapper.so
%dir %{_libexecdir}/mold
%attr(755,root,root) %{_libexecdir}/mold/ld
%{_mandir}/man1/mold.1*
+%{_mandir}/man1/ld.mold.1*