Skip to content
Home » Problemas al utilizar la VM de Java en Fedora

Problemas al utilizar la VM de Java en Fedora

La utilización de versiones antiguas de JDK sobre Fedora, suele presentar el siguiente error al lanzar cualquier aplicación que use de la máquina virtual de Java.

Error occurred during initialization of VM
Unable to load native library:
.../libjava.so: symbol __libc_wait, version GLIBC_2.0 not 
defined in file libc.so.6 with link time reference

Gracias a tux.cl (realmente Jakub Jelinek de RedHat) hemos dado con la solución para resolver de forma rápida y efectiva el mencionado error, sin necesidad de hacer grandes cambios.

Según nos indican, Jakub Jelinek de RedHat propone lo siguiente para solucionar el problema:

gcc -O2 -shared -o ~/libcwait.so -fpic -xc - <<EOF
#include <errno.h>
#include <sys/syscall.h>
#include <sys/types.h>
#include <sys/wait.h>
pid_t
__libc_wait (int *status)
{
  int res;
  asm volatile ("pushl %%ebx\n\t"
                "movl %2, %%ebx\n\t"
                "movl %1, %%eax\n\t"
                "int \$0x80\n\t"
                "popl %%ebx"
                : "=a" (res)
                : "i" (__NR_wait4), "0" (WAIT_ANY), "c" (status), "d" (0), "S" (0));
  return res;
}
EOF

Tras ejecutar esto, hay que fijar un par de variables de entorno:

export LD_ASSUME_KERNEL=2.4.19
export LD_PRELOAD=~/libcwait.so