binary incompatible libc.so change breaks Sun Java

Bruno Haible bruno@clisp.org
Fri Apr 19 05:29:00 GMT 2002


Attempting to use the Sun JDK 1.3.1 with the current glibc, I get the
following error:

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

This is one more binary incompatible change in libc.so.

$ nm /usr/lib/SunJava2-1.3.1/jre/lib/i386/libjava.so | grep ' U __'
         U __assert_fail@@GLIBC_2.0
         U __divdi3@@GLIBC_2.0
         U __environ@@GLIBC_2.0
         U __libc_wait@@GLIBC_2.0
         U __lxstat@@GLIBC_2.0
         U __moddi3@@GLIBC_2.0
         U __xstat64@@GLIBC_2.1
         U __xstat@@GLIBC_2.0

Here is a fix.


2002-04-19  Bruno Haible  <bruno@clisp.org>

	* posix/Versions: Move back __libc_wait to GLIBC_2.0 section.

--- glibc-20020408/posix/Versions.bak	2002-02-04 12:42:40.000000000 +0100
+++ glibc-20020408/posix/Versions	2002-04-19 01:01:00.000000000 +0200
@@ -14,6 +14,9 @@
     # functions used by libstdc++ 2.7.2
     __waitpid;
 
+    # functions used by SunJava2-1.3.1/jre/lib/i386/libjava.so
+    __libc_wait;
+
     # global variables
     __environ; _environ;
 
@@ -108,7 +111,7 @@
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # are cancelable.
-    __libc_wait; __libc_waitpid; __libc_pause; __libc_nanosleep; __libc_fork;
+    __libc_waitpid; __libc_pause; __libc_nanosleep; __libc_fork;
     __libc_pread; __libc_pread64; __libc_pwrite; __libc_pwrite64;
   }
 }



More information about the Libc-alpha mailing list