Commit Graph

8 Commits

Author SHA1 Message Date
Carsten Schuette
06b81f5d13 toolchain: mold: Update to 2.33.0
Update mold to 2.33.0
Link: https://github.com/rui314/mold/releases/tag/v2.33.0

Signed-off-by: Carsten Schuette <schuettecarsten@googlemail.com>
Link: https://github.com/openwrt/openwrt/pull/16048
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-08-08 17:19:43 +02:00
Sean Khan
d03b567b66 tools: mold: update to 2.31.0
New:
- mold is now up to 10% faster when linking very large, debug
  info-enabled executables such as Blender (~1.8 GiB) or Clang (~3.8
  GiB), thanks to several improvements we've made to the string merging
  algorithm. (53ebcd8, d714301, 40f6b17, c9faf3d)
- -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. Previously,
  only -z start-stop-visibility=protected was supported. (99a5b15)
- -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. (7d17aa8)

Bug fixes and compatibility improvements:

- Previously, if a linker script contains a newline character in the
  beginning four bytes of a file, it was not recognized as a linker
  script by mold. Now, mold allows newlines at the beginning of a file.
  (ea054cc)
- Under rare circumstances, the INPUT linker script command may have
  found a different file than GNU ld would. Now, mold's behavior aligns
  with GNU ld's. (163975d)
- Previously, the --repro option produced corrupted tar files. Now the
  bug has been fixed. (32c4a09)
- mold generally guarantees that its output is reproducible, meaning that
  if you run the linker with the exact same command line options and
  input files, the output is guaranteed to be bit-for-bit identical to
  the previous outputs. However, under rare circumstances, it might
  produce different output due to a bug. It's reported that this
  nondeterminism caused random crashes for some programs (). This
  bug has been fixed. (6463a7c)
- mold no longer sets the address of the .text section as the entry point
  address if --entry option is not given, just like LLVM lld. (020b1a7)
- [RISC-V] __global_pointer$ symbol is now exported from executables as
  required by the processor-specific ABI. (3df7c8e)
- [ARM32] --long-plt option is now recognized as known option by mold.
  mold ignores the option, though, because the PLTs generated by our
  linker is always long. (d432e98)

Release Notes:
https://github.com/rui314/mold/releases/tag/v2.31.0

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/15403
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-05-09 10:45:29 +02:00
Robert Marko
ac881ce59a tools: mold: update to 2.30.0
Release Notes:
https://github.com/rui314/mold/releases/tag/v2.3.3
https://github.com/rui314/mold/releases/tag/v2.4.0
https://github.com/rui314/mold/releases/tag/v2.4.1
https://github.com/rui314/mold/releases/tag/v2.30.0

Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-04-16 21:52:57 +02:00
Nick Hainke
8bc448eff5 tools/mold: update to 2.3.2
Release Notes:
https://github.com/rui314/mold/releases/tag/v2.3.2

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-12-04 13:24:50 +01:00
Andre Heider
997bbc8a94 tools: mold: update to v2.3.1
Release notes:
https://github.com/rui314/mold/releases/tag/v2.3.0
https://github.com/rui314/mold/releases/tag/v2.3.1

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-10-22 10:00:00 +02:00
Nick Hainke
f5e66b5fd9 tools/mold: update to 2.2.0
Release Notes:
https://github.com/rui314/mold/releases/tag/v2.2.0

Signed-off-by: Nick Hainke <vincent@systemli.org>
2023-10-14 08:01:24 +02:00
Andre Heider
dfdaa3630b tools: mold: update to 2.1.0
v2.0.0:
- transition from AGPL to MIT
- Previously, mold could not produce an object file with more than 65520
  sections using the --relocatable option. Now the bug has been fixed.
- mold now interprets -undefined as a synonym for --undefined instead of
  -u ndefined. This seems inconsistent, as -ufoo is generally treated as
  -u foo (which is an alias for --undefined foo), but this is the behavior
  of the GNU linkers and LLVM lld, so we prioritize compatibility over
  consistency.
- -nopie is now handled as a synonym for --no-pie.
- [RISC-V] R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 relocation types are
  now supported (4bffe26, 1ac5fe7)
- [PPC64] R_PPC64_REL32 relocation type is now supported. (ebd780e)

v2.1.0:

- Loongson's LoongArch CPU has been supported. (03b1a1c)
- -z nosectionheader has been added to eliminate section headers from the
  output file. (084ca55)
- Previously, linking with the -z pack-relative-relocs option produces an
  executable that glibc 2.38 refuses to run with DT_RELR without
  GLIBC_ABI_DT_RELR dependency error. Now, mold produces binaries compatible
  with glibc 2.38. (f467ad1)
- [ARM64] R_AARCH64_ADR_PREL_PG_HI21_NC relocation type has been supported.
  (17a5c3e)
- [ARM64] R_AARCH64_MOVW_UABS_G3 relocation type has now been handled as a
  PLT-generating relocation to fix an issue when main is not defined in the
  main executable but rather in a .so file. (e764557)
- [RISC-V] We now merge input .riscv.attributes contents. Previously, we
  just concatenated them. (aa64491)

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-08-14 20:14:49 +02:00
Andre Heider
b1fa9e3d2b
tools: add mold, a modern linker
mold is a faster drop-in replacement for existing Unix linkers.

A single binary is able to link various targets, which is why this lives
in tools/.

All toolchain builds then just need to copy the linker over, hence avoiding
multiple builds with the same outcome.

Signed-off-by: Andre Heider <a.heider@gmail.com>
2023-07-04 20:25:40 +02:00