From 26c3229c0b2ddc4de07fae0e344746a109d3e40a Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 15 Feb 2000 07:53:11 +0000 Subject: 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 --- libjava/java/lang/natRuntime.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'libjava/java') 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) -- cgit v1.1