From a7ccbacfa78e86ae654f6f9003917a35e1309270e283d10e350986396e7c6f73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Wed, 19 Oct 2022 08:20:49 +0000 Subject: [PATCH 1/2] - Update to version 1.6.0 * [ppc64] mold now supports the original 64-bit big-endian PowerPC ABI (which is also known as PPC64 ELFv1 or just ppc64), so that you can build applications for older PPC64 systems with mold. Note that this should not be confused with the modern PPC64 ELFv2 ABI (which is also known as ppc64le), which is already supported by mold. * [s390x] Linux/s390x is now supported. Linux/s390x is the Linux environment running on IBM z/Architecture mainframes. I've personally never seen a mainframe, but we wanted to support it because many Linux distros actively support that target, which in turn means there are many enterprise users who are using IBM mainframes. Speaking of the porting effort, we do not only port our linker to s390x but also found a couple of issues with the existing GCC toolchain for s390x. So, we are improving the whole IBM mainframe ecosystem! * mold now creates smaller output files. It is most noticeable on targets with large page sizes such as PPC64 (on which the common page size is 64 KiB), but even on x86-64, it should save a few kilobytes per an output file. * [arm64] mold can now link executables with -static-pie. Previously, executables linked with that flag crashed immediately. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/mold?expand=0&rev=73 --- mold-1.5.1.tar.gz | 3 --- mold-1.6.0.tar.gz | 3 +++ mold.changes | 22 +++++++++++++++++++++ mold.spec | 49 ++++++++++++++--------------------------------- 4 files changed, 39 insertions(+), 38 deletions(-) delete mode 100644 mold-1.5.1.tar.gz create mode 100644 mold-1.6.0.tar.gz diff --git a/mold-1.5.1.tar.gz b/mold-1.5.1.tar.gz deleted file mode 100644 index 9b9d77d..0000000 --- a/mold-1.5.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec94aa74758f1bc199a732af95c6304ec98292b87f2f4548ce8436a7c5b054a1 -size 8254552 diff --git a/mold-1.6.0.tar.gz b/mold-1.6.0.tar.gz new file mode 100644 index 0000000..b2cb523 --- /dev/null +++ b/mold-1.6.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59cd3ea1a2a5fb50d0d97faddd8bff4c7e71054a576c00a87b17f56ecbd88729 +size 8270834 diff --git a/mold.changes b/mold.changes index 4c4e87c..b9becbb 100644 --- a/mold.changes +++ b/mold.changes @@ -1,3 +1,25 @@ +------------------------------------------------------------------- +Wed Oct 19 08:20:22 UTC 2022 - Martin Liška + +- Update to version 1.6.0 + * [ppc64] mold now supports the original 64-bit big-endian PowerPC ABI (which is + also known as PPC64 ELFv1 or just ppc64), so that you can build applications for + older PPC64 systems with mold. Note that this should not be confused with the + modern PPC64 ELFv2 ABI (which is also known as ppc64le), which is already + supported by mold. + * [s390x] Linux/s390x is now supported. Linux/s390x is the Linux environment + running on IBM z/Architecture mainframes. I've personally never seen a + mainframe, but we wanted to support it because many Linux distros actively + support that target, which in turn means there are many enterprise users who are + using IBM mainframes. Speaking of the porting effort, we do not only port our + linker to s390x but also found a couple of issues with the existing GCC + toolchain for s390x. So, we are improving the whole IBM mainframe ecosystem! + * mold now creates smaller output files. It is most noticeable on targets with + large page sizes such as PPC64 (on which the common page size is 64 KiB), but + even on x86-64, it should save a few kilobytes per an output file. + * [arm64] mold can now link executables with -static-pie. Previously, executables + linked with that flag crashed immediately. + ------------------------------------------------------------------- Thu Sep 29 07:06:19 UTC 2022 - Martin Liška diff --git a/mold.spec b/mold.spec index 7e14e00..7b8af75 100644 --- a/mold.spec +++ b/mold.spec @@ -17,17 +17,16 @@ Name: mold -Version: 1.5.1 +Version: 1.6.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 ppc64le BuildRequires: cmake %if %{suse_version} < 1550 -BuildRequires: gcc10-c++ +BuildRequires: gcc11-c++ %else # These libraries are not present for openSUSE Leap BuildRequires: gcc-c++ @@ -44,16 +43,17 @@ BuildRequires: gdb BuildRequires: glibc-devel-static BuildRequires: libzstd-devel BuildRequires: openssl-devel +%ifnarch ppc64 BuildRequires: valgrind -BuildRequires: xxhash-devel +%endif BuildRequires: zlib-devel BuildRequires: zstd PreReq: update-alternatives %if %{suse_version} < 1550 -%define build_args STRIP=true SYSTEM_XXHASH=1 USE_MIMALLOC=0 SYSTEM_ZSTD=1 +%define build_args -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_MIMALLOC=OFF %else -%define build_args STRIP=true SYSTEM_TBB=1 SYSTEM_XXHASH=1 USE_MIMALLOC=0 SYSTEM_ZSTD=1 +%define build_args -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_SYSTEM_TBB=ON %endif %description @@ -68,42 +68,21 @@ build time especially in rapid debug-edit-rebuild cycles. %build %if %{suse_version} < 1550 -export CC=gcc-10 -export CXX=g++-10 +export CC=gcc-11 +export CXX=g++-11 %endif -export CXXFLAGS="%{optflags} -Wno-sign-compare" - -%make_build -e \ -CXXFLAGS="${CXXFLAGS}" \ -LDFLAGS="${CXXFLAGS}" \ -PREFIX=%{_prefix} \ -BINDIR=%{_bindir} \ -MANDIR=%{_mandir} \ -LIBDIR=%{_libdir} \ -LIBEXECDIR=%{_libexecdir} \ -%{build_args} +%cmake %{build_args} +%cmake_build %install -%make_install -e \ -PREFIX=%{_prefix} \ -BINDIR=%{_bindir} \ -MANDIR=%{_mandir} \ -LIBDIR=%{_libdir} \ -LIBEXECDIR=%{_libexecdir} \ -%{build_args} +%cmake_install %check %if %{suse_version} < 1550 -export TEST_CC=gcc-10 -export TEST_CXX=g++-10 +export TEST_CC=gcc-11 +export TEST_CXX=g++-11 %endif -%make_build test -k -e \ -PREFIX=%{_prefix} \ -BINDIR=%{_bindir} \ -MANDIR=%{_mandir} \ -LIBDIR=%{_libdir} \ -LIBEXECDIR=%{_libexecdir} \ -%{build_args} +%ctest %post "%_sbindir/update-alternatives" --install \ From 0547aa83250a76f6410586bdcc92b6dbf86f5110ffc1f97176046f95ab98041c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Li=C5=A1ka?= Date: Wed, 19 Oct 2022 11:06:46 +0000 Subject: [PATCH 2/2] - Exclude ppc architecture as it is not supported right now. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/mold?expand=0&rev=74 --- mold.changes | 1 + mold.spec | 1 + 2 files changed, 2 insertions(+) diff --git a/mold.changes b/mold.changes index b9becbb..6dbf57b 100644 --- a/mold.changes +++ b/mold.changes @@ -19,6 +19,7 @@ Wed Oct 19 08:20:22 UTC 2022 - Martin Liška even on x86-64, it should save a few kilobytes per an output file. * [arm64] mold can now link executables with -static-pie. Previously, executables linked with that flag crashed immediately. +- Exclude ppc architecture as it is not supported right now. ------------------------------------------------------------------- Thu Sep 29 07:06:19 UTC 2022 - Martin Liška diff --git a/mold.spec b/mold.spec index 7b8af75..880adbc 100644 --- a/mold.spec +++ b/mold.spec @@ -49,6 +49,7 @@ BuildRequires: valgrind BuildRequires: zlib-devel BuildRequires: zstd PreReq: update-alternatives +ExcludeArch: ppc %if %{suse_version} < 1550 %define build_args -DMOLD_USE_MIMALLOC=OFF -DMOLD_USE_MIMALLOC=OFF