From: H.J. Lu Date: Fri, 10 Jan 2025 23:23:27 +0000 (+0800) Subject: ld: Document mixing LTO and non-LTO objects for -r X-Git-Tag: binutils-2_44~169 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7d10ff50bd56cf780145a3f6e10fee3558620a8f;p=thirdparty%2Fbinutils-gdb.git 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 --- 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}