aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natRuntime.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2003-03-17 00:45:37 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-03-17 00:45:37 +0000
commit2b7f1f8f41666dc1d921e759ca80a24846f745fe (patch)
tree9c8375299ef6ce318b2eb397da5d0658a1f7d5e7 /libjava/java/lang/natRuntime.cc
parent01cca2d84d09910e5033d1151f4bceb0d1bb5c82 (diff)
downloadgcc-2b7f1f8f41666dc1d921e759ca80a24846f745fe.zip
gcc-2b7f1f8f41666dc1d921e759ca80a24846f745fe.tar.gz
gcc-2b7f1f8f41666dc1d921e759ca80a24846f745fe.tar.bz2
resolve.cc (ncode): Use _Jv_platform_ffi_abi.
* resolve.cc (ncode): Use _Jv_platform_ffi_abi. Include platform.h. * java/lang/natRuntime.cc (insertSystemProperties): Use _Jv_platform_path_separator. (nativeGetLibname): Use _Jv_platform_file_separator. (_load): Use _Jv_platform_onload_names. (onload_names): New global. * include/win32.h (_Jv_platform_file_separator): New define. (_Jv_platform_path_separator): Likewise. (_Jv_platform_onload_names): Likewise. (_Jv_platform_ffi_abi): Likewise. * include/posix.h (_Jv_platform_file_separator): New define. (_Jv_platform_path_separator): Likewise. (_Jv_platform_onload_names): Likewise. (_Jv_platform_ffi_abi): Likewise. From-SVN: r64461
Diffstat (limited to 'libjava/java/lang/natRuntime.cc')
-rw-r--r--libjava/java/lang/natRuntime.cc39
1 files changed, 15 insertions, 24 deletions
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc
index 237b0d1..b4c1510 100644
--- a/libjava/java/lang/natRuntime.cc
+++ b/libjava/java/lang/natRuntime.cc
@@ -140,6 +140,11 @@ java::lang::Runtime::gc (void)
_Jv_RunGC ();
}
+#ifdef USE_LTDL
+// List of names for JNI_OnLoad.
+static const char *onload_names[] = _Jv_platform_onload_names;
+#endif
+
void
java::lang::Runtime::_load (jstring path, jboolean do_search)
{
@@ -221,19 +226,16 @@ java::lang::Runtime::_load (jstring path, jboolean do_search)
throw new UnsatisfiedLinkError (str);
}
- 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)
+ // Search for JNI_OnLoad function.
+ void *onload = NULL;
+ const char **name = onload_names;
+ while (*name != NULL)
{
- onload = lt_dlsym (h, "JNI_OnLoad@8");
- if (onload == NULL)
- onload = lt_dlsym (h, "_JNI_OnLoad@8");
+ onload = lt_dlsym (h, *name);
+ if (onload != NULL)
+ break;
+ ++name;
}
-#endif /* WIN32 */
if (onload != NULL)
{
@@ -570,11 +572,7 @@ java::lang::Runtime::insertSystemProperties (java::util::Properties *newprops)
if (classpath)
{
sb->append (JvNewStringLatin1 (classpath));
-#ifdef WIN32
- sb->append ((jchar) ';');
-#else
- sb->append ((jchar) ':');
-#endif
+ sb->append (_Jv_platform_path_separator);
}
if (cp != NULL)
sb->append (cp);
@@ -632,14 +630,7 @@ java::lang::Runtime::nativeGetLibname (jstring pathname, jstring libname)
java::lang::StringBuffer *sb = new java::lang::StringBuffer ();
sb->append(pathname);
if (pathname->length() > 0)
- {
- // FIXME: use platform function here.
-#ifdef WIN32
- sb->append ((jchar) '\\');
-#else
- sb->append ((jchar) '/');
-#endif
- }
+ sb->append (_Jv_platform_file_separator);
sb->append (JvNewStringLatin1 (_Jv_platform_solib_prefix));
sb->append(libname);