Estou usando o Gentoo Linux .
Aqui está o meu conjunto de ferramentas:
sys-kernel/linux-headers-3.9
sys-devel/binutils-2.23.1 USE="cxx nls zlib -multislot -multitarget -static-libs {-test} -vanilla"
sys-devel/gcc-4.7.3-r1:4.7 USE="cxx fortran gtk lto mudflap (multilib) nls nptl openmp (-altivec) -doc (-fixed-point) -gcj -go -graphite (-hardened) (-libssp) -multislot -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla"
sys-libs/glibc-2.17:2.2 USE="(multilib) -debug -gd (-hardened) -nscd -profile (-selinux) -suid -systemtap -vanilla"
Aqui estão minhas CFLAGS:
$ cat /etc/portage/make.conf
CFLAGS="-march=core-avx-i -mtune=core-avx-i -O2 -pipe -flto"
CXXFLAGS="${CFLAGS}"
CHOST="x86_64-pc-linux-gnu"
# etc...
O mundo inteiro é construído com LTO , exceto por alguns pacotes:
$ cat /etc/portage/package.env
dev-lang/perl no-lto
dev-libs/elfutils no-lto
dev-lang/spidermonkey no-lto
dev-libs/glib no-lto
sys-devel/llvm no-lto
media-libs/mesa no-lto
media-libs/alsa-lib no-lto
sys-apps/preload no-lto
app-text/aspell no-lto
app-text/rarian no-lto
sys-power/upower no-lto
net-libs/farstream no-lto
dev-python/notify-python no-lto
x11-libs/wxGTK no-lto
media-video/avidemux no-lto
media-gfx/inkscape no-lto
x11-base/xorg-server no-lto
x11-drivers/xf86-video-intel no-lto
net-libs/webkit-gtk no-lto
mail-client/thunderbird no-lto
$ cat /etc/portage/env/no-lto
CFLAGS="${CFLAGS} -fno-lto"
CXXFLAGS="${CXXFLAGS} -fno-lto"
LDFLAGS="${LDFLAGS} -fno-lto"
Em alguns blogs, notei autores definindo LDFLAGS em seu arquivo make.conf também, eu não fiz isso.
O sistema operacional define esses LDFLAGS de acordo com o perfil selecionado:
$ emerge --info | grep LDFLAGS
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
Desenvolvedores e mantenedores do Gentoo não recomendamos alterá-los
Eu gostaria de definir essas linhas no meu arquivo make.conf
, depois reconstruir o toolchain e o mundo:
CFLAGS="-march=core-avx-i -mtune=core-avx-i -O2 -pipe -flto -Wl,-flto"
LDFLAGS="-Wl,-flto -Wl,-O2"
Haverá alguma diferença no desempenho / estabilidade?
Essas diferenças valem o tempo necessário para recompilar o mundo inteiro?
Eu gostaria de ouvir sugestões, explicações, melhores práticas de usuários / mantenedores / programadores / administradores experientes do Gentoo ...
Muito obrigado antecipadamente!