diff --git a/mold-2.3.3.tar.gz b/mold-2.3.3.tar.gz deleted file mode 100644 index de6f62c..0000000 --- a/mold-2.3.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dcba90d5ee852ececb3a1a70110bb2d385079dcd1aa103e970296683c642f856 -size 9965345 diff --git a/mold-2.4.0.tar.gz b/mold-2.4.0.tar.gz new file mode 100644 index 0000000..58690d6 --- /dev/null +++ b/mold-2.4.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be65f3d785d32ece7b3204ecaa57810847fdd25c232cf704cbfff2dafb1ac107 +size 9974233 diff --git a/mold.changes b/mold.changes index fbab72b..6dbe668 100644 --- a/mold.changes +++ b/mold.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Thu Nov 30 05:33:24 UTC 2023 - Martin Liška + +- Update to version 2.4.0 + * mold gained the --spare-program-headers= 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 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 diff --git a/mold.spec b/mold.spec index 79eca0a..d8af0b4 100644 --- a/mold.spec +++ b/mold.spec @@ -17,7 +17,7 @@ Name: mold -Version: 2.3.3 +Version: 2.4.0 Release: 0 Summary: A Modern Linker (mold) License: MIT