https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67548
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org --- Comment #8 from Jan Hubicka <hubicka at gcc dot gnu.org> --- There are two incremental link implementations: 1) HJ's binutils will concat the sections, 2) mainline binutils will invoke GCC via plugin and produce .o file with final assembly. The correct implementation IMO is 3) invoke GCC via plugin and produce the merge LTO file (i.e. cut the process before WPA optimization starts and stream out everything again). 3) would be only way to also support fat LTO files. Sadly we do not have plugin API interface for 2) or 3). 2) would be relatively easy - we only need to make GCC know it does incremental linking and assume that every symbol can be bound externally. I did not find way how to get this situation detected from the plugin/wrapper though and I am not sure how useful it is in practice given that it won't give you whole program optimization.