diff options
author | Tom Tromey <tromey@cygnus.com> | 1999-05-05 14:19:24 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-05-05 14:19:24 +0000 |
commit | 9096b279c220a45ee1a369a46661b366db767502 (patch) | |
tree | 14b0eb7b6f562102ad5e5179e72ba9ffe7a1066c /libjava/java/lang/natRuntime.cc | |
parent | 8b04083becc6a7703c24f9802cd943da33de2a4a (diff) | |
download | gcc-9096b279c220a45ee1a369a46661b366db767502.zip gcc-9096b279c220a45ee1a369a46661b366db767502.tar.gz gcc-9096b279c220a45ee1a369a46661b366db767502.tar.bz2 |
Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (CLEANFILES): Don't mention $(class_files).
(clean-local): New target
* java/lang/natRuntime.cc: Include <ltdl.h> if required.
(load, loadLibrary): Now native.
(init): New method.
* java/lang/Runtime.java (load, loadLibrary): Now native.
(init): New native method.
(Runtime): Use init.
* prims.cc: Include <ltdl.h> if required.
(JvRunMain): Call LTDL_SET_PRELOADED_SYMBOLS.
From-SVN: r26785
Diffstat (limited to 'libjava/java/lang/natRuntime.cc')
-rw-r--r-- | libjava/java/lang/natRuntime.cc | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/libjava/java/lang/natRuntime.cc b/libjava/java/lang/natRuntime.cc index d89ab18..f8b050c 100644 --- a/libjava/java/lang/natRuntime.cc +++ b/libjava/java/lang/natRuntime.cc @@ -15,6 +15,12 @@ details. */ #include <cni.h> #include <jvm.h> #include <java/lang/Runtime.h> +#include <java/lang/UnknownError.h> +#include <java/lang/UnsatisfiedLinkError.h> + +#ifdef USE_LTDL +#include <ltdl.h> +#endif void java::lang::Runtime::exit (jint status) @@ -44,6 +50,55 @@ java::lang::Runtime::gc (void) } void +java::lang::Runtime::load (jstring path) +{ + JvSynchronize sync (this); + checkLink (path); + using namespace java::lang; +#ifdef USE_LTDL + // FIXME: make sure path is absolute. + lt_dlhandle h = lt_dlopen (FIXME); + if (h == NULL) + { + const char *msg = lt_dlerror (); + _Jv_Throw (new UnsatisfiedLinkError (JvNewStringLatin1 (msg))); + } +#else + _Jv_Throw (new UnknownError + (JvNewStringLatin1 ("Runtime.load not implemented"))); +#endif /* USE_LTDL */ +} + +void +java::lang::Runtime::loadLibrary (jstring lib) +{ + JvSynchronize sync (this); + checkLink (lib); + using namespace java::lang; +#ifdef USE_LTDL + // FIXME: make sure path is absolute. + lt_dlhandle h = lt_dlopenext (FIXME); + if (h == NULL) + { + const char *msg = lt_dlerror (); + _Jv_Throw (new UnsatisfiedLinkError (JvNewStringLatin1 (msg))); + } +#else + _Jv_Throw (new UnknownError + (JvNewStringLatin1 ("Runtime.loadLibrary not implemented"))); +#endif /* USE_LTDL */ +} + +void +java::lang::Runtime::init (void) +{ + finalize_on_exit = false; +#ifdef USE_LTDL + lt_dlinit (); +#endif +} + +void java::lang::Runtime::runFinalization (void) { _Jv_RunFinalizers (); |