2021-12-21 18:39:05 +00:00
|
|
|
#
|
|
|
|
# spec file for package mold
|
|
|
|
#
|
2022-01-04 18:37:29 +00:00
|
|
|
# Copyright (c) 2022 SUSE LLC
|
2021-12-21 18:39:05 +00:00
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
2022-01-04 18:37:29 +00:00
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
2021-12-21 18:39:05 +00:00
|
|
|
#
|
|
|
|
|
|
|
|
|
|
|
|
Name: mold
|
- Update to version 1.8.0
* The --relocatable (or -r) option has been reimplemented to improve its
performance and compatibility with the GNU linkers. That option tells the linker
to combine input object files into another object file instead of into an
executable or a shared library file. mold has been supporting the feature since
version 0.9, but until now the output file created with -r looked fairly
different from what GNU linkers would produce. GHC (Glasgow Haskell Compiler) in
particular uses re-linkable object files as dynamic libraries instead of real
.so files, and it didn't work with mold. Now, mold can produce object files that
GHC can load. Note that this work was funded by Mercury, so thanks to the
company to help us improve the product. (Yes, you can ask us to prioritize your
feature request by funding the project.) (c9a7ae7)
* --relocatable-merge-sections option has been added. By default, mold keeps
original input section names for the --relocatable output and therefore does not
merge input sections into a single output sections unless they are of the same
name. If --relocatable-merge-sections is given, mold merges input by the usual
default merging rule. For example, .text.foo and .text.bar are merged to .text
if and only if --relocatable-merge-sections is given for the --relocatable
output. (c2a0ae1)
* -z [no]dynamic-undefined-weak options have been added. This option controls
whether an undefined weak symbol is promoted to a dynamic symbol or not.
(ed235f3)
* --[no-]undefined-version options have been supported. Now, mold warns on a
symbol name in a version script if it does not match with any defined symbol.
This change was made so that it is easy to find a typo in a version script.
(e2d7353)
* mold now warns on symbol type mismatch. If two object files have the same symbol
with different symbol types, it usually means your program has a bug. Chances
are, you are using the same identifier as a function name in one translation
unit and as a global variable name in another. So it makes sense to warn on the
OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/mold?expand=0&rev=80
2022-12-27 09:53:39 +00:00
|
|
|
Version: 1.8.0
|
2021-12-21 18:39:05 +00:00
|
|
|
Release: 0
|
|
|
|
Summary: A Modern Linker (mold)
|
|
|
|
License: AGPL-3.0-or-later
|
2022-06-18 07:21:47 +00:00
|
|
|
Group: Development/Tools/Building
|
2022-01-04 18:37:29 +00:00
|
|
|
URL: https://github.com/rui314/mold
|
|
|
|
Source: https://github.com/rui314/mold/archive/v%{version}/mold-%{version}.tar.gz
|
2021-12-21 18:39:05 +00:00
|
|
|
BuildRequires: cmake
|
2022-02-24 12:49:12 +00:00
|
|
|
%if %{suse_version} < 1550
|
2022-10-19 08:20:49 +00:00
|
|
|
BuildRequires: gcc11-c++
|
2022-02-24 12:49:12 +00:00
|
|
|
%else
|
2022-02-24 12:50:20 +00:00
|
|
|
# These libraries are not present for openSUSE Leap
|
2021-12-21 18:39:05 +00:00
|
|
|
BuildRequires: gcc-c++
|
2022-04-20 06:51:04 +00:00
|
|
|
BuildRequires: clang
|
2022-04-19 07:21:49 +00:00
|
|
|
BuildRequires: libdwarf-tools
|
2022-04-21 14:24:10 +00:00
|
|
|
BuildRequires: llvm
|
2022-04-20 07:01:37 +00:00
|
|
|
BuildRequires: llvm-gold
|
2022-01-04 18:37:29 +00:00
|
|
|
BuildRequires: tbb-devel
|
2022-04-20 06:53:47 +00:00
|
|
|
%ifarch x86_64
|
2022-04-20 06:53:26 +00:00
|
|
|
BuildRequires: gcc-32bit
|
|
|
|
%endif
|
2022-02-24 12:49:12 +00:00
|
|
|
%endif
|
2022-04-28 12:50:42 +00:00
|
|
|
BuildRequires: gdb
|
2022-04-19 06:44:11 +00:00
|
|
|
BuildRequires: glibc-devel-static
|
2022-09-27 07:24:13 +00:00
|
|
|
BuildRequires: libzstd-devel
|
2022-02-24 12:49:12 +00:00
|
|
|
BuildRequires: openssl-devel
|
2022-10-19 08:20:49 +00:00
|
|
|
%ifnarch ppc64
|
2022-05-05 11:17:20 +00:00
|
|
|
BuildRequires: valgrind
|
2022-10-19 08:20:49 +00:00
|
|
|
%endif
|
2021-12-21 18:39:05 +00:00
|
|
|
BuildRequires: zlib-devel
|
2022-09-27 07:24:13 +00:00
|
|
|
BuildRequires: zstd
|
2021-12-21 18:39:05 +00:00
|
|
|
PreReq: update-alternatives
|
2022-10-19 11:06:46 +00:00
|
|
|
ExcludeArch: ppc
|
2021-12-21 18:39:05 +00:00
|
|
|
|
2022-02-24 12:49:12 +00:00
|
|
|
%if %{suse_version} < 1550
|
2022-10-19 08:20:49 +00:00
|
|
|
%define build_args -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_MIMALLOC=OFF
|
2022-02-24 12:49:12 +00:00
|
|
|
%else
|
2022-10-19 08:20:49 +00:00
|
|
|
%define build_args -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_SYSTEM_TBB=ON
|
2022-02-24 12:49:12 +00:00
|
|
|
%endif
|
2021-12-22 19:18:10 +00:00
|
|
|
|
2021-12-21 18:39:05 +00:00
|
|
|
%description
|
|
|
|
mold is a faster drop-in replacement for existing Unix linkers.
|
|
|
|
It is several times faster than LLVM lld linker, the second-fastest
|
|
|
|
open-source linker.
|
|
|
|
mold is created for increasing developer productivity by reducing
|
|
|
|
build time especially in rapid debug-edit-rebuild cycles.
|
|
|
|
|
|
|
|
%prep
|
2022-01-04 18:37:29 +00:00
|
|
|
%autosetup -p1
|
2021-12-21 18:39:05 +00:00
|
|
|
|
|
|
|
%build
|
2022-02-24 12:49:12 +00:00
|
|
|
%if %{suse_version} < 1550
|
2022-10-19 08:20:49 +00:00
|
|
|
export CC=gcc-11
|
|
|
|
export CXX=g++-11
|
2022-02-24 12:49:12 +00:00
|
|
|
%endif
|
2022-10-19 08:20:49 +00:00
|
|
|
%cmake %{build_args}
|
|
|
|
%cmake_build
|
2022-04-08 15:45:32 +00:00
|
|
|
|
2021-12-21 18:39:05 +00:00
|
|
|
%install
|
2022-10-19 08:20:49 +00:00
|
|
|
%cmake_install
|
2021-12-21 18:39:05 +00:00
|
|
|
|
2022-04-19 06:44:11 +00:00
|
|
|
%check
|
2022-05-13 09:31:45 +00:00
|
|
|
%if %{suse_version} < 1550
|
2022-10-19 08:20:49 +00:00
|
|
|
export TEST_CC=gcc-11
|
|
|
|
export TEST_CXX=g++-11
|
2022-05-13 09:31:45 +00:00
|
|
|
%endif
|
2022-10-19 08:20:49 +00:00
|
|
|
%ctest
|
2022-04-19 06:44:11 +00:00
|
|
|
|
2021-12-21 18:39:05 +00:00
|
|
|
%post
|
|
|
|
"%_sbindir/update-alternatives" --install \
|
|
|
|
"%_bindir/ld" ld "%_bindir/ld.mold" 1
|
|
|
|
|
|
|
|
%pre
|
|
|
|
if [ "$1" -gt 0 ] && [ -f %{_sbindir}/update-alternatives ] ; then
|
|
|
|
"%_sbindir/update-alternatives" --remove ld "%_bindir/ld.mold";
|
|
|
|
fi;
|
|
|
|
|
|
|
|
%postun
|
|
|
|
if [ ! -f %{_bindir}/lld ] ; then
|
|
|
|
"%{_sbindir}/update-alternatives" --remove ld "%{_bindir}/ld.mold"
|
|
|
|
fi
|
|
|
|
|
|
|
|
%files
|
|
|
|
%ghost %_sysconfdir/alternatives/ld
|
|
|
|
%{_bindir}/mold
|
|
|
|
%{_bindir}/ld.mold
|
|
|
|
%dir %{_libdir}/mold
|
2022-01-04 18:37:29 +00:00
|
|
|
%{_libexecdir}/mold/ld
|
|
|
|
%dir %{_libexecdir}/mold
|
2021-12-21 18:39:05 +00:00
|
|
|
%{_libdir}/mold/mold-wrapper.so
|
|
|
|
%{_mandir}/man1/mold.1.gz
|
2022-08-18 09:35:19 +00:00
|
|
|
%{_mandir}/man1/ld.mold.1.gz
|
|
|
|
%dir /usr/share/doc/mold
|
|
|
|
%doc /usr/share/doc/mold/LICENSE
|
2021-12-21 18:39:05 +00:00
|
|
|
|
|
|
|
%changelog
|