diff options
author | Hans-Christian Noren Egtvedt <egtvedt@samfundet.no> | 2025-04-29 10:26:22 +0200 |
---|---|---|
committer | Chris Packham <judge.packham@gmail.com> | 2025-05-07 16:34:57 +1200 |
commit | 35c1e72f23cf240870dc2612a5149cd7152df993 (patch) | |
tree | 547cdb7fd44ba0d94eaf2d62384ab0f14b88a59e /config/libc | |
parent | cabc7a3578284c92457e1ad8d09fed3a7b70535b (diff) | |
download | crosstool-ng-35c1e72f23cf240870dc2612a5149cd7152df993.tar.gz crosstool-ng-35c1e72f23cf240870dc2612a5149cd7152df993.tar.bz2 crosstool-ng-35c1e72f23cf240870dc2612a5149cd7152df993.zip |
packages:mold: add version 2.38.1
Add newly released mold version 2.38.1 from upstream
https://github.com/rui314/mold
2.38.1
- Fixed a bug where mold could fail with a spurious mutually-recursive
.so detected error message when building an executable. This happened
if there was a circular dependency between shared libraries given to
the linker (i.e., libfoo.so depends on libbar.so and vice versa). Even
though libraries with circular dependencies are rare and a strong
indication of a bug in the original program's library layering, the
dynamic loader can load such libraries, and the linker shouldn't
reject them.
2.38.0
New Features
- The --audit and --depaudit options are now supported for compatibility
with GNU ld.
- Recent versions of LLVM support an alternative, experimental
relocation table format called CREL. mold can now read object files
containing CREL relocation tables.
- [ARM32][ARM64][PPC32][PPC64] The branch instruction ranges of RISC
processors are generally insufficient to support the medium code model
because their instructions are typically 32 bits long, which makes it
impossible to embed large immediate offsets. For example, ARM64’s
branch instruction can target only PC ± 128 MiB. If the branch target
is farther than that, the linker must emit a small piece of code—often
called a thunk or branch island—to extend the branch range.
Previously, mold created unnecessary range extension thunks for
symbols that had PLT entries. Now, mold does not create thunks unless
they are truly needed.
Bug Fixes and Compatibility Improvements
- Previously, --no-allow-shlib-undefined could cause a segmentation
fault due to an out-of-bounds array access. This has been fixed.
- --no-allow-shlib-undefined is enabled by default if the output type is
an executable (as opposed to a shared library) for compatibility with
other linkers.
- mold could report a spurious "duplicate symbol" error when performing
LTO. This bug has been fixed.
- In rare cases involving symbol versioning, mold mistakenly filtered
out necessary libraries specified with --as-needed. This bug has been
fixed.
- In rare cases involving symbol versioning, mold reported a spurious
"undefined symbol" error. This bug has been fixed.
- If the same symbol was defined with and without the default version
(e.g., if an object file defined both foo and foo@@VERSION), mold
mistakenly hid both symbols from the dynamic symbol table instead of
exporting the default one (e.g., foo@@VERSION). This bug has been
fixed.
Signed-off-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
Diffstat (limited to 'config/libc')
0 files changed, 0 insertions, 0 deletions