@@ -28,43 +28,51 @@ ELF Improvements
28
28
* Added ``-z dynamic-undefined-weak `` to make undefined weak symbols dynamic
29
29
when the dynamic symbol table is present.
30
30
(`#143831 <https://github.com/llvm/llvm-project/pull/143831 >`_)
31
-
32
- * For AArch64, added support for ``-zgcs-report-dynamic ``, enabling checks for
33
- GNU GCS Attribute Flags in Dynamic Objects when GCS is enabled. Inherits value
34
- from ``-zgcs-report `` (capped at ``warning `` level) unless user-defined,
35
- ensuring compatibility with GNU ld linker.
36
-
37
- * The default Hexagon architecture version in ELF object files produced by
38
- lld is changed to v68. This change is only effective when the version is
39
- not provided in the command line by the user and cannot be inferred from
40
- inputs.
41
-
31
+ * For ``-z undefs `` (default for ``-shared ``), relocations referencing undefined
32
+ strong symbols now behave like relocations referencing undefined weak symbols.
42
33
* ``--why-live=<glob> `` prints for each symbol matching ``<glob> `` a chain of
43
34
items that kept it live during garbage collection. This is inspired by the
44
35
Mach-O LLD feature of the same name.
36
+ * ``--thinlto-distributor= `` and ``--thinlto-remote-compiler= `` options are
37
+ added to support Integrated Distributed ThinLTO.
38
+ (`#142757 <https://github.com/llvm/llvm-project/pull/142757 >`_)
45
39
46
40
* Linker script ``OVERLAY `` descriptions now support virtual memory regions
47
41
(e.g. ``>region ``) and ``NOCROSSREFS ``.
48
-
49
- * Added ``--xosegment `` and ``--no-xosegment `` flags to control whether to place
50
- executable-only and readable-executable sections in the same segment. The
51
- default value is ``--no-xosegment ``.
42
+ * When the last ``PT_LOAD `` segment is executable and includes BSS sections,
43
+ its ``p_memsz `` member is now correct.
44
+ (`#139207 <https://github.com/llvm/llvm-project/pull/139207 >`_)
45
+ * Spurious ``ASSERT `` errors before the layout converges are now fixed.
46
+
47
+ * For ARM and AArch64, ``--xosegment `` and ``--no-xosegment `` control whether
48
+ to place executable-only and readable-executable sections in the same
49
+ segment. The default option is ``--no-xosegment ``.
52
50
(`#132412 <https://github.com/llvm/llvm-project/pull/132412 >`_)
53
-
54
51
* For AArch64, added support for the ``SHF_AARCH64_PURECODE `` section flag,
55
52
which indicates that the section only contains program code and no data.
56
53
An output section will only have this flag set if all input sections also
57
54
have it set. (`#125689 <https://github.com/llvm/llvm-project/pull/125689 >`_,
58
55
`#134798 <https://github.com/llvm/llvm-project/pull/134798 >`_)
59
-
60
56
* For AArch64 and ARM, added ``-zexecute-only-report ``, which checks for
61
57
missing ``SHF_AARCH64_PURECODE `` and ``SHF_ARM_PURECODE `` section flags
62
58
on executable sections.
63
59
(`#128883 <https://github.com/llvm/llvm-project/pull/128883 >`_)
64
-
60
+ * For AArch64, `` -z nopac-plt `` has been added.
65
61
* For AArch64 and X86_64, added ``--branch-to-branch ``, which rewrites branches
66
62
that point to another branch instruction to instead branch directly to the
67
63
target of the second instruction. Enabled by default at ``-O2 ``.
64
+ * For AArch64, added support for ``-zgcs-report-dynamic ``, enabling checks for
65
+ GNU GCS Attribute Flags in Dynamic Objects when GCS is enabled. Inherits value
66
+ from ``-zgcs-report `` (capped at ``warning `` level) unless user-defined,
67
+ ensuring compatibility with GNU ld linker.
68
+ * The default Hexagon architecture version in ELF object files produced by
69
+ lld is changed to v68. This change is only effective when the version is
70
+ not provided in the command line by the user and cannot be inferred from
71
+ inputs.
72
+ * For LoongArch, the initial-exec to local-exec TLS optimization has been implemented.
73
+ * For RISCV, an oscillation bug due to call relaxation is now fixed.
74
+ (`#142899 <https://github.com/llvm/llvm-project/pull/142899 >`_)
75
+ * For x86-64, the ``.ltext `` section is now placed before ``.rodata ``.
68
76
69
77
Breaking changes
70
78
----------------
0 commit comments