================
@@ -29,42 +29,195 @@ Non-comprehensive list of changes in this release
 ELF Improvements
 ----------------
 
-* ``--print-gc-sections=<file>`` prints garbage collection section listing to 
a file.
+* Added ``--print-gc-sections=<file>`` to redirect garbage collection section
+  listing to a file, avoiding contamination of stdout with other linker output.
   (`#159706 <https://github.com/llvm/llvm-project/pull/159706>`_)
+* Added ``VersionNode`` lexer state for better version script parsing.
+  This brings the lexer behavior closer to GNU ld.
+  (`#174530 <https://github.com/llvm/llvm-project/pull/174530>`_)
+* ``-r``/``--emit-relocs``: Fixed a crash when processing relocation sections
+  that are placed before their relocated sections.
+  (`#156354 <https://github.com/llvm/llvm-project/pull/156354>`_)
+* Unversioned undefined symbols now use version index 0, aligning with
+  GNU ld 2.46 behavior.
+  (`#168189 <https://github.com/llvm/llvm-project/pull/168189>`_)
+* ``.data.rel.ro.hot`` and ``.data.rel.ro.unlikely`` are now recognized as
+  RELRO sections, allowing profile-guided static data partitioning.
+  (`#148920 <https://github.com/llvm/llvm-project/pull/148920>`_)
+* DTLTO now supports archive members and bitcode members of thin archives.
+  (`#157043 <https://github.com/llvm/llvm-project/pull/157043>`_)
+  (`#149425 <https://github.com/llvm/llvm-project/pull/149425>`_)
+* For DTLTO, ``--thinlto-remote-compiler-prepend-arg=<arg>`` has been added to
+  prepend an argument to the remote compiler's command line.
+  (`#162456 <https://github.com/llvm/llvm-project/pull/162456>`_)
+* Balanced Partitioning (BP) section ordering now skips input sections with
+  null data, and filters out section symbols.
+  (`#149265 <https://github.com/llvm/llvm-project/pull/149265>`_)
+  (`#151685 <https://github.com/llvm/llvm-project/pull/151685>`_)
+* For AArch64, fixed a crash when using ``--fix-cortex-a53-843419`` with
+  synthetic sections and improved handling when patched code is far from
+  the short jump.
+  (`#170495 <https://github.com/llvm/llvm-project/pull/170495>`_)
+* For AArch64, added support for the ``R_AARCH64_FUNCINIT64`` dynamic
+  relocation type for relocating word-sized data using the return value
+  of a function.
+  (`#156564 <https://github.com/llvm/llvm-project/pull/156564>`_)
+* For AArch64, added support for the ``R_AARCH64_PATCHINST`` relocation type
+  to support deactivation symbols.
+  (`#133534 <https://github.com/llvm/llvm-project/pull/133534>`_)
+* For AArch64, added support for reading AArch64 Build Attributes and
+  converting them into GNU Properties.
+  (`#147970 <https://github.com/llvm/llvm-project/pull/147970>`_)
+* For ARM, fixed incorrect veneer generation for wraparound branches at
+  the high end of the 32-bit address space branching to the low end.
+  (`#165263 <https://github.com/llvm/llvm-project/pull/165263>`_)
+* For Hexagon, added range extension thunk support.
+  (`#111217 <https://github.com/llvm/llvm-project/pull/111217>`_)
+* For LoongArch, added GOT indirection to PC relative optimization in
+  normal or medium code model.
+  (`#123743 <https://github.com/llvm/llvm-project/pull/123743>`_)
+* For LoongArch, added support for relaxation during TLSDESC GD/LD to
+  IE/LE conversion to remove redundant NOPs.
+  (`#123730 <https://github.com/llvm/llvm-project/pull/123730>`_)
+* For LoongArch, the linker now checks that the relocation addend is zero
+  before applying relaxation to ``R_LARCH_GOT_PC_{HI20,LO12}``.
+  (`#151264 <https://github.com/llvm/llvm-project/pull/151264>`_)
+* For LoongArch, ``-r`` now synthesizes ``R_LARCH_ALIGN`` at input section
+  start to preserve alignment information.
+  (`#153935 <https://github.com/llvm/llvm-project/pull/153935>`_)
+* For RISC-V, added infrastructure for handling vendor-specific relocations.
+  (`#159987 <https://github.com/llvm/llvm-project/pull/159987>`_)
+* For RISC-V, added support for statically resolved vendor-specific 
relocations.
+  (`#169273 <https://github.com/llvm/llvm-project/pull/169273>`_)
+* For RISC-V, ``-r`` now synthesizes ``R_RISCV_ALIGN`` at input section start
+  to preserve alignment information during two-stage linking.
+  (`#151639 <https://github.com/llvm/llvm-project/pull/151639>`_)
 
 Breaking changes
 ----------------
 
 COFF Improvements
 -----------------
 
