This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFC: Support link with mixed IR/non-IR objects
On Mon, May 07, 2012 at 04:18:49PM -0700, Andi Kleen wrote:
> The Linux
> kernel absolutely needs this feature to build with LTO. The build
> system heavily
> relies on ld -r and it would be very intrusive to avoid this.
I've been saying this for a long time, but I'll try once more. It
would be a good thing if the kernel build stopped using ld -r. ld -r
is not the right tool for packaging object files. You get the
following undesirable behaviour from ld -r:
- -ffunction-sections code may be reorganized, losing cache locality.
eg. two different files each with a static "setup" function will
have those functions placed together in the same section.
- Combining sections prevents --gc-sections from working as well as it
could.
- On targets like powerpc64, ld -r may cause overflow of the .toc
section in the resulting relocatable object file. If the files were
left separate, the final ld could cope by generating multiple .toc
sections.
Now we also have
- ld -r doesn't work with LTO.
I had hoped that this would finally wake up kernel developers.
--
Alan Modra
Australia Development Lab, IBM