Subject: CVS commit: pkgsrc/devel/mold
From: Kevin Bloom
Date: 2024-05-15 15:02:04
Message id: 20240515130204.DE882FA2C@cvs.NetBSD.org

Log Message:
mold: update to 2.31.0

Packaging changes:
- removed CMakeLists patch as it is no longer necessary

Upstream changes:
2.30.0 -> 2.30.1:
New Features:
- Up to 10% faster when linking very large, debug info-enabled
  executables
- `-z start-stop-visibility=hidden` is now supported so that
  linker-synthesized __start_<section-name> and
  __stop_<section-name> symbols can be completely hidden from other
  ELF modules.
- -Bsymbolic-non-weak and -Bsymbolic-non-weak-functions options
  are now supported for compatibility with LLVM lld. Just like lld,
  these options control which symbols are exported as dynamic
  symbols. -Bsymbolic-non-weak makes the linker to export only weak
  symbols, whereas -Bsymbolic-non-weak-functions makes it to export
  only weak function symbols.
Bug Fixes:
- if a linker script contains a newline character in the beginning
  four bytes of a file, it was not recognized as a linker script.
- the INPUT linker script command may have found a different file
  than GNU ld would
- Fixed the --repro option from produced corrupted tar files

https://github.com/rui314/mold/releases/tag/v2.30.1

2.4.1 -> 2.30.0:
Housekeeping:
- Version change to avoid GNU libtool from mistaking mold 2.4.1 for
  GNU ld 2.4.1
- Sections with unknown section types are now reported as errors.
Bug Fixes:
- Fixed having inserted an unnecessary gap before the .bss section in
  an output file, thereby creating an extra segment for it.
- Fixed failing with the "ConcurrentMap is full" error message if
  --gdb-index was used.
- Suppressed warnings for generating an excessive number of
  "ignoring .llvm_addrsig section without sh_link".

https://github.com/rui314/mold/releases/tag/v2.30.0

2.4.0 -> 2.4.1:
Bug Fixes:
- Fixed promoting weak dynamic symbols to strong ones under a rare
  circumstance, which caused "undefined symbol" error at runtime.
- If two or more VERSION clauses in a version script match to the
  same symbol, the first one took precedence. This was incompatible
  with GNU ld, which gives the last one the highest priority,
  causing a Qt library link failure
- By default, we demangle symbols in error messages so that they are
  easier to read. Previously, Rust symbols could accidentally be
  demangled as C++ symbols. Now, mold attempts to demangle symbols as
  Rust ones only for object files created by rustc

https://github.com/rui314/mold/releases/tag/v2.4.1

2.3.3 -> 2.4.0:
New Features:
- added the --spare-program-headers=<number> option
- `-z rewrite-endbr` option rewrites superflous endbr64 instructions
  with nop as a countermeasure against control-flow highjacking
  attacks.

Bug Fixes:
- Fixed not handling object files containing multiple .eh_frame
  sections
- `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.
- Fixed the production of non-working executables 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.
- Fixed possible assignment to a different symbol version to a symbol
- Recent versions of LLVM emit a machine code sequence for TLSDESC
  thread-local variables that would be mis-optimized.

https://github.com/rui314/mold/releases/tag/v2.4.0

Files:
RevisionActionfile
1.39modifypkgsrc/devel/mold/Makefile
1.33modifypkgsrc/devel/mold/distinfo
1.5removepkgsrc/devel/mold/patches/patch-CMakeLists.txt