Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lto [2014/06/03 19:49]
okias created
lto [2017/09/23 13:51] (current)
okias tracker
Line 1: Line 1:
 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 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''.
 <code> <code>
 $ cat /etc/portage/env/no-lto.conf  $ cat /etc/portage/env/no-lto.conf 
Line 10: Line 11:
 <code> <code>
 $ cat /etc/portage/package.env/no-lto  $ cat /etc/portage/package.env/no-lto 
-media-libs/mesa                                                 no-lto-O2.conf +sys-libs/glibc no-lto # glibc take care self about it 
-x11-base/xorg-server                                            no-lto.conf                                          +sys-devel/llvm no-lto 
-                                                                                                                     +sys-apps/coreutils no-lto 
-sys-apps/grep                                                   no-lto.conf                                          +dev-lang/ruby no-lto 
-sys-fs/e2fsprogs                                                no-lto.conf                                          +dev-lang/perl no-lto 
-sys-devel/gdb                                                   no-lto.conf                                          +dev-lang/yasm no-lto 
-net-misc/wget                                                   no-lto.conf                                          +sys-devel/flex no-lto 
-dev-libs/cyrus-sasl                                             no-lto.conf                                          +net-misc/dhcp no-lto 
-mail-mta/postfix                                                no-lto.conf                                          +app-shells/bash no-lto 
-app-office/akonadi-server                                       no-lto.conf                                          +sys-apps/findutils no-lto 
-sys-apps/util-linux                                             no-lto.conf                                          +media-libs/mesa  no-lto 
-sys-fs/udisks                                                   no-lto.conf                                          +x11-apps/mesa-progs no-lto 
-                                                                                                                     +app-benchmarks/glmark2 no-lto 
-x11-libs/pango                                                  no-lto.conf                                          +app-emulation/wine no-lto 
-gnome-base/libglade                                             no-lto.conf                                          +media-libs/alsa-lib no-lto 
-                                                                                                                     +x11-base/xorg-server no-lto 
-media-libs/gst-plugins-base                                     no-lto.conf                                          +sys-apps/grep no-lto 
-sys-apps/systemd                                                no-lto.conf                                          +sys-fs/e2fsprogs no-lto 
-sys-apps/dbus                                                   no-lto.conf                                          +sys-devel/gdb no-lto 
-media-sound/pulseaudio                                          no-lto.conf                                          +sys-devel/gettext no-lto 
-                                                                                                                     +net-misc/wget no-lto 
-dev-qt/qtcore                                                   no-lto.conf                                          +net-analyzer/traceroute no-lto 
-dev-qt/qtgui                                                    no-lto.conf                                          +dev-libs/cyrus-sasl no-lto 
-media-video/libav                                               no-lto.conf                                          +mail-mta/postfix no-lto 
-media-libs/libpostproc                                          no-lto.conf                                          +sys-apps/util-linux no-lto 
-dev-db/mariadb                                                  no-lto.conf #maybe                                   +sys-fs/udisks no-lto 
-net-irc/telepathy-idle                                          no-lto.conf                                          +x11-libs/pango no-lto 
-net-misc/openssh                                                no-lto.conf                                          +gnome-base/libglade no-lto 
-app-admin/sudo                                                  no-lto.conf                                          +media-libs/gstreamer no-lto 
-dev-libs/libtasn1                                               no-lto.conf                                          +media-libs/gst-plugins-base no-lto 
-net-libs/gnutls                                                 no-lto.conf                                         +media-libs/gst-plugins-bad no-lto 
 +app-misc/mc no-lto 
 +media-libs/quvi no-lto 
 +# OLD GST, remove later 
 +media-plugins/gst-plugins-a52dec no-lto 
 +media-plugins/gst-plugins-vorbis no-lto 
 +media-plugins/gst-plugins-ogg no-lto 
 +media-plugins/gst-plugins-xvideo no-lto 
 +media-plugins/gst-plugins-theora no-lto 
 +media-plugins/gst-plugins-x no-lto 
 +media-plugins/gst-plugins-mad no-lto 
 +media-plugins/gst-plugins-dvdread no-lto 
 +media-plugins/gst-plugins-mpeg2dec no-lto 
 +media-plugins/gst-plugins-x264 no-lto 
 +media-plugins/gst-plugins-resindvd no-lto 
 +media-plugins/gst-plugins-dts no-lto 
 +media-plugins/gst-plugins-faad no-lto 
 +media-plugins/gst-plugins-flac no-lto 
 +media-plugins/gst-plugins-assrender no-lto 
 +media-plugins/gst-plugins-pulse no-lto 
 +media-plugins/gst-plugins-libav no-lto
  
