diff --git a/mold-2.32.1.tar.gz b/mold-2.32.1.tar.gz deleted file mode 100644 index 6745dd5..0000000 --- a/mold-2.32.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f3c9a527d884c635834fe7d79b3de959b00783bf9446280ea274d996f0335825 -size 10010384 diff --git a/mold-2.33.0.tar.gz b/mold-2.33.0.tar.gz new file mode 100644 index 0000000..f6c237a --- /dev/null +++ b/mold-2.33.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37b3aacbd9b6accf581b92ba1a98ca418672ae330b78fe56ae542c2dcb10a155 +size 10061838 diff --git a/mold.changes b/mold.changes index e331664..e992058 100644 --- a/mold.changes +++ b/mold.changes @@ -1,3 +1,71 @@ +------------------------------------------------------------------- +Wed Aug 7 06:37:53 UTC 2024 - Martin Liška + +- Update to version 2.33.0 + * mold gained a new linker flag --separate-debug-info to bundle debug info + sections into a separate file instead of putting them into a main output file. + You can optionally specify a filename in the form of + --separate-debug-info=. By default, a debug info file is created in + the same directory as the main output file with the .dbg extension. mold embeds + the debug file's filename into the main output file so that gdb can + automatically follow the link to find debug info when debugging the main output + file. + + * The main objective of this flag is to speed up the mold linker even more. By + default, mold creates a separate debug file in the background after creating a + main output file, so that you can start running the executable as soon as + possible while mold is still working on linking its debug info sections. For + example, linking clang with debug info normally takes ~1.70s on a Threadripper + 7980X machine, while it takes only ~0.52s with --separate-debug-info. Shaving + off a full second in quick edit-rebuild-run cycles should improve programmers' + productivity. If you do not want mold to work in the background, pass the + --no-detach option. (596ffa9) + + * mold now supports the --no-allow-shlib-undefined flag. If the option is given, + mold checks if all undefined symbols are resolved not only for input object + files but also for shared libraries passed to the linker. To use the feature, + you need to pass all shared libraries, including transitively dependent ones, to + the linker so that the linker can resolve all symbols that are available at + runtime. (3001f02) + + * mold gained the --dynamic-list-data flag for the sake of compatibility with GNU + ld. If the flag is given, all data symbols are exported as dynamic symbols. + (dd8d971) + + * [x86-64] -z x86-64-v2, -z x86-64-v3, -z x86-64-v4 flags are supported. (5606087) + + * [x86-64] Recent x86-64 processors support Intel CET to protect control flow + integrity. When the feature is enabled, the instruction that is executed + immediately after an indirect branch must be endbr64 or a CPU fault will raise. + In other words, it restricts the locations where the control can transfer to + with indirect branches. Doing that makes ROP attacks harder to conduct. + + * A problem with that is the compiler needs to conservatively emit an endbr64 at + the beginning of each global function because the compiler doesn't know whether + or not the function's address is taken in other translation units. As a result, + the resulting binary contains more endbr64s than necessary, weakening the + protection. + + * mold supports the -z rewrite-endbr option to conduct a whole program analysis + and rewrite endbr64 with nop if a function's address is not actually taken + within the program. Previously, mold didn't take section symbols into account + when conducting the analysis, which resulted in culling some endbr64s that must + not be removed. Now, the bug has been fixed. We confirmed that mold can build + itself with -z rewrite-endbr, and the resulting mold executable works fine with + Intel CET. (ed7eec5) + + * mold now creates a .eh_frame section even if it's empty. (14a4b05) + + * [LoongArch] The following relocations are now supported: R_LARCH_TLS_LE_HI20_R, + R_LARCH_TLS_LE_ADD_R, R_LARCH_TLS_LE_LO12_R, R_LARCH_CALL36, R_LARCH_RELAX + (36e5b4b, 98a7cff, 2c6f379) + + * [LoongArch] Some relaxations that reduce the section size are now supported. + (74b359f, 121f917) + + * [LoongArch] Range extension thunk support has been removed in favor of + R_LARCH_CALL36 relocations. (47c092a) + ------------------------------------------------------------------- Thu Jun 27 06:56:15 UTC 2024 - Martin Liška diff --git a/mold.spec b/mold.spec index e998c8e..da17cd3 100644 --- a/mold.spec +++ b/mold.spec @@ -17,7 +17,7 @@ Name: mold -Version: 2.32.1 +Version: 2.33.0 Release: 0 Summary: A Modern Linker (mold) License: MIT