- Update to version 1.5.0

* PPC64LE and SPARC64 are now supported as new targets. They haven't yet been as
    well tested as other targets, but they are already able to link mold itself on
    these platforms. (Note that PPC64LE is very unlikely to work on the most recent
    POWER10 machines as we didn't have a chance to test it due to a limited
    availability (POWER10 was released in 2021). If you can support us on this
    matter, please contact us. We also accept donations, so please consider
    supporting our project!)
  * RV32BE and RV64BE (32-bit and 64-bit big-endian RISC-V) are now supported as
    experimental targets. RISC-V is usually little-endian, but there exists a
    big-endian RISC-V as an extension. You can make gcc to emit code for big-endian
    RISC-V by passing -mbig-endian. mold can now link object files generated with
    that option.
  * --compress-debug-sections=zstd is now supported. This is an option to compress
    debug info embedded to an output file with Zstandard compression algorithm.
    Compared to the existing --compress-debug-sections=zlib, zstd is faster and
    gives a higher compression ratio. You probably can't start using zstd
    compression today though, because other tools such as gdb may not be able to
    read zstd-compressed debug info yet. But adding this option early makes mold
    future-proof. (ede7a5a)
  * mold no longer aligns loadable segments to page boundaries to reduce output file
    size. Previously, we allocated holes between loadable segments. The saving by
    this change is most visible for small programs. For example, a "hello world"
    program used to be ~18 KiB on x86-64. It's now 7.2 KiB. (2941d75)
  * Bug fixes and compatibility improvements
  * [RISCV] We optimized code so that the link speed for RISC-V is now comparable to
    the other targets. As an example, linking mold itself (~150 MiB in size) for
    RV64 used to take ~45 seconds on a simulated 16-core machine. It now takes only
    ~0.25 seconds. (3ab5489)
  * mold used to create more than one .rodata section under a certain condition.

OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/mold?expand=0&rev=69
This commit is contained in:
Martin Liška 2022-09-27 07:24:13 +00:00 committed by Git OBS Bridge
parent 90282e9437
commit ad6a7b88ad
4 changed files with 53 additions and 7 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:47e6c48d20f49e5b47dfb8197dd9ffcb11a8833d614f7a03bd29741c658a69cd
size 6287845

3
mold-1.5.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:55f67a0531cd357fa8c8aa16f9664954188f49537126e9bd35240846de3c3434
size 8256474

View File

@ -1,3 +1,47 @@
-------------------------------------------------------------------
Tue Sep 27 07:10:17 UTC 2022 - Martin Liška <mliska@suse.cz>
- Update to version 1.5.0
* PPC64LE and SPARC64 are now supported as new targets. They haven't yet been as
well tested as other targets, but they are already able to link mold itself on
these platforms. (Note that PPC64LE is very unlikely to work on the most recent
POWER10 machines as we didn't have a chance to test it due to a limited
availability (POWER10 was released in 2021). If you can support us on this
matter, please contact us. We also accept donations, so please consider
supporting our project!)
* RV32BE and RV64BE (32-bit and 64-bit big-endian RISC-V) are now supported as
experimental targets. RISC-V is usually little-endian, but there exists a
big-endian RISC-V as an extension. You can make gcc to emit code for big-endian
RISC-V by passing -mbig-endian. mold can now link object files generated with
that option.
* --compress-debug-sections=zstd is now supported. This is an option to compress
debug info embedded to an output file with Zstandard compression algorithm.
Compared to the existing --compress-debug-sections=zlib, zstd is faster and
gives a higher compression ratio. You probably can't start using zstd
compression today though, because other tools such as gdb may not be able to
read zstd-compressed debug info yet. But adding this option early makes mold
future-proof. (ede7a5a)
* mold no longer aligns loadable segments to page boundaries to reduce output file
size. Previously, we allocated holes between loadable segments. The saving by
this change is most visible for small programs. For example, a "hello world"
program used to be ~18 KiB on x86-64. It's now 7.2 KiB. (2941d75)
* Bug fixes and compatibility improvements
* [RISCV] We optimized code so that the link speed for RISC-V is now comparable to
the other targets. As an example, linking mold itself (~150 MiB in size) for
RV64 used to take ~45 seconds on a simulated 16-core machine. It now takes only
~0.25 seconds. (3ab5489)
* mold used to create more than one .rodata section under a certain condition.
It's not technically wrong but confused Valgrind. This issue has been resolved.
(25c7aee)
* [ARM32] Previously, mold failed to promote remaining undefined symbols to
dynamic symbols if symbols are undefined weak. That caused a link failure for
libxml (#660). This issue has been resolved. (72e26d9)
* mold didn't copy symbol types when creating symbol aliases for the --defsym
option. (8c7f31c)
* --compress-debug-sections=zlib-gnu has been removed. LLVM lld removed that
option too as there seems to be no usage of the flag.
- Enable ppc64le and use system zstd library as package dependency.
-------------------------------------------------------------------
Sun Sep 4 06:29:52 UTC 2022 - Martin Liška <mliska@suse.cz>

View File

@ -17,14 +17,14 @@
Name: mold
Version: 1.4.2
Version: 1.5.0
Release: 0
Summary: A Modern Linker (mold)
License: AGPL-3.0-or-later
Group: Development/Tools/Building
URL: https://github.com/rui314/mold
Source: https://github.com/rui314/mold/archive/v%{version}/mold-%{version}.tar.gz
ExclusiveArch: aarch64 %arm %ix86 x86_64 aarch64 riscv64
ExclusiveArch: aarch64 %arm %ix86 x86_64 aarch64 riscv64 ppc64le
BuildRequires: cmake
%if %{suse_version} < 1550
BuildRequires: gcc10-c++
@ -42,16 +42,18 @@ BuildRequires: gcc-32bit
%endif
BuildRequires: gdb
BuildRequires: glibc-devel-static
BuildRequires: libzstd-devel
BuildRequires: openssl-devel
BuildRequires: valgrind
BuildRequires: xxhash-devel
BuildRequires: zlib-devel
BuildRequires: zstd
PreReq: update-alternatives
%if %{suse_version} < 1550
%define build_args STRIP=true SYSTEM_XXHASH=1 USE_MIMALLOC=0
%define build_args STRIP=true SYSTEM_XXHASH=1 USE_MIMALLOC=0 SYSTEM_ZSTD=1
%else
%define build_args STRIP=true SYSTEM_TBB=1 SYSTEM_XXHASH=1 USE_MIMALLOC=0
%define build_args STRIP=true SYSTEM_TBB=1 SYSTEM_XXHASH=1 USE_MIMALLOC=0 SYSTEM_ZSTD=1
%endif
%description