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:
commit
68da4f4c34
@ -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
3
mold-2.4.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:be65f3d785d32ece7b3204ecaa57810847fdd25c232cf704cbfff2dafb1ac107
|
||||
size 9974233
|
43
mold.changes
43
mold.changes
@ -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>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user