@@ -26,15 +26,21 @@ Non-comprehensive list of changes in this release
26
26
ELF Improvements
27
27
----------------
28
28
29
+ * ``EI_OSABI `` in the output is now inferred from input object files.
30
+ (`#97144 <https://github.com/llvm/llvm-project/pull/97144 >`_)
29
31
* ``--compress-sections <section-glib>={none,zlib,zstd}[:level] `` is added to compress
30
32
matched output sections without the ``SHF_ALLOC `` flag.
31
33
(`#84855 <https://github.com/llvm/llvm-project/pull/84855 >`_)
32
34
(`#90567 <https://github.com/llvm/llvm-project/pull/90567 >`_)
33
35
* The default compression level for zlib is now independent of linker
34
36
optimization level (``Z_BEST_SPEED ``).
37
+ * zstd compression parallelism no longer requires ``ZSTD_MULITHREAD `` build.
35
38
* ``GNU_PROPERTY_AARCH64_FEATURE_PAUTH `` notes, ``R_AARCH64_AUTH_ABS64 `` and
36
39
``R_AARCH64_AUTH_RELATIVE `` relocations are now supported.
37
40
(`#72714 <https://github.com/llvm/llvm-project/pull/72714 >`_)
41
+ * ``--no-allow-shlib-undefined `` now rejects non-exported definitions in the
42
+ ``def-hidden.so ref.so `` case.
43
+ (`#86777 <https://github.com/llvm/llvm-project/issues/86777 >`_)
38
44
* ``--debug-names `` is added to create a merged ``.debug_names `` index
39
45
from input ``.debug_names `` sections. Type units are not handled yet.
40
46
(`#86508 <https://github.com/llvm/llvm-project/pull/86508 >`_)
@@ -44,13 +50,40 @@ ELF Improvements
44
50
(typical for embedded). It also makes full LTO feasible in such cases, since
45
51
IR merging currently prevents the linker script from referring to input
46
52
files. (`#90007 <https://github.com/llvm/llvm-project/pull/90007 >`_)
53
+ * ``--default-script`/ ``-dT`` is implemented to specify a default script that is processed
54
+ if ``--script ``/``-T `` is not specified.
55
+ (`#89327 <https://github.com/llvm/llvm-project/pull/89327 >`_)
47
56
* ``--force-group-allocation `` is implemented to discard ``SHT_GROUP `` sections
48
57
and combine relocation sections if their relocated section group members are
49
58
placed to the same output section.
50
59
(`#94704 <https://github.com/llvm/llvm-project/pull/94704 >`_)
51
60
* ``--build-id `` now defaults to generating a 20-byte digest ("sha1") instead
52
61
of 8-byte ("fast"). This improves compatibility with RPM packaging tools.
53
62
(`#93943 <https://github.com/llvm/llvm-project/pull/93943 >`_)
63
+ * ``-z lrodata-after-bss `` is implemented to place ``.lrodata `` after ``.bss ``.
64
+ (`#81224 <https://github.com/llvm/llvm-project/pull/81224 >`_)
65
+ * ``--export-dynamic `` no longer creates dynamic sections for ``-no-pie `` static linking.
66
+ * ``--lto-emit-asm `` is now added as the canonical spelling of ``--plugin-opt=emit-llvm ``.
67
+ * ``--lto-emit-llvm `` now uses the pre-codegen module.
68
+ (`#97480 <https://github.com/llvm/llvm-project/pull/97480 >`_)
69
+ * When AArch64 PAuth is enabled, ``-z pack-relative-relocs `` now encodes ``R_AARCH64_AUTH_RELATIVE `` relocations in ``.rela.auth.dyn ``.
70
+ (`#96496 <https://github.com/llvm/llvm-project/pull/96496 >`_)
71
+ * ``-z gcs `` and ``-z gcs-report `` are now supported for AArch64 Guarded Control Stack extension.
72
+ * ``-r `` now forces ``-Bstatic ``.
73
+ * Thumb2 PLT is now supported for Cortex-M processors.
74
+ (`#93644 <https://github.com/llvm/llvm-project/pull/93644 >`_)
75
+ * ``DW_EH_sdata4 `` of addresses larger than 0x80000000 is now supported for MIPS32.
76
+ (`#92438 <https://github.com/llvm/llvm-project/pull/92438 >`_)
77
+ * Certain unknown section types are rejected.
78
+ (`#85173 <https://github.com/llvm/llvm-project/pull/85173 >`_)
79
+ * ``PROVIDE(lhs = rhs) PROVIDE(rhs = ...) ``, ``lhs `` is now defined only if ``rhs `` is needed.
80
+ (`#74771 <https://github.com/llvm/llvm-project/issues/74771 >`_)
81
+ (`#87530 <https://github.com/llvm/llvm-project/pull/87530 >`_)
82
+ * Orphan placement is refined to prefer the last similar section when its rank <= orphan's rank.
83
+ (`#94099 <https://github.com/llvm/llvm-project/pull/94099 >`_)
84
+ Non-alloc orphan sections are now placed at the end.
85
+ (`#94519 <https://github.com/llvm/llvm-project/pull/94519 >`_)
86
+ * R_X86_64_REX_GOTPCRELX of the addq form is no longer incorrectly optimized when the address is larger than 0x80000000.
54
87
55
88
Breaking changes
56
89
----------------
0 commit comments