# Instalação a partir do zero usando o icc

## chefanos

Ola.. 

Apos algum tempo lendo mensagens nesse forum .. resolvi postar a minha 1a msg.!

Bom.. existe alguem aqui q fez uma "LFS" do gentoo usando o ICC da intel. no lugar do gcc?

Bom. desde jah obrigado pela atenção!!  :Very Happy: 

----------

## fernandotcl

Isso não é viável. Programas essenciais não podem ser compilados com ICC. O kernel, por exemplo, precisa de muito esforço pra ser compilado. Imagine glibc, por exemplo. Sem dúvidas, hoje em dia isso possível, mas inviável.

Agora se você quiser realmente usar o ICC em tudo, te aconselho tentar no LFS, porque no Gentoo vai ser muito mais difícil.

----------

## jcarlos

Não fiz o que você disse na pergunta, mas... acho que não seria necessário fazer "LFS" do Gentoo, pelo que estava pensando da pra fazer isso usando o método "nas coxa"   :Very Happy: 

A ideia seria a seguinte, remover o GCC ("emerge unmerge gcc" talvez?) e fazer um link do executável do ICC como /usr/bin/gcc, depois editar o /etc/make.conf e alterar as CCFLAGS, MAKEOPTS e outras opções que tenham relação com compilador /p as opções que o ICC usa. Após isso continuar fazendo os emerges normalmente ou então rodar um "emerge -e world"

Ainda assim isso pode dar uns problemas (além da porquisse do link icc como gcc tem uma maior ainda que realmente faz ser metodo nas coxa   :Razz:  ) pelo que percebí o portage tem uma porção de patches orientado /p o gcc, e até onde vi no make.conf não especificamos o compilador que vamos utilizar mas somente as opções do gcc, além disso algumas .ebuilds sobreescrevem o que definimos nas CCFLAGS porque alguns programas falham ao compilar com outras opções, e provavelmente as opções de comando do gcc e icc são diferentes, o que vai causar alguns erros.

Em todo caso se for corajoso pode tentar sair editando os arquivos dos programas que for compilar e corrigir os erros conforme forem aparecendo. Mas isso tudo que disse seria só na teoria já que não cheguei a fazer na prática

Quais seriam as vantagens de se utilizar o icc ao invez do gcc?

----------

## fernandotcl

 *jcarlos wrote:*   

> Não fiz o que você disse na pergunta, mas... acho que não seria necessário fazer "LFS" do Gentoo, pelo que estava pensando da pra fazer isso usando o método "nas coxa"  
> 
> A ideia seria a seguinte, remover o GCC ("emerge unmerge gcc" talvez?) e fazer um link do executável do ICC como /usr/bin/gcc, depois editar o /etc/make.conf e alterar as CCFLAGS, MAKEOPTS e outras opções que tenham relação com compilador /p as opções que o ICC usa. Após isso continuar fazendo os emerges normalmente ou então rodar um "emerge -e world"

 

O problema é que cada pacote tem que ser compilado manualmente, especialmente os críticos. Opções de compilação e configuração precisam ser estudados, patchs precisam ser criados e aplicados. E não é só mudar as CFLAGS (mesmo porque o ICC é compatível nas opções com o GCC), porque muitas e muitas opções diferentes vão ter que ser estudadas, e opções essas são passadas em grande parte ao configure, e fazer isso só é possível manualmente mesmo (a não ser que se queira fazer hacks no portage também  :Very Happy: ).

 *jcarlos wrote:*   

> Quais seriam as vantagens de se utilizar o icc ao invez do gcc?

 

Velocidade e tamanho de código, em geral melhora reportada de 30%.

----------

## chefanos

Bom.. como estou de ferias!!! naum me custaria nada .. tentar... zuar o linux eh comigo mesmo! hehehe  :Very Happy: 

bom.. vo comecar com a ultima versao do GCC mesmo..e todas as otimizaçoes necessarias..pro meu P4./.

Por falar nissu. alguem conhece todas...? ehehe he  :Twisted Evil: 

Obrigado pela ajuda ai galera.. mais pra frente eu vo postando.... 

os resultados./..

----------

## jcarlos

Da /p utilizar o próprio portage, ao invés de utilizar o comando emerge passar a utilizar o comando ebuild (as opções exatas /p se fazer isso não lembro mas buscando na documentação oficial da /p achar) ai é possível usar o portage e passar as opções ao ./configure mas isso vai dar um bom trabalho (talvez até mais do que fazendo tudo manualmente /c LFS).

