Consulta LD_ASSUME_KERNEL

Aldrin Gonzalo Martoq Ahumada amartoq en dcc.uchile.cl
Lun Ago 6 16:35:40 CLT 2007


On 8/6/07, Franco Catrin L. <fcatrin en tuxpan.com> wrote:
> El lun, 06-08-2007 a las 12:54 -0400, Aldrin Gonzalo Martoq Ahumada
> escribió:
> > Estimados, me toca trabajar con software viejo y propietario
> > (principalmente IBM) y he notado que la variable de ambiente
> > LD_ASSUME_KERNEL ya no funciona como antaño.
> Ahora si Aldrin, ve si te sirve esto:
> http://www.tuxpan.com/fcatrin/es/comments.php?guid=20070806

Gracias Franco, estoy revisando tu tutorial ... una pequen~a
correcion, basta instalar libstdc++2.10-glibc2.2 (no es necesaria la
version -dev).

Funciona!! Al parecer Sun actualizo a NTPL ... un lsof -np <pid java>
me muestra:
------
java    22493 amartoq  mem    REG        8,3    60924   965219 /home/amartoq/tmp
/SunDownloadManager/jdk1.3.1_20/jre/lib/i386/native_threads/libhpi.so

ldd /home/amartoq/tmp/SunDownloadManager/jdk1.3.1_20/jre/lib/i386/native_threads/libhpi.so
        linux-gate.so.1 =>  (0xffffe000)
        libnsl.so.1 => /lib/tls/i686/cmov/libnsl.so.1 (0xb7f5c000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f35000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7f30000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f19000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dd8000)
        /lib/ld-linux.so.2 (0x80000000)
------------




Mi problema en particular con Java es que debo usar la version de IBM
(tambien descargable desde la web). La ultima version es 1.3.1 SR10.
Comente todos los LD_ASSUME_KERNEL en /opt/IBMJava2-131/{bin,jre/bin}
con el siguiente script:

---------------replaceLD_ASSUME_KERNEL.sh----inicio------
#!/bin/sh

for i in $(grep 'export LD_ASSUME' * | awk -F: '{print $1}' | sort |  uniq); do
        echo $i
        if [ !  -L $i ]; then
        perl -pi'old.*' -e 's/(export LD_ASSUME_KERNEL.*)/echo \1 > \/dev\/null/
' $i
        perl -pi'old.*' -e 's/(LD_ASSUME_KERNEL=.*)/echo \1 > \/dev\/null/' $i
        fi
done
---------------replaceLD_ASSUME_KERNEL.sh------fin------



El problema es que un simple "./java version" funciona, pero si usan
libpthread se cuelgan sin remedio. Una prueba es correr Eclipse 2.1.3.
Este es mi script actual:
---- runeclipse.sh------
#!/bin/sh

#export JAVA_HOME=/opt/IBMJava2-131
#export PATH=$JAVA_HOME/jre/bin:$PATH
export JAVA_HOME=/opt/IBM/WebSphereStudio/ApplicationDeveloper/v5.1.2/eclipse/
export PATH=$JAVA_HOME/jre/bin:$PATH
export LANG=C
export LANGUAGE=C
cd $(dirname $0)
exec ./eclipse -vmargs -Xj9
---- runeclipse.sh fin ---

Tambien en Ubuntu 7.04, tengo WebSphere Studio App Dev 5.1, y sin
pichicatear se cuelga... Es una version a~neja:
----------
amartoq en amartoq-dell:/opt/IBM/WebSphereStudio/ApplicationDeveloper/v5.1.2/eclipse/jre/bin$
./java -version
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1)
Classic VM (build 1.3.1, J2RE 1.3.1 IBM build cxia32131-20031021 (JIT
enabled: jitc))
-----------

Esta funciona aun con "export LD_ASSUME_KERNEL=2.2.5" y Eclipse
(Websphere Studio) SOLO FUNCIONA en Ubuntu si le pasas como parametro
-Xj9 (que es otra virtual machine no dependiente de libpthread) ...
Las versiones de IBM descargables no traen J9 (busque y busque y
busque y no encontre...)

-------
amartoq en amartoq-dell:/opt/IBM/WebSphereStudio/ApplicationDeveloper/v5.1.2/eclipse/jre/bin$
./java -version -Xj9
java version "1.3.1"
J9 - VM for the Java(TM) platform (build 2.1)
IBM J9SE VM (build 2.1, J2RE 1.3.1 IBM J9 build 20031201 (JIT enabled))
amartoq en amartoq-dell:/opt/IBM/WebSphereStudio/ApplicationDeveloper/v5.1.2/eclipse/jre/bin$
ldd classic/*.so
classic/libcore.so:
        linux-gate.so.1 =>  (0xffffe000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7faa000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7f93000)
        libjvm.so => not found
        libjava.so => not found
        libhpi.so => not found
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e51000)
        /lib/ld-linux.so.2 (0x80000000)
classic/libjvm.so:
        linux-gate.so.1 =>  (0xffffe000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7d71000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7d5a000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7d32000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7bf1000)
        /lib/ld-linux.so.2 (0x80000000)
amartoq en amartoq-dell:/opt/IBM/WebSphereStudio/ApplicationDeveloper/v5.1.2/eclipse/jre/bin$
ldd j9vm/*.so
        linux-gate.so.1 =>  (0xffffe000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e78000)
        /lib/ld-linux.so.2 (0x80000000)
------



Tambien tengo otros problemas con soporte de LinuxThreads, por ejemplo
WebSphere MQ 5.3... Al final tuve que reinstalar en el tarrito de
desarrollo Debian Etch, que si los soporta y ahi todo funciona sin
pichicatear nada!!! (los LD_ASSUME_KERNEL, por ejemplo; los LANG=C
...).



En fin, definitivamente no hay soporte a LinuxThreads??? Creo que por
ahora lo unico que queda es usar Debian... Probare el experimento de
extraer la libc6 de debian etch y ponerla en algun path, pero eso
implica configurar variables y etc etc...



-- 
Aldrin Martoq



Más información sobre la lista de distribución Linux