This is an old revision of the document!


Link Time Optimization (LTO) gives GCC the capability of dumping its internal representation (GIMPLE) to disk, so that all the different compilation units that make up a single executable can be optimized as a single module. This expands the scope of inter-procedural optimizations to encompass the whole program (or, rather, everything that is visible at link time). https://gcc.gnu.org/wiki/LinkTimeOptimization

All you need is add in make.conf append to your CFLAGS -flto.

$ cat /etc/portage/env/no-lto.conf 
CFLAGS="${CFLAGS} -fno-lto -fno-use-linker-plugin"
CXXFLAGS="${CXXFLAGS} -fno-lto -fno-use-linker-plugin"
LDFLAGS="${LDFLAGS} -fno-lto -fno-use-linker-plugin"

This is list of packages, which doesn't build with CFLAGS=“-flto”, please update if you encounter some broken.

$ cat /etc/portage/package.env/no-lto 
media-libs/mesa                                                 no-lto-O2.conf
x11-base/xorg-server                                            no-lto.conf                                         
                                                                                                                    
sys-apps/grep                                                   no-lto.conf                                         
sys-fs/e2fsprogs                                                no-lto.conf                                         
sys-devel/gdb                                                   no-lto.conf                                         
net-misc/wget                                                   no-lto.conf                                         
dev-libs/cyrus-sasl                                             no-lto.conf                                         
mail-mta/postfix                                                no-lto.conf                                         
app-office/akonadi-server                                       no-lto.conf                                         
sys-apps/util-linux                                             no-lto.conf                                         
sys-fs/udisks                                                   no-lto.conf                                         
                                                                                                                    
x11-libs/pango                                                  no-lto.conf                                         
gnome-base/libglade                                             no-lto.conf                                         
                                                                                                                    
media-libs/gst-plugins-base                                     no-lto.conf                                         
sys-apps/systemd                                                no-lto.conf                                         
sys-apps/dbus                                                   no-lto.conf                                         
media-sound/pulseaudio                                          no-lto.conf                                         
                                                                                                                    
dev-qt/qtcore                                                   no-lto.conf                                         
dev-qt/qtgui                                                    no-lto.conf                                         
media-video/libav                                               no-lto.conf                                         
media-libs/libpostproc                                          no-lto.conf                                         
dev-db/mariadb                                                  no-lto.conf #maybe                                  
net-irc/telepathy-idle                                          no-lto.conf                                         
net-misc/openssh                                                no-lto.conf                                         
app-admin/sudo                                                  no-lto.conf                                         
dev-libs/libtasn1                                               no-lto.conf                                         
net-libs/gnutls                                                 no-lto.conf                                         

net-libs/glib-networking                                        no-lto.conf
dev-libs/gobject-introspection                                  no-lto.conf

www-servers/apache                                              no-lto.conf
net-dns/libidn                                                  no-lto.conf
dev-lang/vala                                                   no-lto.conf
net-im/telepathy-mission-control                                no-lto.conf
x11-libs/gdk-pixbuf                                             no-lto.conf
net-voip/telepathy-gabble                                       no-lto.conf
dev-vcs/git                                                     no-lto.conf
sys-power/upower                                                no-lto.conf