@@ -29,8 +29,50 @@ ELF Improvements
29
29
* ``--fat-lto-objects `` option is added to support LLVM FatLTO.
30
30
Without ``--fat-lto-objects ``, LLD will link LLVM FatLTO objects using the
31
31
relocatable object file. (`D146778 <https://reviews.llvm.org/D146778 >`_)
32
+ * ``-Bsymbolic-non-weak `` is added to directly bind non-weak definitions.
33
+ (`D158322 <https://reviews.llvm.org/D158322 >`_)
34
+ * ``--lto-validate-all-vtables-have-type-infos ``, which complements
35
+ ``--lto-whole-program-visibility ``, is added to disable unsafe whole-program
36
+ devirtualization. ``--lto-known-safe-vtables=<glob> `` can be used
37
+ to mark known-safe vtable symbols.
38
+ (`D155659 <https://reviews.llvm.org/D155659 >`_)
39
+ * ``--save-temps --lto-emit-asm `` now derives ELF/asm file names from bitcode file names.
40
+ ``ld.lld --save-temps a.o d/b.o -o out `` will create ELF relocatable files
41
+ ``out.lto.a.o ``/``d/out.lto.b.o `` instead of ``out1.lto.o ``/``out2.lto.o ``.
42
+ (`#78835 <https://github.com/llvm/llvm-project/pull/78835 >`_)
43
+ * ``--no-allow-shlib-undefined `` now reports errors for DSO referencing
44
+ non-exported definitions.
45
+ (`#70769 <https://github.com/llvm/llvm-project/pull/70769 >`_)
32
46
* common-page-size can now be larger than the system page-size.
33
47
(`#57618 <https://github.com/llvm/llvm-project/issues/57618 >`_)
48
+ * When call graph profile information is available due to instrumentation or
49
+ sample PGO, input sections are now sorted using the new ``cdsort `` algorithm,
50
+ better than the previous ``hfsort `` algorithm.
51
+ (`D152840 <https://reviews.llvm.org/D152840 >`_)
52
+ * Symbol assignments like ``a = DEFINED(a) ? a : 0; `` are now handled.
53
+ (`#65866 <https://github.com/llvm/llvm-project/pull/65866 >`_)
54
+ * ``OVERLAY `` now supports optional start address and LMA
55
+ (`#77272 <https://github.com/llvm/llvm-project/pull/77272 >`_)
56
+ * Relocations referencing a symbol defined in ``/DISCARD/ `` section now lead to
57
+ an error.
58
+ (`#69295 <https://github.com/llvm/llvm-project/pull/69295 >`_)
59
+ * For AArch64 MTE, global variable descriptors have been implemented.
60
+ (`D152921 <https://reviews.llvm.org/D152921 >`_)
61
+ * ``R_AARCH64_GOTPCREL32 `` is now supported.
62
+ (`#72584 <https://github.com/llvm/llvm-project/pull/72584 >`_)
63
+ * ``R_LARCH_PCREL20_S2 ``/``R_LARCH_ADD6 ``/``R_LARCH_CALL36 `` and extreme code
64
+ model relocations are now supported.
65
+ * ``--emit-relocs `` is now supported for RISC-V linker relaxation.
66
+ (`D159082 <https://reviews.llvm.org/D159082 >`_)
67
+ * Call relaxation respects RVC when mixing +c and -c relocatable files.
68
+ (`#73977 <https://github.com/llvm/llvm-project/pull/73977 >`_)
69
+ * ``R_RISCV_GOT32_PCREL `` is now supported.
70
+ (`#72587 <https://github.com/llvm/llvm-project/pull/72587 >`_)
71
+ * ``R_RISCV_SET_ULEB128 ``/``R_RISCV_SUB_ULEB128 `` relocations are now supported.
72
+ (`#72610 <https://github.com/llvm/llvm-project/pull/72610 >`_)
73
+ (`#77261 <https://github.com/llvm/llvm-project/pull/77261 >`_)
74
+ * RISC-V TLSDESC is now supported.
75
+ (`#79239 <https://github.com/llvm/llvm-project/pull/79239 >`_)
34
76
35
77
Breaking changes
36
78
----------------
0 commit comments