From: Per Bothner Date: Tue, 22 May 2001 06:47:48 +0000 (-0700) Subject: Implement invocation interface; don't create new thread for main. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c93d7fae7b9825449c023d42eb40641c0ad80be2;p=gcc.git Implement invocation interface; don't create new thread for main. From-SVN: r42428 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 2227cea5472..20adc2aaf6b 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,46 @@ +2001-05-21 Per Bothner + + Implement invocation interface; don't create new thread for main. + * java/lang/Thread.java (gen_name): Make native. + ((Thread,THreadGroup,Runnable,String)): New private + constructor, used by other constructors, and _Jv_AttachCurrentThread. + * java/lang/natThread.cc (gen_name): New implementation. + (_Jv_AttachCurrentThread, _Jv_DetachCurrentThread): New. + * prims.cc (main_init): Removed, replaced by _Jv_CreateJavaVM. + (_Jv_CreateJavaVM): New runtime initialization procedure. + (runFirst): New proecdure - mostly code from old FirstThread::run. + (JvRunMain, _Jv_RunMain): Re-write to use new invocation code. + * gcj/cni.h (JvCreateJavaVM, JvAttachCurrentThread, + JvDetachCurrentThread): New inline wrappers. + * gcj/javaprims.h (_Jv_CreateJavaVM, _Jv_AttachCurrentThread, + _Jv_DetachCurrentThread): New declarations. + * gnu/gcj/runtime/FirstThread.java: Gutted. Now contains only ... + (getMain): new static method. + * gnu/gcj/runtime/natFirstThread.cc: Removed; run method replaced + by runFirst in prims.cc. + (java/lang/Thread.h): Update for new invocation interface. + * include/posix-threads.h (_Jv_ThreadRegister, + _Jv_ThreadUnRegister): New declarations. + * posix-threads.cc (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New. + (really_start): Use new _Jv_ThreadRegister. + * include/no-threads.h (_Jv_ThreadInitData): No longer inline. + (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New empty inlines. + * no-threads.cc (_Jv_ThreadInitData): Set _Jv_OnlyThread here. + Complain of called when _Jv_OnlyThread already set. + (_Jv_ThreadStart): Always JvFail. + * include/win32-threads.h (_Jv_Thread_t): New thread_obj field. + (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New declarations. + * win32-threads.cc (struct starter): Remove objet field - + we use _Jv_Thread_t's new thread_obj field instead. + (_Jv_ThreadInitData): Set _Jv_Thread_t's thread_obj field. + (_Jv_ThreadRegister, _Jv_ThreadUnRegister): New. + (really_start): Use new _Jv_ThreadRegister. + * jni.cc (_Jv_JNI_AttachCurrentThread): Use _Jv_AttachCurrentThread. + (_Jv_JNI_DetachCurrentThread): Use _Jv_DetachCurrentThread. + * gnu/gcj/jni/NativeThread.java, gnu/gcj/jni/natNativeThread.cc: + Removed - no longer needed with new invocation interface. + * Makefile.am: Update for removed/added files. + 2001-05-21 Per Bothner * Makefile.am (libgcj_la_DEPENDENCIES): Add $(nat_files). diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 424df67c0a5..7c1ba9839f7 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -303,12 +303,12 @@ gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.jar java/lang/Thread.h: java/lang/Thread.class libgcj.jar $(GCJH) -classpath $(top_builddir) \ -prepend 'class _Jv_JNIEnv;' \ - -prepend 'extern "Java" { namespace gnu { namespace gcj { namespace jni { class NativeThread; } } } };' \ -prepend '#define _JV_NOT_OWNER 1' \ -prepend '#define _JV_INTERRUPTED 2' \ -friend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \ -friend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \ - -friend 'class gnu::gcj::jni::NativeThread;' \ + -friend 'java::lang::Thread* _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);' \ + -friend 'jint _Jv_DetachCurrentThread ();' \ $(basename $<) java/lang/String.h: java/lang/String.class libgcj.jar @@ -1008,7 +1008,6 @@ gnu/gcj/RawData.java \ gnu/gcj/io/DefaultMimeTypes.java \ gnu/gcj/io/MimeTypes.java \ gnu/gcj/io/SimpleSHSStream.java \ -gnu/gcj/jni/NativeThread.java \ gnu/gcj/math/MPN.java \ gnu/gcj/protocol/file/Connection.java \ gnu/gcj/protocol/file/Handler.java \ @@ -1308,8 +1307,6 @@ gnu/gcj/convert/natOutput_EUCJIS.cc \ gnu/gcj/convert/natOutput_SJIS.cc \ gnu/gcj/io/natSimpleSHSStream.cc \ gnu/gcj/io/shs.cc \ -gnu/gcj/jni/natNativeThread.cc \ -gnu/gcj/runtime/natFirstThread.cc \ java/io/natFile.cc \ java/io/natFileDescriptor.cc \ java/io/natObjectInputStream.cc \ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 9b3a04d4a5e..ea1bbfdbc4c 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -120,43 +120,29 @@ here = @here@ libgcj_basedir = @libgcj_basedir@ AUTOMAKE_OPTIONS = foreign -@TESTSUBDIR_TRUE@SUBDIRS = \ -@TESTSUBDIR_TRUE@$(DIRLTDL) testsuite gcj include -@TESTSUBDIR_FALSE@SUBDIRS = \ -@TESTSUBDIR_FALSE@$(DIRLTDL) gcj include -@USE_LIBDIR_TRUE@toolexeclibdir = \ -@USE_LIBDIR_TRUE@$(libdir)$(MULTISUBDIR) -@USE_LIBDIR_FALSE@toolexeclibdir = \ -@USE_LIBDIR_FALSE@$(toolexecdir)/lib$(MULTISUBDIR) -@USE_LIBDIR_FALSE@toolexecdir = \ -@USE_LIBDIR_FALSE@$(exec_prefix)/$(target_alias) -@XLIB_AWT_TRUE@cond_x_ltlibrary = \ -@XLIB_AWT_TRUE@libgcjx.la -@XLIB_AWT_FALSE@cond_x_ltlibrary = \ +@TESTSUBDIR_TRUE@SUBDIRS = $(DIRLTDL) testsuite gcj include +@TESTSUBDIR_FALSE@SUBDIRS = $(DIRLTDL) gcj include +@USE_LIBDIR_TRUE@toolexeclibdir = $(libdir)$(MULTISUBDIR) +@USE_LIBDIR_FALSE@toolexeclibdir = $(toolexecdir)/lib$(MULTISUBDIR) +@USE_LIBDIR_FALSE@toolexecdir = $(exec_prefix)/$(target_alias) +@XLIB_AWT_TRUE@cond_x_ltlibrary = libgcjx.la +@XLIB_AWT_FALSE@cond_x_ltlibrary = toolexeclib_LTLIBRARIES = libgcj.la $(cond_x_ltlibrary) toolexeclib_DATA = libgcj.spec data_DATA = libgcj.jar -@NEEDS_DATA_START_TRUE@toolexeclib_LIBRARIES = \ -@NEEDS_DATA_START_TRUE@libgcjdata.a -@NEEDS_DATA_START_TRUE@libgcjdata_a_SOURCES = \ -@NEEDS_DATA_START_TRUE@libgcjdata.c +@NEEDS_DATA_START_TRUE@toolexeclib_LIBRARIES = libgcjdata.a +@NEEDS_DATA_START_TRUE@libgcjdata_a_SOURCES = libgcjdata.c -@NATIVE_TRUE@bin_PROGRAMS = \ -@NATIVE_TRUE@jv-convert gij +@NATIVE_TRUE@bin_PROGRAMS = jv-convert gij bin_SCRIPTS = addr2name.awk -@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = \ -@CANADIAN_TRUE@@NULL_TARGET_TRUE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) -@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = \ -@CANADIAN_TRUE@@NULL_TARGET_FALSE@jar -@CANADIAN_FALSE@ZIP = \ -@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) -@CANADIAN_TRUE@GCJH = \ -@CANADIAN_TRUE@gcjh -@CANADIAN_FALSE@GCJH = \ -@CANADIAN_FALSE@$(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) +@CANADIAN_TRUE@@NULL_TARGET_TRUE@ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) +@CANADIAN_TRUE@@NULL_TARGET_FALSE@ZIP = jar +@CANADIAN_FALSE@ZIP = $(MULTIBUILDTOP)../$(COMPPATH)/fastjar/jar$(EXEEXT) +@CANADIAN_TRUE@GCJH = gcjh +@CANADIAN_FALSE@GCJH = $(MULTIBUILDTOP)../$(COMPPATH)/gcc/gcjh$(EXEEXT) GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 @@ -171,61 +157,46 @@ JAVAC = $(GCJ_WITH_FLAGS) -C GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ WARNINGS = -W -Wall -AM_CXXFLAGS = -fno-rtti -fvtable-thunks -fnon-call-exceptions \ - -fdollars-in-identifiers \ - @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE +AM_CXXFLAGS = -fno-rtti -fvtable-thunks -fnon-call-exceptions -fdollars-in-identifiers @LIBGCJ_CXXFLAGS@ @X_CFLAGS@ $(WARNINGS) -D_GNU_SOURCE -@USING_GCC_TRUE@AM_CFLAGS = \ -@USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS) -@USING_GCC_FALSE@AM_CFLAGS = \ -@USING_GCC_FALSE@@LIBGCJ_CFLAGS@ +@USING_GCC_TRUE@AM_CFLAGS = @LIBGCJ_CFLAGS@ $(WARNINGS) +@USING_GCC_FALSE@AM_CFLAGS = @LIBGCJ_CFLAGS@ JCFLAGS = -g JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS) LIBFFIINCS = -I$(top_srcdir)/../libffi/include -I$(MULTIBUILDTOP)../libffi/include -INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include \ - $(GCINCS) $(THREADINCS) $(INCLTDL) \ - $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) +INCLUDES = -I$(top_srcdir) -Iinclude -I$(top_srcdir)/include $(GCINCS) $(THREADINCS) $(INCLTDL) $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS) nat_files = $(nat_source_files:.cc=.lo) x_nat_files = $(x_nat_source_files:.cc=.lo) c_files = $(c_source_files:.c=.lo) -javao_files = $(java_source_files:.java=.lo) \ - $(built_java_source_files:.java=.lo) +javao_files = $(java_source_files:.java=.lo) $(built_java_source_files:.java=.lo) x_javao_files = $(x_java_source_files:.java=.lo) -libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc \ - resolve.cc defineclass.cc interpret.cc name-finder.cc \ - $(nat_source_files) +libgcj_la_SOURCES = prims.cc posix.cc jni.cc exception.cc resolve.cc defineclass.cc interpret.cc name-finder.cc $(nat_source_files) -EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc \ - $(c_source_files) $(java_source_files) $(built_java_source_files) +EXTRA_libgcj_la_SOURCES = boehm.cc nogc.cc posix-threads.cc no-threads.cc $(c_source_files) $(java_source_files) $(built_java_source_files) -libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) \ - $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL) +libgcj_la_DEPENDENCIES = libgcj.jar $(javao_files) $(nat_files) $(c_files) $(GCOBJS) $(THREADOBJS) $(LIBLTDL) -libgcj_la_LIBADD = $(javao_files) $(c_files) $(GCOBJS) \ - $(THREADOBJS) +libgcj_la_LIBADD = $(javao_files) $(c_files) $(nat_files) $(GCOBJS) $(THREADOBJS) # Include THREADLIBS here to ensure that the correct version of # certain linuxthread functions get linked: -libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) \ - -version-info `grep -v '^\#' $(srcdir)/libtool-version` +libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLIBS) $(LIBLTDL) -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcj_la_LINK = $(LIBLINK) libgcjx_la_SOURCES = $(x_nat_source_files) EXTRA_libgcjx_la_SOURCES = $(x_java_source_files) -libgcjx_la_DEPENDENCIES = libgcj.jar $(x_javao_files) -libgcjx_la_LIBADD = $(x_javao_files) -libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ \ - -rpath $(toolexeclibdir) \ - -version-info `grep -v '^\#' $(srcdir)/libtool-version` +libgcjx_la_DEPENDENCIES = libgcj.jar $(x_javao_files) $(x_nat_files) +libgcjx_la_LIBADD = $(x_javao_files) $(x_nat_files) +libgcjx_la_LDFLAGS = @X_PRE_LIBS@ @X_LIBS@ -lX11 @X_EXTRA_LIBS@ -rpath $(toolexeclibdir) -version-info `grep -v '^\#' $(srcdir)/libtool-version` libgcjx_la_LINK = $(LIBLINK) @@ -234,10 +205,7 @@ CLEANFILES = tmp-list libgcj.jar SUFFIXES = .class .java .h -nat_headers = $(ordinary_java_source_files:.java=.h) \ - $(built_java_source_files:.java=.h) \ - java/io/ObjectOutputStream$$PutField.h \ - java/io/ObjectInputStream$$GetField.h +nat_headers = $(ordinary_java_source_files:.java=.h) $(built_java_source_files:.java=.h) java/io/ObjectOutputStream$$PutField.h java/io/ObjectInputStream$$GetField.h x_nat_headers = $(x_java_source_files:.java=.h) @@ -246,22 +214,18 @@ extra_headers = java/lang/Object.h java/lang/Class.h NM = nm -@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \ -@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS +@NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = gen-from-JIS CONVERT_DIR = gnu/gcj/convert jv_convert_SOURCES = EXTRA_jv_convert_SOURCES = $(convert_source_files) -jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \ - -rpath $(toolexeclibdir) -shared-libgcc +jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert -rpath $(toolexeclibdir) -shared-libgcc jv_convert_LINK = $(GCJLINK) -jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la \ - $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs +jv_convert_LDADD = $(convert_source_files:.java=.lo) libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs -jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) \ - $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec +jv_convert_DEPENDENCIES = $(convert_source_files:.java=.lo) $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec gij_SOURCES = gij.cc @@ -271,914 +235,49 @@ gij_LDADD = libgcj.la $(GCLIBS) $(THREADLIBS) $(ZLIBS) -L$(here)/.libs gij_DEPENDENCIES = $(GCDEPS) $(THREADDEPS) $(ZDEPS) libgcj.la libgcj.spec gen_from_JIS_SOURCES = -EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c \ - $(srcdir)/$(CONVERT_DIR)/make-trie.c \ - $(srcdir)/$(CONVERT_DIR)/JIS0201.h \ - $(srcdir)/$(CONVERT_DIR)/JIS0208.h \ - $(srcdir)/$(CONVERT_DIR)/JIS0212.h +EXTRA_gen_from_JIS_SOURCES = $(srcdir)/$(CONVERT_DIR)/gen-from-JIS.c $(srcdir)/$(CONVERT_DIR)/make-trie.c $(srcdir)/$(CONVERT_DIR)/JIS0201.h $(srcdir)/$(CONVERT_DIR)/JIS0208.h $(srcdir)/$(CONVERT_DIR)/JIS0212.h gen_from_JIS_LDADD = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o -gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o \ - $(CONVERT_DIR)/make-trie.o - - -convert_source_files = \ -gnu/gcj/convert/BytesToUnicode.java \ -gnu/gcj/convert/Convert.java \ -gnu/gcj/convert/Input_8859_1.java \ -gnu/gcj/convert/Input_ASCII.java \ -gnu/gcj/convert/Input_EUCJIS.java \ -gnu/gcj/convert/Input_JavaSrc.java \ -gnu/gcj/convert/Input_SJIS.java \ -gnu/gcj/convert/Input_UTF8.java \ -gnu/gcj/convert/Input_iconv.java \ -gnu/gcj/convert/IOConverter.java \ -gnu/gcj/convert/Output_8859_1.java \ -gnu/gcj/convert/Output_ASCII.java \ -gnu/gcj/convert/Output_EUCJIS.java \ -gnu/gcj/convert/Output_JavaSrc.java \ -gnu/gcj/convert/Output_SJIS.java \ -gnu/gcj/convert/Output_UTF8.java \ -gnu/gcj/convert/Output_iconv.java \ -gnu/gcj/convert/UnicodeToBytes.java +gen_from_JIS_DEPENDENCIES = $(CONVERT_DIR)/gen-from-JIS.o $(CONVERT_DIR)/make-trie.o + + +convert_source_files = gnu/gcj/convert/BytesToUnicode.java gnu/gcj/convert/Convert.java gnu/gcj/convert/Input_8859_1.java gnu/gcj/convert/Input_ASCII.java gnu/gcj/convert/Input_EUCJIS.java gnu/gcj/convert/Input_JavaSrc.java gnu/gcj/convert/Input_SJIS.java gnu/gcj/convert/Input_UTF8.java gnu/gcj/convert/Input_iconv.java gnu/gcj/convert/IOConverter.java gnu/gcj/convert/Output_8859_1.java gnu/gcj/convert/Output_ASCII.java gnu/gcj/convert/Output_EUCJIS.java gnu/gcj/convert/Output_JavaSrc.java gnu/gcj/convert/Output_SJIS.java gnu/gcj/convert/Output_UTF8.java gnu/gcj/convert/Output_iconv.java gnu/gcj/convert/UnicodeToBytes.java special_java_source_files = java/lang/Class.java java/lang/Object.java -awt_java_source_files = \ -gnu/awt/LightweightRedirector.java \ -gnu/awt/j2d/AbstractGraphicsState.java \ -gnu/awt/j2d/DirectRasterGraphics.java \ -gnu/awt/j2d/Graphics2DImpl.java \ -gnu/awt/j2d/IntegerGraphicsState.java \ -gnu/awt/j2d/MappedRaster.java \ -gnu/gcj/awt/BitMaskExtent.java \ -gnu/gcj/awt/Buffers.java \ -gnu/gcj/awt/ComponentDataBlitOp.java \ -gnu/gcj/awt/GLightweightPeer.java \ -gnu/java/beans/editors/ColorEditor.java \ -gnu/java/beans/editors/FontEditor.java \ -gnu/java/beans/editors/NativeBooleanEditor.java \ -gnu/java/beans/editors/NativeByteEditor.java \ -gnu/java/beans/editors/NativeDoubleEditor.java \ -gnu/java/beans/editors/NativeFloatEditor.java \ -gnu/java/beans/editors/NativeIntEditor.java \ -gnu/java/beans/editors/NativeLongEditor.java \ -gnu/java/beans/editors/NativeShortEditor.java \ -gnu/java/beans/editors/StringEditor.java \ -gnu/java/beans/info/ComponentBeanInfo.java \ -gnu/java/beans/BeanInfoEmbryo.java \ -gnu/java/beans/EmptyBeanInfo.java \ -gnu/java/beans/ExplicitBeanInfo.java \ -gnu/java/beans/IntrospectionIncubator.java \ -java/applet/Applet.java \ -java/applet/AppletStub.java \ -java/applet/AppletContext.java \ -java/applet/AudioClip.java \ -java/awt/AWTError.java \ -java/awt/AWTEvent.java \ -java/awt/AWTEventMulticaster.java \ -java/awt/AWTException.java \ -java/awt/AWTPermission.java \ -java/awt/ActiveEvent.java \ -java/awt/Adjustable.java \ -java/awt/BorderLayout.java \ -java/awt/Button.java \ -java/awt/Canvas.java \ -java/awt/CardLayout.java \ -java/awt/Checkbox.java \ -java/awt/CheckboxGroup.java \ -java/awt/CheckboxMenuItem.java \ -java/awt/Choice.java \ -java/awt/Color.java \ -java/awt/Component.java \ -java/awt/ComponentOrientation.java \ -java/awt/Container.java \ -java/awt/Cursor.java \ -java/awt/Dialog.java \ -java/awt/Dimension.java \ -java/awt/Event.java \ -java/awt/EventDispatchThread.java \ -java/awt/EventQueue.java \ -java/awt/FileDialog.java \ -java/awt/FlowLayout.java \ -java/awt/Font.java \ -java/awt/FontMetrics.java \ -java/awt/Frame.java \ -java/awt/Graphics.java \ -java/awt/Graphics2D.java \ -java/awt/GraphicsConfiguration.java \ -java/awt/GridBagConstraints.java \ -java/awt/GridLayout.java \ -java/awt/IllegalComponentStateException.java \ -java/awt/Image.java \ -java/awt/Insets.java \ -java/awt/ItemSelectable.java \ -java/awt/Label.java \ -java/awt/LayoutManager.java \ -java/awt/LayoutManager2.java \ -java/awt/List.java \ -java/awt/Menu.java \ -java/awt/MenuBar.java \ -java/awt/MenuComponent.java \ -java/awt/MenuContainer.java \ -java/awt/MenuItem.java \ -java/awt/MenuShortcut.java \ -java/awt/Paint.java \ -java/awt/PaintContext.java \ -java/awt/Panel.java \ -java/awt/Point.java \ -java/awt/Polygon.java \ -java/awt/PopupMenu.java \ -java/awt/Rectangle.java \ -java/awt/RenderingHints.java \ -java/awt/ScrollPane.java \ -java/awt/Scrollbar.java \ -java/awt/Shape.java \ -java/awt/SystemColor.java \ -java/awt/TextArea.java \ -java/awt/TextComponent.java \ -java/awt/TextField.java \ -java/awt/Toolkit.java \ -java/awt/Transparency.java \ -java/awt/Window.java \ -java/awt/color/ColorSpace.java \ -java/awt/color/ICC_ColorSpace.java \ -java/awt/color/ICC_Profile.java \ -java/awt/datatransfer/Clipboard.java \ -java/awt/event/AWTEventListener.java \ -java/awt/event/ActionEvent.java \ -java/awt/event/ActionListener.java \ -java/awt/event/AdjustmentEvent.java \ -java/awt/event/AdjustmentListener.java \ -java/awt/event/ComponentAdapter.java \ -java/awt/event/ComponentEvent.java \ -java/awt/event/ComponentListener.java \ -java/awt/event/ContainerAdapter.java \ -java/awt/event/ContainerEvent.java \ -java/awt/event/ContainerListener.java \ -java/awt/event/FocusAdapter.java \ -java/awt/event/FocusEvent.java \ -java/awt/event/FocusListener.java \ -java/awt/event/HierarchyBoundsAdapter.java \ -java/awt/event/HierarchyBoundsListener.java \ -java/awt/event/HierarchyEvent.java \ -java/awt/event/HierarchyListener.java \ -java/awt/event/InputEvent.java \ -java/awt/event/InputMethodEvent.java \ -java/awt/event/InputMethodListener.java \ -java/awt/event/InvocationEvent.java \ -java/awt/event/ItemEvent.java \ -java/awt/event/ItemListener.java \ -java/awt/event/KeyAdapter.java \ -java/awt/event/KeyEvent.java \ -java/awt/event/KeyListener.java \ -java/awt/event/MouseAdapter.java \ -java/awt/event/MouseEvent.java \ -java/awt/event/MouseListener.java \ -java/awt/event/MouseMotionAdapter.java \ -java/awt/event/MouseMotionListener.java \ -java/awt/event/PaintEvent.java \ -java/awt/event/TextEvent.java \ -java/awt/event/TextListener.java \ -java/awt/event/WindowAdapter.java \ -java/awt/event/WindowEvent.java \ -java/awt/event/WindowListener.java \ -java/awt/geom/AffineTransform.java \ -java/awt/geom/Dimension2D.java \ -java/awt/geom/Ellipse2D.java \ -java/awt/geom/IllegalPathStateException.java \ -java/awt/geom/Line2D.java \ -java/awt/geom/NoninvertibleTransformException.java \ -java/awt/geom/PathIterator.java \ -java/awt/geom/Point2D.java \ -java/awt/geom/Rectangle2D.java \ -java/awt/geom/RectangularShape.java \ -java/awt/geom/RoundRectangle2D.java \ -java/awt/image/BufferedImage.java \ -java/awt/image/ColorModel.java \ -java/awt/image/ComponentColorModel.java \ -java/awt/image/ComponentSampleModel.java \ -java/awt/image/DataBuffer.java \ -java/awt/image/DataBufferByte.java \ -java/awt/image/DataBufferInt.java \ -java/awt/image/DataBufferUShort.java \ -java/awt/image/DirectColorModel.java \ -java/awt/image/ImageConsumer.java \ -java/awt/image/ImageObserver.java \ -java/awt/image/ImageProducer.java \ -java/awt/image/IndexColorModel.java \ -java/awt/image/PackedColorModel.java \ -java/awt/image/Raster.java \ -java/awt/image/RasterOp.java \ -java/awt/image/SampleModel.java \ -java/awt/image/SinglePixelPackedSampleModel.java \ -java/awt/image/WritableRaster.java \ -java/awt/peer/ButtonPeer.java \ -java/awt/peer/CanvasPeer.java \ -java/awt/peer/CheckboxMenuItemPeer.java \ -java/awt/peer/CheckboxPeer.java \ -java/awt/peer/ChoicePeer.java \ -java/awt/peer/ComponentPeer.java \ -java/awt/peer/ContainerPeer.java \ -java/awt/peer/DialogPeer.java \ -java/awt/peer/FileDialogPeer.java \ -java/awt/peer/FontPeer.java \ -java/awt/peer/FramePeer.java \ -java/awt/peer/LabelPeer.java \ -java/awt/peer/LightweightPeer.java \ -java/awt/peer/ListPeer.java \ -java/awt/peer/MenuBarPeer.java \ -java/awt/peer/MenuComponentPeer.java \ -java/awt/peer/MenuItemPeer.java \ -java/awt/peer/MenuPeer.java \ -java/awt/peer/PanelPeer.java \ -java/awt/peer/PopupMenuPeer.java \ -java/awt/peer/ScrollPanePeer.java \ -java/awt/peer/ScrollbarPeer.java \ -java/awt/peer/TextAreaPeer.java \ -java/awt/peer/TextComponentPeer.java \ -java/awt/peer/TextFieldPeer.java \ -java/awt/peer/WindowPeer.java \ -java/beans/beancontext/BeanContext.java \ -java/beans/beancontext/BeanContextChild.java \ -java/beans/beancontext/BeanContextChildComponentProxy.java \ -java/beans/beancontext/BeanContextChildSupport.java \ -java/beans/beancontext/BeanContextContainerProxy.java \ -java/beans/beancontext/BeanContextEvent.java \ -java/beans/beancontext/BeanContextMembershipEvent.java \ -java/beans/beancontext/BeanContextMembershipListener.java \ -java/beans/beancontext/BeanContextProxy.java \ -java/beans/beancontext/BeanContextServiceAvailableEvent.java \ -java/beans/beancontext/BeanContextServiceProvider.java \ -java/beans/beancontext/BeanContextServiceProviderBeanInfo.java \ -java/beans/beancontext/BeanContextServiceRevokedEvent.java \ -java/beans/beancontext/BeanContextServiceRevokedListener.java \ -java/beans/beancontext/BeanContextServices.java \ -java/beans/beancontext/BeanContextServicesListener.java \ -java/beans/BeanDescriptor.java \ -java/beans/BeanInfo.java \ -java/beans/Beans.java \ -java/beans/Customizer.java \ -java/beans/DesignMode.java \ -java/beans/EventSetDescriptor.java \ -java/beans/FeatureDescriptor.java \ -java/beans/IndexedPropertyDescriptor.java \ -java/beans/IntrospectionException.java \ -java/beans/Introspector.java \ -java/beans/MethodDescriptor.java \ -java/beans/ParameterDescriptor.java \ -java/beans/PropertyChangeEvent.java \ -java/beans/PropertyChangeListener.java \ -java/beans/PropertyChangeSupport.java \ -java/beans/PropertyDescriptor.java \ -java/beans/PropertyEditor.java \ -java/beans/PropertyEditorManager.java \ -java/beans/PropertyEditorSupport.java \ -java/beans/PropertyVetoException.java \ -java/beans/SimpleBeanInfo.java \ -java/beans/VetoableChangeListener.java \ -java/beans/VetoableChangeSupport.java \ -java/beans/Visibility.java - - -built_java_source_files = java/lang/ConcreteProcess.java \ - gnu/classpath/Configuration.java - - -core_java_source_files = \ -java/lang/AbstractMethodError.java \ -java/lang/ArithmeticException.java \ -java/lang/ArrayIndexOutOfBoundsException.java \ -java/lang/ArrayStoreException.java \ -java/lang/Boolean.java \ -java/lang/Byte.java \ -java/lang/Character.java \ -java/lang/ClassCastException.java \ -java/lang/ClassCircularityError.java \ -java/lang/ClassFormatError.java \ -java/lang/ClassLoader.java \ -java/lang/ClassNotFoundException.java \ -java/lang/CloneNotSupportedException.java \ -java/lang/Cloneable.java \ -java/lang/Comparable.java \ -java/lang/Compiler.java \ -java/lang/Double.java \ -java/lang/Error.java \ -java/lang/Exception.java \ -java/lang/ExceptionInInitializerError.java \ -java/lang/Float.java \ -java/lang/IllegalAccessError.java \ -java/lang/IllegalAccessException.java \ -java/lang/IllegalArgumentException.java \ -java/lang/IllegalMonitorStateException.java \ -java/lang/IllegalStateException.java \ -java/lang/IllegalThreadStateException.java \ -java/lang/IncompatibleClassChangeError.java \ -java/lang/IndexOutOfBoundsException.java \ -java/lang/InstantiationError.java \ -java/lang/InstantiationException.java \ -java/lang/Integer.java \ -java/lang/InternalError.java \ -java/lang/InterruptedException.java \ -java/lang/LinkageError.java \ -java/lang/Long.java \ -java/lang/Math.java \ -java/lang/NegativeArraySizeException.java \ -java/lang/NoClassDefFoundError.java \ -java/lang/NoSuchFieldError.java \ -java/lang/NoSuchFieldException.java \ -java/lang/NoSuchMethodError.java \ -java/lang/NoSuchMethodException.java \ -java/lang/NullPointerException.java \ -java/lang/Number.java \ -java/lang/NumberFormatException.java \ -java/lang/OutOfMemoryError.java \ -java/lang/Package.java \ -java/lang/Process.java \ -java/lang/Runnable.java \ -java/lang/Runtime.java \ -java/lang/RuntimeException.java \ -java/lang/RuntimePermission.java \ -java/lang/SecurityException.java \ -java/lang/SecurityManager.java \ -java/lang/Short.java \ -java/lang/StackOverflowError.java \ -java/lang/String.java \ -java/lang/StringBuffer.java \ -java/lang/StringIndexOutOfBoundsException.java \ -java/lang/System.java \ -java/lang/Thread.java \ -java/lang/ThreadDeath.java \ -java/lang/ThreadGroup.java \ -java/lang/Throwable.java \ -java/lang/UnknownError.java \ -java/lang/UnsatisfiedLinkError.java \ -java/lang/UnsupportedOperationException.java \ -java/lang/VerifyError.java \ -java/lang/VirtualMachineError.java \ -java/lang/Void.java \ -java/io/BufferedInputStream.java \ -java/io/BufferedOutputStream.java \ -java/io/BufferedReader.java \ -java/io/BufferedWriter.java \ -java/io/ByteArrayInputStream.java \ -java/io/ByteArrayOutputStream.java \ -java/io/CharArrayReader.java \ -java/io/CharArrayWriter.java \ -java/io/CharConversionException.java \ -java/io/DataInput.java \ -java/io/DataInputStream.java \ -java/io/DataOutput.java \ -java/io/DataOutputStream.java \ -java/io/EOFException.java \ -java/io/Externalizable.java \ -java/io/File.java \ -java/io/FileDescriptor.java \ -java/io/FileFilter.java \ -java/io/FileInputStream.java \ -java/io/FileNotFoundException.java \ -java/io/FileOutputStream.java \ -java/io/FilePermission.java \ -java/io/FileReader.java \ -java/io/FileWriter.java \ -java/io/FilenameFilter.java \ -java/io/FilterInputStream.java \ -java/io/FilterOutputStream.java \ -java/io/FilterReader.java \ -java/io/FilterWriter.java \ -java/io/IOException.java \ -java/io/InputStream.java \ -java/io/InputStreamReader.java \ -java/io/InterruptedIOException.java \ -java/io/InvalidClassException.java \ -java/io/InvalidObjectException.java \ -java/io/LineNumberInputStream.java \ -java/io/LineNumberReader.java \ -java/io/NotActiveException.java \ -java/io/NotSerializableException.java \ -java/io/ObjectInput.java \ -java/io/ObjectInputStream.java \ -java/io/ObjectInputValidation.java \ -java/io/ObjectOutput.java \ -java/io/ObjectOutputStream.java \ -java/io/ObjectStreamClass.java \ -java/io/ObjectStreamConstants.java \ -java/io/ObjectStreamException.java \ -java/io/ObjectStreamField.java \ -java/io/OptionalDataException.java \ -java/io/OutputStream.java \ -java/io/OutputStreamWriter.java \ -java/io/PipedInputStream.java \ -java/io/PipedOutputStream.java \ -java/io/PipedReader.java \ -java/io/PipedWriter.java \ -java/io/PrintStream.java \ -java/io/PrintWriter.java \ -java/io/PushbackInputStream.java \ -java/io/PushbackReader.java \ -java/io/RandomAccessFile.java \ -java/io/Reader.java \ -java/io/SequenceInputStream.java \ -java/io/Serializable.java \ -java/io/SerializablePermission.java \ -java/io/StreamCorruptedException.java \ -java/io/StreamTokenizer.java \ -java/io/StringBufferInputStream.java \ -java/io/StringReader.java \ -java/io/StringWriter.java \ -java/io/SyncFailedException.java \ -java/io/UTFDataFormatException.java \ -java/io/UnsupportedEncodingException.java \ -java/io/WriteAbortedException.java \ -java/io/Writer.java \ -java/util/AbstractCollection.java \ -java/util/AbstractList.java \ -java/util/AbstractMap.java \ -java/util/AbstractSequentialList.java \ -java/util/AbstractSet.java \ -java/util/ArrayList.java \ -java/util/Arrays.java \ -java/util/BasicMapEntry.java \ -java/util/BitSet.java \ -java/util/Calendar.java \ -java/util/Collection.java \ -java/util/Collections.java \ -java/util/Comparator.java \ -java/util/ConcurrentModificationException.java \ -java/util/Date.java \ -java/util/Dictionary.java \ -java/util/EmptyStackException.java \ -java/util/Enumeration.java \ -java/util/EventListener.java \ -java/util/EventObject.java \ -java/util/GregorianCalendar.java \ -java/util/HashMap.java \ -java/util/HashSet.java \ -java/util/Hashtable.java \ -java/util/Iterator.java \ -java/util/LinkedList.java \ -java/util/List.java \ -java/util/ListIterator.java \ -java/util/ListResourceBundle.java \ -java/util/Locale.java \ -java/util/Map.java \ -java/util/MissingResourceException.java \ -java/util/NoSuchElementException.java \ -java/util/Observable.java \ -java/util/Observer.java \ -java/util/Properties.java \ -java/util/PropertyPermission.java \ -java/util/PropertyResourceBundle.java \ -java/util/Random.java \ -java/util/ResourceBundle.java \ -java/util/Set.java \ -java/util/SimpleTimeZone.java \ -java/util/SortedMap.java \ -java/util/SortedSet.java \ -java/util/Stack.java \ -java/util/StringTokenizer.java \ -java/util/TimeZone.java \ -java/util/Timer.java \ -java/util/TimerTask.java \ -java/util/TreeMap.java \ -java/util/TreeSet.java \ -java/util/TooManyListenersException.java \ -java/util/Vector.java \ -java/util/WeakHashMap.java - - -ordinary_java_source_files = $(core_java_source_files) \ -gnu/gcj/RawData.java \ -gnu/gcj/io/DefaultMimeTypes.java \ -gnu/gcj/io/MimeTypes.java \ -gnu/gcj/io/SimpleSHSStream.java \ -gnu/gcj/jni/NativeThread.java \ -gnu/gcj/math/MPN.java \ -gnu/gcj/protocol/file/Connection.java \ -gnu/gcj/protocol/file/Handler.java \ -gnu/gcj/protocol/http/Connection.java \ -gnu/gcj/protocol/http/Handler.java \ -gnu/gcj/protocol/jar/Connection.java \ -gnu/gcj/protocol/jar/Handler.java \ -gnu/gcj/runtime/FileDeleter.java \ -gnu/gcj/runtime/FirstThread.java \ -gnu/gcj/runtime/VMClassLoader.java \ -gnu/gcj/text/BaseBreakIterator.java \ -gnu/gcj/text/CharacterBreakIterator.java \ -gnu/gcj/text/LineBreakIterator.java \ -gnu/gcj/text/LocaleData_en.java \ -gnu/gcj/text/LocaleData_en_US.java \ -gnu/gcj/text/SentenceBreakIterator.java \ -gnu/gcj/text/WordBreakIterator.java \ -gnu/gcj/util/EnumerationChain.java \ -gnu/java/io/ClassLoaderObjectInputStream.java \ -gnu/java/io/NullOutputStream.java \ -gnu/java/io/ObjectIdentityWrapper.java \ -gnu/java/lang/ArrayHelper.java \ -gnu/java/lang/ClassHelper.java \ -gnu/java/lang/reflect/TypeSignature.java \ -gnu/java/locale/Calendar.java \ -gnu/java/locale/Calendar_de.java \ -gnu/java/locale/Calendar_en.java \ -gnu/java/locale/Calendar_nl.java \ -gnu/java/security/provider/DefaultPolicy.java \ -gnu/java/security/provider/Gnu.java \ -gnu/java/security/provider/SHA.java \ -gnu/java/security/provider/SHA1PRNG.java \ -java/lang/ref/PhantomReference.java \ -java/lang/ref/Reference.java \ -java/lang/ref/ReferenceQueue.java \ -java/lang/ref/SoftReference.java \ -java/lang/ref/WeakReference.java \ -java/lang/reflect/AccessibleObject.java \ -java/lang/reflect/Array.java \ -java/lang/reflect/Constructor.java \ -java/lang/reflect/Field.java \ -java/lang/reflect/InvocationTargetException.java \ -java/lang/reflect/Member.java \ -java/lang/reflect/Method.java \ -java/lang/reflect/Modifier.java \ -java/lang/reflect/ReflectPermission.java \ -java/math/BigDecimal.java \ -java/math/BigInteger.java \ -java/net/BindException.java \ -java/net/ConnectException.java \ -java/net/ContentHandler.java \ -java/net/ContentHandlerFactory.java \ -java/net/DatagramPacket.java \ -java/net/DatagramSocket.java \ -java/net/DatagramSocketImpl.java \ -java/net/FileNameMap.java \ -java/net/HttpURLConnection.java \ -java/net/InetAddress.java \ -java/net/JarURLConnection.java \ -java/net/MalformedURLException.java \ -java/net/MulticastSocket.java \ -java/net/NetPermission.java \ -java/net/NoRouteToHostException.java \ -java/net/PlainDatagramSocketImpl.java \ -java/net/PlainSocketImpl.java \ -java/net/ProtocolException.java \ -java/net/ServerSocket.java \ -java/net/Socket.java \ -java/net/SocketException.java \ -java/net/SocketImpl.java \ -java/net/SocketImplFactory.java \ -java/net/SocketOptions.java \ -java/net/SocketPermission.java \ -java/net/URL.java \ -java/net/URLClassLoader.java \ -java/net/URLConnection.java \ -java/net/URLDecoder.java \ -java/net/URLEncoder.java \ -java/net/URLStreamHandler.java \ -java/net/URLStreamHandlerFactory.java \ -java/net/UnknownHostException.java \ -java/net/UnknownServiceException.java \ -java/security/AccessControlContext.java \ -java/security/AccessControlException.java \ -java/security/AccessController.java \ -java/security/AlgorithmParameterGenerator.java \ -java/security/AlgorithmParameters.java \ -java/security/AlgorithmParameterGeneratorSpi.java \ -java/security/AlgorithmParametersSpi.java \ -java/security/AllPermission.java \ -java/security/BasicPermission.java \ -java/security/Certificate.java \ -java/security/CodeSource.java \ -java/security/DigestException.java \ -java/security/DigestOutputStream.java \ -java/security/DummyKeyPairGenerator.java \ -java/security/DummySignature.java \ -java/security/DigestInputStream.java \ -java/security/DomainCombiner.java \ -java/security/DummyMessageDigest.java \ -java/security/GeneralSecurityException.java \ -java/security/Guard.java \ -java/security/GuardedObject.java \ -java/security/Identity.java \ -java/security/IdentityScope.java \ -java/security/InvalidAlgorithmParameterException.java \ -java/security/InvalidKeyException.java \ -java/security/InvalidParameterException.java \ -java/security/Key.java \ -java/security/KeyFactorySpi.java \ -java/security/KeyPairGenerator.java \ -java/security/KeyStoreException.java \ -java/security/KeyException.java \ -java/security/KeyManagementException.java \ -java/security/KeyPairGeneratorSpi.java \ -java/security/KeyStoreSpi.java \ -java/security/KeyFactory.java \ -java/security/KeyPair.java \ -java/security/KeyStore.java \ -java/security/MessageDigest.java \ -java/security/MessageDigestSpi.java \ -java/security/NoSuchAlgorithmException.java \ -java/security/NoSuchProviderException.java \ -java/security/Permission.java \ -java/security/Principal.java \ -java/security/PrivilegedExceptionAction.java \ -java/security/PublicKey.java \ -java/security/PermissionCollection.java \ -java/security/PrivateKey.java \ -java/security/ProtectionDomain.java \ -java/security/Permissions.java \ -java/security/PrivilegedAction.java \ -java/security/Provider.java \ -java/security/Policy.java \ -java/security/PrivilegedActionException.java \ -java/security/ProviderException.java \ -java/security/SecureClassLoader.java \ -java/security/SecureRandomSpi.java \ -java/security/SecurityPermission.java \ -java/security/SignatureException.java \ -java/security/SignedObject.java \ -java/security/SecureRandom.java \ -java/security/Security.java \ -java/security/Signature.java \ -java/security/SignatureSpi.java \ -java/security/Signer.java \ -java/security/UnrecoverableKeyException.java \ -java/security/UnresolvedPermission.java \ -java/security/acl/Acl.java \ -java/security/acl/AclNotFoundException.java \ -java/security/acl/LastOwnerException.java \ -java/security/acl/Owner.java \ -java/security/acl/AclEntry.java \ -java/security/acl/Group.java \ -java/security/acl/NotOwnerException.java \ -java/security/acl/Permission.java \ -java/security/cert/CRL.java \ -java/security/cert/CRLException.java \ -java/security/cert/Certificate.java \ -java/security/cert/CertificateEncodingException.java \ -java/security/cert/CertificateException.java \ -java/security/cert/CertificateExpiredException.java \ -java/security/cert/CertificateFactory.java \ -java/security/cert/CertificateFactorySpi.java \ -java/security/cert/CertificateNotYetValidException.java \ -java/security/cert/CertificateParsingException.java \ -java/security/cert/X509CRL.java \ -java/security/cert/X509CRLEntry.java \ -java/security/cert/X509Certificate.java \ -java/security/cert/X509Extension.java \ -java/security/interfaces/DSAKey.java \ -java/security/interfaces/DSAKeyPairGenerator.java \ -java/security/interfaces/DSAParams.java \ -java/security/interfaces/DSAPrivateKey.java \ -java/security/interfaces/DSAPublicKey.java \ -java/security/interfaces/RSAKey.java \ -java/security/interfaces/RSAPrivateCrtKey.java \ -java/security/interfaces/RSAPrivateKey.java \ -java/security/interfaces/RSAPublicKey.java \ -java/security/spec/AlgorithmParameterSpec.java \ -java/security/spec/DSAParameterSpec.java \ -java/security/spec/DSAPrivateKeySpec.java \ -java/security/spec/DSAPublicKeySpec.java \ -java/security/spec/EncodedKeySpec.java \ -java/security/spec/InvalidKeySpecException.java \ -java/security/spec/InvalidParameterSpecException.java \ -java/security/spec/KeySpec.java \ -java/security/spec/PKCS8EncodedKeySpec.java \ -java/security/spec/RSAKeyGenParameterSpec.java \ -java/security/spec/RSAPrivateCrtKeySpec.java \ -java/security/spec/RSAPrivateKeySpec.java \ -java/security/spec/RSAPublicKeySpec.java \ -java/security/spec/X509EncodedKeySpec.java \ -java/sql/Array.java \ -java/sql/BatchUpdateException.java \ -java/sql/Blob.java \ -java/sql/CallableStatement.java \ -java/sql/Clob.java \ -java/sql/Connection.java \ -java/sql/DataTruncation.java \ -java/sql/DatabaseMetaData.java \ -java/sql/Date.java \ -java/sql/Driver.java \ -java/sql/DriverManager.java \ -java/sql/DriverPropertyInfo.java \ -java/sql/PreparedStatement.java \ -java/sql/Ref.java \ -java/sql/ResultSet.java \ -java/sql/ResultSetMetaData.java \ -java/sql/SQLData.java \ -java/sql/SQLException.java \ -java/sql/SQLInput.java \ -java/sql/SQLOutput.java \ -java/sql/SQLWarning.java \ -java/sql/Statement.java \ -java/sql/Struct.java \ -java/sql/Time.java \ -java/sql/Timestamp.java \ -java/sql/Types.java \ -java/text/BreakIterator.java \ -java/text/CharacterIterator.java \ -java/text/ChoiceFormat.java \ -java/text/CollationElementIterator.java \ -java/text/CollationKey.java \ -java/text/Collator.java \ -java/text/DateFormat.java \ -java/text/DateFormatSymbols.java \ -java/text/DecimalFormat.java \ -java/text/DecimalFormatSymbols.java \ -java/text/FieldPosition.java \ -java/text/Format.java \ -java/text/MessageFormat.java \ -java/text/NumberFormat.java \ -java/text/ParseException.java \ -java/text/ParsePosition.java \ -java/text/RuleBasedCollator.java \ -java/text/SimpleDateFormat.java \ -java/text/StringCharacterIterator.java \ -java/util/jar/Attributes.java \ -java/util/jar/JarEntry.java \ -java/util/jar/JarException.java \ -java/util/jar/JarFile.java \ -java/util/jar/JarInputStream.java \ -java/util/jar/JarOutputStream.java \ -java/util/jar/Manifest.java \ -java/util/zip/Adler32.java \ -java/util/zip/CRC32.java \ -java/util/zip/CheckedInputStream.java \ -java/util/zip/CheckedOutputStream.java \ -java/util/zip/Checksum.java \ -java/util/zip/DataFormatException.java \ -java/util/zip/Deflater.java \ -java/util/zip/DeflaterOutputStream.java \ -java/util/zip/GZIPInputStream.java \ -java/util/zip/GZIPOutputStream.java \ -java/util/zip/Inflater.java \ -java/util/zip/InflaterInputStream.java \ -java/util/zip/ZipConstants.java \ -java/util/zip/ZipEntry.java \ -java/util/zip/ZipException.java \ -java/util/zip/ZipFile.java \ -java/util/zip/ZipInputStream.java \ -java/util/zip/ZipOutputStream.java \ -$(awt_java_source_files) \ -$(convert_source_files) +awt_java_source_files = gnu/awt/LightweightRedirector.java gnu/awt/j2d/AbstractGraphicsState.java gnu/awt/j2d/DirectRasterGraphics.java gnu/awt/j2d/Graphics2DImpl.java gnu/awt/j2d/IntegerGraphicsState.java gnu/awt/j2d/MappedRaster.java gnu/gcj/awt/BitMaskExtent.java gnu/gcj/awt/Buffers.java gnu/gcj/awt/ComponentDataBlitOp.java gnu/gcj/awt/GLightweightPeer.java gnu/java/beans/editors/ColorEditor.java gnu/java/beans/editors/FontEditor.java gnu/java/beans/editors/NativeBooleanEditor.java gnu/java/beans/editors/NativeByteEditor.java gnu/java/beans/editors/NativeDoubleEditor.java gnu/java/beans/editors/NativeFloatEditor.java gnu/java/beans/editors/NativeIntEditor.java gnu/java/beans/editors/NativeLongEditor.java gnu/java/beans/editors/NativeShortEditor.java gnu/java/beans/editors/StringEditor.java gnu/java/beans/info/ComponentBeanInfo.java gnu/java/beans/BeanInfoEmbryo.java gnu/java/beans/EmptyBeanInfo.java gnu/java/beans/ExplicitBeanInfo.java gnu/java/beans/IntrospectionIncubator.java java/applet/Applet.java java/applet/AppletStub.java java/applet/AppletContext.java java/applet/AudioClip.java java/awt/AWTError.java java/awt/AWTEvent.java java/awt/AWTEventMulticaster.java java/awt/AWTException.java java/awt/AWTPermission.java java/awt/ActiveEvent.java java/awt/Adjustable.java java/awt/BorderLayout.java java/awt/Button.java java/awt/Canvas.java java/awt/CardLayout.java java/awt/Checkbox.java java/awt/CheckboxGroup.java java/awt/CheckboxMenuItem.java java/awt/Choice.java java/awt/Color.java java/awt/Component.java java/awt/ComponentOrientation.java java/awt/Container.java java/awt/Cursor.java java/awt/Dialog.java java/awt/Dimension.java java/awt/Event.java java/awt/EventDispatchThread.java java/awt/EventQueue.java java/awt/FileDialog.java java/awt/FlowLayout.java java/awt/Font.java java/awt/FontMetrics.java java/awt/Frame.java java/awt/Graphics.java java/awt/Graphics2D.java java/awt/GraphicsConfiguration.java java/awt/GridBagConstraints.java java/awt/GridLayout.java java/awt/IllegalComponentStateException.java java/awt/Image.java java/awt/Insets.java java/awt/ItemSelectable.java java/awt/Label.java java/awt/LayoutManager.java java/awt/LayoutManager2.java java/awt/List.java java/awt/Menu.java java/awt/MenuBar.java java/awt/MenuComponent.java java/awt/MenuContainer.java java/awt/MenuItem.java java/awt/MenuShortcut.java java/awt/Paint.java java/awt/PaintContext.java java/awt/Panel.java java/awt/Point.java java/awt/Polygon.java java/awt/PopupMenu.java java/awt/Rectangle.java java/awt/RenderingHints.java java/awt/ScrollPane.java java/awt/Scrollbar.java java/awt/Shape.java java/awt/SystemColor.java java/awt/TextArea.java java/awt/TextComponent.java java/awt/TextField.java java/awt/Toolkit.java java/awt/Transparency.java java/awt/Window.java java/awt/color/ColorSpace.java java/awt/color/ICC_ColorSpace.java java/awt/color/ICC_Profile.java java/awt/datatransfer/Clipboard.java java/awt/event/AWTEventListener.java java/awt/event/ActionEvent.java java/awt/event/ActionListener.java java/awt/event/AdjustmentEvent.java java/awt/event/AdjustmentListener.java java/awt/event/ComponentAdapter.java java/awt/event/ComponentEvent.java java/awt/event/ComponentListener.java java/awt/event/ContainerAdapter.java java/awt/event/ContainerEvent.java java/awt/event/ContainerListener.java java/awt/event/FocusAdapter.java java/awt/event/FocusEvent.java java/awt/event/FocusListener.java java/awt/event/HierarchyBoundsAdapter.java java/awt/event/HierarchyBoundsListener.java java/awt/event/HierarchyEvent.java java/awt/event/HierarchyListener.java java/awt/event/InputEvent.java java/awt/event/InputMethodEvent.java java/awt/event/InputMethodListener.java java/awt/event/InvocationEvent.java java/awt/event/ItemEvent.java java/awt/event/ItemListener.java java/awt/event/KeyAdapter.java java/awt/event/KeyEvent.java java/awt/event/KeyListener.java java/awt/event/MouseAdapter.java java/awt/event/MouseEvent.java java/awt/event/MouseListener.java java/awt/event/MouseMotionAdapter.java java/awt/event/MouseMotionListener.java java/awt/event/PaintEvent.java java/awt/event/TextEvent.java java/awt/event/TextListener.java java/awt/event/WindowAdapter.java java/awt/event/WindowEvent.java java/awt/event/WindowListener.java java/awt/geom/AffineTransform.java java/awt/geom/Dimension2D.java java/awt/geom/Ellipse2D.java java/awt/geom/IllegalPathStateException.java java/awt/geom/Line2D.java java/awt/geom/NoninvertibleTransformException.java java/awt/geom/PathIterator.java java/awt/geom/Point2D.java java/awt/geom/Rectangle2D.java java/awt/geom/RectangularShape.java java/awt/geom/RoundRectangle2D.java java/awt/image/BufferedImage.java java/awt/image/ColorModel.java java/awt/image/ComponentColorModel.java java/awt/image/ComponentSampleModel.java java/awt/image/DataBuffer.java java/awt/image/DataBufferByte.java java/awt/image/DataBufferInt.java java/awt/image/DataBufferUShort.java java/awt/image/DirectColorModel.java java/awt/image/ImageConsumer.java java/awt/image/ImageObserver.java java/awt/image/ImageProducer.java java/awt/image/IndexColorModel.java java/awt/image/PackedColorModel.java java/awt/image/Raster.java java/awt/image/RasterOp.java java/awt/image/SampleModel.java java/awt/image/SinglePixelPackedSampleModel.java java/awt/image/WritableRaster.java java/awt/peer/ButtonPeer.java java/awt/peer/CanvasPeer.java java/awt/peer/CheckboxMenuItemPeer.java java/awt/peer/CheckboxPeer.java java/awt/peer/ChoicePeer.java java/awt/peer/ComponentPeer.java java/awt/peer/ContainerPeer.java java/awt/peer/DialogPeer.java java/awt/peer/FileDialogPeer.java java/awt/peer/FontPeer.java java/awt/peer/FramePeer.java java/awt/peer/LabelPeer.java java/awt/peer/LightweightPeer.java java/awt/peer/ListPeer.java java/awt/peer/MenuBarPeer.java java/awt/peer/MenuComponentPeer.java java/awt/peer/MenuItemPeer.java java/awt/peer/MenuPeer.java java/awt/peer/PanelPeer.java java/awt/peer/PopupMenuPeer.java java/awt/peer/ScrollPanePeer.java java/awt/peer/ScrollbarPeer.java java/awt/peer/TextAreaPeer.java java/awt/peer/TextComponentPeer.java java/awt/peer/TextFieldPeer.java java/awt/peer/WindowPeer.java java/beans/beancontext/BeanContext.java java/beans/beancontext/BeanContextChild.java java/beans/beancontext/BeanContextChildComponentProxy.java java/beans/beancontext/BeanContextChildSupport.java java/beans/beancontext/BeanContextContainerProxy.java java/beans/beancontext/BeanContextEvent.java java/beans/beancontext/BeanContextMembershipEvent.java java/beans/beancontext/BeanContextMembershipListener.java java/beans/beancontext/BeanContextProxy.java java/beans/beancontext/BeanContextServiceAvailableEvent.java java/beans/beancontext/BeanContextServiceProvider.java java/beans/beancontext/BeanContextServiceProviderBeanInfo.java java/beans/beancontext/BeanContextServiceRevokedEvent.java java/beans/beancontext/BeanContextServiceRevokedListener.java java/beans/beancontext/BeanContextServices.java java/beans/beancontext/BeanContextServicesListener.java java/beans/BeanDescriptor.java java/beans/BeanInfo.java java/beans/Beans.java java/beans/Customizer.java java/beans/DesignMode.java java/beans/EventSetDescriptor.java java/beans/FeatureDescriptor.java java/beans/IndexedPropertyDescriptor.java java/beans/IntrospectionException.java java/beans/Introspector.java java/beans/MethodDescriptor.java java/beans/ParameterDescriptor.java java/beans/PropertyChangeEvent.java java/beans/PropertyChangeListener.java java/beans/PropertyChangeSupport.java java/beans/PropertyDescriptor.java java/beans/PropertyEditor.java java/beans/PropertyEditorManager.java java/beans/PropertyEditorSupport.java java/beans/PropertyVetoException.java java/beans/SimpleBeanInfo.java java/beans/VetoableChangeListener.java java/beans/VetoableChangeSupport.java java/beans/Visibility.java + + +built_java_source_files = java/lang/ConcreteProcess.java gnu/classpath/Configuration.java + + +core_java_source_files = java/lang/AbstractMethodError.java java/lang/ArithmeticException.java java/lang/ArrayIndexOutOfBoundsException.java java/lang/ArrayStoreException.java java/lang/Boolean.java java/lang/Byte.java java/lang/Character.java java/lang/ClassCastException.java java/lang/ClassCircularityError.java java/lang/ClassFormatError.java java/lang/ClassLoader.java java/lang/ClassNotFoundException.java java/lang/CloneNotSupportedException.java java/lang/Cloneable.java java/lang/Comparable.java java/lang/Compiler.java java/lang/Double.java java/lang/Error.java java/lang/Exception.java java/lang/ExceptionInInitializerError.java java/lang/Float.java java/lang/IllegalAccessError.java java/lang/IllegalAccessException.java java/lang/IllegalArgumentException.java java/lang/IllegalMonitorStateException.java java/lang/IllegalStateException.java java/lang/IllegalThreadStateException.java java/lang/IncompatibleClassChangeError.java java/lang/IndexOutOfBoundsException.java java/lang/InstantiationError.java java/lang/InstantiationException.java java/lang/Integer.java java/lang/InternalError.java java/lang/InterruptedException.java java/lang/LinkageError.java java/lang/Long.java java/lang/Math.java java/lang/NegativeArraySizeException.java java/lang/NoClassDefFoundError.java java/lang/NoSuchFieldError.java java/lang/NoSuchFieldException.java java/lang/NoSuchMethodError.java java/lang/NoSuchMethodException.java java/lang/NullPointerException.java java/lang/Number.java java/lang/NumberFormatException.java java/lang/OutOfMemoryError.java java/lang/Package.java java/lang/Process.java java/lang/Runnable.java java/lang/Runtime.java java/lang/RuntimeException.java java/lang/RuntimePermission.java java/lang/SecurityException.java java/lang/SecurityManager.java java/lang/Short.java java/lang/StackOverflowError.java java/lang/String.java java/lang/StringBuffer.java java/lang/StringIndexOutOfBoundsException.java java/lang/System.java java/lang/Thread.java java/lang/ThreadDeath.java java/lang/ThreadGroup.java java/lang/Throwable.java java/lang/UnknownError.java java/lang/UnsatisfiedLinkError.java java/lang/UnsupportedOperationException.java java/lang/VerifyError.java java/lang/VirtualMachineError.java java/lang/Void.java java/io/BufferedInputStream.java java/io/BufferedOutputStream.java java/io/BufferedReader.java java/io/BufferedWriter.java java/io/ByteArrayInputStream.java java/io/ByteArrayOutputStream.java java/io/CharArrayReader.java java/io/CharArrayWriter.java java/io/CharConversionException.java java/io/DataInput.java java/io/DataInputStream.java java/io/DataOutput.java java/io/DataOutputStream.java java/io/EOFException.java java/io/Externalizable.java java/io/File.java java/io/FileDescriptor.java java/io/FileFilter.java java/io/FileInputStream.java java/io/FileNotFoundException.java java/io/FileOutputStream.java java/io/FilePermission.java java/io/FileReader.java java/io/FileWriter.java java/io/FilenameFilter.java java/io/FilterInputStream.java java/io/FilterOutputStream.java java/io/FilterReader.java java/io/FilterWriter.java java/io/IOException.java java/io/InputStream.java java/io/InputStreamReader.java java/io/InterruptedIOException.java java/io/InvalidClassException.java java/io/InvalidObjectException.java java/io/LineNumberInputStream.java java/io/LineNumberReader.java java/io/NotActiveException.java java/io/NotSerializableException.java java/io/ObjectInput.java java/io/ObjectInputStream.java java/io/ObjectInputValidation.java java/io/ObjectOutput.java java/io/ObjectOutputStream.java java/io/ObjectStreamClass.java java/io/ObjectStreamConstants.java java/io/ObjectStreamException.java java/io/ObjectStreamField.java java/io/OptionalDataException.java java/io/OutputStream.java java/io/OutputStreamWriter.java java/io/PipedInputStream.java java/io/PipedOutputStream.java java/io/PipedReader.java java/io/PipedWriter.java java/io/PrintStream.java java/io/PrintWriter.java java/io/PushbackInputStream.java java/io/PushbackReader.java java/io/RandomAccessFile.java java/io/Reader.java java/io/SequenceInputStream.java java/io/Serializable.java java/io/SerializablePermission.java java/io/StreamCorruptedException.java java/io/StreamTokenizer.java java/io/StringBufferInputStream.java java/io/StringReader.java java/io/StringWriter.java java/io/SyncFailedException.java java/io/UTFDataFormatException.java java/io/UnsupportedEncodingException.java java/io/WriteAbortedException.java java/io/Writer.java java/util/AbstractCollection.java java/util/AbstractList.java java/util/AbstractMap.java java/util/AbstractSequentialList.java java/util/AbstractSet.java java/util/ArrayList.java java/util/Arrays.java java/util/BasicMapEntry.java java/util/BitSet.java java/util/Calendar.java java/util/Collection.java java/util/Collections.java java/util/Comparator.java java/util/ConcurrentModificationException.java java/util/Date.java java/util/Dictionary.java java/util/EmptyStackException.java java/util/Enumeration.java java/util/EventListener.java java/util/EventObject.java java/util/GregorianCalendar.java java/util/HashMap.java java/util/HashSet.java java/util/Hashtable.java java/util/Iterator.java java/util/LinkedList.java java/util/List.java java/util/ListIterator.java java/util/ListResourceBundle.java java/util/Locale.java java/util/Map.java java/util/MissingResourceException.java java/util/NoSuchElementException.java java/util/Observable.java java/util/Observer.java java/util/Properties.java java/util/PropertyPermission.java java/util/PropertyResourceBundle.java java/util/Random.java java/util/ResourceBundle.java java/util/Set.java java/util/SimpleTimeZone.java java/util/SortedMap.java java/util/SortedSet.java java/util/Stack.java java/util/StringTokenizer.java java/util/TimeZone.java java/util/Timer.java java/util/TimerTask.java java/util/TreeMap.java java/util/TreeSet.java java/util/TooManyListenersException.java java/util/Vector.java java/util/WeakHashMap.java + + +ordinary_java_source_files = $(core_java_source_files) gnu/gcj/RawData.java gnu/gcj/io/DefaultMimeTypes.java gnu/gcj/io/MimeTypes.java gnu/gcj/io/SimpleSHSStream.java gnu/gcj/math/MPN.java gnu/gcj/protocol/file/Connection.java gnu/gcj/protocol/file/Handler.java gnu/gcj/protocol/http/Connection.java gnu/gcj/protocol/http/Handler.java gnu/gcj/protocol/jar/Connection.java gnu/gcj/protocol/jar/Handler.java gnu/gcj/runtime/FileDeleter.java gnu/gcj/runtime/FirstThread.java gnu/gcj/runtime/VMClassLoader.java gnu/gcj/text/BaseBreakIterator.java gnu/gcj/text/CharacterBreakIterator.java gnu/gcj/text/LineBreakIterator.java gnu/gcj/text/LocaleData_en.java gnu/gcj/text/LocaleData_en_US.java gnu/gcj/text/SentenceBreakIterator.java gnu/gcj/text/WordBreakIterator.java gnu/gcj/util/EnumerationChain.java gnu/java/io/ClassLoaderObjectInputStream.java gnu/java/io/NullOutputStream.java gnu/java/io/ObjectIdentityWrapper.java gnu/java/lang/ArrayHelper.java gnu/java/lang/ClassHelper.java gnu/java/lang/reflect/TypeSignature.java gnu/java/locale/Calendar.java gnu/java/locale/Calendar_de.java gnu/java/locale/Calendar_en.java gnu/java/locale/Calendar_nl.java gnu/java/security/provider/DefaultPolicy.java gnu/java/security/provider/Gnu.java gnu/java/security/provider/SHA.java gnu/java/security/provider/SHA1PRNG.java java/lang/ref/PhantomReference.java java/lang/ref/Reference.java java/lang/ref/ReferenceQueue.java java/lang/ref/SoftReference.java java/lang/ref/WeakReference.java java/lang/reflect/AccessibleObject.java java/lang/reflect/Array.java java/lang/reflect/Constructor.java java/lang/reflect/Field.java java/lang/reflect/InvocationTargetException.java java/lang/reflect/Member.java java/lang/reflect/Method.java java/lang/reflect/Modifier.java java/lang/reflect/ReflectPermission.java java/math/BigDecimal.java java/math/BigInteger.java java/net/BindException.java java/net/ConnectException.java java/net/ContentHandler.java java/net/ContentHandlerFactory.java java/net/DatagramPacket.java java/net/DatagramSocket.java java/net/DatagramSocketImpl.java java/net/FileNameMap.java java/net/HttpURLConnection.java java/net/InetAddress.java java/net/JarURLConnection.java java/net/MalformedURLException.java java/net/MulticastSocket.java java/net/NetPermission.java java/net/NoRouteToHostException.java java/net/PlainDatagramSocketImpl.java java/net/PlainSocketImpl.java java/net/ProtocolException.java java/net/ServerSocket.java java/net/Socket.java java/net/SocketException.java java/net/SocketImpl.java java/net/SocketImplFactory.java java/net/SocketOptions.java java/net/SocketPermission.java java/net/URL.java java/net/URLClassLoader.java java/net/URLConnection.java java/net/URLDecoder.java java/net/URLEncoder.java java/net/URLStreamHandler.java java/net/URLStreamHandlerFactory.java java/net/UnknownHostException.java java/net/UnknownServiceException.java java/security/AccessControlContext.java java/security/AccessControlException.java java/security/AccessController.java java/security/AlgorithmParameterGenerator.java java/security/AlgorithmParameters.java java/security/AlgorithmParameterGeneratorSpi.java java/security/AlgorithmParametersSpi.java java/security/AllPermission.java java/security/BasicPermission.java java/security/Certificate.java java/security/CodeSource.java java/security/DigestException.java java/security/DigestOutputStream.java java/security/DummyKeyPairGenerator.java java/security/DummySignature.java java/security/DigestInputStream.java java/security/DomainCombiner.java java/security/DummyMessageDigest.java java/security/GeneralSecurityException.java java/security/Guard.java java/security/GuardedObject.java java/security/Identity.java java/security/IdentityScope.java java/security/InvalidAlgorithmParameterException.java java/security/InvalidKeyException.java java/security/InvalidParameterException.java java/security/Key.java java/security/KeyFactorySpi.java java/security/KeyPairGenerator.java java/security/KeyStoreException.java java/security/KeyException.java java/security/KeyManagementException.java java/security/KeyPairGeneratorSpi.java java/security/KeyStoreSpi.java java/security/KeyFactory.java java/security/KeyPair.java java/security/KeyStore.java java/security/MessageDigest.java java/security/MessageDigestSpi.java java/security/NoSuchAlgorithmException.java java/security/NoSuchProviderException.java java/security/Permission.java java/security/Principal.java java/security/PrivilegedExceptionAction.java java/security/PublicKey.java java/security/PermissionCollection.java java/security/PrivateKey.java java/security/ProtectionDomain.java java/security/Permissions.java java/security/PrivilegedAction.java java/security/Provider.java java/security/Policy.java java/security/PrivilegedActionException.java java/security/ProviderException.java java/security/SecureClassLoader.java java/security/SecureRandomSpi.java java/security/SecurityPermission.java java/security/SignatureException.java java/security/SignedObject.java java/security/SecureRandom.java java/security/Security.java java/security/Signature.java java/security/SignatureSpi.java java/security/Signer.java java/security/UnrecoverableKeyException.java java/security/UnresolvedPermission.java java/security/acl/Acl.java java/security/acl/AclNotFoundException.java java/security/acl/LastOwnerException.java java/security/acl/Owner.java java/security/acl/AclEntry.java java/security/acl/Group.java java/security/acl/NotOwnerException.java java/security/acl/Permission.java java/security/cert/CRL.java java/security/cert/CRLException.java java/security/cert/Certificate.java java/security/cert/CertificateEncodingException.java java/security/cert/CertificateException.java java/security/cert/CertificateExpiredException.java java/security/cert/CertificateFactory.java java/security/cert/CertificateFactorySpi.java java/security/cert/CertificateNotYetValidException.java java/security/cert/CertificateParsingException.java java/security/cert/X509CRL.java java/security/cert/X509CRLEntry.java java/security/cert/X509Certificate.java java/security/cert/X509Extension.java java/security/interfaces/DSAKey.java java/security/interfaces/DSAKeyPairGenerator.java java/security/interfaces/DSAParams.java java/security/interfaces/DSAPrivateKey.java java/security/interfaces/DSAPublicKey.java java/security/interfaces/RSAKey.java java/security/interfaces/RSAPrivateCrtKey.java java/security/interfaces/RSAPrivateKey.java java/security/interfaces/RSAPublicKey.java java/security/spec/AlgorithmParameterSpec.java java/security/spec/DSAParameterSpec.java java/security/spec/DSAPrivateKeySpec.java java/security/spec/DSAPublicKeySpec.java java/security/spec/EncodedKeySpec.java java/security/spec/InvalidKeySpecException.java java/security/spec/InvalidParameterSpecException.java java/security/spec/KeySpec.java java/security/spec/PKCS8EncodedKeySpec.java java/security/spec/RSAKeyGenParameterSpec.java java/security/spec/RSAPrivateCrtKeySpec.java java/security/spec/RSAPrivateKeySpec.java java/security/spec/RSAPublicKeySpec.java java/security/spec/X509EncodedKeySpec.java java/sql/Array.java java/sql/BatchUpdateException.java java/sql/Blob.java java/sql/CallableStatement.java java/sql/Clob.java java/sql/Connection.java java/sql/DataTruncation.java java/sql/DatabaseMetaData.java java/sql/Date.java java/sql/Driver.java java/sql/DriverManager.java java/sql/DriverPropertyInfo.java java/sql/PreparedStatement.java java/sql/Ref.java java/sql/ResultSet.java java/sql/ResultSetMetaData.java java/sql/SQLData.java java/sql/SQLException.java java/sql/SQLInput.java java/sql/SQLOutput.java java/sql/SQLWarning.java java/sql/Statement.java java/sql/Struct.java java/sql/Time.java java/sql/Timestamp.java java/sql/Types.java java/text/BreakIterator.java java/text/CharacterIterator.java java/text/ChoiceFormat.java java/text/CollationElementIterator.java java/text/CollationKey.java java/text/Collator.java java/text/DateFormat.java java/text/DateFormatSymbols.java java/text/DecimalFormat.java java/text/DecimalFormatSymbols.java java/text/FieldPosition.java java/text/Format.java java/text/MessageFormat.java java/text/NumberFormat.java java/text/ParseException.java java/text/ParsePosition.java java/text/RuleBasedCollator.java java/text/SimpleDateFormat.java java/text/StringCharacterIterator.java java/util/jar/Attributes.java java/util/jar/JarEntry.java java/util/jar/JarException.java java/util/jar/JarFile.java java/util/jar/JarInputStream.java java/util/jar/JarOutputStream.java java/util/jar/Manifest.java java/util/zip/Adler32.java java/util/zip/CRC32.java java/util/zip/CheckedInputStream.java java/util/zip/CheckedOutputStream.java java/util/zip/Checksum.java java/util/zip/DataFormatException.java java/util/zip/Deflater.java java/util/zip/DeflaterOutputStream.java java/util/zip/GZIPInputStream.java java/util/zip/GZIPOutputStream.java java/util/zip/Inflater.java java/util/zip/InflaterInputStream.java java/util/zip/ZipConstants.java java/util/zip/ZipEntry.java java/util/zip/ZipException.java java/util/zip/ZipFile.java java/util/zip/ZipInputStream.java java/util/zip/ZipOutputStream.java $(awt_java_source_files) $(convert_source_files) java_source_files = $(special_java_source_files) $(ordinary_java_source_files) -c_source_files = \ - java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c \ - java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c \ - java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c \ - java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c \ - java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c \ - java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c \ - java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c \ - java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c \ - java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c \ - java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c \ - java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c \ - java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c \ - java/lang/k_cos.c java/lang/s_sin.c java/lang/sf_fabs.c +c_source_files = java/lang/dtoa.c java/lang/k_rem_pio2.c java/lang/s_tan.c java/lang/e_acos.c java/lang/k_sin.c java/lang/strtod.c java/lang/e_asin.c java/lang/k_tan.c java/lang/w_acos.c java/lang/e_atan2.c java/lang/mprec.c java/lang/w_asin.c java/lang/e_exp.c java/lang/s_atan.c java/lang/w_atan2.c java/lang/e_fmod.c java/lang/s_ceil.c java/lang/w_exp.c java/lang/e_log.c java/lang/s_copysign.c java/lang/w_fmod.c java/lang/e_pow.c java/lang/s_cos.c java/lang/w_log.c java/lang/e_rem_pio2.c java/lang/s_fabs.c java/lang/w_pow.c java/lang/e_remainder.c java/lang/s_floor.c java/lang/w_remainder.c java/lang/e_scalb.c java/lang/s_rint.c java/lang/w_sqrt.c java/lang/e_sqrt.c java/lang/s_scalbn.c java/lang/sf_rint.c java/lang/k_cos.c java/lang/s_sin.c java/lang/sf_fabs.c #java/awt/natToolkit.cc -nat_source_files = \ -gnu/gcj/convert/JIS0208_to_Unicode.cc \ -gnu/gcj/convert/JIS0212_to_Unicode.cc \ -gnu/gcj/convert/Unicode_to_JIS.cc \ -gnu/gcj/convert/natIconv.cc \ -gnu/gcj/convert/natInput_EUCJIS.cc \ -gnu/gcj/convert/natInput_SJIS.cc \ -gnu/gcj/convert/natOutput_EUCJIS.cc \ -gnu/gcj/convert/natOutput_SJIS.cc \ -gnu/gcj/io/natSimpleSHSStream.cc \ -gnu/gcj/io/shs.cc \ -gnu/gcj/jni/natNativeThread.cc \ -gnu/gcj/runtime/natFirstThread.cc \ -java/io/natFile.cc \ -java/io/natFileDescriptor.cc \ -java/io/natObjectInputStream.cc \ -java/io/natObjectOutputStream.cc \ -java/lang/natCharacter.cc \ -java/lang/natClass.cc \ -java/lang/natClassLoader.cc \ -java/lang/natConcreteProcess.cc \ -java/lang/natDouble.cc \ -java/lang/natFloat.cc \ -java/lang/natMath.cc \ -java/lang/natObject.cc \ -java/lang/natRuntime.cc \ -java/lang/natString.cc \ -java/lang/natStringBuffer.cc \ -java/lang/natSystem.cc \ -java/lang/natThread.cc \ -java/lang/natThrowable.cc \ -java/lang/reflect/natArray.cc \ -java/lang/reflect/natConstructor.cc \ -java/lang/reflect/natField.cc \ -java/lang/reflect/natMethod.cc \ -java/net/natInetAddress.cc \ -java/net/natPlainDatagramSocketImpl.cc \ -java/net/natPlainSocketImpl.cc \ -java/text/natCollator.cc \ -java/util/zip/natDeflater.cc \ -java/util/zip/natInflater.cc - - -x_java_source_files = \ -gnu/gcj/xlib/Clip.java \ -gnu/gcj/xlib/Colormap.java \ -gnu/gcj/xlib/Display.java \ -gnu/gcj/xlib/Drawable.java \ -gnu/gcj/xlib/Font.java \ -gnu/gcj/xlib/GC.java \ -gnu/gcj/xlib/Pixmap.java \ -gnu/gcj/xlib/Screen.java \ -gnu/gcj/xlib/Visual.java \ -gnu/gcj/xlib/WMSizeHints.java \ -gnu/gcj/xlib/Window.java \ -gnu/gcj/xlib/WindowAttributes.java \ -gnu/gcj/xlib/XAnyEvent.java \ -gnu/gcj/xlib/XButtonEvent.java \ -gnu/gcj/xlib/XColor.java \ -gnu/gcj/xlib/XConfigureEvent.java \ -gnu/gcj/xlib/XConnectException.java \ -gnu/gcj/xlib/XEvent.java \ -gnu/gcj/xlib/XException.java \ -gnu/gcj/xlib/XExposeEvent.java \ -gnu/gcj/xlib/XID.java \ -gnu/gcj/xlib/XImage.java \ -gnu/gcj/xlib/XUnmapEvent.java \ -gnu/awt/xlib/XCanvasPeer.java \ -gnu/awt/xlib/XEventLoop.java \ -gnu/awt/xlib/XEventQueue.java \ -gnu/awt/xlib/XFontMetrics.java \ -gnu/awt/xlib/XFramePeer.java \ -gnu/awt/xlib/XGraphics.java \ -gnu/awt/xlib/XGraphicsConfiguration.java \ -gnu/awt/xlib/XPanelPeer.java \ -gnu/awt/xlib/XToolkit.java - - -x_nat_source_files = \ -gnu/gcj/xlib/natClip.cc \ -gnu/gcj/xlib/natColormap.cc \ -gnu/gcj/xlib/natDisplay.cc \ -gnu/gcj/xlib/natDrawable.cc \ -gnu/gcj/xlib/natFont.cc \ -gnu/gcj/xlib/natGC.cc \ -gnu/gcj/xlib/natPixmap.cc \ -gnu/gcj/xlib/natScreen.cc \ -gnu/gcj/xlib/natVisual.cc \ -gnu/gcj/xlib/natWMSizeHints.cc \ -gnu/gcj/xlib/natWindow.cc \ -gnu/gcj/xlib/natWindowAttributes.cc \ -gnu/gcj/xlib/natXAnyEvent.cc \ -gnu/gcj/xlib/natXButtonEvent.cc \ -gnu/gcj/xlib/natXColor.cc \ -gnu/gcj/xlib/natXConfigureEvent.cc \ -gnu/gcj/xlib/natXException.cc \ -gnu/gcj/xlib/natXExposeEvent.cc \ -gnu/gcj/xlib/natXImage.cc \ -gnu/gcj/xlib/natXUnmapEvent.cc +nat_source_files = gnu/gcj/convert/JIS0208_to_Unicode.cc gnu/gcj/convert/JIS0212_to_Unicode.cc gnu/gcj/convert/Unicode_to_JIS.cc gnu/gcj/convert/natIconv.cc gnu/gcj/convert/natInput_EUCJIS.cc gnu/gcj/convert/natInput_SJIS.cc gnu/gcj/convert/natOutput_EUCJIS.cc gnu/gcj/convert/natOutput_SJIS.cc gnu/gcj/io/natSimpleSHSStream.cc gnu/gcj/io/shs.cc java/io/natFile.cc java/io/natFileDescriptor.cc java/io/natObjectInputStream.cc java/io/natObjectOutputStream.cc java/lang/natCharacter.cc java/lang/natClass.cc java/lang/natClassLoader.cc java/lang/natConcreteProcess.cc java/lang/natDouble.cc java/lang/natFloat.cc java/lang/natMath.cc java/lang/natObject.cc java/lang/natRuntime.cc java/lang/natString.cc java/lang/natStringBuffer.cc java/lang/natSystem.cc java/lang/natThread.cc java/lang/natThrowable.cc java/lang/reflect/natArray.cc java/lang/reflect/natConstructor.cc java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc java/net/natInetAddress.cc java/net/natPlainDatagramSocketImpl.cc java/net/natPlainSocketImpl.cc java/text/natCollator.cc java/util/zip/natDeflater.cc java/util/zip/natInflater.cc + + +x_java_source_files = gnu/gcj/xlib/Clip.java gnu/gcj/xlib/Colormap.java gnu/gcj/xlib/Display.java gnu/gcj/xlib/Drawable.java gnu/gcj/xlib/Font.java gnu/gcj/xlib/GC.java gnu/gcj/xlib/Pixmap.java gnu/gcj/xlib/Screen.java gnu/gcj/xlib/Visual.java gnu/gcj/xlib/WMSizeHints.java gnu/gcj/xlib/Window.java gnu/gcj/xlib/WindowAttributes.java gnu/gcj/xlib/XAnyEvent.java gnu/gcj/xlib/XButtonEvent.java gnu/gcj/xlib/XColor.java gnu/gcj/xlib/XConfigureEvent.java gnu/gcj/xlib/XConnectException.java gnu/gcj/xlib/XEvent.java gnu/gcj/xlib/XException.java gnu/gcj/xlib/XExposeEvent.java gnu/gcj/xlib/XID.java gnu/gcj/xlib/XImage.java gnu/gcj/xlib/XUnmapEvent.java gnu/awt/xlib/XCanvasPeer.java gnu/awt/xlib/XEventLoop.java gnu/awt/xlib/XEventQueue.java gnu/awt/xlib/XFontMetrics.java gnu/awt/xlib/XFramePeer.java gnu/awt/xlib/XGraphics.java gnu/awt/xlib/XGraphicsConfiguration.java gnu/awt/xlib/XPanelPeer.java gnu/awt/xlib/XToolkit.java + + +x_nat_source_files = gnu/gcj/xlib/natClip.cc gnu/gcj/xlib/natColormap.cc gnu/gcj/xlib/natDisplay.cc gnu/gcj/xlib/natDrawable.cc gnu/gcj/xlib/natFont.cc gnu/gcj/xlib/natGC.cc gnu/gcj/xlib/natPixmap.cc gnu/gcj/xlib/natScreen.cc gnu/gcj/xlib/natVisual.cc gnu/gcj/xlib/natWMSizeHints.cc gnu/gcj/xlib/natWindow.cc gnu/gcj/xlib/natWindowAttributes.cc gnu/gcj/xlib/natXAnyEvent.cc gnu/gcj/xlib/natXButtonEvent.cc gnu/gcj/xlib/natXColor.cc gnu/gcj/xlib/natXConfigureEvent.cc gnu/gcj/xlib/natXException.cc gnu/gcj/xlib/natXExposeEvent.cc gnu/gcj/xlib/natXImage.cc gnu/gcj/xlib/natXUnmapEvent.cc # Work around what appears to be a GNU make bug handling MAKEFLAGS # values defined in terms of make variables, as is the case for CC and # friends when we are called from the top level Makefile. -AM_MAKEFLAGS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CFLAGS=$(CFLAGS)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "JC1FLAGS=$(JC1FLAGS)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "PICFLAG=$(PICFLAG)" \ - "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \ - "SHELL=$(SHELL)" \ - "exec_prefix=$(exec_prefix)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "prefix=$(prefix)" \ - "AR=$(AR)" \ - "AS=$(AS)" \ - "CC=$(CC)" \ - "CXX=$(CXX)" \ - "LD=$(LD)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "NM=$(NM)" \ - "PICFLAG=$(PICFLAG)" \ - "RANLIB=$(RANLIB)" \ - "DESTDIR=$(DESTDIR)" +AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "JC1FLAGS=$(JC1FLAGS)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "prefix=$(prefix)" "AR=$(AR)" "AS=$(AS)" "CC=$(CC)" "CXX=$(CXX)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "NM=$(NM)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "DESTDIR=$(DESTDIR)" CONFIG_STATUS_DEPENDENCIES = $(libgcj_basedir)/configure.host @@ -1212,37 +311,8 @@ libgcjdata_a_LIBADD = LTLIBRARIES = $(toolexeclib_LTLIBRARIES) libgcj_la_OBJECTS = prims.lo posix.lo jni.lo exception.lo resolve.lo \ -defineclass.lo interpret.lo name-finder.lo \ -gnu/gcj/convert/JIS0208_to_Unicode.lo \ -gnu/gcj/convert/JIS0212_to_Unicode.lo gnu/gcj/convert/Unicode_to_JIS.lo \ -gnu/gcj/convert/natIconv.lo gnu/gcj/convert/natInput_EUCJIS.lo \ -gnu/gcj/convert/natInput_SJIS.lo gnu/gcj/convert/natOutput_EUCJIS.lo \ -gnu/gcj/convert/natOutput_SJIS.lo gnu/gcj/io/natSimpleSHSStream.lo \ -gnu/gcj/io/shs.lo gnu/gcj/jni/natNativeThread.lo \ -gnu/gcj/runtime/natFirstThread.lo java/io/natFile.lo \ -java/io/natFileDescriptor.lo java/io/natObjectInputStream.lo \ -java/io/natObjectOutputStream.lo java/lang/natCharacter.lo \ -java/lang/natClass.lo java/lang/natClassLoader.lo \ -java/lang/natConcreteProcess.lo java/lang/natDouble.lo \ -java/lang/natFloat.lo java/lang/natMath.lo java/lang/natObject.lo \ -java/lang/natRuntime.lo java/lang/natString.lo java/lang/natStringBuffer.lo java/lang/natSystem.lo \ -java/lang/natThread.lo java/lang/natThrowable.lo \ -java/lang/reflect/natArray.lo java/lang/reflect/natConstructor.lo \ -java/lang/reflect/natField.lo java/lang/reflect/natMethod.lo \ -java/net/natInetAddress.lo java/net/natPlainDatagramSocketImpl.lo \ -java/net/natPlainSocketImpl.lo java/text/natCollator.lo \ -java/util/zip/natDeflater.lo java/util/zip/natInflater.lo -libgcjx_la_OBJECTS = gnu/gcj/xlib/natClip.lo \ -gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.lo \ -gnu/gcj/xlib/natDrawable.lo gnu/gcj/xlib/natFont.lo \ -gnu/gcj/xlib/natGC.lo gnu/gcj/xlib/natPixmap.lo \ -gnu/gcj/xlib/natScreen.lo gnu/gcj/xlib/natVisual.lo \ -gnu/gcj/xlib/natWMSizeHints.lo gnu/gcj/xlib/natWindow.lo \ -gnu/gcj/xlib/natWindowAttributes.lo gnu/gcj/xlib/natXAnyEvent.lo \ -gnu/gcj/xlib/natXButtonEvent.lo gnu/gcj/xlib/natXColor.lo \ -gnu/gcj/xlib/natXConfigureEvent.lo gnu/gcj/xlib/natXException.lo \ -gnu/gcj/xlib/natXExposeEvent.lo gnu/gcj/xlib/natXImage.lo \ -gnu/gcj/xlib/natXUnmapEvent.lo +defineclass.lo interpret.lo name-finder.lo +libgcjx_la_OBJECTS = @NATIVE_TRUE@bin_PROGRAMS = jv-convert$(EXEEXT) gij$(EXEEXT) @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@noinst_PROGRAMS = \ @NATIVE_TRUE@@MAINTAINER_MODE_TRUE@gen-from-JIS$(EXEEXT) @@ -1275,577 +345,8 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) TAR = tar GZIP_ENV = --best DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include -DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ -.deps/$(srcdir)/$(CONVERT_DIR)/make-trie.P .deps/boehm.P \ -.deps/defineclass.P .deps/exception.P .deps/gij.P \ -.deps/gnu/awt/LightweightRedirector.P \ -.deps/gnu/awt/j2d/AbstractGraphicsState.P \ -.deps/gnu/awt/j2d/DirectRasterGraphics.P \ -.deps/gnu/awt/j2d/Graphics2DImpl.P \ -.deps/gnu/awt/j2d/IntegerGraphicsState.P \ -.deps/gnu/awt/j2d/MappedRaster.P .deps/gnu/awt/xlib/XCanvasPeer.P \ -.deps/gnu/awt/xlib/XEventLoop.P .deps/gnu/awt/xlib/XEventQueue.P \ -.deps/gnu/awt/xlib/XFontMetrics.P .deps/gnu/awt/xlib/XFramePeer.P \ -.deps/gnu/awt/xlib/XGraphics.P \ -.deps/gnu/awt/xlib/XGraphicsConfiguration.P \ -.deps/gnu/awt/xlib/XPanelPeer.P .deps/gnu/awt/xlib/XToolkit.P \ -.deps/gnu/classpath/Configuration.P .deps/gnu/gcj/RawData.P \ -.deps/gnu/gcj/awt/BitMaskExtent.P .deps/gnu/gcj/awt/Buffers.P \ -.deps/gnu/gcj/awt/ComponentDataBlitOp.P \ -.deps/gnu/gcj/awt/GLightweightPeer.P \ -.deps/gnu/gcj/convert/BytesToUnicode.P .deps/gnu/gcj/convert/Convert.P \ -.deps/gnu/gcj/convert/IOConverter.P \ -.deps/gnu/gcj/convert/Input_8859_1.P \ -.deps/gnu/gcj/convert/Input_ASCII.P \ -.deps/gnu/gcj/convert/Input_EUCJIS.P \ -.deps/gnu/gcj/convert/Input_JavaSrc.P \ -.deps/gnu/gcj/convert/Input_SJIS.P .deps/gnu/gcj/convert/Input_UTF8.P \ -.deps/gnu/gcj/convert/Input_iconv.P \ -.deps/gnu/gcj/convert/JIS0208_to_Unicode.P \ -.deps/gnu/gcj/convert/JIS0212_to_Unicode.P \ -.deps/gnu/gcj/convert/Output_8859_1.P \ -.deps/gnu/gcj/convert/Output_ASCII.P \ -.deps/gnu/gcj/convert/Output_EUCJIS.P \ -.deps/gnu/gcj/convert/Output_JavaSrc.P \ -.deps/gnu/gcj/convert/Output_SJIS.P .deps/gnu/gcj/convert/Output_UTF8.P \ -.deps/gnu/gcj/convert/Output_iconv.P \ -.deps/gnu/gcj/convert/UnicodeToBytes.P \ -.deps/gnu/gcj/convert/Unicode_to_JIS.P .deps/gnu/gcj/convert/natIconv.P \ -.deps/gnu/gcj/convert/natInput_EUCJIS.P \ -.deps/gnu/gcj/convert/natInput_SJIS.P \ -.deps/gnu/gcj/convert/natOutput_EUCJIS.P \ -.deps/gnu/gcj/convert/natOutput_SJIS.P \ -.deps/gnu/gcj/io/DefaultMimeTypes.P .deps/gnu/gcj/io/MimeTypes.P \ -.deps/gnu/gcj/io/SimpleSHSStream.P \ -.deps/gnu/gcj/io/natSimpleSHSStream.P .deps/gnu/gcj/io/shs.P \ -.deps/gnu/gcj/jni/NativeThread.P .deps/gnu/gcj/jni/natNativeThread.P \ -.deps/gnu/gcj/math/MPN.P .deps/gnu/gcj/protocol/file/Connection.P \ -.deps/gnu/gcj/protocol/file/Handler.P \ -.deps/gnu/gcj/protocol/http/Connection.P \ -.deps/gnu/gcj/protocol/http/Handler.P \ -.deps/gnu/gcj/protocol/jar/Connection.P \ -.deps/gnu/gcj/protocol/jar/Handler.P \ -.deps/gnu/gcj/runtime/FileDeleter.P .deps/gnu/gcj/runtime/FirstThread.P \ -.deps/gnu/gcj/runtime/VMClassLoader.P \ -.deps/gnu/gcj/runtime/natFirstThread.P \ -.deps/gnu/gcj/text/BaseBreakIterator.P \ -.deps/gnu/gcj/text/CharacterBreakIterator.P \ -.deps/gnu/gcj/text/LineBreakIterator.P \ -.deps/gnu/gcj/text/LocaleData_en.P \ -.deps/gnu/gcj/text/LocaleData_en_US.P \ -.deps/gnu/gcj/text/SentenceBreakIterator.P \ -.deps/gnu/gcj/text/WordBreakIterator.P \ -.deps/gnu/gcj/util/EnumerationChain.P .deps/gnu/gcj/xlib/Clip.P \ -.deps/gnu/gcj/xlib/Colormap.P .deps/gnu/gcj/xlib/Display.P \ -.deps/gnu/gcj/xlib/Drawable.P .deps/gnu/gcj/xlib/Font.P \ -.deps/gnu/gcj/xlib/GC.P .deps/gnu/gcj/xlib/Pixmap.P \ -.deps/gnu/gcj/xlib/Screen.P .deps/gnu/gcj/xlib/Visual.P \ -.deps/gnu/gcj/xlib/WMSizeHints.P .deps/gnu/gcj/xlib/Window.P \ -.deps/gnu/gcj/xlib/WindowAttributes.P .deps/gnu/gcj/xlib/XAnyEvent.P \ -.deps/gnu/gcj/xlib/XButtonEvent.P .deps/gnu/gcj/xlib/XColor.P \ -.deps/gnu/gcj/xlib/XConfigureEvent.P \ -.deps/gnu/gcj/xlib/XConnectException.P .deps/gnu/gcj/xlib/XEvent.P \ -.deps/gnu/gcj/xlib/XException.P .deps/gnu/gcj/xlib/XExposeEvent.P \ -.deps/gnu/gcj/xlib/XID.P .deps/gnu/gcj/xlib/XImage.P \ -.deps/gnu/gcj/xlib/XUnmapEvent.P .deps/gnu/gcj/xlib/natClip.P \ -.deps/gnu/gcj/xlib/natColormap.P .deps/gnu/gcj/xlib/natDisplay.P \ -.deps/gnu/gcj/xlib/natDrawable.P .deps/gnu/gcj/xlib/natFont.P \ -.deps/gnu/gcj/xlib/natGC.P .deps/gnu/gcj/xlib/natPixmap.P \ -.deps/gnu/gcj/xlib/natScreen.P .deps/gnu/gcj/xlib/natVisual.P \ -.deps/gnu/gcj/xlib/natWMSizeHints.P .deps/gnu/gcj/xlib/natWindow.P \ -.deps/gnu/gcj/xlib/natWindowAttributes.P \ -.deps/gnu/gcj/xlib/natXAnyEvent.P .deps/gnu/gcj/xlib/natXButtonEvent.P \ -.deps/gnu/gcj/xlib/natXColor.P .deps/gnu/gcj/xlib/natXConfigureEvent.P \ -.deps/gnu/gcj/xlib/natXException.P .deps/gnu/gcj/xlib/natXExposeEvent.P \ -.deps/gnu/gcj/xlib/natXImage.P .deps/gnu/gcj/xlib/natXUnmapEvent.P \ -.deps/gnu/java/beans/BeanInfoEmbryo.P \ -.deps/gnu/java/beans/EmptyBeanInfo.P \ -.deps/gnu/java/beans/ExplicitBeanInfo.P \ -.deps/gnu/java/beans/IntrospectionIncubator.P \ -.deps/gnu/java/beans/editors/ColorEditor.P \ -.deps/gnu/java/beans/editors/FontEditor.P \ -.deps/gnu/java/beans/editors/NativeBooleanEditor.P \ -.deps/gnu/java/beans/editors/NativeByteEditor.P \ -.deps/gnu/java/beans/editors/NativeDoubleEditor.P \ -.deps/gnu/java/beans/editors/NativeFloatEditor.P \ -.deps/gnu/java/beans/editors/NativeIntEditor.P \ -.deps/gnu/java/beans/editors/NativeLongEditor.P \ -.deps/gnu/java/beans/editors/NativeShortEditor.P \ -.deps/gnu/java/beans/editors/StringEditor.P \ -.deps/gnu/java/beans/info/ComponentBeanInfo.P \ -.deps/gnu/java/io/ClassLoaderObjectInputStream.P \ -.deps/gnu/java/io/NullOutputStream.P \ -.deps/gnu/java/io/ObjectIdentityWrapper.P \ -.deps/gnu/java/lang/ArrayHelper.P .deps/gnu/java/lang/ClassHelper.P \ -.deps/gnu/java/lang/reflect/TypeSignature.P \ -.deps/gnu/java/locale/Calendar.P .deps/gnu/java/locale/Calendar_de.P \ -.deps/gnu/java/locale/Calendar_en.P .deps/gnu/java/locale/Calendar_nl.P \ -.deps/gnu/java/security/provider/DefaultPolicy.P \ -.deps/gnu/java/security/provider/Gnu.P \ -.deps/gnu/java/security/provider/SHA.P \ -.deps/gnu/java/security/provider/SHA1PRNG.P .deps/interpret.P \ -.deps/java/applet/Applet.P .deps/java/applet/AppletContext.P \ -.deps/java/applet/AppletStub.P .deps/java/applet/AudioClip.P \ -.deps/java/awt/AWTError.P .deps/java/awt/AWTEvent.P \ -.deps/java/awt/AWTEventMulticaster.P .deps/java/awt/AWTException.P \ -.deps/java/awt/AWTPermission.P .deps/java/awt/ActiveEvent.P \ -.deps/java/awt/Adjustable.P .deps/java/awt/BorderLayout.P \ -.deps/java/awt/Button.P .deps/java/awt/Canvas.P \ -.deps/java/awt/CardLayout.P .deps/java/awt/Checkbox.P \ -.deps/java/awt/CheckboxGroup.P .deps/java/awt/CheckboxMenuItem.P \ -.deps/java/awt/Choice.P .deps/java/awt/Color.P \ -.deps/java/awt/Component.P .deps/java/awt/ComponentOrientation.P \ -.deps/java/awt/Container.P .deps/java/awt/Cursor.P \ -.deps/java/awt/Dialog.P .deps/java/awt/Dimension.P \ -.deps/java/awt/Event.P .deps/java/awt/EventDispatchThread.P \ -.deps/java/awt/EventQueue.P .deps/java/awt/FileDialog.P \ -.deps/java/awt/FlowLayout.P .deps/java/awt/Font.P \ -.deps/java/awt/FontMetrics.P .deps/java/awt/Frame.P \ -.deps/java/awt/Graphics.P .deps/java/awt/Graphics2D.P \ -.deps/java/awt/GraphicsConfiguration.P \ -.deps/java/awt/GridBagConstraints.P .deps/java/awt/GridLayout.P \ -.deps/java/awt/IllegalComponentStateException.P .deps/java/awt/Image.P \ -.deps/java/awt/Insets.P .deps/java/awt/ItemSelectable.P \ -.deps/java/awt/Label.P .deps/java/awt/LayoutManager.P \ -.deps/java/awt/LayoutManager2.P .deps/java/awt/List.P \ -.deps/java/awt/Menu.P .deps/java/awt/MenuBar.P \ -.deps/java/awt/MenuComponent.P .deps/java/awt/MenuContainer.P \ -.deps/java/awt/MenuItem.P .deps/java/awt/MenuShortcut.P \ -.deps/java/awt/Paint.P .deps/java/awt/PaintContext.P \ -.deps/java/awt/Panel.P .deps/java/awt/Point.P .deps/java/awt/Polygon.P \ -.deps/java/awt/PopupMenu.P .deps/java/awt/Rectangle.P \ -.deps/java/awt/RenderingHints.P .deps/java/awt/ScrollPane.P \ -.deps/java/awt/Scrollbar.P .deps/java/awt/Shape.P \ -.deps/java/awt/SystemColor.P .deps/java/awt/TextArea.P \ -.deps/java/awt/TextComponent.P .deps/java/awt/TextField.P \ -.deps/java/awt/Toolkit.P .deps/java/awt/Transparency.P \ -.deps/java/awt/Window.P .deps/java/awt/color/ColorSpace.P \ -.deps/java/awt/color/ICC_ColorSpace.P \ -.deps/java/awt/color/ICC_Profile.P \ -.deps/java/awt/datatransfer/Clipboard.P \ -.deps/java/awt/event/AWTEventListener.P \ -.deps/java/awt/event/ActionEvent.P \ -.deps/java/awt/event/ActionListener.P \ -.deps/java/awt/event/AdjustmentEvent.P \ -.deps/java/awt/event/AdjustmentListener.P \ -.deps/java/awt/event/ComponentAdapter.P \ -.deps/java/awt/event/ComponentEvent.P \ -.deps/java/awt/event/ComponentListener.P \ -.deps/java/awt/event/ContainerAdapter.P \ -.deps/java/awt/event/ContainerEvent.P \ -.deps/java/awt/event/ContainerListener.P \ -.deps/java/awt/event/FocusAdapter.P .deps/java/awt/event/FocusEvent.P \ -.deps/java/awt/event/FocusListener.P \ -.deps/java/awt/event/HierarchyBoundsAdapter.P \ -.deps/java/awt/event/HierarchyBoundsListener.P \ -.deps/java/awt/event/HierarchyEvent.P \ -.deps/java/awt/event/HierarchyListener.P \ -.deps/java/awt/event/InputEvent.P \ -.deps/java/awt/event/InputMethodEvent.P \ -.deps/java/awt/event/InputMethodListener.P \ -.deps/java/awt/event/InvocationEvent.P .deps/java/awt/event/ItemEvent.P \ -.deps/java/awt/event/ItemListener.P .deps/java/awt/event/KeyAdapter.P \ -.deps/java/awt/event/KeyEvent.P .deps/java/awt/event/KeyListener.P \ -.deps/java/awt/event/MouseAdapter.P .deps/java/awt/event/MouseEvent.P \ -.deps/java/awt/event/MouseListener.P \ -.deps/java/awt/event/MouseMotionAdapter.P \ -.deps/java/awt/event/MouseMotionListener.P \ -.deps/java/awt/event/PaintEvent.P .deps/java/awt/event/TextEvent.P \ -.deps/java/awt/event/TextListener.P \ -.deps/java/awt/event/WindowAdapter.P .deps/java/awt/event/WindowEvent.P \ -.deps/java/awt/event/WindowListener.P \ -.deps/java/awt/geom/AffineTransform.P .deps/java/awt/geom/Dimension2D.P \ -.deps/java/awt/geom/Ellipse2D.P \ -.deps/java/awt/geom/IllegalPathStateException.P \ -.deps/java/awt/geom/Line2D.P \ -.deps/java/awt/geom/NoninvertibleTransformException.P \ -.deps/java/awt/geom/PathIterator.P .deps/java/awt/geom/Point2D.P \ -.deps/java/awt/geom/Rectangle2D.P \ -.deps/java/awt/geom/RectangularShape.P \ -.deps/java/awt/geom/RoundRectangle2D.P \ -.deps/java/awt/image/BufferedImage.P .deps/java/awt/image/ColorModel.P \ -.deps/java/awt/image/ComponentColorModel.P \ -.deps/java/awt/image/ComponentSampleModel.P \ -.deps/java/awt/image/DataBuffer.P .deps/java/awt/image/DataBufferByte.P \ -.deps/java/awt/image/DataBufferInt.P \ -.deps/java/awt/image/DataBufferUShort.P \ -.deps/java/awt/image/DirectColorModel.P \ -.deps/java/awt/image/ImageConsumer.P \ -.deps/java/awt/image/ImageObserver.P \ -.deps/java/awt/image/ImageProducer.P \ -.deps/java/awt/image/IndexColorModel.P \ -.deps/java/awt/image/PackedColorModel.P .deps/java/awt/image/Raster.P \ -.deps/java/awt/image/RasterOp.P .deps/java/awt/image/SampleModel.P \ -.deps/java/awt/image/SinglePixelPackedSampleModel.P \ -.deps/java/awt/image/WritableRaster.P .deps/java/awt/peer/ButtonPeer.P \ -.deps/java/awt/peer/CanvasPeer.P \ -.deps/java/awt/peer/CheckboxMenuItemPeer.P \ -.deps/java/awt/peer/CheckboxPeer.P .deps/java/awt/peer/ChoicePeer.P \ -.deps/java/awt/peer/ComponentPeer.P .deps/java/awt/peer/ContainerPeer.P \ -.deps/java/awt/peer/DialogPeer.P .deps/java/awt/peer/FileDialogPeer.P \ -.deps/java/awt/peer/FontPeer.P .deps/java/awt/peer/FramePeer.P \ -.deps/java/awt/peer/LabelPeer.P .deps/java/awt/peer/LightweightPeer.P \ -.deps/java/awt/peer/ListPeer.P .deps/java/awt/peer/MenuBarPeer.P \ -.deps/java/awt/peer/MenuComponentPeer.P \ -.deps/java/awt/peer/MenuItemPeer.P .deps/java/awt/peer/MenuPeer.P \ -.deps/java/awt/peer/PanelPeer.P .deps/java/awt/peer/PopupMenuPeer.P \ -.deps/java/awt/peer/ScrollPanePeer.P \ -.deps/java/awt/peer/ScrollbarPeer.P .deps/java/awt/peer/TextAreaPeer.P \ -.deps/java/awt/peer/TextComponentPeer.P \ -.deps/java/awt/peer/TextFieldPeer.P .deps/java/awt/peer/WindowPeer.P \ -.deps/java/beans/BeanDescriptor.P .deps/java/beans/BeanInfo.P \ -.deps/java/beans/Beans.P .deps/java/beans/Customizer.P \ -.deps/java/beans/DesignMode.P .deps/java/beans/EventSetDescriptor.P \ -.deps/java/beans/FeatureDescriptor.P \ -.deps/java/beans/IndexedPropertyDescriptor.P \ -.deps/java/beans/IntrospectionException.P \ -.deps/java/beans/Introspector.P .deps/java/beans/MethodDescriptor.P \ -.deps/java/beans/ParameterDescriptor.P \ -.deps/java/beans/PropertyChangeEvent.P \ -.deps/java/beans/PropertyChangeListener.P \ -.deps/java/beans/PropertyChangeSupport.P \ -.deps/java/beans/PropertyDescriptor.P .deps/java/beans/PropertyEditor.P \ -.deps/java/beans/PropertyEditorManager.P \ -.deps/java/beans/PropertyEditorSupport.P \ -.deps/java/beans/PropertyVetoException.P \ -.deps/java/beans/SimpleBeanInfo.P \ -.deps/java/beans/VetoableChangeListener.P \ -.deps/java/beans/VetoableChangeSupport.P .deps/java/beans/Visibility.P \ -.deps/java/beans/beancontext/BeanContext.P \ -.deps/java/beans/beancontext/BeanContextChild.P \ -.deps/java/beans/beancontext/BeanContextChildComponentProxy.P \ -.deps/java/beans/beancontext/BeanContextChildSupport.P \ -.deps/java/beans/beancontext/BeanContextContainerProxy.P \ -.deps/java/beans/beancontext/BeanContextEvent.P \ -.deps/java/beans/beancontext/BeanContextMembershipEvent.P \ -.deps/java/beans/beancontext/BeanContextMembershipListener.P \ -.deps/java/beans/beancontext/BeanContextProxy.P \ -.deps/java/beans/beancontext/BeanContextServiceAvailableEvent.P \ -.deps/java/beans/beancontext/BeanContextServiceProvider.P \ -.deps/java/beans/beancontext/BeanContextServiceProviderBeanInfo.P \ -.deps/java/beans/beancontext/BeanContextServiceRevokedEvent.P \ -.deps/java/beans/beancontext/BeanContextServiceRevokedListener.P \ -.deps/java/beans/beancontext/BeanContextServices.P \ -.deps/java/beans/beancontext/BeanContextServicesListener.P \ -.deps/java/io/BufferedInputStream.P \ -.deps/java/io/BufferedOutputStream.P .deps/java/io/BufferedReader.P \ -.deps/java/io/BufferedWriter.P .deps/java/io/ByteArrayInputStream.P \ -.deps/java/io/ByteArrayOutputStream.P .deps/java/io/CharArrayReader.P \ -.deps/java/io/CharArrayWriter.P .deps/java/io/CharConversionException.P \ -.deps/java/io/DataInput.P .deps/java/io/DataInputStream.P \ -.deps/java/io/DataOutput.P .deps/java/io/DataOutputStream.P \ -.deps/java/io/EOFException.P .deps/java/io/Externalizable.P \ -.deps/java/io/File.P .deps/java/io/FileDescriptor.P \ -.deps/java/io/FileFilter.P .deps/java/io/FileInputStream.P \ -.deps/java/io/FileNotFoundException.P .deps/java/io/FileOutputStream.P \ -.deps/java/io/FilePermission.P .deps/java/io/FileReader.P \ -.deps/java/io/FileWriter.P .deps/java/io/FilenameFilter.P \ -.deps/java/io/FilterInputStream.P .deps/java/io/FilterOutputStream.P \ -.deps/java/io/FilterReader.P .deps/java/io/FilterWriter.P \ -.deps/java/io/IOException.P .deps/java/io/InputStream.P \ -.deps/java/io/InputStreamReader.P \ -.deps/java/io/InterruptedIOException.P \ -.deps/java/io/InvalidClassException.P \ -.deps/java/io/InvalidObjectException.P \ -.deps/java/io/LineNumberInputStream.P .deps/java/io/LineNumberReader.P \ -.deps/java/io/NotActiveException.P \ -.deps/java/io/NotSerializableException.P .deps/java/io/ObjectInput.P \ -.deps/java/io/ObjectInputStream.P .deps/java/io/ObjectInputValidation.P \ -.deps/java/io/ObjectOutput.P .deps/java/io/ObjectOutputStream.P \ -.deps/java/io/ObjectStreamClass.P .deps/java/io/ObjectStreamConstants.P \ -.deps/java/io/ObjectStreamException.P .deps/java/io/ObjectStreamField.P \ -.deps/java/io/OptionalDataException.P .deps/java/io/OutputStream.P \ -.deps/java/io/OutputStreamWriter.P .deps/java/io/PipedInputStream.P \ -.deps/java/io/PipedOutputStream.P .deps/java/io/PipedReader.P \ -.deps/java/io/PipedWriter.P .deps/java/io/PrintStream.P \ -.deps/java/io/PrintWriter.P .deps/java/io/PushbackInputStream.P \ -.deps/java/io/PushbackReader.P .deps/java/io/RandomAccessFile.P \ -.deps/java/io/Reader.P .deps/java/io/SequenceInputStream.P \ -.deps/java/io/Serializable.P .deps/java/io/SerializablePermission.P \ -.deps/java/io/StreamCorruptedException.P \ -.deps/java/io/StreamTokenizer.P .deps/java/io/StringBufferInputStream.P \ -.deps/java/io/StringReader.P .deps/java/io/StringWriter.P \ -.deps/java/io/SyncFailedException.P \ -.deps/java/io/UTFDataFormatException.P \ -.deps/java/io/UnsupportedEncodingException.P \ -.deps/java/io/WriteAbortedException.P .deps/java/io/Writer.P \ -.deps/java/io/natFile.P .deps/java/io/natFileDescriptor.P \ -.deps/java/io/natObjectInputStream.P \ -.deps/java/io/natObjectOutputStream.P \ -.deps/java/lang/AbstractMethodError.P \ -.deps/java/lang/ArithmeticException.P \ -.deps/java/lang/ArrayIndexOutOfBoundsException.P \ -.deps/java/lang/ArrayStoreException.P .deps/java/lang/Boolean.P \ -.deps/java/lang/Byte.P .deps/java/lang/Character.P \ -.deps/java/lang/Class.P .deps/java/lang/ClassCastException.P \ -.deps/java/lang/ClassCircularityError.P \ -.deps/java/lang/ClassFormatError.P .deps/java/lang/ClassLoader.P \ -.deps/java/lang/ClassNotFoundException.P \ -.deps/java/lang/CloneNotSupportedException.P \ -.deps/java/lang/Cloneable.P .deps/java/lang/Comparable.P \ -.deps/java/lang/Compiler.P .deps/java/lang/ConcreteProcess.P \ -.deps/java/lang/Double.P .deps/java/lang/Error.P \ -.deps/java/lang/Exception.P \ -.deps/java/lang/ExceptionInInitializerError.P .deps/java/lang/Float.P \ -.deps/java/lang/IllegalAccessError.P \ -.deps/java/lang/IllegalAccessException.P \ -.deps/java/lang/IllegalArgumentException.P \ -.deps/java/lang/IllegalMonitorStateException.P \ -.deps/java/lang/IllegalStateException.P \ -.deps/java/lang/IllegalThreadStateException.P \ -.deps/java/lang/IncompatibleClassChangeError.P \ -.deps/java/lang/IndexOutOfBoundsException.P \ -.deps/java/lang/InstantiationError.P \ -.deps/java/lang/InstantiationException.P .deps/java/lang/Integer.P \ -.deps/java/lang/InternalError.P .deps/java/lang/InterruptedException.P \ -.deps/java/lang/LinkageError.P .deps/java/lang/Long.P \ -.deps/java/lang/Math.P .deps/java/lang/NegativeArraySizeException.P \ -.deps/java/lang/NoClassDefFoundError.P \ -.deps/java/lang/NoSuchFieldError.P \ -.deps/java/lang/NoSuchFieldException.P \ -.deps/java/lang/NoSuchMethodError.P \ -.deps/java/lang/NoSuchMethodException.P \ -.deps/java/lang/NullPointerException.P .deps/java/lang/Number.P \ -.deps/java/lang/NumberFormatException.P .deps/java/lang/Object.P \ -.deps/java/lang/OutOfMemoryError.P .deps/java/lang/Package.P \ -.deps/java/lang/Process.P .deps/java/lang/Runnable.P \ -.deps/java/lang/Runtime.P .deps/java/lang/RuntimeException.P \ -.deps/java/lang/RuntimePermission.P .deps/java/lang/SecurityException.P \ -.deps/java/lang/SecurityManager.P .deps/java/lang/Short.P \ -.deps/java/lang/StackOverflowError.P .deps/java/lang/String.P \ -.deps/java/lang/StringBuffer.P \ -.deps/java/lang/StringIndexOutOfBoundsException.P \ -.deps/java/lang/System.P .deps/java/lang/Thread.P \ -.deps/java/lang/ThreadDeath.P .deps/java/lang/ThreadGroup.P \ -.deps/java/lang/Throwable.P .deps/java/lang/UnknownError.P \ -.deps/java/lang/UnsatisfiedLinkError.P \ -.deps/java/lang/UnsupportedOperationException.P \ -.deps/java/lang/VerifyError.P .deps/java/lang/VirtualMachineError.P \ -.deps/java/lang/Void.P .deps/java/lang/dtoa.P .deps/java/lang/e_acos.P \ -.deps/java/lang/e_asin.P .deps/java/lang/e_atan2.P \ -.deps/java/lang/e_exp.P .deps/java/lang/e_fmod.P \ -.deps/java/lang/e_log.P .deps/java/lang/e_pow.P \ -.deps/java/lang/e_rem_pio2.P .deps/java/lang/e_remainder.P \ -.deps/java/lang/e_scalb.P .deps/java/lang/e_sqrt.P \ -.deps/java/lang/k_cos.P .deps/java/lang/k_rem_pio2.P \ -.deps/java/lang/k_sin.P .deps/java/lang/k_tan.P .deps/java/lang/mprec.P \ -.deps/java/lang/natCharacter.P .deps/java/lang/natClass.P \ -.deps/java/lang/natClassLoader.P .deps/java/lang/natConcreteProcess.P \ -.deps/java/lang/natDouble.P .deps/java/lang/natFloat.P \ -.deps/java/lang/natMath.P .deps/java/lang/natObject.P \ -.deps/java/lang/natRuntime.P .deps/java/lang/natString.P .deps/java/lang/natStringBuffer.P \ -.deps/java/lang/natSystem.P .deps/java/lang/natThread.P \ -.deps/java/lang/natThrowable.P .deps/java/lang/ref/PhantomReference.P \ -.deps/java/lang/ref/Reference.P .deps/java/lang/ref/ReferenceQueue.P \ -.deps/java/lang/ref/SoftReference.P .deps/java/lang/ref/WeakReference.P \ -.deps/java/lang/reflect/AccessibleObject.P \ -.deps/java/lang/reflect/Array.P .deps/java/lang/reflect/Constructor.P \ -.deps/java/lang/reflect/Field.P \ -.deps/java/lang/reflect/InvocationTargetException.P \ -.deps/java/lang/reflect/Member.P .deps/java/lang/reflect/Method.P \ -.deps/java/lang/reflect/Modifier.P \ -.deps/java/lang/reflect/ReflectPermission.P \ -.deps/java/lang/reflect/natArray.P \ -.deps/java/lang/reflect/natConstructor.P \ -.deps/java/lang/reflect/natField.P .deps/java/lang/reflect/natMethod.P \ -.deps/java/lang/s_atan.P .deps/java/lang/s_ceil.P \ -.deps/java/lang/s_copysign.P .deps/java/lang/s_cos.P \ -.deps/java/lang/s_fabs.P .deps/java/lang/s_floor.P \ -.deps/java/lang/s_rint.P .deps/java/lang/s_scalbn.P \ -.deps/java/lang/s_sin.P .deps/java/lang/s_tan.P \ -.deps/java/lang/sf_fabs.P .deps/java/lang/sf_rint.P \ -.deps/java/lang/strtod.P .deps/java/lang/w_acos.P \ -.deps/java/lang/w_asin.P .deps/java/lang/w_atan2.P \ -.deps/java/lang/w_exp.P .deps/java/lang/w_fmod.P \ -.deps/java/lang/w_log.P .deps/java/lang/w_pow.P \ -.deps/java/lang/w_remainder.P .deps/java/lang/w_sqrt.P \ -.deps/java/math/BigDecimal.P .deps/java/math/BigInteger.P \ -.deps/java/net/BindException.P .deps/java/net/ConnectException.P \ -.deps/java/net/ContentHandler.P .deps/java/net/ContentHandlerFactory.P \ -.deps/java/net/DatagramPacket.P .deps/java/net/DatagramSocket.P \ -.deps/java/net/DatagramSocketImpl.P .deps/java/net/FileNameMap.P \ -.deps/java/net/HttpURLConnection.P .deps/java/net/InetAddress.P \ -.deps/java/net/JarURLConnection.P \ -.deps/java/net/MalformedURLException.P .deps/java/net/MulticastSocket.P \ -.deps/java/net/NetPermission.P .deps/java/net/NoRouteToHostException.P \ -.deps/java/net/PlainDatagramSocketImpl.P \ -.deps/java/net/PlainSocketImpl.P .deps/java/net/ProtocolException.P \ -.deps/java/net/ServerSocket.P .deps/java/net/Socket.P \ -.deps/java/net/SocketException.P .deps/java/net/SocketImpl.P \ -.deps/java/net/SocketImplFactory.P .deps/java/net/SocketOptions.P \ -.deps/java/net/SocketPermission.P .deps/java/net/URL.P \ -.deps/java/net/URLClassLoader.P .deps/java/net/URLConnection.P \ -.deps/java/net/URLDecoder.P .deps/java/net/URLEncoder.P \ -.deps/java/net/URLStreamHandler.P \ -.deps/java/net/URLStreamHandlerFactory.P \ -.deps/java/net/UnknownHostException.P \ -.deps/java/net/UnknownServiceException.P \ -.deps/java/net/natInetAddress.P \ -.deps/java/net/natPlainDatagramSocketImpl.P \ -.deps/java/net/natPlainSocketImpl.P \ -.deps/java/security/AccessControlContext.P \ -.deps/java/security/AccessControlException.P \ -.deps/java/security/AccessController.P \ -.deps/java/security/AlgorithmParameterGenerator.P \ -.deps/java/security/AlgorithmParameterGeneratorSpi.P \ -.deps/java/security/AlgorithmParameters.P \ -.deps/java/security/AlgorithmParametersSpi.P \ -.deps/java/security/AllPermission.P \ -.deps/java/security/BasicPermission.P .deps/java/security/Certificate.P \ -.deps/java/security/CodeSource.P .deps/java/security/DigestException.P \ -.deps/java/security/DigestInputStream.P \ -.deps/java/security/DigestOutputStream.P \ -.deps/java/security/DomainCombiner.P \ -.deps/java/security/DummyKeyPairGenerator.P \ -.deps/java/security/DummyMessageDigest.P \ -.deps/java/security/DummySignature.P \ -.deps/java/security/GeneralSecurityException.P \ -.deps/java/security/Guard.P .deps/java/security/GuardedObject.P \ -.deps/java/security/Identity.P .deps/java/security/IdentityScope.P \ -.deps/java/security/InvalidAlgorithmParameterException.P \ -.deps/java/security/InvalidKeyException.P \ -.deps/java/security/InvalidParameterException.P \ -.deps/java/security/Key.P .deps/java/security/KeyException.P \ -.deps/java/security/KeyFactory.P .deps/java/security/KeyFactorySpi.P \ -.deps/java/security/KeyManagementException.P \ -.deps/java/security/KeyPair.P .deps/java/security/KeyPairGenerator.P \ -.deps/java/security/KeyPairGeneratorSpi.P \ -.deps/java/security/KeyStore.P .deps/java/security/KeyStoreException.P \ -.deps/java/security/KeyStoreSpi.P .deps/java/security/MessageDigest.P \ -.deps/java/security/MessageDigestSpi.P \ -.deps/java/security/NoSuchAlgorithmException.P \ -.deps/java/security/NoSuchProviderException.P \ -.deps/java/security/Permission.P \ -.deps/java/security/PermissionCollection.P \ -.deps/java/security/Permissions.P .deps/java/security/Policy.P \ -.deps/java/security/Principal.P .deps/java/security/PrivateKey.P \ -.deps/java/security/PrivilegedAction.P \ -.deps/java/security/PrivilegedActionException.P \ -.deps/java/security/PrivilegedExceptionAction.P \ -.deps/java/security/ProtectionDomain.P .deps/java/security/Provider.P \ -.deps/java/security/ProviderException.P .deps/java/security/PublicKey.P \ -.deps/java/security/SecureClassLoader.P \ -.deps/java/security/SecureRandom.P \ -.deps/java/security/SecureRandomSpi.P .deps/java/security/Security.P \ -.deps/java/security/SecurityPermission.P \ -.deps/java/security/Signature.P \ -.deps/java/security/SignatureException.P \ -.deps/java/security/SignatureSpi.P .deps/java/security/SignedObject.P \ -.deps/java/security/Signer.P \ -.deps/java/security/UnrecoverableKeyException.P \ -.deps/java/security/UnresolvedPermission.P \ -.deps/java/security/acl/Acl.P .deps/java/security/acl/AclEntry.P \ -.deps/java/security/acl/AclNotFoundException.P \ -.deps/java/security/acl/Group.P \ -.deps/java/security/acl/LastOwnerException.P \ -.deps/java/security/acl/NotOwnerException.P \ -.deps/java/security/acl/Owner.P .deps/java/security/acl/Permission.P \ -.deps/java/security/cert/CRL.P .deps/java/security/cert/CRLException.P \ -.deps/java/security/cert/Certificate.P \ -.deps/java/security/cert/CertificateEncodingException.P \ -.deps/java/security/cert/CertificateException.P \ -.deps/java/security/cert/CertificateExpiredException.P \ -.deps/java/security/cert/CertificateFactory.P \ -.deps/java/security/cert/CertificateFactorySpi.P \ -.deps/java/security/cert/CertificateNotYetValidException.P \ -.deps/java/security/cert/CertificateParsingException.P \ -.deps/java/security/cert/X509CRL.P \ -.deps/java/security/cert/X509CRLEntry.P \ -.deps/java/security/cert/X509Certificate.P \ -.deps/java/security/cert/X509Extension.P \ -.deps/java/security/interfaces/DSAKey.P \ -.deps/java/security/interfaces/DSAKeyPairGenerator.P \ -.deps/java/security/interfaces/DSAParams.P \ -.deps/java/security/interfaces/DSAPrivateKey.P \ -.deps/java/security/interfaces/DSAPublicKey.P \ -.deps/java/security/interfaces/RSAKey.P \ -.deps/java/security/interfaces/RSAPrivateCrtKey.P \ -.deps/java/security/interfaces/RSAPrivateKey.P \ -.deps/java/security/interfaces/RSAPublicKey.P \ -.deps/java/security/spec/AlgorithmParameterSpec.P \ -.deps/java/security/spec/DSAParameterSpec.P \ -.deps/java/security/spec/DSAPrivateKeySpec.P \ -.deps/java/security/spec/DSAPublicKeySpec.P \ -.deps/java/security/spec/EncodedKeySpec.P \ -.deps/java/security/spec/InvalidKeySpecException.P \ -.deps/java/security/spec/InvalidParameterSpecException.P \ -.deps/java/security/spec/KeySpec.P \ -.deps/java/security/spec/PKCS8EncodedKeySpec.P \ -.deps/java/security/spec/RSAKeyGenParameterSpec.P \ -.deps/java/security/spec/RSAPrivateCrtKeySpec.P \ -.deps/java/security/spec/RSAPrivateKeySpec.P \ -.deps/java/security/spec/RSAPublicKeySpec.P \ -.deps/java/security/spec/X509EncodedKeySpec.P .deps/java/sql/Array.P \ -.deps/java/sql/BatchUpdateException.P .deps/java/sql/Blob.P \ -.deps/java/sql/CallableStatement.P .deps/java/sql/Clob.P \ -.deps/java/sql/Connection.P .deps/java/sql/DataTruncation.P \ -.deps/java/sql/DatabaseMetaData.P .deps/java/sql/Date.P \ -.deps/java/sql/Driver.P .deps/java/sql/DriverManager.P \ -.deps/java/sql/DriverPropertyInfo.P .deps/java/sql/PreparedStatement.P \ -.deps/java/sql/Ref.P .deps/java/sql/ResultSet.P \ -.deps/java/sql/ResultSetMetaData.P .deps/java/sql/SQLData.P \ -.deps/java/sql/SQLException.P .deps/java/sql/SQLInput.P \ -.deps/java/sql/SQLOutput.P .deps/java/sql/SQLWarning.P \ -.deps/java/sql/Statement.P .deps/java/sql/Struct.P \ -.deps/java/sql/Time.P .deps/java/sql/Timestamp.P .deps/java/sql/Types.P \ -.deps/java/text/BreakIterator.P .deps/java/text/CharacterIterator.P \ -.deps/java/text/ChoiceFormat.P \ -.deps/java/text/CollationElementIterator.P \ -.deps/java/text/CollationKey.P .deps/java/text/Collator.P \ -.deps/java/text/DateFormat.P .deps/java/text/DateFormatSymbols.P \ -.deps/java/text/DecimalFormat.P .deps/java/text/DecimalFormatSymbols.P \ -.deps/java/text/FieldPosition.P .deps/java/text/Format.P \ -.deps/java/text/MessageFormat.P .deps/java/text/NumberFormat.P \ -.deps/java/text/ParseException.P .deps/java/text/ParsePosition.P \ -.deps/java/text/RuleBasedCollator.P .deps/java/text/SimpleDateFormat.P \ -.deps/java/text/StringCharacterIterator.P .deps/java/text/natCollator.P \ -.deps/java/util/AbstractCollection.P .deps/java/util/AbstractList.P \ -.deps/java/util/AbstractMap.P .deps/java/util/AbstractSequentialList.P \ -.deps/java/util/AbstractSet.P .deps/java/util/ArrayList.P \ -.deps/java/util/Arrays.P .deps/java/util/BasicMapEntry.P \ -.deps/java/util/BitSet.P .deps/java/util/Calendar.P \ -.deps/java/util/Collection.P .deps/java/util/Collections.P \ -.deps/java/util/Comparator.P \ -.deps/java/util/ConcurrentModificationException.P \ -.deps/java/util/Date.P .deps/java/util/Dictionary.P \ -.deps/java/util/EmptyStackException.P .deps/java/util/Enumeration.P \ -.deps/java/util/EventListener.P .deps/java/util/EventObject.P \ -.deps/java/util/GregorianCalendar.P .deps/java/util/HashMap.P \ -.deps/java/util/HashSet.P .deps/java/util/Hashtable.P \ -.deps/java/util/Iterator.P .deps/java/util/LinkedList.P \ -.deps/java/util/List.P .deps/java/util/ListIterator.P \ -.deps/java/util/ListResourceBundle.P .deps/java/util/Locale.P \ -.deps/java/util/Map.P .deps/java/util/MissingResourceException.P \ -.deps/java/util/NoSuchElementException.P .deps/java/util/Observable.P \ -.deps/java/util/Observer.P .deps/java/util/Properties.P \ -.deps/java/util/PropertyPermission.P \ -.deps/java/util/PropertyResourceBundle.P .deps/java/util/Random.P \ -.deps/java/util/ResourceBundle.P .deps/java/util/Set.P \ -.deps/java/util/SimpleTimeZone.P .deps/java/util/SortedMap.P \ -.deps/java/util/SortedSet.P .deps/java/util/Stack.P \ -.deps/java/util/StringTokenizer.P .deps/java/util/TimeZone.P \ -.deps/java/util/Timer.P .deps/java/util/TimerTask.P \ -.deps/java/util/TooManyListenersException.P .deps/java/util/TreeMap.P \ -.deps/java/util/TreeSet.P .deps/java/util/Vector.P \ -.deps/java/util/WeakHashMap.P .deps/java/util/jar/Attributes.P \ -.deps/java/util/jar/JarEntry.P .deps/java/util/jar/JarException.P \ -.deps/java/util/jar/JarFile.P .deps/java/util/jar/JarInputStream.P \ -.deps/java/util/jar/JarOutputStream.P .deps/java/util/jar/Manifest.P \ -.deps/java/util/zip/Adler32.P .deps/java/util/zip/CRC32.P \ -.deps/java/util/zip/CheckedInputStream.P \ -.deps/java/util/zip/CheckedOutputStream.P \ -.deps/java/util/zip/Checksum.P \ -.deps/java/util/zip/DataFormatException.P \ -.deps/java/util/zip/Deflater.P \ -.deps/java/util/zip/DeflaterOutputStream.P \ -.deps/java/util/zip/GZIPInputStream.P \ -.deps/java/util/zip/GZIPOutputStream.P .deps/java/util/zip/Inflater.P \ -.deps/java/util/zip/InflaterInputStream.P \ -.deps/java/util/zip/ZipConstants.P .deps/java/util/zip/ZipEntry.P \ -.deps/java/util/zip/ZipException.P .deps/java/util/zip/ZipFile.P \ -.deps/java/util/zip/ZipInputStream.P \ -.deps/java/util/zip/ZipOutputStream.P .deps/java/util/zip/natDeflater.P \ -.deps/java/util/zip/natInflater.P .deps/jni.P .deps/libgcjdata.P \ +DEP_FILES = .deps/boehm.P .deps/defineclass.P .deps/exception.P \ +.deps/gij.P .deps/interpret.P .deps/jni.P .deps/libgcjdata.P \ .deps/name-finder.P .deps/no-threads.P .deps/nogc.P \ .deps/posix-threads.P .deps/posix.P .deps/prims.P .deps/resolve.P SOURCES = $(libgcjdata_a_SOURCES) $(libgcj_la_SOURCES) $(EXTRA_libgcj_la_SOURCES) $(libgcjx_la_SOURCES) $(EXTRA_libgcjx_la_SOURCES) $(jv_convert_SOURCES) $(EXTRA_jv_convert_SOURCES) $(gij_SOURCES) $(gen_from_JIS_SOURCES) $(EXTRA_gen_from_JIS_SOURCES) @@ -2495,12 +996,12 @@ gnu/gcj/runtime/FirstThread.h: gnu/gcj/runtime/FirstThread.class libgcj.jar java/lang/Thread.h: java/lang/Thread.class libgcj.jar $(GCJH) -classpath $(top_builddir) \ -prepend 'class _Jv_JNIEnv;' \ - -prepend 'extern "Java" { namespace gnu { namespace gcj { namespace jni { class NativeThread; } } } };' \ -prepend '#define _JV_NOT_OWNER 1' \ -prepend '#define _JV_INTERRUPTED 2' \ -friend '_Jv_JNIEnv * _Jv_GetCurrentJNIEnv ();' \ -friend 'void _Jv_SetCurrentJNIEnv (_Jv_JNIEnv *env);' \ - -friend 'class gnu::gcj::jni::NativeThread;' \ + -friend 'java::lang::Thread* _Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group);' \ + -friend 'jint _Jv_DetachCurrentThread ();' \ $(basename $<) java/lang/String.h: java/lang/String.class libgcj.jar diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in index de121242e94..0df9a7bbacb 100644 --- a/libjava/gcj/Makefile.in +++ b/libjava/gcj/Makefile.in @@ -73,6 +73,7 @@ CXXCPP = @CXXCPP@ DIRLTDL = @DIRLTDL@ DIVIDESPEC = @DIVIDESPEC@ DLLTOOL = @DLLTOOL@ +EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ @@ -202,7 +203,7 @@ distdir: $(DISTFILES) @for file in $(DISTFILES); do \ d=$(srcdir); \ if test -d $$d/$$file; then \ - cp -pr $$d/$$file $(distdir)/$$file; \ + cp -pr $$/$$file $(distdir)/$$file; \ else \ test -f $(distdir)/$$file \ || ln $$d/$$file $(distdir)/$$file 2> /dev/null \ diff --git a/libjava/gcj/cni.h b/libjava/gcj/cni.h index 6b103a34517..b1254a2e191 100644 --- a/libjava/gcj/cni.h +++ b/libjava/gcj/cni.h @@ -118,4 +118,22 @@ JvFree (void *ptr) { return _Jv_Free (ptr); } + +extern inline jint +JvCreateJavaVM (void* vm_args) +{ + return _Jv_CreateJavaVM (vm_args); +} + +extern inline java::lang::Thread* +JvAttachCurrentThread (jstring name, java::lang::ThreadGroup* group) +{ + return _Jv_AttachCurrentThread (name, group); +} + +extern inline jint +JvDetachCurrentThread (void) +{ + return _Jv_DetachCurrentThread (); +} #endif /* __GCJ_CNI_H__ */ diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h index 21419c196ec..71558daee27 100644 --- a/libjava/gcj/javaprims.h +++ b/libjava/gcj/javaprims.h @@ -380,6 +380,11 @@ extern "C" jstring _Jv_NewStringLatin1(const char*, jsize) extern "C" jsize _Jv_GetStringUTFLength (jstring); extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *); +extern jint _Jv_CreateJavaVM (void* /*vm_args*/); +extern "C" java::lang::Thread* +_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group); +extern "C" jint _Jv_DetachCurrentThread (void); + extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__)); extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__)); extern "C" void* _Jv_Realloc (void *, jsize); diff --git a/libjava/gnu/gcj/jni/NativeThread.java b/libjava/gnu/gcj/jni/NativeThread.java deleted file mode 100644 index 4d3eb78ac74..00000000000 --- a/libjava/gnu/gcj/jni/NativeThread.java +++ /dev/null @@ -1,29 +0,0 @@ -// NativeThread.java - Wrapper for attached user threads. - -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -package gnu.gcj.jni; - -/** - * @author Tom Tromey - * @date February 9, 2000 - */ - -public class NativeThread extends Thread -{ - public NativeThread (ThreadGroup g, String name) - { - super (g, null, name); - init (); - } - - // Call this to mark the thread as finished. - public native void finish (); - public native void init (); -} diff --git a/libjava/gnu/gcj/jni/natNativeThread.cc b/libjava/gnu/gcj/jni/natNativeThread.cc deleted file mode 100644 index 359b572ca53..00000000000 --- a/libjava/gnu/gcj/jni/natNativeThread.cc +++ /dev/null @@ -1,30 +0,0 @@ -// natNativeThread.cc - Native side of attached threads. - -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -// Written by Tom Tromey - -#include - -#include -#include -#include -#include - -void -gnu::gcj::jni::NativeThread::finish () -{ - finish_ (); -} - -void -gnu::gcj::jni::NativeThread::init () -{ - alive_flag = true; // alive_flag is private in java.lang.Thread -} diff --git a/libjava/gnu/gcj/runtime/FirstThread.java b/libjava/gnu/gcj/runtime/FirstThread.java index 469d5dde588..fd59261c8c8 100644 --- a/libjava/gnu/gcj/runtime/FirstThread.java +++ b/libjava/gnu/gcj/runtime/FirstThread.java @@ -19,59 +19,29 @@ import java.util.jar.*; // This is entirely internal to our implementation. -final class FirstThread extends Thread +final class FirstThread { - public native void run (); - - public FirstThread (Class k, Object o) - { - super (null, null, "main"); - klass = k; - klass_name = null; - args = o; - } - - public FirstThread (String class_name, Object o) - { - super (null, null, "main"); - klass = null; - klass_name = class_name; - args = o; - } - - private static void die (String s) - { - System.err.println(s); - System.exit(1); - } - - public static void main (String[] args) + public static String getMain (String name) { + String mainName = null; try { - JarFile j = new JarFile (args[0]); + JarFile j = new JarFile (name); Attributes a = j.getManifest().getMainAttributes(); - jarMainClassName = a.getValue(Attributes.Name.MAIN_CLASS); + mainName = a.getValue(Attributes.Name.MAIN_CLASS); - if (jarMainClassName != null) - { - jarMainClassName = jarMainClassName.replace('/','.'); - return; - } } catch (Exception e) { // empty } - System.err.println ("Failed to load Main-Class manifest attribute from\n" - + args[0]); + if (mainName == null) + System.err.println ("Failed to load Main-Class manifest attribute from\n" + + name); + return mainName; } - // If interpreter is invoked with -jar, the main class name is recorded - // here. - public static String jarMainClassName; - // Private data. private Class klass; private String klass_name; diff --git a/libjava/gnu/gcj/runtime/natFirstThread.cc b/libjava/gnu/gcj/runtime/natFirstThread.cc deleted file mode 100644 index c4ba261bdfe..00000000000 --- a/libjava/gnu/gcj/runtime/natFirstThread.cc +++ /dev/null @@ -1,147 +0,0 @@ -// natFirstThread.cc - Implementation of FirstThread native methods. - -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation - - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ - -#include - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#ifdef ENABLE_JVMPI -#include -#include -#include -#endif - -#define DIE(Message) die (JvNewStringLatin1 (Message)) - -typedef void main_func (jobject); - -#ifdef WITH_JVMPI -extern void (*_Jv_JVMPI_Notify_THREAD_START) (JVMPI_Event *event); -#endif - -/* This will be non-NULL if the user has preloaded a JNI library, or - linked one into the executable. */ -extern "C" -{ -#pragma weak JNI_OnLoad - extern jint JNI_OnLoad (JavaVM *, void *) __attribute__((weak)); -} - -void -gnu::gcj::runtime::FirstThread::run (void) -{ - - Utf8Const* main_signature = _Jv_makeUtf8Const ("([Ljava.lang.String;)V", 22); - Utf8Const* main_name = _Jv_makeUtf8Const ("main", 4); - - /* Some systems let you preload shared libraries before running a - program. Under Linux, this is done by setting the LD_PRELOAD - environment variable. We take advatage of this here to allow for - dynamically loading a JNI library into a fully linked executable. */ - - if (JNI_OnLoad != NULL) - { - JavaVM *vm = _Jv_GetJavaVM (); - if (vm == NULL) - { - // FIXME: what? - return; - } - jint vers = JNI_OnLoad (vm, NULL); - if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2) - { - // FIXME: unload the library. - throw new java::lang::UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from preloaded JNI_OnLoad")); - } - } - - if (klass == NULL) - klass = java::lang::Class::forName (klass_name); - if (klass != NULL) - _Jv_InitClass (klass); - - _Jv_Method *meth = _Jv_GetMethodLocal (klass, main_name, main_signature); - - // Some checks from Java Spec section 12.1.4. - if (meth == NULL) - DIE ("no suitable method `main' in class"); - if (! java::lang::reflect::Modifier::isStatic(meth->accflags)) - DIE ("`main' must be static"); - if (! java::lang::reflect::Modifier::isPublic(meth->accflags)) - DIE ("`main' must be public"); - -#ifdef WITH_JVMPI - if (_Jv_JVMPI_Notify_THREAD_START) - { - JVMPI_Event event; - - jstring thread_name = getName (); - jstring group_name = NULL, parent_name = NULL; - java::lang::ThreadGroup *group = getThreadGroup (); - - if (group) - { - group_name = group->getName (); - group = group->getParent (); - - if (group) - parent_name = group->getName (); - } - - int thread_len = thread_name ? JvGetStringUTFLength (thread_name) : 0; - int group_len = group_name ? JvGetStringUTFLength (group_name) : 0; - int parent_len = parent_name ? JvGetStringUTFLength (parent_name) : 0; - - char thread_chars[thread_len + 1]; - char group_chars[group_len + 1]; - char parent_chars[parent_len + 1]; - - if (thread_name) - JvGetStringUTFRegion (thread_name, 0, - thread_name->length(), thread_chars); - if (group_name) - JvGetStringUTFRegion (group_name, 0, - group_name->length(), group_chars); - if (parent_name) - JvGetStringUTFRegion (parent_name, 0, - parent_name->length(), parent_chars); - - thread_chars[thread_len] = '\0'; - group_chars[group_len] = '\0'; - parent_chars[parent_len] = '\0'; - - event.event_type = JVMPI_EVENT_THREAD_START; - event.env_id = NULL; - event.u.thread_start.thread_name = thread_chars; - event.u.thread_start.group_name = group_chars; - event.u.thread_start.parent_name = parent_chars; - event.u.thread_start.thread_id = (jobjectID) this; - event.u.thread_start.thread_env_id = _Jv_GetCurrentJNIEnv (); - - _Jv_DisableGC (); - (*_Jv_JVMPI_Notify_THREAD_START) (&event); - _Jv_EnableGC (); - } -#endif - - main_func *real_main = (main_func *) meth->ncode; - (*real_main) (args); -} diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in index fe6a12d23a5..541fa325bd3 100644 --- a/libjava/include/Makefile.in +++ b/libjava/include/Makefile.in @@ -73,6 +73,7 @@ CXXCPP = @CXXCPP@ DIRLTDL = @DIRLTDL@ DIVIDESPEC = @DIVIDESPEC@ DLLTOOL = @DLLTOOL@ +EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ diff --git a/libjava/include/no-threads.h b/libjava/include/no-threads.h index 69b6d437ba1..1cd2471b8cf 100644 --- a/libjava/include/no-threads.h +++ b/libjava/include/no-threads.h @@ -102,11 +102,8 @@ _Jv_InitThreads (void) { } -inline _Jv_Thread_t * -_Jv_ThreadInitData (java::lang::Thread *) -{ - return NULL; -} +_Jv_Thread_t * +_Jv_ThreadInitData (java::lang::Thread *); inline void _Jv_ThreadDestroyData (_Jv_Thread_t *data) @@ -130,6 +127,16 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *, jint) { } +inline void +_Jv_ThreadRegister (_Jv_Thread_t *data) +{ +} + +inline void +_Jv_ThreadUnRegister (void) +{ +} + void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *, _Jv_ThreadStartFunc *meth); diff --git a/libjava/include/posix-threads.h b/libjava/include/posix-threads.h index ca4bfa6ad4b..ad09bedd45a 100644 --- a/libjava/include/posix-threads.h +++ b/libjava/include/posix-threads.h @@ -194,6 +194,9 @@ _Jv_ThreadYield (void) #endif /* HAVE_SCHED_YIELD */ } +void _Jv_ThreadRegister (_Jv_Thread_t *data); +void _Jv_ThreadUnRegister (); + void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, diff --git a/libjava/include/win32-threads.h b/libjava/include/win32-threads.h index 31b961b253b..a6466322f8a 100644 --- a/libjava/include/win32-threads.h +++ b/libjava/include/win32-threads.h @@ -25,6 +25,7 @@ typedef struct { int flags; // Flags are defined in implementation. HANDLE handle; // Actual handle to the thread + java::lang::Thread *thread_obj; } _Jv_Thread_t; typedef void _Jv_ThreadStartFunc (java::lang::Thread *); @@ -120,6 +121,9 @@ _Jv_ThreadYield (void) Sleep (0); } +void _Jv_ThreadRegister (_Jv_Thread_t *data); +void _Jv_ThreadUnRegister (); + void _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio); void _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, _Jv_ThreadStartFunc *meth); diff --git a/libjava/java/lang/Thread.java b/libjava/java/lang/Thread.java index 30fb4cd52a8..8cc9cffdac5 100644 --- a/libjava/java/lang/Thread.java +++ b/libjava/java/lang/Thread.java @@ -1,6 +1,6 @@ // Thread.java - Thread class. -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -209,18 +209,20 @@ public class Thread implements Runnable private final native void initialize_native (); - private final synchronized static String gen_name () + private final native static String gen_name (); + + public Thread (ThreadGroup g, Runnable r, String n) { - String n; - n = "Thread-" + nextThreadNumber; - ++nextThreadNumber; - return n; + this (currentThread (), g, r, n); + + // The Class Libraries book says ``threadName cannot be null''. I + // take this to mean NullPointerException. + if (n == null) + throw new NullPointerException (); } - public Thread (ThreadGroup g, Runnable r, String n) + private Thread (Thread current, ThreadGroup g, Runnable r, String n) { - Thread current = currentThread (); - if (g == null) { // If CURRENT is null, then we are bootstrapping the first thread. @@ -233,17 +235,6 @@ public class Thread implements Runnable else group = g; - group.checkAccess(); - - // The Class Libraries book says ``threadName cannot be null''. I - // take this to mean NullPointerException. - if (n == null) - throw new NullPointerException (); - - name = n; - group.addThread(this); - runnable = r; - data = null; interrupt_flag = false; alive_flag = false; @@ -251,6 +242,8 @@ public class Thread implements Runnable if (current != null) { + group.checkAccess(); + daemon_flag = current.isDaemon(); int gmax = group.getMaxPriority(); int pri = current.getPriority(); @@ -263,6 +256,10 @@ public class Thread implements Runnable priority = NORM_PRIORITY; } + name = n; + group.addThread(this); + runnable = r; + initialize_native (); } @@ -315,9 +312,6 @@ public class Thread implements Runnable private boolean startable_flag; private ClassLoader context_class_loader; - // Our native data. + // Our native data - points to an instance of struct natThread. private Object data; - - // Next thread number to assign. - private static int nextThreadNumber = 0; } diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc index 042ec36f48f..66ce7d22c78 100644 --- a/libjava/java/lang/natThread.cc +++ b/libjava/java/lang/natThread.cc @@ -1,6 +1,6 @@ // natThread.cc - Native part of Thread class. -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation This file is part of libgcj. @@ -59,7 +59,7 @@ java::lang::Thread::initialize_native (void) { natThread *nt = (natThread *) _Jv_AllocBytes (sizeof (natThread)); - // The native thread data is kept in a Object field, not a rawdata, so that + // The native thread data is kept in a Object field, not a RawData, so that // the GC allocator can be used and a finalizer run after the thread becomes // unreachable. Note that this relies on the GC's ability to finalize // non-Java objects. FIXME? @@ -322,6 +322,34 @@ java::lang::Thread::suspend (void) (JvNewStringLatin1 ("java::lang::Thread::suspend unimplemented")); } +static int nextThreadNumber = 0; + +jstring +java::lang::Thread::gen_name (void) +{ + jint i; + jclass sync = &java::lang::Thread::class$; + { + JvSynchronize dummy(sync); + i = ++nextThreadNumber; + } + + // Use an array large enough for "-2147483648"; i.e. 11 chars, + "Thread-". + jchar buffer[7+11]; + jchar *bufend = (jchar *) ((char *) buffer + sizeof(buffer)); + i = _Jv_FormatInt (bufend, i); + jchar *ptr = bufend - i; + // Prepend "Thread-". + *--ptr = '-'; + *--ptr = 'd'; + *--ptr = 'a'; + *--ptr = 'e'; + *--ptr = 'r'; + *--ptr = 'h'; + *--ptr = 'T'; + return JvNewString (ptr, bufend - ptr); +} + void java::lang::Thread::yield (void) { @@ -344,3 +372,33 @@ _Jv_SetCurrentJNIEnv (JNIEnv *env) JvAssert (t != NULL); ((natThread *) t->data)->jni_env = env; } + +java::lang::Thread* +_Jv_AttachCurrentThread(jstring name, java::lang::ThreadGroup* group) +{ + java::lang::Thread *thread = _Jv_ThreadCurrent (); + if (thread != NULL) + return thread; + if (name == NULL) + name = java::lang::Thread::gen_name (); + thread = new java::lang::Thread (NULL, group, NULL, name); + thread->startable_flag = false; + thread->alive_flag = true; + natThread *nt = (natThread *) thread->data; + _Jv_ThreadRegister (nt->thread); + return thread; +} + +jint +_Jv_DetachCurrentThread (void) +{ + java::lang::Thread *t = _Jv_ThreadCurrent (); + if (t == NULL) + return -1; + + _Jv_ThreadUnRegister (); + // Release the monitors. + t->finish_ (); + + return 0; +} diff --git a/libjava/jni.cc b/libjava/jni.cc index 3f5703a18e0..625d239c5bc 100644 --- a/libjava/jni.cc +++ b/libjava/jni.cc @@ -40,12 +40,13 @@ details. */ #include #include #include -#include +#include #include #include #include +#include // FIXME: remove these defines. #define ClassClass java::lang::Class::class$ @@ -53,7 +54,6 @@ details. */ #define ThrowableClass java::lang::Throwable::class$ #define MethodClass java::lang::reflect::Method::class$ #define ThreadGroupClass java::lang::ThreadGroup::class$ -#define NativeThreadClass gnu::gcj::jni::NativeThread::class$ // This enum is used to select different template instantiations in // the invocation code. @@ -1862,7 +1862,7 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv, void *args) { try { - (void) new gnu::gcj::jni::NativeThread (group, name); + _Jv_AttachCurrentThread (name, group); } catch (jthrowable t) { @@ -1916,28 +1916,11 @@ _Jv_JNI_DestroyJavaVM (JavaVM *vm) return JNI_ERR; } -static jint +jint _Jv_JNI_DetachCurrentThread (JavaVM *) { - java::lang::Thread *t = _Jv_ThreadCurrent (); - if (t == NULL) - return JNI_EDETACHED; - - // FIXME: we only allow threads attached via AttachCurrentThread to - // be detached. I have no idea how we could implement detaching - // other threads, given the requirement that we must release all the - // monitors. That just seems evil. - JvAssert ((&NativeThreadClass)->isInstance (t)); - - // FIXME: release the monitors. We'll take this to mean all - // monitors acquired via the JNI interface. This means we have to - // keep track of them. - - gnu::gcj::jni::NativeThread *nt - = reinterpret_cast (t); - nt->finish (); - - return 0; + jint code = _Jv_DetachCurrentThread (); + return code ? JNI_EDETACHED : 0; } static jint diff --git a/libjava/no-threads.cc b/libjava/no-threads.cc index d28891a5b44..fcfa713e45e 100644 --- a/libjava/no-threads.cc +++ b/libjava/no-threads.cc @@ -16,14 +16,20 @@ details. */ java::lang::Thread *_Jv_OnlyThread = NULL; -void -_Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *, - _Jv_ThreadStartFunc *meth) +_Jv_Thread_t * +_Jv_ThreadInitData (java::lang::Thread * thread) { // Don't use JvAssert, since we want this to fail even when compiled // without assertions. if (_Jv_OnlyThread) JvFail ("only thread already running"); _Jv_OnlyThread = thread; - (*meth) (thread); + return NULL; +} + +void +_Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *, + _Jv_ThreadStartFunc *meth) +{ + JvFail ("Thread.start called but threads not available"); } diff --git a/libjava/posix-threads.cc b/libjava/posix-threads.cc index c38cee6f8ae..286bf83116f 100644 --- a/libjava/posix-threads.cc +++ b/libjava/posix-threads.cc @@ -326,6 +326,25 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio) } } +void +_Jv_ThreadRegister (_Jv_Thread_t *data) +{ + pthread_setspecific (_Jv_ThreadKey, data->thread_obj); + pthread_setspecific (_Jv_ThreadDataKey, data); + + // glibc 2.1.3 doesn't set the value of `thread' until after start_routine + // is called. Since it may need to be accessed from the new thread, work + // around the potential race here by explicitly setting it again. + data->thread = pthread_self (); +} + +void +_Jv_ThreadUnRegister () +{ + pthread_setspecific (_Jv_ThreadKey, NULL); + pthread_setspecific (_Jv_ThreadDataKey, NULL); +} + // This function is called when a thread is started. We don't arrange // to call the `run' method directly, because this function must // return a value. @@ -334,13 +353,7 @@ really_start (void *x) { struct starter *info = (struct starter *) x; - pthread_setspecific (_Jv_ThreadKey, info->data->thread_obj); - pthread_setspecific (_Jv_ThreadDataKey, info->data); - - // glibc 2.1.3 doesn't set the value of `thread' until after start_routine - // is called. Since it may need to be accessed from the new thread, work - // around the potential race here by explicitly setting it again. - info->data->thread = pthread_self (); + _Jv_ThreadRegister (info->data); info->method (info->data->thread_obj); diff --git a/libjava/prims.cc b/libjava/prims.cc index 0fa42a4d6a8..6bcf646ddea 100644 --- a/libjava/prims.cc +++ b/libjava/prims.cc @@ -36,6 +36,7 @@ details. */ #ifdef ENABLE_JVMPI #include +#include #endif #ifndef DISABLE_GETENV_PROPERTIES @@ -62,6 +63,7 @@ details. */ #include #include #include +#include #ifdef USE_LTDL #include @@ -74,8 +76,10 @@ static java::lang::OutOfMemoryError *no_memory; // Largest representable size_t. #define SIZE_T_MAX ((size_t) (~ (size_t) 0)) +static const char *no_properties[] = { NULL }; + // Properties set at compile time. -const char **_Jv_Compiler_Properties; +const char **_Jv_Compiler_Properties = no_properties; // The JAR file to add to the beginning of java.class.path. const char *_Jv_Jar_Class_Path; @@ -92,6 +96,8 @@ static char * _Jv_execName; const char **_Jv_argv; int _Jv_argc; +typedef void main_func (jobject); + #ifdef ENABLE_JVMPI // Pointer to JVMPI notification functions. void (*_Jv_JVMPI_Notify_OBJECT_ALLOC) (JVMPI_Event *event); @@ -640,51 +646,15 @@ win32_exception_handler (LPEXCEPTION_POINTERS e) #endif -static void -main_init () +/* This will be non-NULL if the user has preloaded a JNI library, or + linked one into the executable. */ +extern "C" { - // Turn stack trace generation off while creating exception objects. - _Jv_InitClass (&java::lang::Throwable::class$); - java::lang::Throwable::trace_enabled = 0; - - INIT_SEGV; -#ifdef HANDLE_FPE - INIT_FPE; -#else - arithexception = new java::lang::ArithmeticException - (JvNewStringLatin1 ("/ by zero")); -#endif - - no_memory = new java::lang::OutOfMemoryError; - - java::lang::Throwable::trace_enabled = 1; - -#ifdef USE_LTDL - LTDL_SET_PRELOADED_SYMBOLS (); -#endif - -#ifdef USE_WINSOCK - // Initialise winsock for networking - WSADATA data; - if (WSAStartup (MAKEWORD (1, 1), &data)) - MessageBox (NULL, "Error initialising winsock library.", "Error", MB_OK | MB_ICONEXCLAMATION); -#endif /* USE_WINSOCK */ - -#ifdef USE_WIN32_SIGNALLING - // Install exception handler - SetUnhandledExceptionFilter (win32_exception_handler); -#else - // We only want this on POSIX systems. - struct sigaction act; - act.sa_handler = SIG_IGN; - sigemptyset (&act.sa_mask); - act.sa_flags = 0; - sigaction (SIGPIPE, &act, NULL); -#endif /* USE_WIN32_SIGNALLING */ - - _Jv_JNI_Init (); +#pragma weak JNI_OnLoad + extern jint JNI_OnLoad (JavaVM *, void *) __attribute__((weak)); } + #ifndef DISABLE_GETENV_PROPERTIES static char * @@ -828,15 +798,162 @@ process_gcj_properties () } #endif // DISABLE_GETENV_PROPERTIES -void -JvRunMain (jclass klass, int argc, const char **argv) +jint +_Jv_CreateJavaVM (void* /*vm_args*/) { PROCESS_GCJ_PROPERTIES; + // Turn stack trace generation off while creating exception objects. + _Jv_InitClass (&java::lang::Throwable::class$); + java::lang::Throwable::trace_enabled = 0; + + INIT_SEGV; +#ifdef HANDLE_FPE + INIT_FPE; +#else + arithexception = new java::lang::ArithmeticException + (JvNewStringLatin1 ("/ by zero")); +#endif + + no_memory = new java::lang::OutOfMemoryError; + + java::lang::Throwable::trace_enabled = 1; + +#ifdef USE_LTDL + LTDL_SET_PRELOADED_SYMBOLS (); +#endif + +#ifdef USE_WINSOCK + // Initialise winsock for networking + WSADATA data; + if (WSAStartup (MAKEWORD (1, 1), &data)) + MessageBox (NULL, "Error initialising winsock library.", "Error", MB_OK | MB_ICONEXCLAMATION); +#endif /* USE_WINSOCK */ + +#ifdef USE_WIN32_SIGNALLING + // Install exception handler + SetUnhandledExceptionFilter (win32_exception_handler); +#else + // We only want this on POSIX systems. + struct sigaction act; + act.sa_handler = SIG_IGN; + sigemptyset (&act.sa_mask); + act.sa_flags = 0; + sigaction (SIGPIPE, &act, NULL); +#endif /* USE_WIN32_SIGNALLING */ + + _Jv_JNI_Init (); + + /* Some systems let you preload shared libraries before running a + program. Under Linux, this is done by setting the LD_PRELOAD + environment variable. We take advatage of this here to allow for + dynamically loading a JNI library into a fully linked executable. */ + + if (JNI_OnLoad != NULL) + { + JavaVM *vm = _Jv_GetJavaVM (); + if (vm == NULL) + { + // FIXME: what? + return -1; + } + jint vers = JNI_OnLoad (vm, NULL); + if (vers != JNI_VERSION_1_1 && vers != JNI_VERSION_1_2) + { + // FIXME: unload the library. + _Jv_Throw (new java::lang::UnsatisfiedLinkError (JvNewStringLatin1 ("unrecognized version from preloaded JNI_OnLoad"))); + } + } + return 0; +} + +static void +runFirst (::java::lang::Class *klass, ::java::lang::Object *args) +{ + Utf8Const* main_signature = _Jv_makeUtf8Const ("([Ljava.lang.String;)V", 22); + Utf8Const* main_name = _Jv_makeUtf8Const ("main", 4); + + _Jv_Method *meth = _Jv_GetMethodLocal (klass, main_name, main_signature); + + // Some checks from Java Spec section 12.1.4. + const char *msg = NULL; + if (meth == NULL) + msg = "no suitable method `main' in class"; + else if (! java::lang::reflect::Modifier::isStatic(meth->accflags)) + msg = "`main' must be static"; + else if (! java::lang::reflect::Modifier::isPublic(meth->accflags)) + msg = "`main' must be public"; + if (msg != NULL) + { + fprintf (stderr, "%s\n", msg); + ::exit(1); + } + +#ifdef WITH_JVMPI + if (_Jv_JVMPI_Notify_THREAD_START) + { + JVMPI_Event event; + + jstring thread_name = getName (); + jstring group_name = NULL, parent_name = NULL; + java::lang::ThreadGroup *group = getThreadGroup (); + + if (group) + { + group_name = group->getName (); + group = group->getParent (); + + if (group) + parent_name = group->getName (); + } + + int thread_len = thread_name ? JvGetStringUTFLength (thread_name) : 0; + int group_len = group_name ? JvGetStringUTFLength (group_name) : 0; + int parent_len = parent_name ? JvGetStringUTFLength (parent_name) : 0; + + char thread_chars[thread_len + 1]; + char group_chars[group_len + 1]; + char parent_chars[parent_len + 1]; + + if (thread_name) + JvGetStringUTFRegion (thread_name, 0, + thread_name->length(), thread_chars); + if (group_name) + JvGetStringUTFRegion (group_name, 0, + group_name->length(), group_chars); + if (parent_name) + JvGetStringUTFRegion (parent_name, 0, + parent_name->length(), parent_chars); + + thread_chars[thread_len] = '\0'; + group_chars[group_len] = '\0'; + parent_chars[parent_len] = '\0'; + + event.event_type = JVMPI_EVENT_THREAD_START; + event.env_id = NULL; + event.u.thread_start.thread_name = thread_chars; + event.u.thread_start.group_name = group_chars; + event.u.thread_start.parent_name = parent_chars; + event.u.thread_start.thread_id = (jobjectID) this; + event.u.thread_start.thread_env_id = _Jv_GetCurrentJNIEnv (); + + _Jv_DisableGC (); + (*_Jv_JVMPI_Notify_THREAD_START) (&event); + _Jv_EnableGC (); + } +#endif + + main_func *real_main = (main_func *) meth->ncode; + (*real_main) (args); +} + +void +JvRunMain (jclass klass, int argc, const char **argv) +{ _Jv_argv = argv; _Jv_argc = argc; - main_init (); + _Jv_CreateJavaVM (NULL); #ifdef HAVE_PROC_SELF_EXE char exec_name[20]; sprintf (exec_name, "/proc/%d/exe", getpid ()); @@ -845,10 +962,9 @@ JvRunMain (jclass klass, int argc, const char **argv) _Jv_ThisExecutable (argv[0]); #endif + main_thread = _Jv_AttachCurrentThread (JvNewStringLatin1 ("main"), NULL); arg_vec = JvConvertArgv (argc - 1, argv + 1); - main_thread = new gnu::gcj::runtime::FirstThread (klass, arg_vec); - - main_thread->start(); + runFirst (klass, arg_vec); _Jv_ThreadWait (); int status = (int) java::lang::ThreadGroup::had_uncaught_exception; @@ -860,9 +976,8 @@ void _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar) { jstring class_name; - PROCESS_GCJ_PROPERTIES; - main_init (); + _Jv_CreateJavaVM (NULL); #ifdef HAVE_PROC_SELF_EXE char exec_name[20]; @@ -870,23 +985,17 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar) _Jv_ThisExecutable (exec_name); #endif + main_thread = _Jv_AttachCurrentThread (JvNewStringLatin1 ("main"), NULL); + if (is_jar) { // name specifies a jar file. We must now extract the - // Main-Class attribute from the jar's manifest file. This is - // done by gnu.gcj.runtime.FirstThread.main. + // Main-Class attribute from the jar's manifest file. + // This is done by gnu.gcj.runtime.FirstThread.getMain. _Jv_Jar_Class_Path = strdup (name); - arg_vec = JvConvertArgv (1, &_Jv_Jar_Class_Path); - - main_thread = - new gnu::gcj::runtime::FirstThread (&gnu::gcj::runtime::FirstThread::class$, - arg_vec); - main_thread->start(); - _Jv_ThreadWait (); - - // FirstThread.main extracts the main class name and stores it - // here. - class_name = gnu::gcj::runtime::FirstThread::jarMainClassName; + jstring jar_name = JvNewStringLatin1 (name); + // FirstThread.getMain extracts the main class name. + class_name = gnu::gcj::runtime::FirstThread::getMain (jar_name); // We need a new ClassLoader because the classpath must be the // jar file only. The easiest way to do this is to lose our @@ -900,8 +1009,7 @@ _Jv_RunMain (const char *name, int argc, const char **argv, bool is_jar) if (class_name) { - main_thread = new gnu::gcj::runtime::FirstThread (class_name, arg_vec); - main_thread->start(); + runFirst(java::lang::Class::forName (class_name), arg_vec); _Jv_ThreadWait (); } diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in index d792ee4915e..9d72715ec1e 100644 --- a/libjava/testsuite/Makefile.in +++ b/libjava/testsuite/Makefile.in @@ -73,6 +73,7 @@ CXXCPP = @CXXCPP@ DIRLTDL = @DIRLTDL@ DIVIDESPEC = @DIVIDESPEC@ DLLTOOL = @DLLTOOL@ +EXCEPTIONSPEC = @EXCEPTIONSPEC@ EXEEXT = @EXEEXT@ GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@ GCDEPS = @GCDEPS@ @@ -122,14 +123,10 @@ libgcj_basedir = @libgcj_basedir@ AUTOMAKE_OPTIONS = foreign dejagnu # Setup the testing framework, if you have one -EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \ - echo $(top_builddir)/../expect/expect ; \ - else echo expect ; fi` +EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then echo $(top_builddir)/../expect/expect ; else echo expect ; fi` -RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \ - echo $(top_srcdir)/../dejagnu/runtest ; \ - else echo runtest; fi` +RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then echo $(top_srcdir)/../dejagnu/runtest ; else echo runtest; fi` RUNTESTFLAGS = @AM_RUNTESTFLAGS@ diff --git a/libjava/win32-threads.cc b/libjava/win32-threads.cc index 29b6a72a8fc..974f15622a5 100644 --- a/libjava/win32-threads.cc +++ b/libjava/win32-threads.cc @@ -35,7 +35,6 @@ extern "C" struct starter { _Jv_ThreadStartFunc *method; - java::lang::Thread *object; _Jv_Thread_t *data; }; @@ -124,10 +123,11 @@ _Jv_InitThreads (void) } _Jv_Thread_t * -_Jv_ThreadInitData (java::lang::Thread *) +_Jv_ThreadInitData (java::lang::Thread* obj) { _Jv_Thread_t *data = new _Jv_Thread_t; data->flags = 0; + data->thread_obj = obj; return data; } @@ -176,6 +176,20 @@ _Jv_ThreadSetPriority (_Jv_Thread_t *data, jint prio) } } +void +_Jv_ThreadRegister (_Jv_Thread_t *data) +{ + TlsSetValue (_Jv_ThreadKey, data->thread_obj); + TlsSetValue (_Jv_ThreadDataKey, data); +} + +void +_Jv_ThreadUnRegister () +{ + TlsSetValue (_Jv_ThreadKey, NULL); + TlsSetValue (_Jv_ThreadDataKey, NULL); +} + // This function is called when a thread is started. We don't arrange // to call the `run' method directly, because this function must // return a value. @@ -184,9 +198,9 @@ really_start (void* x) { struct starter *info = (struct starter *) x; - TlsSetValue (_Jv_ThreadKey, info->object); - TlsSetValue (_Jv_ThreadDataKey, info->data); - info->method (info->object); + _Jv_ThreadRegister (info->data); + + info->method (info->data->thread_obj); if (! (info->data->flags & FLAG_DAEMON)) { @@ -214,7 +228,6 @@ _Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data, _Jv_ThreadStart // FIXME: handle marking the info object for GC. info = (struct starter *) _Jv_AllocBytes (sizeof (struct starter)); info->method = meth; - info->object = thread; info->data = data; if (! thread->isDaemon ())