Accepting request 1129883 from devel:tools:compiler

- Update to version 2.4.0
  * mold gained the --spare-program-headers=<number> option, which adds a specified
    number of spare entries at the end of the program header. The option aims to
    make post-processing tools to add program header entries very easily. Note that
    sorting program header entries after adding new ones may be necessary to meet
    the constraints of the ELF file format. For details, see the elf(5) man page.
    (eb6c213)
  * mold's -z rewrite-endbr option rewrites superflous endbr64 instructions with nop
    as a countermeasure against control-flow highjacking attacks. Previously, this
    worked exclusively with object files compiled with -ffunction-sections,
    requiring each function to be compiled into a separate section. Starting from
    this release, -z rewrite-endbr works on object files compiled without it. In
    other words, mold is now capable of rewriting endbr64 instructions even if the
    instruction is not at the beginning of a section. (3cb8a52)
  * Previously, mold couldn't handle object files containing multiple .eh_frame
    sections. The .eh_frame is a section containing data for exception handling.
    Usually, an object file contains only one .eh_frame which describes how to
    handle exceptions for all text sections in the same file. However, on rare
    conditions, it seems ld -r creates an object file containing multiple .eh_frame
    sections. mold is now able to handle such object files. (f4c5a8a)
  * mold -run <command> is an easy way to run the given command with a virtual
    environment in which the ld command is replaced with mold. The feature is
    implemented using LD_PRELOAD to hook fork(2)-family functions. Before this
    release, some invocations of ld were not intercepted correctly because we missed
    the posix_spawnp(2) function. Now, the function is intercepted just like other
    fork(2)-family functions. (3fd1cec)
  * mold used to produce a non-working executable on a rare occasion when all
    thread-local variables lacked an initial value and the read-only data required
    alignment equal to or greater than the page size. This bug has been resolved.
    (de7d37e)

OBS-URL: https://build.opensuse.org/request/show/1129883
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mold?expand=0&rev=39
This commit is contained in:
Ana Guerrero 2023-11-30 21:01:31 +00:00 committed by Git OBS Bridge
commit 68da4f4c34
4 changed files with 47 additions and 4 deletions

View File

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

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

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

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Thu Nov 30 05:33:24 UTC 2023 - Martin Liška <martin.liska@hey.com>
- Update to version 2.4.0
* mold gained the --spare-program-headers=<number> option, which adds a specified
number of spare entries at the end of the program header. The option aims to
make post-processing tools to add program header entries very easily. Note that
sorting program header entries after adding new ones may be necessary to meet
the constraints of the ELF file format. For details, see the elf(5) man page.
(eb6c213)
* mold's -z rewrite-endbr option rewrites superflous endbr64 instructions with nop
as a countermeasure against control-flow highjacking attacks. Previously, this
worked exclusively with object files compiled with -ffunction-sections,
requiring each function to be compiled into a separate section. Starting from
this release, -z rewrite-endbr works on object files compiled without it. In
other words, mold is now capable of rewriting endbr64 instructions even if the
instruction is not at the beginning of a section. (3cb8a52)
* Previously, mold couldn't handle object files containing multiple .eh_frame
sections. The .eh_frame is a section containing data for exception handling.
Usually, an object file contains only one .eh_frame which describes how to
handle exceptions for all text sections in the same file. However, on rare
conditions, it seems ld -r creates an object file containing multiple .eh_frame
sections. mold is now able to handle such object files. (f4c5a8a)
* mold -run <command> is an easy way to run the given command with a virtual
environment in which the ld command is replaced with mold. The feature is
implemented using LD_PRELOAD to hook fork(2)-family functions. Before this
release, some invocations of ld were not intercepted correctly because we missed
the posix_spawnp(2) function. Now, the function is intercepted just like other
fork(2)-family functions. (3fd1cec)
* mold used to produce a non-working executable on a rare occasion when all
thread-local variables lacked an initial value and the read-only data required
alignment equal to or greater than the page size. This bug has been resolved.
(de7d37e)
* Previously, mold might assign a different symbol version to a symbol compared to
GNU ld if it matches both a wildcard pattern and an exact pattern in a version
script. Our behavior is now compatible with that of GNU ld. (0fdbace)
* [x86-64, i686] Recent versions of LLVM emit a machine code sequence for TLSDESC
thread-local variables that differs from GCC's, and mold previously
mis-optimized this sequence, leading to crashes in the linked programs. In other
words, if you are using LLVM/Clang and compile object files with
-mtls-dialect=gnu2, mold might mis-optimize the output file. Now, the bug has
been fixed. (000ce0e)
-------------------------------------------------------------------
Tue Nov 14 14:57:48 UTC 2023 - Martin Liška <martin.liska@hey.com>

View File

@ -17,7 +17,7 @@
Name: mold
Version: 2.3.3
Version: 2.4.0
Release: 0
Summary: A Modern Linker (mold)
License: MIT