Ver Feed RSS

Olhos que ardem...

Configurando o Ccache no Gentoo e Otimizando Compilações

Avalie este Post de Blog
Olá a todos.
Aqui vai uma dica para quem usa Gentoo Linux: o uso do ccache.


Introdução

O ccache é um cache para compilações. Ele usa o chave "GCC -E" e um hash para detectar quando uma compilacão pode ser preenchida pelo cache. Os pacotes quando recompilados terão seu tempo de completude reduzidos. Em compilações comuns isso pode resultar em compilações de 5 a 10 vezes mais rápidas.


Instalando o ccache
Código:
 # emerge ccache
Para utilizar a versão mais nova do ccache, edite o /etc/portage/package.keywords e habilite-o para versões "em teste" (testing):
Código:
 # nano /etc/portage/package.keywords

dev-util/ccache ~amd64


Utilize emerge -s para obter informacões sobre o pacote.


Estável:
Código:
 # emerge -s ccache

dev-util/ccache
Latest version available: 2.4-r7
Teste:
Código:
 # emerge -s ccache

dev-util/ccache
Latest version available: 2.4-r8


Configurando o ccache


Editando o arquivo /etc/make.conf

Código:
# nano /etc/make.conf

FEATURES="ccache"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="2G"
As opções CCACHE_DIR e CCACHE_SIZE são variáveis, os valores apresentados são valores padrão do ccache.

No entanto, se você rodar ccache, ele irá usar o local padrão ${HOME}/.ccache, motivo pelo qual você precisou configurar a variável CCACHE_DIR na hora de pedir as estatísticas de ccache (do Portage).

Para o usuário root faca a seguinte modificação:
Código:
# cd ~
# rm .ccache
# ln -s /var/tmp/portage .ccache
# ls -lash
0 lrwxrwxrwx  1 root root      16 Mar  4 11:59 .ccache -> /var/tmp/ccache/
Existem duas maneiras de configurar o ccache para trabalhar com um usuário comum. Exportando a variável CC para apontar para o link simbólico do ccache, exemplo:
Código:
CC=/usr/lib/ccache/bin/gcc ./configure
Ou configurando a variável PATH no perfil do usuário:
Código:
PATH="/usr/lib/ccache/bin/:${PATH}"
export ${PATH}
ccache-config

Um outra maneira de habilitar ccache para todo os sistema por padrão é utilizar os atalhos criados pelo ccache-config. Primeiramente será preciso descobrir a variável CHOST do seu sistema:
Código:
# emerge --info | grep CHOST
CHOST="x86_64-pc-linux-gnu"
Depois de descoberto rode:
Código:
# ccache-config --install-links x86_64-pc-linux-gnu 
Creating ccache shadow link: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-gcc...
Creating ccache shadow link: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-c++...
Creating ccache shadow link: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-g++...
Para ver as estatísticas do ccache utilize:
Código:
# ccache -s 
Para ver as estatísticas de outro usuário (apenas para root):
Código:
# CCACHE_DIR=/home/gentoouser/.ccache ccache -s
Genkernel

O genkernel não usa ccache por padrão, mesmo quando você tenha o habilitado para root. Para resolver isso coloque a opção --kernel-cc quando você chamar o genkernel:
Código:
genkernel --kernel-cc=/usr/lib/ccache/bin/gcc --menuconfig all
Um outra maneira (e mais cômoda) é editar o arquivo /etc/genkernel.conf:
Código:
# nano /etc/genkernel.conf

...procure a linha KERNEL_CC...

KERNEL_CC="/usr/lib/ccache/bin/gcc"


Referências:


- Handbook do Gentoo
- Gentoo Wiki - Ccache

Páginas interessantes:

- ccache — Overview
- Gentoo Linux -- Gentoo Linux News

Atualizado 03-06-2010 em 19:54 por Duca

Categorias
Pessoal , Under-Linux , Dicas , Tutoriais

Comentários

  1. Avatar de MarcusMaciel
    duca otimo artigo so falta vc colocar nos bbcodes suportados por outras linguas
  2. Avatar de Duca
    Valeu Marcão!

    Feito!

+ Enviar Comentário




Visite: BR-Linux ·  VivaOLinux ·  Dicas-L