-net-libs/glib-networking                                        no-lto.conf +sys-apps/systemd no-lto 
-dev-libs/gobject-introspection                                  no-lto.conf+sys-apps/kmod no-lto 
 +sys-apps/dbus no-lto 
 +media-sound/pulseaudio no-lto 
 +dev-qt/qtcore no-lto 
 +dev-qt/qtgui no-lto 
 +dev-qt/qtquick1 no-lto 
 +dev-qt/qtwidgets no-lto 
 +dev-qt/qtdeclarative no-lto
  
-www-servers/apache                                              no-lto.conf +dev-qt/qtprintsupport no-lto 
-net-dns/libidn                                                  no-lto.conf +dev-qt/qtscript no-lto 
-dev-lang/vala                                                   no-lto.conf +dev-qt/qtxmlpatterns no-lto 
-net-im/telepathy-mission-control                                no-lto.conf +dev-qt/qtquickcontrols no-lto 
-x11-libs/gdk-pixbuf                                             no-lto.conf +dev-qt/qtwebkit no-lto 
-net-voip/telepathy-gabble                                       no-lto.conf +dev-qt/designer no-lto
-dev-vcs/git                                                     no-lto.conf +
-sys-power/upower                                                no-lto.conf+
  
 +media-video/libav no-lto
 +media-libs/libpostproc no-lto
 +dev-db/mariadb no-lto #maybe
 +net-misc/openssh no-lto
 +app-admin/sudo no-lto
 +sys-libs/pam no-lto
 +sys-apps/shadow no-lto
 +dev-libs/libtasn1 no-lto
 +net-libs/gnutls no-lto
 +net-libs/webkit-gtk no-lto
 +app-crypt/gnupg no-lto
 +net-libs/glib-networking no-lto
 +net-misc/modemmanager no-lto
 +dev-libs/gobject-introspection no-lto
 +dev-libs/gjs no-lto
 +www-servers/apache no-lto
 +net-dns/libidn no-lto
 +dev-lang/vala no-lto
 +x11-libs/gdk-pixbuf no-lto
 +dev-vcs/git no-lto
 +sys-power/upower no-lto
 +
 +dev-libs/xapian no-lto
 +app-office/akonadi-server no-lto
 +net-voip/telepathy-gabble no-lto
 +net-irc/telepathy-idle no-lto
 +net-im/telepathy-mission-control no-lto
 +# KDE
 +kde-base/kdelibs no-lto
 +kde-base/ksmserver no-lto
 +kde-base/pykde4 no-lto
 +kde-base/drkonqi no-lto
 +kde-base/kdepim-runtime no-lto
 +app-office/calligra no-lto
 +net-im/ktp-call-ui no-lto
 +app-office/kmymoney no-lto
 +# KDE 5
 +dev-util/cmake no-lto
 +kde-base/baloo no-lto
 +kde-base/plasma-workspace no-lto
 +kde-base/kate no-lto
 +kde-base/marble no-lto
 +kde-frameworks/kauth no-lto
 +kde-frameworks/kdoctools no-lto
 +kde-frameworks/kio no-lto
 +dev-util/kdevelop no-lto
 +dev-util/kdevelop-clang no-lto
 +
 +media-sound/mpg123 no-lto
 +media-libs/openal no-lto
 +kde-base/ksysguard no-lto
 +
 +x11-themes/qtcurve no-lto
 +net-print/cups no-lto
 +media-gfx/imagemagick no-lto
 +media-gfx/inkscape no-lto
 +dev-lang/spidermonkey no-lto
 +sys-auth/polkit no-lto
 +dev-lang/lua no-lto
 +net-analyzer/wireshark no-lto
 +net-libs/gupnp-igd no-lto
 +net-libs/libnice no-lto
 +gnome-base/gconf no-lto
 +media-video/vlc no-lto
 +net-libs/libproxy no-lto
 +net-fs/nfs-utils no-lto
 +gnome-base/librsvg no-lto
 +sys-devel/libtool no-lto #phonon fails
 +net-irc/quassel no-lto
 +media-libs/libquvi no-lto
 +media-sound/mpd no-lto
 +app-misc/strigi no-lto
 +media-gfx/nvidia-texture-tools no-lto
 +
 +games-emulation/dosbox no-lto
 +app-arch/tar no-lto
 +sys-apps/accountsservice no-lto
 +
 +net-wireless/aircrack-ng no-lto
 +media-libs/libdvdnav no-lto
 +sys-apps/kbd no-lto
 +dev-libs/elfutils no-lto
 +media-libs/libdvdread no-lto
 +sys-apps/iproute2 no-lto
 +media-libs/flac no-lto
 +sys-block/parted no-lto
 +app-crypt/pinentry no-lto
 +sys-apps/net-tools no-lto
 +app-text/hunspell no-lto
 +app-i18n/ibus no-lto
 +# GNOME
 +app-misc/tracker no-lto
 +gnome-base/gvfs no-lto
 +gnome-base/gnome-desktop no-lto
 +gnome-base/gnome-control-center no-lto
 </code> </code>