[FUG-BR] [OFF-TOPIC] JDK1.4

Renato Botelho rbgarga em gmail.com
Terça Outubro 28 17:07:00 BRST 2008


On Tue, Oct 28, 2008 at 4:56 PM, Patryck Ramos Martins
<patryckrm at gmail.com> wrote:
> Prezados desculpem a ignorância, mas quero instalar o
> /usr/ports/java/jdk14 no FreeBSD 7.0 e no Makefile dele  tem:
>
> .if ${OSVERSION} >= 700042
> BROKEN=                Does not compile with GCC 4.2
> .endif
>
> Isso quer dizer que não posso instalar no 7.0 esse jdk, é isso
> né....??? e agora tem outra solução??? Sou obrigado a colocar este
> jdk14
>
>
> Tentei comentar as três linhas supracitadas e já baixei os arquivos
> necessários e coloquei no /usr/ports/distfiles/ mas ocorre alguns
> erros de instalação...
>
>                from
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/utilities/accessFlags.cpp:10:
> /usr/ports/java/jdk14/work/hotspot/src/cpu/i486/vm/frame_i486.hpp:96:
> error: extra qualification 'frame::' on member 'native_param_addr'
> In file included from ../generated/incls/_accessFlags.cpp.incl:114,
>                 from
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/utilities/accessFlags.cpp:10:
> /usr/ports/java/jdk14/work/hotspot/src/cpu/i486/vm/nativeInst_i486.hpp:
> In static member function 'static jint NativeCall::is_call_to(u_char*,
> u_char*)':
> /usr/ports/java/jdk14/work/hotspot/src/cpu/i486/vm/nativeInst_i486.hpp:122:
> error: 'nativeInstruction_at' was not declared in this scope
> /usr/ports/java/jdk14/work/hotspot/src/cpu/i486/vm/nativeInst_i486.hpp:123:
> error: 'nativeCall_at' was not declared in this scope
> In file included from ../generated/incls/_osThread_pd.hpp.incl:1,
>                 from
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/runtime/osThread.hpp:76,
>                 from ../generated/incls/_accessFlags.cpp.incl:133,
>                 from
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/utilities/accessFlags.cpp:10:
> /usr/ports/java/jdk14/work/hotspot/src/os/bsd/vm/osThread_bsd.hpp: At
> global scope:
> /usr/ports/java/jdk14/work/hotspot/src/os/bsd/vm/osThread_bsd.hpp:97:
> error: extra qualification 'OSThread::' on member
> 'do_interrupt_callbacks_at_interrupt'
> In file included from ../generated/incls/_accessFlags.cpp.incl:134,
>                 from
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/utilities/accessFlags.cpp:10:
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/runtime/threadLocalStorage.hpp:38:
> error: extra qualification 'ThreadLocalStorage::' on member
> 'get_thread_via_cache_slowly'
> In file included from ../generated/incls/_accessFlags.cpp.incl:136,
>                 from
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/utilities/accessFlags.cpp:10:
> /usr/ports/java/jdk14/work/hotspot/src/share/vm/runtime/thread.hpp:1428:
> error: extra qualification 'Threads::' on member
> 'jvmpi_fab_heavy_monitors'
> gmake[3]: *** [accessFlags.o] Error 1
> gmake[3]: Leaving directory
> `/usr/ports/java/jdk14/work/control/build/bsd-i586/hotspot-i586/tmp/bsd_i486_compiler2/product'
> gmake[2]: *** [the_vm] Error 2
> gmake[2]: Leaving directory
> `/usr/ports/java/jdk14/work/control/build/bsd-i586/hotspot-i586/tmp/bsd_i486_compiler2/product'
> gmake[1]: *** [product] Error 2
> gmake[1]: Leaving directory
> `/usr/ports/java/jdk14/work/control/build/bsd-i586/hotspot-i586/tmp'
> gmake: *** [product] Error 2
> *** Error code 2

Isso é um fato bem comum, e sempre acontece, o jdk em questão é
bem antigo, a última atualização dele no ports pra patchlevel 8 ocorreu
a 2 anos e 9 meses atrás, de lá pra cá, muita coisa mudou no sistema,
inclusive a versão do gcc, que foi pra 4.x.

Se você comparar com distribuições linux, acredito que todas elas
usem a gcc 4.x nos dias de hoje, portanto, se a o pessoal que cuida
do java não lançar uma correção, ou, alguém se dispuser a consertar
isso, acho bem difícil que ele volte a funcionar no free 7.x, e digo mais,
mais cedo ou mais tarde ele será removido da árvore.

O que vocë pode tentar, é instalar um gcc 3.4 pelo ports, e tentar dar
um jeito de fazer o jdk14 usar a gcc 3.4 na hora da compilação, talvez,
eu disse *talvez*, apenas acrescentando a linha abaixo ao Makefile
do jdk:

USE_GCC= 3.4

Se isso der certo, você pode mandar um PR e sugerir que seja
adotado isso no lugar da mensagem falando que não compila.

Abraços
-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd