[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