[kaffe] CVS kaffe (robilad): Fixed native library loading on Cygwin
Kaffe CVS
cvs-commits at kaffe.org
Tue Sep 13 21:48:06 PDT 2005
PatchSet 6896
Date: 2005/09/14 04:38:08
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Fixed native library loading on Cygwin
Members:
ChangeLog:1.4417->1.4418
libraries/javalib/java/lang/Runtime.java:1.36->1.37
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4417 kaffe/ChangeLog:1.4418
--- kaffe/ChangeLog:1.4417 Tue Sep 13 21:37:43 2005
+++ kaffe/ChangeLog Wed Sep 14 04:38:08 2005
@@ -1,5 +1,15 @@
2005-09-13 Dalibor Topic <robilad at kaffe.org>
+ * libraries/java/java/lang/Runtime.java
+ (loadLibrary) Try multiple different
+ prefixes and suffixes if library can't be loaded
+ using the mapped name. This takes care of
+ Cygwin DLLs, Libtool modules and hopefully
+ will work for dylibs, jnilibs and similar
+ DSO variants as well.
+
+2005-09-13 Dalibor Topic <robilad at kaffe.org>
+
* kaffe/scripts/javap.in,
kaffe/scripts/native2ascii.in,
kaffe/scripts/rmic.in,
Index: kaffe/libraries/javalib/java/lang/Runtime.java
diff -u kaffe/libraries/javalib/java/lang/Runtime.java:1.36 kaffe/libraries/javalib/java/lang/Runtime.java:1.37
--- kaffe/libraries/javalib/java/lang/Runtime.java:1.36 Sun Aug 21 00:41:02 2005
+++ kaffe/libraries/javalib/java/lang/Runtime.java Wed Sep 14 04:37:46 2005
@@ -760,6 +760,26 @@
for (int i = 0; i < libpath.length; i++)
if (loadLib(libpath[i] + filename, loader) != 0)
return;
+
+ // OK. That did not work. Let's be creative and try different
+ // prefix-suffix combinations.
+ // NB: Yes, this is a wasteful implementation.
+
+ String [] prefixes = {"lib",
+ "cyg",
+ "" };
+ String [] suffixes = {".so",
+ ".dll",
+ ".la",
+ ".a",
+ ".dylib",
+ ".jnilib",
+ ".dll.a"};
+ for (int j = 0; j < prefixes.length; j++)
+ for (int k = 0; k < suffixes.length; k++)
+ for (int i = 0; i < libpath.length; i++)
+ if (loadLib(libpath[i] + prefixes[j] + libname + suffixes[k], loader) != 0)
+ return;
}
throw new UnsatisfiedLinkError("Native library `" + libname
+ "' not found (as file `" + filename
More information about the kaffe
mailing list