[packages/mold] up to 1.5.0
atler
atler at pld-linux.org
Wed Sep 28 00:42:45 CEST 2022
commit ffeb613bdb8b6deb939b13981522f38bc1064e18
Author: Jan Palus <atler at pld-linux.org>
Date: Wed Sep 28 00:41:51 2022 +0200
up to 1.5.0
- use cmake, make is scheduled for removal
absolute-install-paths.patch | 57 ++++++++++++++++++++++++++++++++++++++++++++
mold.spec | 50 +++++++++++++-------------------------
2 files changed, 74 insertions(+), 33 deletions(-)
---
diff --git a/mold.spec b/mold.spec
index 5606b9d..e57515f 100644
--- a/mold.spec
+++ b/mold.spec
@@ -4,13 +4,15 @@
Summary: mold: A Modern Linker
Name: mold
-Version: 1.4.2
+Version: 1.5.0
Release: 1
License: GPL v3+
Group: Development/Libraries
Source0: https://github.com/rui314/mold/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 3a9891b330789fe04fbcced05b5fffe2
+# Source0-md5: bd4e4d7c8430821d82773f723454cacd
+Patch0: absolute-install-paths.patch
URL: https://github.com/rui314/mold
+BuildRequires: cmake >= 3.13
%{?with_tests:BuildRequires: glibc-static}
%ifarch %{armv6} riscv64
BuildRequires: libatomic-devel
@@ -22,9 +24,10 @@ BuildRequires: openssl-devel
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 ppc64le riscv64 sparc64
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -36,47 +39,28 @@ especially in rapid debug-edit-rebuild cycles.
%prep
%setup -q
+%patch0 -p1
%{__rm} -r third-party/{mimalloc,tbb}
%build
-%{__make} \
- ARCH="%{_target_cpu}" \
- 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} check \
- MACHINE="%{_target_cpu}" \
- TEST_CC="%{__cc}" \
- TEST_GCC="%{__cc}" \
- TEST_CXX="%{__cxx}" \
- TEST_GXX="%{__cxx}" \
- SYSTEM_MIMALLOC=1 \
- SYSTEM_TBB=1
+%{__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
diff --git a/absolute-install-paths.patch b/absolute-install-paths.patch
new file mode 100644
index 0000000..baa5a42
--- /dev/null
+++ b/absolute-install-paths.patch
@@ -0,0 +1,57 @@
+From 9464a129603e79d921651f2e76e7f80264d1ed33 Mon Sep 17 00:00:00 2001
+From: Jan Palus <jpalus at fastmail.com>
+Date: Tue, 27 Sep 2022 23:48:07 +0200
+Subject: [PATCH] cmake: use unambiguously absolute paths for install
+ directories
+
+as per https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
+CMAKE_INSTALL_<dir> can be both relative and absolute. so far mold made
+assumption these are relative only, but handle both cases by using
+CMAKE_INSTALL_FULL_<dir> instead.
+
+Signed-off-by: Jan Palus <jpalus at fastmail.com>
+---
+ CMakeLists.txt | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index dcbfc2d5..80c201a9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,7 +13,7 @@ endif()
+ add_executable(mold)
+ target_compile_features(mold PRIVATE cxx_std_20)
+ target_compile_definitions(mold PRIVATE
+- "LIBDIR=\"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\"")
++ "LIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\"")
+ target_link_libraries(mold PRIVATE ${CMAKE_DL_LIBS})
+
+ if(NOT "${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
+@@ -291,17 +291,17 @@ if(NOT CMAKE_SKIP_INSTALL_RULES)
+ install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
+ install(FILES docs/mold.1 DESTINATION ${CMAKE_INSTALL_MANDIR}/man1/)
+ install(CODE "
+- set(DEST \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}\")
++ set(DEST \"\$ENV{DESTDIR}\")
+ file(RELATIVE_PATH RELPATH
+- /${CMAKE_INSTALL_LIBEXECDIR}/mold /${CMAKE_INSTALL_BINDIR}/mold)
++ /${CMAKE_INSTALL_FULL_LIBEXECDIR}/mold /${CMAKE_INSTALL_FULL_BINDIR}/mold)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
+- \${DEST}/${CMAKE_INSTALL_LIBEXECDIR}/mold)
++ \${DEST}/${CMAKE_INSTALL_FULL_LIBEXECDIR}/mold)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \${RELPATH}
+- \${DEST}/${CMAKE_INSTALL_LIBEXECDIR}/mold/ld)
++ \${DEST}/${CMAKE_INSTALL_FULL_LIBEXECDIR}/mold/ld)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mold
+- \${DEST}/${CMAKE_INSTALL_BINDIR}/ld.mold)
++ \${DEST}/${CMAKE_INSTALL_FULL_BINDIR}/ld.mold)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mold
+- \${DEST}/${CMAKE_INSTALL_BINDIR}/ld64.mold)
++ \${DEST}/${CMAKE_INSTALL_FULL_BINDIR}/ld64.mold)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink mold.1
+- \${DEST}/${CMAKE_INSTALL_MANDIR}/man1/ld.mold.1)")
++ \${DEST}/${CMAKE_INSTALL_FULL_MANDIR}/man1/ld.mold.1)")
+ endif()
+--
+2.37.3
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/mold.git/commitdiff/ffeb613bdb8b6deb939b13981522f38bc1064e18
More information about the pld-cvs-commit
mailing list