The change below in Defs-bsd.gmk causes the loading of the spurious copy of 
libjvm.  -- John

On Mar 19, 2011, at 7:02 PM, John Rose wrote:

> The root problem appears to be that libjvm is mapped twice.  The second 
> mapping is used by native methods.  The first execution of 
> Thread.currentThread() binds to the uninitialized second copy of 
> JVM_CurrentThread (jvm.cpp) which accesses an uninitialized table _sp_map to 
> get Thread::current().  A broken _sp_map drops the JVM.
> 
> There have been launcher changes in the last several weeks.  Perhaps they 
> have caused the double mapping.  Or maybe that was happening all along, but 
> now it has become problematic.
> 
> By the way, the double mapping does not happen with "gamma" (non-launcher 
> debug executable), which is why I suspect the launcher.
> 
> -- John

diff --git a/make/common/Defs-bsd.gmk b/make/common/Defs-bsd.gmk
--- a/make/common/Defs-bsd.gmk
+++ b/make/common/Defs-bsd.gmk
@@ -297,7 +297,7 @@
 # the library itself should not.
 #
 VM_NAME         = server
-JVMLIB          = -L$(LIBDIR)/$(LIBARCH)/$(VM_NAME) -ljvm
+JVMLIB          = -Xlinker -rpath -Xlinker $(LIBDIR)/$(LIBARCH)/$(VM_NAME) 
-L$(LIBDIR)/$(LIBARCH)/$(VM_NAME) -ljvm
 JAVALIB         = -ljava $(JVMLIB)
 
 #




Reply via email to