[FUG-BR] Utilizar gcc46 para compilar um port.

Renato Botelho rbgarga em gmail.com
Segunda Janeiro 27 15:49:43 BRST 2014


On 27-01-2014 13:39, Otacílio wrote:
> Em 27/01/2014 07:08, Renato Botelho escreveu:
>> On 27-01-2014 00:38, Otacílio wrote:
>>> Em 26/01/2014 16:23, Renato Botelho escreveu:
>>>> On 26-01-2014 11:07, Otacílio wrote:
>>>>> Em 26/01/2014 09:00, Renato Botelho escreveu:
>>>>>> On 26-01-2014 09:22, Otacílio wrote:
>>>>>>> Em 25/01/2014 23:28, Renato Botelho escreveu:
>>>>>>>> On 25-01-2014 23:28, Otacílio wrote:
>>>>>>>>> Olá
>>>>>>>>>
>>>>>>>>> Sou o mantenedor do port p5-Verilog-Perl. Esse port não está compilando
>>>>>>>>> no FreeBSD10 porque o compilador padrão é o clang. Adicionei o gcc46 mas
>>>>>>>>> o port só procurar por gcc. Vocês tem alguma dica sobre isso? Se eu
>>>>>>>>> fizer um link de gcc46 para gcc funciona de boa. Mas não acho que essa
>>>>>>>>> seja a solução correta.
>>>>>>>> O ideal seria aplicar um patch para que o port compile com o clang, qual
>>>>>>>> o erro que tá dando?
>>>>>>>>
>>>>>>>> Caso não tenha jeito, adicione a linha:
>>>>>>>>
>>>>>>>> USE_GCC=	4.6+
>>>>>>>>
>>>>>>>> ao Makefile do port. conforme citado no /usr/ports/Mk/bsd.gcc.mk e no
>>>>>>>> Porters Handbook section 5.8.8
>>>>>>>>
>>>>>>>> []s
>>>>>>> Adicionar essa linha foi a primeira coisa que fiz, mas o software foi
>>>>>>> muito mal escrito quanto a dependência do compilador. Existem chamadas
>>>>>>> diretas dentro dele ao gcc aí eu tenho que ficar procurando e mudando
>>>>>>> uma por uma.
>>>>>> Então o ideal é você alterar o software pra que ele respeite a variável
>>>>>> ${CC} e depois mandar um patch para o projeto, assim, na próxima versão
>>>>>> ele já estará corrigido.
>>>>>>
>>>>> Fiz um patch aqui, mas o clang está exaurindo a memória da máquina e não
>>>>> consegue compilar. Se alguém puder me confirmar que esse problema também
>>>>> ocorre na sua máquina eu agradeço.
>>>>> O port é o cad/p5-Verilog-Perl
>>>> Dei uma olhada e esse projeto realmente não respeita nada das variáveis
>>>> de ambiente.
>>>>
>>>> Existe uma msg lá desligando a otimização porque senão ele iria travar
>>>> na hora de compilar, talvez pelo mesmo motivo ele esteja ferrando com clang.
>>>>
>>>> Com algumas alterações eu consegui fazer ele compilar, mas ele não
>>>> passou nos testes.
>>>>
>>>> Acho que o melhor caminho é esquecer a parte do ports, pegar o source
>>>> dele e tentar instalar na unha, conforme forem aparecendo os erros vc
>>>> pode entrar em contato com o author do software reportando o problema e
>>>> ele pode ir te ajudando a corrigir.
>>>>
>>>> []s
>>> Renato, você conseguiu compilar até o fim? Se sim o que você modificou?
>>> Aqui ele esgotou a memória.
>> Consegui compilar até o fim usando gcc-4.6, com o patch em anexo. Mas na
>> hora do make test ele não passa.
>>
>> []s
> 
> Eu tinha conseguido compilar com o gcc também, mas a ideia é portar para 
> o clang.

As alterações que eu fiz, fazem com que o port respeite a variável CXX
que for passada, além de corrigir outros warnings gerados pelo portlint.

A partir daí você pode trabalhar em cima e resolver o problema.

-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd