diff options
author | Tom Tromey <tromey@redhat.com> | 2003-03-17 00:45:37 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-03-17 00:45:37 +0000 |
commit | 2b7f1f8f41666dc1d921e759ca80a24846f745fe (patch) | |
tree | 9c8375299ef6ce318b2eb397da5d0658a1f7d5e7 /libjava/java/lang/natRuntime.cc | |
parent | 01cca2d84d09910e5033d1151f4bceb0d1bb5c82 (diff) | |
download | gcc-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.cc | 39 |
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); |