Skip to content

[LLD] [docs] Add more release notes for COFF and MinGW #81977

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 16, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 45 additions & 3 deletions lld/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -82,34 +82,76 @@ COFF Improvements

* Added support for ``--time-trace`` and associated ``--time-trace-granularity``.
This generates a .json profile trace of the linker execution.
(`#68236 <https://github.com/llvm/llvm-project/pull/68236>`_)

* The ``-dependentloadflag`` option was implemented.
(`#71537 <https://github.com/llvm/llvm-project/pull/71537>`_)

* LLD now prefers library paths specified with ``-libpath:`` over the implicitly
detected toolchain paths.
(`#78039 <https://github.com/llvm/llvm-project/pull/78039>`_)

* Added new options ``-lldemit:llvm`` and ``-lldemit:asm`` for getting
the output of LTO compilation as LLVM bitcode or assembly.
(`#66964 <https://github.com/llvm/llvm-project/pull/66964>`_)
(`#67079 <https://github.com/llvm/llvm-project/pull/67079>`_)

* Added a new option ``-build-id`` for generating a ``.buildid`` section
when not generating a PDB. A new symbol ``__buildid`` is generated by
the linker, allowing code to reference the build ID of the binary.
(`#71433 <https://github.com/llvm/llvm-project/pull/71433>`_)
(`#74652 <https://github.com/llvm/llvm-project/pull/74652>`_)

* A new, LLD specific option, ``-lld-allow-duplicate-weak``, was added
for allowing duplicate weak symbols.
(`#68077 <https://github.com/llvm/llvm-project/pull/68077>`_)

* More correctly handle LTO of files that define ``__imp_`` prefixed dllimport
redirections.
(`#70777 <https://github.com/llvm/llvm-project/pull/70777>`_)
(`#71376 <https://github.com/llvm/llvm-project/pull/71376>`_)
(`#72989 <https://github.com/llvm/llvm-project/pull/72989>`_)

* Linking undefined references to weak symbols with LTO now works.
(`#70430 <https://github.com/llvm/llvm-project/pull/70430>`_)

* Use the ``SOURCE_DATE_EPOCH`` environment variable for the PE header and
debug directory timestamps, if neither the ``/Brepro`` nor ``/timestamp:``
options have been specified. This makes the linker output reproducible by
setting this environment variable.
(`#81326 <https://github.com/llvm/llvm-project/pull/81326>`_)

* Lots of incremental work towards supporting linking ARM64EC binaries.

MinGW Improvements
------------------

* Added support for many LTO and ThinLTO options (most LTO options supported
by the ELF driver, that are implemented by the COFF backend as well,
should be supported now).
(`D158412 <https://reviews.llvm.org/D158412>`_)
(`D158887 <https://reviews.llvm.org/D158887>`_)
(`#77387 <https://github.com/llvm/llvm-project/pull/77387>`_)
(`#81475 <https://github.com/llvm/llvm-project/pull/81475>`_)

* LLD no longer tries to autodetect and use library paths from MSVC/WinSDK
installations when run in MinGW mode; that mode of operation shouldn't
ever be needed in MinGW mode, and could be a source of unexpected
behaviours.
(`D144084 <https://reviews.llvm.org/D144084>`_)

* The ``--icf=safe`` option now works as expected; it was previously a no-op.

* More correctly handle LTO of files that define ``__imp_`` prefixed dllimport
redirections.
(`#70037 <https://github.com/llvm/llvm-project/pull/70037>`_)

* The strip flags ``-S`` and ``-s`` now can be used to strip out DWARF debug
info and symbol tables while emitting a PDB debug info file.
(`#75181 <https://github.com/llvm/llvm-project/pull/75181>`_)

* The option ``--dll`` is handled as an alias for the ``--shared`` option.
(`#68575 <https://github.com/llvm/llvm-project/pull/68575>`_)

* The option ``--sort-common`` is ignored now.
(`#66336 <https://github.com/llvm/llvm-project/pull/66336>`_)

MachO Improvements
------------------
Expand Down