aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@cygnus.com>1999-05-05 14:19:24 +0000
committerTom Tromey <tromey@gcc.gnu.org>1999-05-05 14:19:24 +0000
commit9096b279c220a45ee1a369a46661b366db767502 (patch)
tree14b0eb7b6f562102ad5e5179e72ba9ffe7a1066c
parent8b04083becc6a7703c24f9802cd943da33de2a4a (diff)
downloadgcc-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
-rw-r--r--libjava/ChangeLog15
-rw-r--r--libjava/Makefile.am6
-rw-r--r--libjava/Makefile.in8
-rw-r--r--libjava/java/lang/Runtime.java19
-rw-r--r--libjava/java/lang/natRuntime.cc55
-rw-r--r--libjava/prims.cc7
6 files changed, 94 insertions, 16 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 4223643..44320c8 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,18 @@
+1999-05-05 Tom Tromey <tromey@cygnus.com>
+
+ * 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.
+
1999-05-05 Gilles Zunino <Gilles.Zunino@hei.fr>
* configure.in: Switch from irix threads to posix threads
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index f0319db..da9cce2 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -120,7 +120,11 @@ libgcj.zip: $(java_source_files)
$(ZIP) -r libgcj java gnu -n .class -i '*.class' -i '*/'
MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files)
-CLEANFILES = libgcj.zip $(class_files)
+CLEANFILES = libgcj.zip
+
+clean-local:
+## We just remove every .class file that was created.
+ find . -name '*.class' -print | xargs rm -f
SUFFIXES = .class .java .h
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index 70113db..5c9bf0a 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -163,7 +163,7 @@ libgcj_la_LIBADD = $(javao_files) $(nat_files) $(c_files) $(GCOBJS) \
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) -release $(VERSION)
MOSTLYCLEANFILES = $(javao_files) $(nat_files) $(nat_headers) $(c_files)
-CLEANFILES = libgcj.zip $(class_files)
+CLEANFILES = libgcj.zip
SUFFIXES = .class .java .h
@@ -1196,7 +1196,8 @@ mostlyclean: mostlyclean-recursive
clean-am: clean-hdr clean-toolexeclibLTLIBRARIES clean-compile \
clean-libtool clean-binPROGRAMS clean-noinstPROGRAMS \
- clean-tags clean-depend clean-generic mostlyclean-am
+ clean-tags clean-depend clean-generic mostlyclean-am \
+ clean-local
clean: clean-recursive
@@ -1258,6 +1259,9 @@ libgcj.zip: $(java_source_files)
-@rm -f libgcj.zip
$(ZIP) -r libgcj java gnu -n .class -i '*.class' -i '*/'
+clean-local:
+ find . -name '*.class' -print | xargs rm -f
+
.class.lo:
$(GCJCOMPILE) -o $@ $<
diff --git a/libjava/java/lang/Runtime.java b/libjava/java/lang/Runtime.java
index baf1ae5..94e7770 100644
--- a/libjava/java/lang/Runtime.java
+++ b/libjava/java/lang/Runtime.java
@@ -94,18 +94,8 @@ public class Runtime
s.checkLink(lib);
}
- public synchronized void load (String pathname)
- {
- checkLink (pathname);
- // FIXME.
- throw new UnsatisfiedLinkError ("Runtime.load not implemented");
- }
- public synchronized void loadLibrary (String libname)
- {
- checkLink (libname);
- // FIXME.
- throw new UnsatisfiedLinkError ("Runtime.loadLibrary not implemented");
- }
+ public native void load (String pathname);
+ public native void loadLibrary (String libname);
public native void runFinalization ();
@@ -122,10 +112,13 @@ public class Runtime
public native void traceInstructions (boolean on);
public native void traceMethodCalls (boolean on);
+ // A helper for the constructor.
+ private final native void init ();
+
// The sole constructor.
private Runtime ()
{
- finalize_on_exit = false;
+ init ();
}
// Private data.
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 ();
diff --git a/libjava/prims.cc b/libjava/prims.cc
index 4d11cd8..4cc31cd 100644
--- a/libjava/prims.cc
+++ b/libjava/prims.cc
@@ -39,6 +39,9 @@ details. */
#include <java/lang/reflect/Modifier.h>
#include <java/io/PrintStream.h>
+#ifdef USE_LTDL
+#include <ltdl.h>
+#endif
#define ObjectClass _CL_Q34java4lang6Object
extern java::lang::Class ObjectClass;
@@ -571,6 +574,10 @@ JvRunMain (jclass klass, int argc, const char **argv)
no_memory = new java::lang::OutOfMemoryError;
+#ifdef USE_LTDL
+ LTDL_SET_PRELOADED_SYMBOLS ();
+#endif
+
arg_vec = JvConvertArgv (argc - 1, argv + 1);
main_group = new java::lang::ThreadGroup (23);
main_thread = new java::lang::FirstThread (main_group, klass, arg_vec);