Path to this page:
Subject: CVS commit: pkgsrc/devel/mold
From: Frederic Cambus
Date: 2022-04-15 18:30:37
Message id: 20220415163037.7A641FB24@cvs.NetBSD.org
Log Message:
mold: update to 1.2.0.
mold 1.2.0 is a new release of the high-speed linker. The highlight of this
release is the 32-bit ARM support. We also added other features, and as
always, we fixed many bugs and compatibility issues in this release.
New features:
- The ARM32 target is now supported.
- --gdb-index is implemented. If this option is given, mold creates an
.gdb_index section in an output file to speed up GNU debugger. Users have
to compile their object files with -ggnu-pubnames to use this flag. mold
used to ignore --gdb-index. (a7475dd)
- mold now supports the following flags: --start-address, -Tbss, -Tdata,
-Ttext, --oformat=binary, --disable-new-dtags
Deprecated features:
- An experimental, mold-specific --preload flag has been marked as
deprecated. It's still usable, but a warning message will be displayed
if that flag is given.
Bug fixes and compatibility improvements:
- -dy and -dn are now accepted as aliases for -Bdynamic and -Bstatic,
respectively. (82e8072)
- -static-pie now works with older versions of glibc thanks to a few bug
fixes. (3d68824, 0884f27)
- Issues found by UndefinedBehaviorSanizer, AddressSanitizer and
ThreadSanitizer are fixed. (bf26753, f4753b3, e1e4e9f)
- mold used to place sections with very large section alignment
requirements to wrong places in an output file. That caused a mysterious
crash of a produced binary (#405). That bug was most noticeable when
Nvidia-provided object files are given because they tend to contain such
sections. This bug has been fixed. (100922b)
- .ctors and .dtors sections are now recognized by mold, and their contents
are sorted with a special rule. This shouldn't affect most build
environments because these sections have been superseded by .init_array
and .fini_array sections a long time ago. But it looks like some old
i386 compilers are still using .ctors and .dtors. (392781a)
- For a non-position-independent executable, we have to make address-taken
PLT entries as "canonical". Marking all PLT entries canonical should be
harmless in theory, so we did so. However, some programs, notably Qt
library, assume that non-address-taken PLTs can never be canonical
(#352). For the sake of compatibility with such programs, we now make
PLTs canonical only when their addresses are taken. (e0bc74a)
- mold now defines _TLS_MODULE_BASE_ symbol. A reference to this symbol
can occur if -mtls-dialect=gnu2 is given to a compiler. The flag tells
the compiler to use TLSDESC mechanism instead of the regular TLS access
mechanism to access thread-local variables. (5feab82)
- libbacktrace sometimes fail to read compressed debug sections in
mold-generated files due to a bug. We not only fix that libbacktrace's
bug (ianlancetaylor/libbacktrace#87) but also implemented a workaround
to mold (ba63479) so that mold works with older versions of libbacktrace.
- [ARM64] mold now recognizes R_AARCH64_LD_PREL_LO19 relocation. (146ddd7)
- [RISCV64] The correct semantics of R_RISCV_ALIGN is implemented.
(0daf623)
Files: