From ad6a7b88ad75eef4d920fd26db1795d6cd8291a2d4eb5f4a8163d3c6cf2a9aee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Tue, 27 Sep 2022 07:24:13 +0000 Subject: [PATCH] - 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 --- mold-1.4.2.tar.gz | 3 --- mold-1.5.0.tar.gz | 3 +++ mold.changes | 44 ++++++++++++++++++++++++++++++++++++++++++++ mold.spec | 10 ++++++---- 4 files changed, 53 insertions(+), 7 deletions(-) delete mode 100644 mold-1.4.2.tar.gz create mode 100644 mold-1.5.0.tar.gz diff --git a/mold-1.4.2.tar.gz b/mold-1.4.2.tar.gz deleted file mode 100644 index 9a00025..0000000 --- a/mold-1.4.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:47e6c48d20f49e5b47dfb8197dd9ffcb11a8833d614f7a03bd29741c658a69cd -size 6287845 diff --git a/mold-1.5.0.tar.gz b/mold-1.5.0.tar.gz new file mode 100644 index 0000000..3d411e1 --- /dev/null +++ b/mold-1.5.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55f67a0531cd357fa8c8aa16f9664954188f49537126e9bd35240846de3c3434 +size 8256474 diff --git a/mold.changes b/mold.changes index 3cbfb5a..27fd110 100644 --- a/mold.changes +++ b/mold.changes @@ -1,3 +1,47 @@ +------------------------------------------------------------------- +Tue Sep 27 07:10:17 UTC 2022 - Martin Liška + +- 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 diff --git a/mold.spec b/mold.spec index 042edc7..8dc821f 100644 --- a/mold.spec +++ b/mold.spec @@ -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