diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 0a9aa3e3e51..3623bf7d886 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2000-02-15 Tom Tromey + + * java/lang/natRuntime.cc (_load): On Unix, prefix library name + with `lib' for loadLibrary. Fixes PR gcj/150. + 2000-02-14 Warren Levy * gnu/gcj/math/MPN.java(findLowestBit): Made methods public. diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc index f21a81f1050..cc693858d2d 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)