summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-15 07:53:11 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2000-02-15 07:53:11 +0000
commit0696752402c1f8e79fcc0e4657dee344b8a081c0 (patch)
tree590b5bba0580a628e32ef9cf74a30c2744e0c4d8 /libjava/java
parent68fec005f1e784ebd2d9aa09d0e34d39ad0ff4e5 (diff)
downloadppe42-gcc-0696752402c1f8e79fcc0e4657dee344b8a081c0.tar.gz
ppe42-gcc-0696752402c1f8e79fcc0e4657dee344b8a081c0.zip
* java/lang/natRuntime.cc (_load): On Unix, prefix library name
with `lib' for loadLibrary. Fixes PR gcj/150. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31976 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natRuntime.cc15
1 files changed, 12 insertions, 3 deletions
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)
OpenPOWER on IntegriCloud