@@ -30,30 +30,78 @@ ELF Improvements
30
30
(`D107317 <https://reviews.llvm.org/D107317 >`_)
31
31
* ``--why-extract `` has been added to query why archive members/lazy object files are extracted.
32
32
(`D109572 <https://reviews.llvm.org/D109572 >`_)
33
- * ``e_entry `` no longer falls back to the address of ``.text `` if the entry symbol does not exist.
34
- Instead, a value of 0 will be written.
35
- (`D110014 <https://reviews.llvm.org/D110014 >`_)
36
33
* If ``-Map `` is specified, ``--cref `` will be printed to the specified file.
37
34
(`D114663 <https://reviews.llvm.org/D114663 >`_)
35
+ * ``-z bti-report `` and ``-z cet-report `` are now supported.
36
+ (`D113901 <https://reviews.llvm.org/D113901 >`_)
37
+ * ``--lto-pgo-warn-mismatch `` has been added.
38
+ (`D104431 <https://reviews.llvm.org/D104431 >`_)
39
+ * Archives without an index (symbol table) are now supported and work with
40
+ ``--warn-backrefs ``. One may build such an archive with ``llvm-ar rcS
41
+ [--thin] `` to save space.
42
+ (`D117284 <https://reviews.llvm.org/D117284 >`_)
43
+ The archive index may be `entirely ignored <https://reviews.llvm.org/D119074> `
44
+ in a future release.
38
45
* No longer deduplicate local symbol names at the default optimization level of ``-O1 ``.
39
46
This results in a larger ``.strtab `` (usually less than 1%) but a faster link
40
- time. Use optimization level ``-O2 `` to restore the deduplication.
47
+ time. Use optimization level ``-O2 `` to restore the deduplication. The ``-O2 ``
48
+ deduplication may be dropped in the future to help parallel ``.symtab `` write.
49
+ * In relocatable output, relocations to discarded symbols now use tombstone
50
+ values.
51
+ (`D116946 <https://reviews.llvm.org/D116946 >`_)
52
+ * Orphan section placement now picks a more suitable segment. Previously the
53
+ algorithm might pick a readonly segment for a writable orphan section and make
54
+ the segment writable.
55
+ (`D111717 <https://reviews.llvm.org/D111717 >`_)
56
+ * An empty output section moved by an ``INSERT `` comment now gets appropriate
57
+ flags.
58
+ (`D118529 <https://reviews.llvm.org/D118529 >`_)
59
+ * Negation in a memory region attribute is now correctly handled.
60
+ (`D113771 <https://reviews.llvm.org/D113771 >`_)
61
+ * ``--compress-debug-sections=zlib `` is now run in parallel. ``{clang,gcc} -gz `` link
62
+ actions are significantly faster.
63
+ (`D117853 <https://reviews.llvm.org/D117853 >`_)
64
+ * "relocation out of range" diagnostics and a few uncommon diagnostics
65
+ now report an object file location beside a source file location.
66
+ (`D112518 <https://reviews.llvm.org/D117853 >`_)
67
+ * The write of ``.rela.dyn `` and ``SHF_MERGE|SHF_STRINGS `` sections (e.g.
68
+ ``.debug_str ``) is now run in parallel.
41
69
42
70
Architecture specific changes:
43
71
72
+ * The AArch64 port now supports adrp+ldr and adrp+add optimizations.
73
+ ``--no-relax `` can suppress the optimization.
74
+ (`D112063 <https://reviews.llvm.org/D112063 >`_)
75
+ (`D117614 <https://reviews.llvm.org/D117614 >`_)
44
76
* The x86-32 port now supports TLSDESC (``-mtls-dialect=gnu2 ``).
45
77
(`D112582 <https://reviews.llvm.org/D112582 >`_)
46
78
* The x86-64 port now handles non-RAX/non-adjacent ``R_X86_64_GOTPC32_TLSDESC ``
47
79
and ``R_X86_64_TLSDESC_CALL `` (``-mtls-dialect=gnu2 ``).
48
80
(`D114416 <https://reviews.llvm.org/D114416 >`_)
81
+ * The x86-32 and x86-64 ports now support mixed TLSDESC and TLS GD, i.e. mixing
82
+ objects compiled with and without ``-mtls-dialect=gnu2 `` referencing the same
83
+ TLS variable is now supported.
84
+ (`D114416 <https://reviews.llvm.org/D114416 >`_)
49
85
* For x86-64, ``--no-relax `` now suppresses ``R_X86_64_GOTPCRELX `` and
50
86
``R_X86_64_REX_GOTPCRELX `` GOT optimization
51
87
(`D113615 <https://reviews.llvm.org/D113615 >`_)
88
+ * ``R_X86_64_PLTOFF64 `` is now supported.
89
+ (`D112386 <https://reviews.llvm.org/D112386 >`_)
90
+ * ``R_AARCH64_NONE ``, ``R_PPC_NONE ``, and ``R_PPC64_NONE `` in input REL
91
+ relocation sections are now supported.
52
92
53
93
Breaking changes
54
94
----------------
55
95
56
- * ...
96
+ * ``e_entry `` no longer falls back to the address of ``.text `` if the entry symbol does not exist.
97
+ Instead, a value of 0 will be written.
98
+ (`D110014 <https://reviews.llvm.org/D110014 >`_)
99
+ * ``--lto-pseudo-probe-for-profiling `` has been removed. In LTO, the compiler
100
+ enables this feature automatically.
101
+ (`D110209 <https://reviews.llvm.org/D110209 >`_)
102
+ * Use of ``--[no-]define-common ``, ``-d ``, ``-dc ``, and ``-dp `` will now get a
103
+ warning. They will be removed or ignored in 15.0.0.
104
+ (`llvm-project#53660 <https://github.com/llvm/llvm-project/issues/53660 >`_)
57
105
58
106
COFF Improvements
59
107
-----------------
0 commit comments