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:
RevisionActionfile
1.11modifypkgsrc/devel/mold/Makefile
1.13modifypkgsrc/devel/mold/distinfo