re GNATS gcj/150 (System.loadLibrary() semantics arn't the same as in the JDK)

* java/lang/natRuntime.cc (_load): On Unix, prefix library name
	with `lib' for loadLibrary.  Fixes PR gcj/150.

From-SVN: r31976
This commit is contained in:
Tom Tromey 2000-02-15 07:53:11 +00:00 committed by Tom Tromey
parent 789a3090f3
commit 26c3229c0b
2 changed files with 17 additions and 3 deletions

View File

@ -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> 2000-02-14 Warren Levy <warrenl@cygnus.com>
* gnu/gcj/math/MPN.java(findLowestBit): Made methods public. * gnu/gcj/math/MPN.java(findLowestBit): Made methods public.

View File

@ -108,9 +108,18 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
using namespace java::lang; using namespace java::lang;
#ifdef USE_LTDL #ifdef USE_LTDL
jint len = _Jv_GetStringUTFLength (path); jint len = _Jv_GetStringUTFLength (path);
char buf[len + 1]; char buf[len + 1 + 3];
jsize total = JvGetStringUTFRegion (path, 0, path->length(), buf); int offset = 0;
buf[total] = '\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. // FIXME: make sure path is absolute.
lt_dlhandle h = do_search ? lt_dlopenext (buf) : lt_dlopen (buf); lt_dlhandle h = do_search ? lt_dlopenext (buf) : lt_dlopen (buf);
if (h == NULL) if (h == NULL)