------- Comment #4 from jakub at gcc dot gnu dot org 2008-12-10 11:09 -------
-findirect-dispatch compiled/linked programs built with 4.3 work just fine
against 4.4 libgcj_bc.so.1 (that's why libgcj_bc.so.1 was added).
The only problem is if you link a program against both -lgcj_bc and -lgcj,
because if you link say with 4.3, then it will be linked against libgcj_bc.so.1
and libgcj.so.9 and if you then dynamically link it against 4.4 libgcj_bc.so.1,
which depends on libgcj.so.10, both libgcj.so.9 and libgcj.so.10 will be
dynamically linked into the same program, which for obvious reasons can't work
at all (same as for e.g. libstdc++.so.5 and libstdc++.so.6 etc.).
The answer is simple, never link against both -lgcj_bc and -lgcj if you want
the program to work against newer libjava versions. If a program is
-findirect-dispatch as whole, it should be linked against -lgcj_bc, otherwise
against -lgcj.
This is nothing new, for 4.2 to 4.3 you get exactly the same problems.
--
jakub at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aph at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38396