[binutils-gdb] ld: Document mixing LTO and non-LTO objects for -r

H.J. Lu hjl@sourceware.org
Mon Jan 13 21:27:17 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7d10ff50bd56cf780145a3f6e10fee3558620a8f

commit 7d10ff50bd56cf780145a3f6e10fee3558620a8f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Jan 11 07:23:27 2025 +0800

    ld: Document mixing LTO and non-LTO objects for -r
    
            * ld.texi: Document mixing LTO and non-LTO relocatable files for
            "ld -r".
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>

Diff:
---
 ld/ld.texi | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/ld/ld.texi b/ld/ld.texi
index da714a20855..d1787453f57 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -1126,6 +1126,18 @@ relocations.  Different output formats can have further restrictions; for
 example some @code{a.out}-based formats do not support partial linking
 with input files in other formats at all.
 
+On ELF platforms, when the relocatable output contains both contents
+which require link-time optimization (LTO) and contents which don't
+require LTO, a .gnu_object_only section will be created to contain a
+relocatable object file, as if @samp{-r} is applied to all relocatable
+inputs which don't require LTO.  When processing a relocatable input
+with a .gnu_object_only section, the linker will extract the
+.gnu_object_only section as a separate input.
+
+Note that since @samp{-r} groups some sections from different input files
+together, there may be negative impacts on code size and locality in
+final executable or shared library.
+
 This option does the same thing as @samp{-i}.
 
 @kindex -R @var{file}


More information about the Binutils-cvs mailing list