This removes all encouragement to use -fwhole-program with -flto
from the documentation.  As can be seen in PR56533 it can be
most confusing ... instead advise to rely on a linker plugin.

Ok?

Thanks,
Richard.

2013-03-05  Richard Biener  <rguent...@suse.de>

        * doc/invoke.texi (fwhole-program): Discourage use in combination
        with -flto.

Index: gcc/doc/invoke.texi
===================================================================
*** gcc/doc/invoke.texi (revision 196451)
--- gcc/doc/invoke.texi (working copy)
*************** Enabled by default with @option{-funroll
*** 8168,8182 ****
  Assume that the current compilation unit represents the whole program being
  compiled.  All public functions and variables with the exception of 
@code{main}
  and those merged by attribute @code{externally_visible} become static 
functions
! and in effect are optimized more aggressively by interprocedural optimizers. 
If @command{gold} is used as the linker plugin, @code{externally_visible} 
attributes are automatically added to functions (not variable yet due to a 
current @command{gold} issue) that are accessed outside of LTO objects 
according to resolution file produced by @command{gold}.  For other linkers 
that cannot generate resolution file, explicit @code{externally_visible} 
attributes are still necessary.
! While this option is equivalent to proper use of the @code{static} keyword for
! programs consisting of a single file, in combination with option
! @option{-flto} this flag can be used to
! compile many smaller scale programs since the functions and variables become
! local for the whole combined compilation unit, not for the single source file
! itself.
  
! This option implies @option{-fwhole-file} for Fortran programs.
  
  @item -flto[=@var{n}]
  @opindex flto
--- 8168,8178 ----
  Assume that the current compilation unit represents the whole program being
  compiled.  All public functions and variables with the exception of 
@code{main}
  and those merged by attribute @code{externally_visible} become static 
functions
! and in effect are optimized more aggressively by interprocedural optimizers.
  
! In combination with @code{-flto} using this option should not be used.
! Instead relying on a linker plugin should provide safer and more precise
! information.
  
  @item -flto[=@var{n}]
  @opindex flto

Reply via email to