[FUG-BR] Ajuda com um pseudo port

Cleyton Agapito cragapito em gmail.com
Terça Novembro 17 01:11:53 BRST 2015


Em 16/11/15, Eduardo Lemos de Sa<eduardo.lemosdesa em gmail.com> escreveu:
> Oi Cleyton
> Em 13/11/15, Eduardo Lemos de Sa<eduardo.lemosdesa em gmail.com> escreveu:
>> Caríssimos(as)
>>
>> No /usr/ports/biology/molden há uma versão para a instalaçao de um
>> aplicativo que está na versão 5.0.7. No site do desenvolvedor, a versão
>> mais recente é a 5.4. Muito antes do port para a 5.0.7 ser lançada, eu
>> fazia as minhas atualizações compilando por mim mesmo. Porém, nesta
>> última
>> versão, usando os mesmos procedimentos que eu usava antes, eu esbarro no
>> erro:
>>
>> xwin.o: In function `dos2u':
>> xwin.c:(.text+0x86810): warning: warning: mktemp() possibly used
>> unsafely;
>> consider using mkstemp()
>> xwin.o: In function `mloop':
>> xwin.c:(.text+0x4120c): undefined reference to `Timer'
>> xwin.c:(.text+0x41468): undefined reference to `Timer'
>> collect2: error: ld returned 1 exit status
>> makefile:270: recipe for target 'molden' failed
>> gmake: *** [molden] Error 1
>>
>> O arquivo de log completo da compilação vai como anexo, assim como o
>> makefile que eu usei.
>>
>> Como o arquivo xwin.c, na rotina mloop, não apresenta diferenças (usei o
>> vimdiff para compara-los) que se relacionam a função Timer, eu estou
>> suponho que trata-se mais de um problema de configuração do sistema
>> operancional (FreeBSD amd64) do que propriamente no aplicativo.
>>
>> Eu também vi que há uma /usr/local/include/time.h (não sei se é este o
>> arquivo que é usado para prover a função Time, mas o nome é convidativo).
>>
>> Outra coisa que me chamou a atenção: no port, a compilação é feita com o
>> gfortran48, mas a linkedição é feita com o gcc47. Será que é por causa do
>> meu make.conf:
>>
>> if !empty(.CURDIR:M/usr/ports/*) && exists(/usr/local/bin/gcc47)
>> CC=gcc47
>> CXX=g++47
>> CPP=cpp47
>> CFLAGS+=-mssse3
>> .endif
>>
>> ?
>>
>> Por favor, alguém tem uma sugestão de como eu poderia fazer corretamente
>> a
>> linkedição para que este erro desapareça?
>>
>> Grato pela atenção
>>
>> Edu
>>
>
> Vc já testou o patch do Kurt Jaeger?
>
> https://lists.freebsd.org/pipermail/freebsd-ports/2015-November/101014.html
>
>
> Eu mandei um email para ele, que por sua vez mandou-me um patch. Ou eu não
> soube aplica-lo (cd /usr/ports/biology/molden ; patch
> <nome_do_arquivo_com_o_patch ) ou ele estava com erro: no início, o s.o.
> reclamou da sintase então eu, pacientemente, usei o diff que há na página
> onde estava o patch e editei os arquivos correspondentes. Porém, na hora de
> fazer o sudo make, eu recebi a mensagem de que não se sabia qual arquivo
> deveria ser modificado pelo patch. Acho que, ou ele não testou o patch que
> fez, ou o ambiente dele é muito diferente do meu (a começar pelo
> interpretador de shell).
>
> Obrigado pela ajuda e pela dica.
>
> Um abraço
>
> Eduardo
>
>
> []'s

Eduardo, o patch foi tirado dois níveis abaixo (em /usr/ports), então
o correto seria executar:

patch -p2 < nome_do_arquivo_com_o_patch

Consegui aplicar o patch mas deu o mesmo erro que vc falou:

===>  Patching for molden-5.4,1
===>  Applying FreeBSD patches for molden-5.4,1
Ignoring previously applied (or reversed) patch.
2 out of 2 hunks ignored--saving rejects to ambfor/makefile.rej
=> Patch patch-ambfor-makefile failed to apply cleanly.
*** Error code 1

Sobre o problema em si (porque até aqui vc já tinha chegado), por
enquanto não se preocupe com o fortran porque quem faz a ligação dos
objetos é o ld, ele é quem está reclamando que o objeto não contém o
código que ele precisa, a compilação aparentemente andou bem.

Estava olhando o código, a função Timer não é externa, está
prototipada na linha 334 e definida na linha 31458 em
./work/molden5.4/xwin.c e nos usos anteriores dela só é usada se tiver
definido HASTIMER (como por exemplo na linha 25711), só que a flag
está definida na linha 24 do Makefile e não teve alteração nenhuma
nela, então foi por aqui que eu me perdi também :-)

Pra mim não está parecendo problema com o ambiente ou com o sistema.
Acho que você poderia comunicar isso ao mantenedor, ele vai ter mais
condições de ajudar.

[]'s


Mais detalhes sobre a lista de discussão freebsd