Enfim, talvez o trabalho que isso dê não compense os 30% ganhos.

----------

## chefanos

Assim eu desanimo !! hehehehe  :Very Happy: 

na verdade eu to achando bastante coisa a respeito do icc.. e realmente existem programas com serios problemas...qdo compilados com o icc...

tipo o KDe... acho q por enquanto.. vai o gcc como dito antes.. !!!

----------

## jcarlos

Cara, conheço pouco sobre as otimizações, mas esse documento me serve como base quando preciso consultar:

http://gcc.gnu.org/onlinedocs/gcc-3.4.0/gcc/Optimize-Options.html#Optimize%20Options

Se você curte zuar o linux Gentoo vai ser "A Distribuição", você vai conseguir personalizar muita coisa, depois que comecei a utilizar Gentoo aprendi muito mais sobre o sistema e passei a curtir Linux mais ainda.

----------

## chefanos

Vlws pelo toque..!!

Eu passei um belo tempo sem usar o linux. e qdo eu volto. eu vejo.. q eu fui atropelado!!!!   :Very Happy: 

to muuuito defasado!!!. Eh hora de por a mao na massa e apreender mmmmuuuita coisa..!

Realmente o gentoo parece fantastico... a começar pela instalaçao e customizacoes possiveis..!

vou postando o meu progresso..

[]s a todos.!

e Obrigado!  :Very Happy: 

----------

## Kobal

Eu vi falar que esse ICC não e grande coisas, ele serve mais e pra beckmark.

----------

## Matheus Villela

O ICC parece ter um bom ganho no caso de aplicativos em c++. Pelo menos por alguns benchs que eu vi.

Mas... se for pro cara fazer um portage com gcc, tendo que fazer patches pra varios programas(muitos não compilarão, sempre  tem um porém quando "porta-se" um programa grande para outro compilador) vale mais a pena ir estudando o gcc e fazer parte do time de desnvolvedores do gcc  :Very Happy: (exagerei um pouco mas é por aí mesmo  :Wink: )

----------

## fernandotcl

Daqui alguns anos talvez chegaremos à almejada indepenência de compiladores, mas talvez quando chegarmos lá o GCC já será melhor que o ICC...

Quanto à usar o ICC em ebuilds, tem que passar alguns argumentos para o configure. Dá pra fazer isso como o jcarlos falou, mas é mais fácil ./configure, make, make install. E pior, alguns não usam GNU autotools, outros usam imake, outros qmake, e por aí vai. Alguns você vai ter que aplicar patches até no Makefile. Por enquanto, é muita dor de cabeça.

Referente às optimizações, não adianta colocar o super mega maxi ultra comando de optimização. Tudo depende da sua máquina. Por exemplo, em algumas, O2 é mais efetivo que O3. Sem contar que existem programas que não compilam com flags agressivas. O GCC, glibc e binutils, por exemplo, só podem ser compilados sem otimizações, mas eu acho que o Portage se encarrega de retirá-las na hora certa.

Eu recomendo:

```
CFLAGS="-march=<arch> -O2 -fomit-frame-pointer -pipe"
```

----------

## chefanos

bom.. jah eh asegunda vez q eu compilo o meu linux!   :Shocked:   eheheh

intaum.. eh realmente a 02 parece ser mais efetiva q a 03.. vou tentar dinovu soh q com umas flags..diferentes..

[]'s!

----------

## Matheus Villela

 *chefanos wrote:*   

> bom.. jah eh asegunda vez q eu compilo o meu linux!    eheheh
> 
> intaum.. eh realmente a 02 parece ser mais efetiva q a 03.. vou tentar dinovu soh q com umas flags..diferentes..
> 
> []'s!

 

Opa, não pude deixar de notar que você escreveu 02 e 03, a flag não é definida assim com "zero dois" e "zero três", mas sim com O2 e O3 -> "Ó dois" e "Ó três"  :Wink: 

----------

## chefanos

 *Matheus Villela wrote:*   

>  *chefanos wrote:*   bom.. jah eh asegunda vez q eu compilo o meu linux!    eheheh
> 
> intaum.. eh realmente a 02 parece ser mais efetiva q a 03.. vou tentar dinovu soh q com umas flags..diferentes..
> 
> []'s! 
> ...

 

Obrigado pela correcao.. naum posso postar coisas erradas desse jeito.!

me desculpem..!!  :Embarassed: 

Bom achu q foi o sono! 

Vlws pela atencao !!!

----------

