http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42690
--- Comment #30 from H.J. Lu <hjl.tools at gmail dot com> 2010-11-24 15:07:17
UTC ---
Goal: We should preserve the same linker command line order as if there are no
IR.
Problem:
a. LTO may generate extra symbol references which aren't in IR.
b. It was worked around with -pass-through hack. But it doesn't preserve
the link command line order.
Proposal:
a. Remove -pass-through hack.
b. GCC always passes the same command line to linker, with or without LTO.
The only additions for LTO are LTO options.
c. For linker:
i. For a .o or DSO file on command line, don't process it.
1) Present it to LTO:
a) If it isn't claimed by LTO, send it to LTO as pass-through.
ii. For an archive or linker script on command line:
1) Present it to LTO recursively
2) Send it to LTO as pass-through after it has been processed
recursively.
d. For LTO:
i. Send translated files as well as pass-through files to linker in the
same order in which they are presented from linker.