aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natRuntime.cc
diff options
context:
space:
mode:
authorRanjit Mathew <rmathew@hotmail.com>2003-02-03 21:23:59 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-02-03 21:23:59 +0000
commitd074ed7c016d74f5305d482e5a2b685920802a4d (patch)
tree41214ef4662ff54a4a3264358d4ba31c3cb1da97 /libjava/java/lang/natRuntime.cc
parent9762ec767ee8e33089b9d4763cc39ad774b36e43 (diff)
downloadgcc-d074ed7c016d74f5305d482e5a2b685920802a4d.zip
gcc-d074ed7c016d74f5305d482e5a2b685920802a4d.tar.gz
gcc-d074ed7c016d74f5305d482e5a2b685920802a4d.tar.bz2
natRuntime.cc (java::lang::Runtime::_load)): Take care of the fact that on Win32...
2003-02-03 Ranjit Mathew <rmathew@hotmail.com> * java/lang/natRuntime.cc (java::lang::Runtime::_load)): Take care of the fact that on Win32, JNI_OnLoad is an "stdcall" function and could also have been exported as "JNI_OnLoad@8" (MinGW) or "_JNI_OnLoad@8" (MSVC). From-SVN: r62348
Diffstat (limited to 'libjava/java/lang/natRuntime.cc')
-rw-r--r--libjava/java/lang/natRuntime.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index f74a1e7..09f1e04 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -1,6 +1,6 @@
// natRuntime.cc - Implementation of native side of Runtime class.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation
This file is part of libgcj.
@@ -241,6 +241,19 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
add_library (h);
void *onload = lt_dlsym (h, "JNI_OnLoad");
+
+#ifdef WIN32
+ // On Win32, JNI_OnLoad is an "stdcall" function taking two pointers
+ // (8 bytes) as arguments. It could also have been exported as
+ // "JNI_OnLoad@8" (MinGW) or "_JNI_OnLoad@8" (MSVC).
+ if (onload == NULL)
+ {
+ onload = lt_dlsym (h, "JNI_OnLoad@8");
+ if (onload == NULL)
+ onload = lt_dlsym (h, "_JNI_OnLoad@8");
+ }
+#endif /* WIN32 */
+
if (onload != NULL)
{
JavaVM *vm = _Jv_GetJavaVM ();
@@ -249,7 +262,7 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
// FIXME: what?
return;
}
- jint vers = ((jint (*) (JavaVM *, void *)) onload) (vm, NULL);
+ jint vers = ((jint (JNICALL *) (JavaVM *, void *)) onload) (vm, NULL);
if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2
&& vers != JNI_VERSION_1_4)
{