aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/lang/natRuntime.cc15
2 files changed, 17 insertions, 3 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 0a9aa3e..3623bf7 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2000-02-15 Tom Tromey <tromey@cygnus.com>
+
+ * java/lang/natRuntime.cc (_load): On Unix, prefix library name
+ with `lib' for loadLibrary. Fixes PR gcj/150.
+
2000-02-14 Warren Levy <warrenl@cygnus.com>
* gnu/gcj/math/MPN.java(findLowestBit): Made methods public.
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index f21a81f..cc69385 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -108,9 +108,18 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
using namespace java::lang;
#ifdef USE_LTDL
jint len = _Jv_GetStringUTFLength (path);
- char buf[len + 1];
- jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf);
- buf[total] = '\0';
+ char buf[len + 1 + 3];
+ int offset = 0;
+#ifndef WIN32
+ // On Unix boxes, prefix library name with `lib', for loadLibrary.
+ if (do_search)
+ {
+ strcpy (buf, "lib");
+ offset = 3;
+ }
+#endif
+ jsize total = JvGetStringUTFRegion (path, 0, path->length(), &buf[offset]);
+ buf[offset + total] = '\0';
// FIXME: make sure path is absolute.
lt_dlhandle h = do_search ? lt_dlopenext (buf) : lt_dlopen (buf);
if (h == NULL)