@@ -24,13 +24,77 @@ Non-comprehensive list of changes in this release
24
24
ELF Improvements
25
25
----------------
26
26
27
- * ``--error-handling-script `` is added to allow for user-defined handlers upon
27
+ * ``--dependency-file `` has been added. (Similar to ``cc -M -MF ``.)
28
+ (`D82437 <https://reviews.llvm.org/D82437 >`_)
29
+ * ``--error-handling-script `` has been added to allow for user-defined handlers upon
28
30
missing libraries. (`D87758 <https://reviews.llvm.org/D87758 >`_)
31
+ * ``--exclude-libs `` can now localize defined version symbols and bitcode referenced libcall symbols.
32
+ (`D94280 <https://reviews.llvm.org/D94280 >`_)
33
+ * ``--gdb-index `` now works with DWARF v5 and ``--icf={safe,all} ``.
34
+ (`D85579 <https://reviews.llvm.org/D85579 >`_)
35
+ (`D89751 <https://reviews.llvm.org/D89751 >`_)
36
+ * ``--gdb-index --emit-relocs `` can now be used together.
37
+ (`D94354 <https://reviews.llvm.org/D94354 >`_)
38
+ * ``--icf={safe,all} `` conservatively no longer fold text sections with LSDA.
39
+ Previously ICF on ``-fexceptions `` code could be unsafe.
40
+ (`D84610 <https://reviews.llvm.org/D84610 >`_)
41
+ * ``--icf={safe,all} `` can now fold two sections with relocations referencing aliased symbols.
42
+ (`D88830 <https://reviews.llvm.org/D88830 >`_)
43
+ * ``--lto-pseudo-probe-for-profiling `` has been added.
44
+ (`D95056 <https://reviews.llvm.org/D95056 >`_)
45
+ * ``--no-lto-whole-program-visibility `` has been added.
46
+ (`D92060 <https://reviews.llvm.org/D92060 >`_)
47
+ * ``--oformat-binary `` has been fixed to respect LMA.
48
+ (`D85086 <https://reviews.llvm.org/D85086 >`_)
49
+ * ``--reproduce `` includes ``--lto-sample-profile ``, ``--just-symbols ``, ``--call-graph-ordering-file ``, ``--retain-symbols-file `` files.
50
+ * ``-r --gc-sections `` is now supported.
51
+ (`D84131 <https://reviews.llvm.org/D84131 >`_)
52
+ * A ``-u `` specified symbol will no longer change the binding to ``STB_WEAK ``.
53
+ (`D88945 <https://reviews.llvm.org/D88945 >`_)
54
+ * ``--wrap `` support has been improved.
55
+ + If ``foo `` is not referenced, there is no longer an undefined symbol ``__wrap_foo ``.
56
+ + If ``__real_foo `` is not referenced, there is no longer an undefined symbol ``foo ``.
57
+ * ``SHF_LINK_ORDER `` sections can now have zero ``sh_link `` values.
58
+ * ``SHF_LINK_ORDER `` and non-``SHF_LINK_ORDER `` sections can now be mixed within an input section description.
59
+ (`D84001 <https://reviews.llvm.org/D84001 >`_)
60
+ * ``LOG2CEIL `` is now supported in linker scripts.
61
+ (`D84054 <https://reviews.llvm.org/D84054 >`_)
62
+ * ``DEFINED `` has been fixed to check whether the symbol is defined.
63
+ (`D83758 <https://reviews.llvm.org/D83758 >`_)
64
+ * An input section description may now have multiple ``SORT_* ``.
65
+ The matched sections are ordered by radix sort with the keys being ``(SORT*, --sort-section, input order) ``.
66
+ (`D91127 <https://reviews.llvm.org/D91127 >`_)
67
+ * Users can now provide a GNU style linker script to convert ``.ctors `` into ``.init_array ``.
68
+ (`D91187 <https://reviews.llvm.org/D91187 >`_)
69
+ * An empty output section can now be discarded even if it is assigned to a program header.
70
+ (`D92301 <https://reviews.llvm.org/D92301 >`_)
71
+ * Non-``SHF_ALLOC `` sections now have larger file offsets than ``SHF_ALLOC `` sections.
72
+ (`D85867 <https://reviews.llvm.org/D85867 >`_)
73
+ * Some symbol versioning improvements.
74
+ + Defined ``foo@@v1 `` now resolve undefined ``foo@v1 `` (`D92259 <https://reviews.llvm.org/D92259 >`_)
75
+ + Undefined ``foo@v1 `` now gets an error (`D92260 <https://reviews.llvm.org/D92260 >`_)
76
+ * The AArch64 port now has support for ``STO_AARCH64_VARIANT_PCS `` and ``DT_AARCH64_VARIANT_PCS ``.
77
+ (`D93045 <https://reviews.llvm.org/D93045 >`_)
78
+ * The AArch64 port now has support for ``R_AARCH64_LD64_GOTPAGE_LO15 ``.
79
+ * The PowerPC64 port now detects missing R_PPC64_TLSGD/R_PPC64_TLSLD and disables TLS relaxation.
80
+ This allows linking with object files produced by very old IBM XL compilers.
81
+ (`D92959 <https://reviews.llvm.org/D92959 >`_)
82
+ * Many PowerPC PC-relative relocations are now supported.
83
+ * ``R_PPC_ADDR24 `` and ``R_PPC64_ADDR16_HIGH `` are now supported.
84
+ * powerpcle is now supported. Tested with FreeBSD loader and freestanding.
85
+ (`D93917 <https://reviews.llvm.org/D93917 >`_)
86
+ * RISC-V: the first ``SHT_RISCV_ATTRIBUTES `` section is now retained.
87
+ (`D86309 <https://reviews.llvm.org/D86309 >`_)
88
+ * LTO pipeline now defaults to the new PM if the CMake variable ``ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER `` is on.
89
+ (`D92885 <https://reviews.llvm.org/D92885 >`_)
29
90
30
91
Breaking changes
31
92
----------------
32
93
33
- * ...
94
+ * A COMMON symbol can now cause the fetch of an archive providing a ``STB_GLOBAL `` definition.
95
+ This behavior follows GNU ld newer than December 1999.
96
+ If you see ``duplicate symbol `` errors with the new behavior, check out `PR49226 <https://bugs.llvm.org//show_bug.cgi?id=49226 >`_.
97
+ (`D86142 <https://reviews.llvm.org/D86142 >`_)
34
98
35
99
COFF Improvements
36
100
-----------------
0 commit comments