From 2dc55bc99fbb19ab0df8ae0ec3480f469bceb93e Mon Sep 17 00:00:00 2001 From: Bryce McKinlay Date: Sun, 26 Aug 2001 11:30:09 +0000 Subject: Makefile.am: New friends for java/lang/Thread.h. * Makefile.am: New friends for java/lang/Thread.h. * prims.cc (runFirst): Removed. (JvRunMain): Merged into _Jv_RunMain. Now just calls that. (_Jv_RunMain): Now takes either a klass or class name parameter. Create a gnu.gcj.runtime.FirstThread and attach the native thread to that, then run it using _Jv_ThreadRun. Remove special handling of jar files, instead pass is_jar parameter through to FirstThread. * gcj/javaprims.h: Add prototypes for _Jv_ThreadRun and new variant of _Jv_AttachCurrentThread. * gnu/gcj/runtime/FirstThread.java (FirstThread): Now extends Thread. (run): New method. Take care of looking up main class manifest attribute and calling forName if neccessary. Then call call_main. (call_main): New native method. * gnu/gcj/runtime/natFirstThread.cc (call_main): New function, code relocated from prims.cc. Look up and call main method. * java/lang/Thread.java (run_): Removed. * java/lang/natThread.cc (run_): Renamed to... (_Jv_ThreadRun): this. JVMPI notification code moved to ... (_Jv_NotifyThreadStart): here. New function. (countStackFrames, destroy, resume, suspend, stop): Throw UnsupportedOperationExceptions rather than JvFail'ing. (_Jv_AttachCurrentThread): New variant takes a Thread argument. Existing version wraps new variant. From-SVN: r45182 --- libjava/Makefile.am | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libjava/Makefile.am') diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 382d4ef0bcc..b764803dfb5 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -267,7 +267,7 @@ $(nat_headers) $(x_nat_headers): libgcj.jar java/lang/ClassLoader.h: java/lang/ClassLoader.class libgcj.jar $(GCJH) -classpath $(top_builddir) \ -friend 'jclass _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader);' \ - -friend 'void _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar);' \ + -friend 'void _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, bool is_jar);' \ $(basename $<) ## Our internal main program needs to be able to create a FirstThread. @@ -284,6 +284,8 @@ java/lang/Thread.h: java/lang/Thread.class libgcj.jar -prepend '#define _JV_INTERRUPTED 2' \ -friend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \ -friend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \ + -friend 'void _Jv_ThreadRun (java::lang::Thread* thread);' \ + -friend 'jint _Jv_AttachCurrentThread(java::lang::Thread* thread);' \ -friend 'java::lang::Thread* _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);' \ -friend 'jint _Jv_DetachCurrentThread ();' \ $(basename $<) @@ -1343,6 +1345,7 @@ gnu/gcj/convert/natOutput_EUCJIS.cc \ gnu/gcj/convert/natOutput_SJIS.cc \ gnu/gcj/io/natSimpleSHSStream.cc \ gnu/gcj/io/shs.cc \ +gnu/gcj/runtime/natFirstThread.cc \ java/io/natFile.cc \ java/io/natFileDescriptor.cc \ java/io/natObjectInputStream.cc \ -- cgit v1.2.3