-* ``/fat-lto-objects`` addded to support FatLTO. Without ``/fat-lto-objects`` 
or with ``/fat-lto-objects:no``, LLD will link LLVM FatLTO objects using the 
relocatable object file.
+* Added ``/sectionlayout:@<file>`` to specify custom output section ordering.
+  (`#152779 <https://github.com/llvm/llvm-project/pull/152779>`_)
+* Added ``/nodbgdirmerge`` to emit the debug directory section in ``.cvinfo``
+  instead of merging it to ``.rdata``.
+  (`#159235 <https://github.com/llvm/llvm-project/pull/159235>`_)
+* Added ``/fat-lto-objects`` to support FatLTO.
   (`#165529 <https://github.com/llvm/llvm-project/pull/165529>`_)
-* ``/linkreprofullpathrsp`` prints the full path to each object passed to the 
link line to a file.
-  (`#174971 <https://github.com/llvm/llvm-project/pull/165449>`_)
-* ``-prefetch-inputs`` can improve link times by asynchronously loading input 
files in RAM.
-  This will dampen the effect of input file I/O latency on link times.
-  However this flag can have an adverse effect when linking a large number of 
inputs files, or if all
-  inputs do not fit in RAM at once. For those cases, linking might be a bit 
slower since the inputs
-  will be streamed into RAM upfront, only to be evicted later by swapping.
+* Added ``/linkreprofullpathrsp`` to print the full path to each object
+  passed to the link line to a file.
+  (`#174971 <https://github.com/llvm/llvm-project/pull/174971>`_)
+* Added CET flags: ``/cetcompatstrict``, ``/cetipvalidationrelaxed``,
+  ``/cetdynamicapisinproc``, and ``/hotpatchcompatible``.
+  (`#150761 <https://github.com/llvm/llvm-project/pull/150761>`_)
+* Added support for ARM64X same-address thunks.
+  (`#151255 <https://github.com/llvm/llvm-project/pull/151255>`_)
+* Added support for Integrated Distributed ThinLTO.
+  (`#148594 <https://github.com/llvm/llvm-project/pull/148594>`_)
+* Added ``-prefetch-inputs`` to improve link times by asynchronously
+  loading input files in RAM.
   (`#169224 <https://github.com/llvm/llvm-project/pull/169224>`_)
+* Added more ``--time-trace`` tags for ThinLTO linking.
+  (`#156471 <https://github.com/llvm/llvm-project/pull/156471>`_)
+* For DTLTO, ``/thinlto-remote-compiler-prepend-arg:<arg>`` has been added to
+  prepend an argument to the remote compiler's command line.
+  (`#162456 <https://github.com/llvm/llvm-project/pull/162456>`_)
+* ``/summary`` now works when ``/debug`` isn't provided.
+  (`#157476 <https://github.com/llvm/llvm-project/pull/157476>`_)
+* ``/summary`` now displays the size of all consumed inputs.
+  (`#157284 <https://github.com/llvm/llvm-project/pull/157284>`_)
+* Loop and SLP vectorize options are now passed to the LTO backend.
+  (`#173041 <https://github.com/llvm/llvm-project/pull/173041>`_)
+* Fixed implicit DLL entry point for MinGW.
+  (`#171680 <https://github.com/llvm/llvm-project/pull/171680>`_)
+* Fixed manifest UAC trustInfo namespace.
+  (`#165285 <https://github.com/llvm/llvm-project/pull/165285>`_)
+* Fixed AArch64 delayimport of sret arguments.
+  (`#163096 <https://github.com/llvm/llvm-project/pull/163096>`_)
+* Fixed tailMergeARM64 delayload thunk 128 MB range limitation.
+  (`#161844 <https://github.com/llvm/llvm-project/pull/161844>`_)
+* Fixed symbol names for import thunks.
+  (`#160694 <https://github.com/llvm/llvm-project/pull/160694>`_)
+* Deduplicate common chunks when linking COFF files.
+  (`#162553 <https://github.com/llvm/llvm-project/pull/162553>`_)
+* Aligned EC code ranges to page boundaries.
+  (`#168222 <https://github.com/llvm/llvm-project/pull/168222>`_)
+* Discard ``.llvmbc`` and ``.llvmcmd`` sections.
+  (`#150897 <https://github.com/llvm/llvm-project/pull/150897>`_)
+* Fixed resolving symbols with ``-alternatename`` when the target is undefined.
----------------
aganea wrote:

I would write `/alternatename` since that's how we usually refer to it. I 
prefer using slashes when it's an existing MSVC flag, or dashes when it's a 
LLD-specific flag.

https://github.com/llvm/llvm-project/pull/177088
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to