aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandreao <andreao@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-20 15:51:58 +0000
committerandreao <andreao@138bc75d-0d04-0410-961f-82ee72b054a4>2009-04-20 15:51:58 +0000
commitb144c6993c2d4bb6f3cab878b10413fb53ffe89c (patch)
tree24be3b355c6752568578623fc4a1e2c69dde4e02
parentd6e867caf7763b74dd682c566d76c789933daf32 (diff)
merge from trunk revisions 127002-132392, 2/N
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/st/cli-be@146433 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog398
-rw-r--r--libjava/HACKING30
-rw-r--r--libjava/Makefile.am80
-rw-r--r--libjava/Makefile.in318
-rw-r--r--libjava/aclocal.m46398
-rw-r--r--libjava/boehm.cc8
-rw-r--r--libjava/classpath/ChangeLog1335
-rw-r--r--libjava/classpath/ChangeLog.gcj26
-rw-r--r--libjava/classpath/INSTALL443
-rw-r--r--libjava/classpath/Makefile.am3
-rw-r--r--libjava/classpath/Makefile.in29
-rw-r--r--libjava/classpath/NEWS7
-rwxr-xr-xlibjava/classpath/autogen.sh75
-rwxr-xr-xlibjava/classpath/configure865
-rw-r--r--libjava/classpath/configure.ac79
-rwxr-xr-xlibjava/classpath/depcomp64
-rw-r--r--libjava/classpath/doc/Makefile.in15
-rw-r--r--libjava/classpath/doc/README.jaxp4
-rw-r--r--libjava/classpath/doc/api/Makefile.in15
-rw-r--r--libjava/classpath/doc/cp-hacking.texinfo2
-rw-r--r--libjava/classpath/doc/cp-tools.texinfo2
-rw-r--r--libjava/classpath/doc/cp-vmintegration.texinfo2
-rw-r--r--libjava/classpath/doc/texinfo.tex582
-rw-r--r--libjava/classpath/examples/Makefile.in15
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java91
-rw-r--r--libjava/classpath/external/Makefile.in15
-rw-r--r--libjava/classpath/external/jsr166/Makefile.in15
-rw-r--r--libjava/classpath/external/relaxngDatatype/Makefile.in15
-rw-r--r--libjava/classpath/external/sax/Makefile.in15
-rw-r--r--libjava/classpath/external/w3c_dom/Makefile.in15
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java2
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java2
-rw-r--r--libjava/classpath/gnu/java/awt/font/FontDelegate.java12
-rw-r--r--libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java12
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java172
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/Pixelizer.java56
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java107
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java630
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ShapeCache.java5
-rw-r--r--libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java9
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java5
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java60
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java12
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java18
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java10
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java5
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java18
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java29
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java7
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.java36
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java14
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java44
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java33
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java12
-rw-r--r--libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java14
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java10
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java6
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java15
-rw-r--r--libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java25
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java33
-rwxr-xr-xlibjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java261
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java10
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java118
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java20
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java14
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java14
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java213
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java43
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingToolkit.java16
-rw-r--r--libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java25
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java185
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XEventPump.java60
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java759
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java179
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java6
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphics.java792
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java202
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java65
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java69
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XImage.java2
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XToolkit.java28
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java23
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java62
-rw-r--r--libjava/classpath/gnu/java/math/Fixed.java13
-rw-r--r--libjava/classpath/gnu/java/net/loader/URLLoader.java3
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java8
-rw-r--r--libjava/classpath/gnu/java/security/Engine.java4
-rw-r--r--libjava/classpath/gnu/javax/sound/AudioSecurityManager.java41
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java270
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java71
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java139
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java276
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java (renamed from libjava/classpath/native/jni/classpath/native_state.h)69
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java145
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java (renamed from libjava/classpath/gnu/java/awt/peer/x/XLightweightPeer.java)24
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java57
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java134
-rw-r--r--libjava/classpath/gnu/xml/dom/DomDocument.java23
-rw-r--r--libjava/classpath/gnu/xml/dom/DomElement.java2
-rw-r--r--libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java8
-rw-r--r--libjava/classpath/gnu/xml/dom/DomNode.java45
-rw-r--r--libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java2
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLParser.java22
-rw-r--r--libjava/classpath/gnu/xml/transform/WithParam.java4
-rw-r--r--libjava/classpath/include/Makefile.am231
-rw-r--r--libjava/classpath/include/Makefile.in246
-rw-r--r--libjava/classpath/include/config.h.in3
-rw-r--r--libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h (renamed from libjava/classpath/include/GtkDragSourceContextPeer.h)8
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h5
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h4
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h7
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h2
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h1
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h1
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h18
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h2
-rw-r--r--libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h18
-rw-r--r--libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h20
-rw-r--r--libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h18
-rw-r--r--libjava/classpath/include/jni.h180
-rw-r--r--libjava/classpath/include/jvmti.h2
-rwxr-xr-xlibjava/classpath/install-sh348
-rw-r--r--libjava/classpath/java/awt/AWTKeyStroke.java2
-rw-r--r--libjava/classpath/java/awt/AlphaComposite.java2
-rw-r--r--libjava/classpath/java/awt/Component.java56
-rw-r--r--libjava/classpath/java/awt/Container.java27
-rw-r--r--libjava/classpath/java/awt/Dialog.java15
-rw-r--r--libjava/classpath/java/awt/Font.java43
-rw-r--r--libjava/classpath/java/awt/Toolkit.java6
-rw-r--r--libjava/classpath/java/awt/event/MouseEvent.java95
-rw-r--r--libjava/classpath/java/awt/peer/ComponentPeer.java13
-rw-r--r--libjava/classpath/java/awt/peer/FramePeer.java3
-rw-r--r--libjava/classpath/java/awt/peer/RobotPeer.java2
-rw-r--r--libjava/classpath/java/awt/peer/WindowPeer.java9
-rw-r--r--libjava/classpath/java/io/ObjectStreamClass.java8
-rw-r--r--libjava/classpath/java/lang/Float.java10
-rw-r--r--libjava/classpath/java/lang/Integer.java7
-rw-r--r--libjava/classpath/java/lang/reflect/Array.java11
-rw-r--r--libjava/classpath/java/net/URI.java14
-rw-r--r--libjava/classpath/java/net/URLClassLoader.java10
-rw-r--r--libjava/classpath/java/nio/Buffer.java61
-rw-r--r--libjava/classpath/java/nio/CharBuffer.java15
-rw-r--r--libjava/classpath/java/nio/CharSequenceBuffer.java208
-rw-r--r--libjava/classpath/java/nio/CharViewBufferImpl.java2
-rw-r--r--libjava/classpath/java/nio/DoubleViewBufferImpl.java2
-rw-r--r--libjava/classpath/java/nio/FloatViewBufferImpl.java2
-rw-r--r--libjava/classpath/java/nio/IntViewBufferImpl.java2
-rw-r--r--libjava/classpath/java/nio/LongViewBufferImpl.java2
-rw-r--r--libjava/classpath/java/nio/ShortViewBufferImpl.java2
-rw-r--r--libjava/classpath/java/rmi/MarshalledObject.java8
-rw-r--r--libjava/classpath/java/rmi/activation/Activatable.java6
-rw-r--r--libjava/classpath/java/rmi/activation/ActivationDesc.java12
-rw-r--r--libjava/classpath/java/rmi/activation/ActivationGroup.java3
-rw-r--r--libjava/classpath/java/rmi/activation/ActivationGroupDesc.java6
-rw-r--r--libjava/classpath/java/rmi/activation/ActivationInstantiator.java2
-rw-r--r--libjava/classpath/java/rmi/activation/ActivationMonitor.java2
-rw-r--r--libjava/classpath/java/rmi/activation/Activator.java2
-rw-r--r--libjava/classpath/java/util/Arrays.java3
-rw-r--r--libjava/classpath/java/util/Currency.java5
-rw-r--r--libjava/classpath/java/util/EnumMap.java19
-rw-r--r--libjava/classpath/java/util/EnumSet.java555
-rw-r--r--libjava/classpath/java/util/SimpleTimeZone.java2
-rw-r--r--libjava/classpath/javax/management/ObjectName.java94
-rw-r--r--libjava/classpath/javax/sound/sampled/AudioFormat.java33
-rw-r--r--libjava/classpath/javax/sound/sampled/DataLine.java62
-rw-r--r--libjava/classpath/javax/sound/sampled/spi/MixerProvider.java4
-rw-r--r--libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java22
-rw-r--r--libjava/classpath/javax/swing/text/html/parser/AttributeList.java2
-rw-r--r--libjava/classpath/jvmti.h1819
-rw-r--r--libjava/classpath/lib/Makefile.am20
-rw-r--r--libjava/classpath/lib/Makefile.in31
-rw-r--r--libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.classbin3618 -> 3615 bytes
-rw-r--r--libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.classbin611 -> 611 bytes
-rw-r--r--libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.classbin12200 -> 12494 bytes
-rw-r--r--libjava/classpath/lib/gnu/awt/xlib/XFontPeer.classbin3453 -> 3453 bytes
-rw-r--r--libjava/classpath/lib/gnu/awt/xlib/XFramePeer.classbin5562 -> 6225 bytes
-rw-r--r--libjava/classpath/lib/gnu/awt/xlib/XToolkit.classbin10972 -> 11617 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/FontDelegate.classbin1086 -> 1117 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.classbin8951 -> 9042 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.classbin27288 -> 28258 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.classbin0 -> 189 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.classbin5849 -> 6579 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.classbin0 -> 1396 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.classbin0 -> 1853 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.classbin0 -> 1579 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.classbin0 -> 3439 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.classbin551 -> 600 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.classbin9119 -> 9119 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.classbin7541 -> 7902 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.classbin39018 -> 39058 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.classbin9244 -> 10110 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.classbin1705 -> 1705 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.classbin2341 -> 2341 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.classbin9399 -> 9446 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.classbin3341 -> 3526 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.classbin5490 -> 5490 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.classbin1851 -> 1851 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.classbin5314 -> 5314 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.classbin1904 -> 1904 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.classbin1075 -> 1075 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.classbin7974 -> 8025 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.classbin1566 -> 1633 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.classbin626 -> 626 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.classbin5668 -> 5780 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.classbin1498 -> 1498 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.classbin18274 -> 18625 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.classbin4696 -> 4870 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.classbin1974 -> 2149 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.classbin1504 -> 1154 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.classbin945 -> 945 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.classbin18908 -> 19627 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.classbin7737 -> 8439 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.classbin8035 -> 8381 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.classbin7617 -> 8167 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.classbin16405 -> 16766 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.classbin2250 -> 2250 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.classbin4252 -> 4252 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.classbin2945 -> 3114 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.classbin12257 -> 12807 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.classbin849 -> 1330 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.classbin2148 -> 2628 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.classbin1280 -> 1280 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.classbin1351 -> 1351 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.classbin0 -> 2656 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.classbin0 -> 1346 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.classbin0 -> 1713 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.classbin335 -> 395 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.classbin12563 -> 13249 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.classbin5446 -> 5757 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.classbin1996 -> 2184 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.classbin1575 -> 1575 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.classbin2229 -> 2417 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.classbin4649 -> 4649 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.classbin0 -> 829 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.classbin0 -> 3177 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.classbin2265 -> 2626 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.classbin3822 -> 4808 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.classbin2190 -> 2670 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.classbin3242 -> 3242 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.classbin2296 -> 2846 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.classbin556 -> 1043 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/math/Fixed.classbin1290 -> 1373 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/loader/URLLoader.classbin1795 -> 1795 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.classbin1161 -> 1161 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.classbin1632 -> 1632 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.classbin1311 -> 1348 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/Engine.classbin5340 -> 5326 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.classbin0 -> 1266 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.classbin0 -> 1574 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.classbin0 -> 837 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.classbin0 -> 4830 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.classbin0 -> 1493 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.classbin0 -> 2495 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.classbin0 -> 1185 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.classbin0 -> 5312 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.classbin0 -> 1383 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.classbin0 -> 1327 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.classbin0 -> 2714 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.classbin0 -> 512 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.classbin0 -> 402 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.classbin0 -> 2066 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomDocument.classbin23668 -> 23877 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomElement.classbin8105 -> 8155 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.classbin5204 -> 5251 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.classbin459 -> 459 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.classbin1009 -> 1009 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.classbin3023 -> 3023 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode.classbin22818 -> 23045 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.classbin12933 -> 12990 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.classbin617 -> 617 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.classbin1805 -> 2414 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.classbin897 -> 897 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.classbin787 -> 787 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.classbin595 -> 595 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.classbin5914 -> 5914 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.classbin1059 -> 1059 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.classbin623 -> 623 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.classbin556 -> 556 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.classbin6256 -> 6256 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.classbin988 -> 988 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/WithParam.classbin2404 -> 2428 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.classbin1391 -> 1391 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.classbin1188 -> 1188 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.classbin7344 -> 7344 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$BltBufferStrategy.classbin3283 -> 3283 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.classbin3475 -> 3475 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.classbin1500 -> 1500 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component.classbin57212 -> 58484 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.classbin1195 -> 1195 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.classbin2043 -> 2043 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.classbin822 -> 822 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.classbin810 -> 810 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.classbin822 -> 822 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.classbin810 -> 810 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxVisitor.classbin421 -> 421 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container.classbin25778 -> 26135 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.classbin1355 -> 1355 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.classbin0 -> 1200 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Dialog$ModalityType.classbin0 -> 1213 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Dialog.classbin5452 -> 5578 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Font.classbin14900 -> 15412 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Toolkit$2.classbin3538 -> 3538 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Toolkit.classbin14598 -> 14897 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/MouseEvent.classbin3968 -> 4819 bytes
-rw-r--r--libjava/classpath/lib/java/awt/peer/ComponentPeer.classbin2235 -> 2386 bytes
-rw-r--r--libjava/classpath/lib/java/awt/peer/FramePeer.classbin486 -> 538 bytes
-rw-r--r--libjava/classpath/lib/java/awt/peer/RobotPeer.classbin333 -> 357 bytes
-rw-r--r--libjava/classpath/lib/java/awt/peer/WindowPeer.classbin254 -> 428 bytes
-rw-r--r--libjava/classpath/lib/java/io/File.classbin14356 -> 14362 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectStreamClass$2.classbin834 -> 834 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.classbin862 -> 862 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.classbin1121 -> 1121 bytes
-rw-r--r--libjava/classpath/lib/java/io/ObjectStreamClass.classbin17956 -> 17983 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Class.classbin15635 -> 15647 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Float.classbin4642 -> 4520 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Integer.classbin6722 -> 6779 bytes
-rw-r--r--libjava/classpath/lib/java/lang/VMFloat.classbin358 -> 719 bytes
-rw-r--r--libjava/classpath/lib/java/net/URI.classbin16397 -> 16505 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader$1.classbin1197 -> 1197 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader$2.classbin1099 -> 1099 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader.classbin14666 -> 14644 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharBuffer.classbin5915 -> 5855 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharSequenceBuffer.classbin0 -> 2357 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharViewBufferImpl.classbin3286 -> 3286 bytes
-rw-r--r--libjava/classpath/lib/java/nio/DoubleViewBufferImpl.classbin2973 -> 2973 bytes
-rw-r--r--libjava/classpath/lib/java/nio/FloatViewBufferImpl.classbin2961 -> 2961 bytes
-rw-r--r--libjava/classpath/lib/java/nio/IntViewBufferImpl.classbin2931 -> 2931 bytes
-rw-r--r--libjava/classpath/lib/java/nio/LongViewBufferImpl.classbin2953 -> 2953 bytes
-rw-r--r--libjava/classpath/lib/java/nio/ShortViewBufferImpl.classbin2961 -> 2961 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/MarshalledObject.classbin1855 -> 2121 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/Activatable.classbin8556 -> 9002 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/ActivationDesc.classbin2753 -> 3346 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/ActivationGroup.classbin5658 -> 5858 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.classbin3895 -> 4196 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.classbin392 -> 534 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/ActivationMonitor.classbin557 -> 664 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/Activator.classbin378 -> 485 bytes
-rw-r--r--libjava/classpath/lib/java/util/Arrays.classbin32272 -> 32336 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$1.classbin1315 -> 1315 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$2.classbin1460 -> 1460 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$3.classbin1053 -> 1053 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$4.classbin1233 -> 1233 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$5.classbin1874 -> 1874 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$6.classbin1821 -> 1821 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap$7.classbin1416 -> 1416 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumMap.classbin5825 -> 5947 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumSet$1.classbin1389 -> 3315 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumSet$2.classbin0 -> 1403 bytes
-rw-r--r--libjava/classpath/lib/java/util/EnumSet.classbin8348 -> 5465 bytes
-rw-r--r--libjava/classpath/lib/javax/management/ObjectName.classbin10625 -> 11159 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/AudioFormat.classbin3891 -> 3974 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/DataLine$Info.classbin2934 -> 2934 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.classbin13071 -> 13194 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.classbin2576 -> 2587 bytes
-rw-r--r--libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.classbin0 -> 1857 bytes
-rw-r--r--libjava/classpath/lib/sun/awt/CausedFocusEvent.classbin0 -> 835 bytes
-rw-r--r--libjava/classpath/m4/acinclude.m421
-rwxr-xr-xlibjava/classpath/missing61
-rw-r--r--libjava/classpath/native/Makefile.in15
-rw-r--r--libjava/classpath/native/fdlibm/Makefile.in15
-rw-r--r--libjava/classpath/native/jawt/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/Makefile.am10
-rw-r--r--libjava/classpath/native/jni/Makefile.in22
-rw-r--r--libjava/classpath/native/jni/classpath/Makefile.am3
-rw-r--r--libjava/classpath/native/jni/classpath/Makefile.in21
-rw-r--r--libjava/classpath/native/jni/classpath/native_state.c276
-rw-r--r--libjava/classpath/native/jni/gconf-peer/Makefile.am3
-rw-r--r--libjava/classpath/native/jni/gconf-peer/Makefile.in20
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c772
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/Makefile.am22
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/Makefile.in640
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c332
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h88
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c494
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h99
-rw-r--r--libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c18
-rw-r--r--libjava/classpath/native/jni/gtk-peer/Makefile.am4
-rw-r--r--libjava/classpath/native/jni/gtk-peer/Makefile.in24
-rw-r--r--libjava/classpath/native/jni/gtk-peer/cairographics2d.h1
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gdkdisplay.h24
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gdkfont.h42
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c6
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c15
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c8
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c5
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c27
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c62
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c25
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c27
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c43
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c4
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c6
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c28
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c24
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c7
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c74
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c6
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c26
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c22
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c16
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c14
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c34
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c10
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c3
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c18
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c16
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c14
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c6
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c16
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c18
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c8
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c38
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c38
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c14
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c2
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c60
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gtk_jawt.c8
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gtkpeer.c584
-rw-r--r--libjava/classpath/native/jni/gtk-peer/gtkpeer.h221
-rw-r--r--libjava/classpath/native/jni/java-io/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/java-lang/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/java-net/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c21
-rw-r--r--libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c30
-rw-r--r--libjava/classpath/native/jni/java-net/javanet.c2
-rw-r--r--libjava/classpath/native/jni/java-nio/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c78
-rw-r--r--libjava/classpath/native/jni/java-util/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/midi-alsa/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/midi-dssi/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/native-lib/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/native-lib/cpio.c6
-rw-r--r--libjava/classpath/native/jni/native-lib/cpnet.c9
-rw-r--r--libjava/classpath/native/jni/native-lib/cpnet.h6
-rw-r--r--libjava/classpath/native/jni/qt-peer/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/qt-peer/qtfontmetrics.cpp4
-rw-r--r--libjava/classpath/native/jni/xmlj/Makefile.in15
-rw-r--r--libjava/classpath/native/jni/xmlj/xmlj_xpath.c1
-rw-r--r--libjava/classpath/native/plugin/Makefile.in15
-rw-r--r--libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader1
-rw-r--r--libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in3
-rw-r--r--libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in1
-rw-r--r--libjava/classpath/resource/Makefile.in15
-rw-r--r--libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties3
-rw-r--r--libjava/classpath/scripts/Makefile.in15
-rwxr-xr-xlibjava/classpath/scripts/check_jni_methods.sh10
-rw-r--r--libjava/classpath/sun/awt/CausedFocusEvent.java89
-rwxr-xr-xlibjava/classpath/tools/Makefile.am12
-rw-r--r--libjava/classpath/tools/Makefile.in42
-rw-r--r--libjava/classpath/tools/classes/com/sun/tools/javah/Main.classbin0 -> 692 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.classbin0 -> 1019 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.classbin4063 -> 4202 bytes
-rw-r--r--libjava/classpath/tools/com/sun/tools/javah/Main.java58
-rw-r--r--libjava/classpath/tools/gappletviewer.in1
-rw-r--r--libjava/classpath/tools/gjar.in1
-rw-r--r--libjava/classpath/tools/gjarsigner.in1
-rw-r--r--libjava/classpath/tools/gjavah.in1
-rw-r--r--libjava/classpath/tools/gkeytool.in1
-rw-r--r--libjava/classpath/tools/gnative2ascii.in1
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java14
-rw-r--r--libjava/classpath/tools/gorbd.in1
-rw-r--r--libjava/classpath/tools/grmic.in1
-rw-r--r--libjava/classpath/tools/grmid.in1
-rw-r--r--libjava/classpath/tools/grmiregistry.in1
-rw-r--r--libjava/classpath/tools/gserialver.in1
-rw-r--r--libjava/classpath/tools/gtnameserv.in1
-rw-r--r--libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java5
-rw-r--r--libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java13
-rw-r--r--libjava/classpath/vm/reference/java/lang/VMFloat.java22
-rw-r--r--libjava/classpath/vm/reference/sun/misc/Unsafe.java2
-rwxr-xr-xlibjava/configure279
-rw-r--r--libjava/configure.ac89
-rw-r--r--libjava/configure.host33
-rw-r--r--libjava/darwin.cc41
-rw-r--r--libjava/defineclass.cc8
-rw-r--r--libjava/exception.cc118
-rw-r--r--libjava/gcj/Makefile.in20
-rw-r--r--libjava/gij.cc4
-rw-r--r--libjava/gnu/awt/xlib/XCanvasPeer.h8
-rw-r--r--libjava/gnu/awt/xlib/XCanvasPeer.java9
-rw-r--r--libjava/gnu/awt/xlib/XFontPeer.h2
-rw-r--r--libjava/gnu/awt/xlib/XFontPeer.java2
-rw-r--r--libjava/gnu/awt/xlib/XFramePeer.h7
-rw-r--r--libjava/gnu/awt/xlib/XFramePeer.java33
-rw-r--r--libjava/gnu/awt/xlib/XToolkit.h5
-rw-r--r--libjava/gnu/awt/xlib/XToolkit.java20
-rw-r--r--libjava/gnu/classpath/natVMStackWalker.cc14
-rw-r--r--libjava/gnu/java/awt/font/FontDelegate.h1
-rw-r--r--libjava/gnu/java/awt/font/opentype/OpenTypeFont.h1
-rw-r--r--libjava/gnu/java/awt/java2d/AbstractGraphics2D.h10
-rw-r--r--libjava/gnu/java/awt/java2d/Pixelizer.h36
-rw-r--r--libjava/gnu/java/awt/java2d/ScanlineConverter.h13
-rw-r--r--libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h46
-rw-r--r--libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h51
-rw-r--r--libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h55
-rw-r--r--libjava/gnu/java/awt/java2d/ScanlineCoverage.h67
-rw-r--r--libjava/gnu/java/awt/java2d/ShapeCache.h2
-rw-r--r--libjava/gnu/java/awt/peer/ClasspathFontPeer.h2
-rw-r--r--libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h15
-rw-r--r--libjava/gnu/java/awt/peer/GLightweightPeer.h8
-rw-r--r--libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h3
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h7
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h10
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h7
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h1
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h8
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h8
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h1
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h8
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkToolkit.h9
-rw-r--r--libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h8
-rw-r--r--libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h4
-rw-r--r--libjava/gnu/java/awt/peer/qt/QtComponentPeer.h8
-rw-r--r--libjava/gnu/java/awt/peer/qt/QtFontMetrics.h2
-rw-r--r--libjava/gnu/java/awt/peer/qt/QtFontPeer.h2
-rw-r--r--libjava/gnu/java/awt/peer/qt/QtFramePeer.h1
-rw-r--r--libjava/gnu/java/awt/peer/qt/QtToolkit.h4
-rw-r--r--libjava/gnu/java/awt/peer/qt/QtWindowPeer.h6
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h4
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h80
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h56
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h49
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingComponent.h2
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h10
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h5
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingFramePeer.h1
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h2
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h2
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h51
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h81
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h50
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h13
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h4
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingToolkit.h4
-rw-r--r--libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h6
-rw-r--r--libjava/gnu/java/math/Fixed.h1
-rw-r--r--libjava/gnu/javax/sound/AudioSecurityManager$Permission.h42
-rw-r--r--libjava/gnu/javax/sound/AudioSecurityManager.h42
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.h44
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h84
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.h57
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h65
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.h57
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h73
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.h58
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h51
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h89
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h41
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h49
-rw-r--r--libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h66
-rw-r--r--libjava/gnu/xml/dom/DomDocument.h6
-rw-r--r--libjava/gnu/xml/dom/DomNamedNodeMap.h2
-rw-r--r--libjava/gnu/xml/dom/DomNode.h2
-rw-r--r--libjava/gnu/xml/stream/XMLParser$Attribute.h1
-rw-r--r--libjava/include/Makefile.in20
-rw-r--r--libjava/include/config.h.in7
-rw-r--r--libjava/include/execution.h7
-rw-r--r--libjava/include/java-interp.h46
-rw-r--r--libjava/include/jvm.h6
-rw-r--r--libjava/interpret-run.cc3
-rw-r--r--libjava/interpret.cc51
-rw-r--r--libjava/java/awt/Component.h5
-rw-r--r--libjava/java/awt/Container.h4
-rw-r--r--libjava/java/awt/Dialog$ModalExclusionType.h39
-rw-r--r--libjava/java/awt/Dialog$ModalityType.h40
-rw-r--r--libjava/java/awt/Font.h10
-rw-r--r--libjava/java/awt/Toolkit.h4
-rw-r--r--libjava/java/awt/event/MouseEvent.h6
-rw-r--r--libjava/java/awt/peer/ButtonPeer.h8
-rw-r--r--libjava/java/awt/peer/CanvasPeer.h8
-rw-r--r--libjava/java/awt/peer/CheckboxPeer.h8
-rw-r--r--libjava/java/awt/peer/ChoicePeer.h8
-rw-r--r--libjava/java/awt/peer/ComponentPeer.h8
-rw-r--r--libjava/java/awt/peer/ContainerPeer.h8
-rw-r--r--libjava/java/awt/peer/DialogPeer.h14
-rw-r--r--libjava/java/awt/peer/FileDialogPeer.h14
-rw-r--r--libjava/java/awt/peer/FramePeer.h15
-rw-r--r--libjava/java/awt/peer/LabelPeer.h8
-rw-r--r--libjava/java/awt/peer/LightweightPeer.h8
-rw-r--r--libjava/java/awt/peer/ListPeer.h8
-rw-r--r--libjava/java/awt/peer/PanelPeer.h8
-rw-r--r--libjava/java/awt/peer/RobotPeer.h1
-rw-r--r--libjava/java/awt/peer/ScrollPanePeer.h8
-rw-r--r--libjava/java/awt/peer/ScrollbarPeer.h8
-rw-r--r--libjava/java/awt/peer/TextAreaPeer.h8
-rw-r--r--libjava/java/awt/peer/TextComponentPeer.h8
-rw-r--r--libjava/java/awt/peer/TextFieldPeer.h8
-rw-r--r--libjava/java/awt/peer/WindowPeer.h14
-rw-r--r--libjava/java/io/File.java5
-rw-r--r--libjava/java/io/natFilePosix.cc6
-rw-r--r--libjava/java/lang/Class.h4
-rw-r--r--libjava/java/lang/Class.java4
-rw-r--r--libjava/java/lang/VMFloat.h2
-rw-r--r--libjava/java/lang/VMFloat.java22
-rw-r--r--libjava/java/lang/natClass.cc7
-rw-r--r--libjava/java/lang/natPosixProcess.cc12
-rw-r--r--libjava/java/lang/natThread.cc7
-rw-r--r--libjava/java/lang/reflect/natMethod.cc2
-rw-r--r--libjava/java/lang/reflect/natVMProxy.cc12
-rw-r--r--libjava/java/net/natVMInetAddressPosix.cc15
-rw-r--r--libjava/java/nio/CharSequenceBuffer.h48
-rw-r--r--libjava/java/util/EnumSet$1.h26
-rw-r--r--libjava/java/util/EnumSet$2.h29
-rw-r--r--libjava/java/util/EnumSet.h11
-rw-r--r--libjava/javax/management/ObjectName.h6
-rw-r--r--libjava/jni-libjvm.cc2
-rw-r--r--libjava/jni.cc41
-rw-r--r--libjava/libgcj.spec.in2
-rw-r--r--libjava/link.cc16
-rw-r--r--libjava/prims.cc27
-rwxr-xr-xlibjava/scripts/makemake.tcl74
-rw-r--r--libjava/shlibpath.m42
-rw-r--r--libjava/sources.am148
-rw-r--r--libjava/stacktrace.cc6
-rw-r--r--libjava/sun/awt/CausedFocusEvent$Cause.h50
-rw-r--r--libjava/sun/awt/CausedFocusEvent.h41
-rw-r--r--libjava/sysdep/arm/backtrace.h35
-rw-r--r--libjava/sysdep/m68k/locks.h72
-rw-r--r--libjava/sysdep/mips/locks.h57
-rw-r--r--libjava/testsuite/Makefile.am2
-rw-r--r--libjava/testsuite/Makefile.in22
-rw-r--r--libjava/testsuite/lib/libjava.exp11
-rw-r--r--libjava/testsuite/libjava.jni/jni.exp22
-rw-r--r--libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc2
-rw-r--r--libjava/testsuite/libjava.lang/PR27908.jarbin2452 -> 2718 bytes
-rw-r--r--libjava/testsuite/libjava.lang/PR27908.java18
-rw-r--r--libjava/testsuite/libjava.lang/StackTrace2.jarbin1775 -> 1990 bytes
-rw-r--r--libjava/testsuite/libjava.lang/StackTrace2.java5
-rw-r--r--libjava/testsuite/libjava.lang/WalkerTest.jarbin0 -> 1210 bytes
-rw-r--r--libjava/testsuite/libjava.lang/WalkerTest.java15
-rw-r--r--libjava/testsuite/libjava.lang/WalkerTest.out1
638 files changed, 16372 insertions, 13894 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index e9f66f60b52..33813125d55 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,401 @@
+2008-02-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ PR libgcj/33085
+ * configure: Regenerate.
+
+2008-02-15 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR testsuite/35208
+ * testsuite/libjava.jvmti/interp/natgetstacktrace.cc
+ (Java_getstacktrace_natRunner): Increase the usleep time to a value
+ which prevents OS-X to get into a deadlock.
+
+2008-02-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR libgcj/30071
+ * Makefile.am (install-exec-hook): Add install-binPROGRAMS.
+ * Makefile.in: Regenerate.
+
+2008-01-24 David Edelsohn <edelsohn@gnu.org>
+
+ * shlibpath.m4: Add AIX 6 support.
+ * configure: Regenerate.
+
+2008-01-18 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/33887
+ * link.cc (_Jv_Linker::prepare_constant_time_tables):
+ has_interfaces is boolean, treat it as such.
+
+2008-01-04 Andrew Haley <aph@redhat.com>
+
+ PR libgcj/34444
+ * java/lang/natClass.cc (Class::getEnclosingClass): Call
+ getDeclaringClass().
+
+2007-12-22 David Daney <ddaney@avtrex.com>
+
+ * scripts/makemake.tcl (emit_bc_rule): Use $(LIBGCJ_BC_FLAGS)
+ instead of -findirect-dispatch -fno-indirect-classes.
+ * configure.ac (libgcj-bc): New AC_ARG_ENABLE.
+ (SUPPRESS_LIBGCJ_BC): New AM_CONDITIONAL.
+ * Makefile.am (LIBGCJ_BC_FLAGS): New variable.
+ * Makefile.in: Regenerate.
+ * include/Makefile.in: Same.
+ * testsuite/Makefile.in: Same.
+ * configure: Same.
+ * gcj/Makefile.in: Same.
+ * sources.am: Same.
+
+2007-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ * testsuite/Makefile.am (compile-tests): Build
+ libjava.jvmti/interp/*.h with -jni rather than -cni.
+ * testsuite/Makefile.in: Rebuilt.
+
+2007-12-08 Andreas Tobler <a.tobler@schweiz.org>
+
+ * configure.host: Add bits for i?86-*-darwin9 and x86_64-*-darwin9.
+ * configure.ac: Add darwin-signal.h to x86_64-*-darwin9 and
+ i?86-*darwin9.
+ * configure.in: Regenerate.
+ * darwin.cc: Add definitions for Darwin specific functions for 64-bit.
+ (darwin_java_register_dyld_add_image_hook): Use this specific
+ functions.
+ * Makefile.am (gij_LDFLAGS): Add extra_gij_ldflags for Darwin9.
+ * Makefile.in: Regenerate.
+ * include/Makefile.in: Likewise.
+ * gcj/Makefile.in: Likewise.
+ * testsuite/Makefile.in: Likewise.
+ * testsuite/lib/libjava.exp (libjava_arguments): Add allow_stack_execute
+ for *-*-darwin9*.
+
+2007-12-06 David Daney <ddaney@avtrex.com>
+
+ * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
+ (ncode_closure, ffi_closure_fun): Define versions for
+ non-FFI_NATIVE_RAW_API case.
+ * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
+ replace ffi_raw throughout.
+ * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
+ throughout.
+
+2007-12-06 Andreas Tobler <a.tobler@schweiz.org>
+
+ * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Make
+ the testsuite multilib aware for Darwin.
+
+2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate.
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise.
+ * java/awt/Component.h: Likewise.
+ * java/awt/Container.h: Likewise.
+
+2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
+
+ * configure.ac: Don't run config-ml.in directly.
+ (multilib_arg): New.
+ * configure: Regenerated.
+
+2007-10-22 David Daney <ddaney@avtrex.com>
+
+ * include/jvm.h (_Jv_SetGCFreeSpaceDivisor): Declare new function.
+ * boehm.cc (_Jv_SetGCFreeSpaceDivisor): Define it.
+
+2007-10-18 David Daney <ddaney@avtrex.com>
+
+ * classpath/lib/gnu/java/locale/LocaleData.class: Regenerate
+ * classpath/lib/gnu/javax/sound/sampled/gstreamer: Add generated
+ files.
+ * gnu/javax/sound/sampled/gstreamer: Add generated files.
+
+2007-10-15 Maciej W. Rozycki <macro@linux-mips.org>
+
+ * configure: Regenerate following changes to ../config/tls.m4.
+
+2007-09-17 Tom Tromey <tromey@redhat.com>
+
+ * defineclass.cc (MAJOR_1_6): New define.
+ (MINOR_1_6): Likewise.
+ (_Jv_ClassReader::parse): Handle 1.6 bytecode.
+
+2007-09-12 David Daney <ddaney@avtrex.com>
+
+ * configure.host: Enable interpreter for mips64. Enable hash
+ synchronization for all mips*-*-linux* targets.
+ * sysdep/mips/locks.h (compare_and_swap, compare_and_swap_release) Use
+ __sync_bool_compare_and_swap instead of in-line asm.
+ (release_set, read_barrier, write_barrier): Use __sync_synchronize
+ instead of in-line asm.
+
+2007-09-09 Andreas Tobler <a.tobler@schweiz.org>
+
+ PR libgcj/33326
+ * testsuite/lib/libjava.exp (libjava_arguments): Append the test spec
+ only for linux targets.
+
+2007-09-09 Andrew Haley <aph@redhat.com>
+
+ * interpret-run.cc (invokevirtual_resolved): Nullcheck object on
+ TOS.
+
+2007-09-06 Tom Tromey <tromey@redhat.com>
+
+ * testsuite/libjava.lang/StackTrace2.jar: Rebuilt.
+ * testsuite/libjava.lang/StackTrace2.java (checkLine): Print file
+ name.
+
+2007-09-06 Roman Zippel <zippel@linux-m68k.org>
+
+ * sysdep/m68k/locks.h: New file.
+ * configure.host: Set sysdeps_dir and libgcj_interpreter for m68k.
+ * configure.ac: Set SIGNAL_HANDLER for m68*-*-linux*.
+ * configure: Regenerate.
+
+2007-09-05 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * configure.host(gnu*): Set use_libgcj_bc to yes.
+
+2007-09-04 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Do not pass --with-native-libdir to classpath.
+ * configure: Regenerate.
+
+2007-09-04 Matthias Klose <doko@ubuntu.com>
+
+ PR libgcj/33278
+ * configure.ac: Robustify extraction of gcj version.
+ * configure: Regenerate.
+
+2007-09-04 Andrew Haley <aph@redhat.com>
+
+ PR java/27908
+ * testsuite/libjava.lang/PR27908.java
+ ({run1,run2,run3}.isRunning): New Method.
+ (main): Fix race condition.
+
+2007-08-29 Andrew Haley <aph@redhat.com>
+
+ * gnu/classpath/natVMStackWalker.cc (VMStackWalker::getCallingClass):
+ Make sure we're not sibcalled.
+ (GET_CALLING_CLASS): Define for ARM EABI.
+
+2007-08-22 Andrew Haley <aph@redhat.com>
+
+ * configure.host (BACKTRACESPEC): Add arm*-linux*.
+
+2007-08-22 Andrew Haley <aph@redhat.com>
+
+ * configure.ac (LIBSTDCXXSPEC): New.
+ * configure.host: Add arm*-linux* to pthread test.
+ * configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
+ EABI.
+ * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
+ -fexceptions for ARM EABI.
+ * testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
+ (libjava_invoke): Log the invocation.
+
+2007-08-15 Andrew Haley <aph@redhat.com>
+
+ * configure.ac (extra_ldflags): Define.
+ * Makefile.am: Use extra_ldflags for all executables.
+
+2007-08-14 Andrew Haley <aph@redhat.com>
+
+ * sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
+ _Unwind_GetRegionStart, and _Unwind_Backtrace.
+
+2007-07-27 Andrew Haley <aph@redhat.com>
+
+ * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
+ ARM EABI.
+ * exception.cc (get_exception_header_from_ue): New.
+ (get_ttype_entry): ARM EABI version.
+ (PERSONALITY_FUNCTION): Add ARM EABI code.
+ * sysdep/arm/backtrace.h: New file.
+ * stacktrace.cc (_URC_NORMAL_STOP): New.
+ * configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
+ EABI.
+ * configure.host (BACKTRACESPEC): Add arm/backtrace.h.
+
+2007-08-31 Matthias Klose <doko@ubuntu.com>
+
+ * classpath/lib/java/util/EnumSet*.class: Regenerate
+
+2007-08-30 Andreas Tobler <a.tobler@schweiz.org>
+
+ * gij.cc (version): Update Copyright year.
+
+2007-08-16 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * configure.host (gnu*): Set use_libgcj_bc to yes.
+
+2007-08-15 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/Class.java (internalGetFields): Use LinkedHashSet.
+ * classpath/lib/java/lang/Class.class: Rebuilt.
+
+2007-08-15 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove
+ 'si' and 'third' parameters. Disable calling
+ pmi->old_sigaction.sa_sigaction.
+ (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set
+ sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag.
+
+2007-08-09 Andrew Haley <aph@redhat.com>
+
+ * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation.
+
+2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
+
+ * java/net/natVMInetAddressPosix.cc
+ (java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]:
+ Allocate buffer dynamically.
+
+2007-08-04 Alfred M. Szmidt <ams@gnu.org>
+
+ * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0.
+ * java/io/File.java (createTempFile): Don't truncate if the system
+ doesn't have a limit on the length of a file name.
+ * classpath/lib/java/io/File.class: Regenerate.
+
+2007-08-04 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (libgcj-import-20070727).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+
+ * include/jvm.h:
+ * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type.
+ * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise.
+ * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA,
+ _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA,
+ _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA,
+ _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify
+ jvalue parameter.
+ * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
+
+ * java/lang/VMFloat.java (toString, parseFloat): New.
+
+ * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported,
+ isModalExclusionTypeSupported): New (stub only).
+ * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise.
+ * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages,
+ updateFocusableWindowState, setModalBlocked, getBoundsPrivate,
+ setAlwaysOnTop): Likewise.
+ * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature.
+
+ * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer,
+ ignore javax.sound.sampled.spi.MixerProvider, ignore .in files.
+
+ * HACKING: Mention --enable-gstreamer-peer, removal of generated files.
+
+2007-07-31 David Daney <ddaney@avtrex.com>
+
+ * HACKING: Document regenerating configure and aclocal.m4.
+
+2007-07-31 David Daney <ddaney@avtrex.com>
+
+ * configure.ac (INTERPRETER): New AM_CONDITIONAL.
+ * scripts/makemake.tcl (package_map): Mark jdwp and jvmti packages
+ as being for interpreter only. Place interpreter related files in
+ 'if INTERPRETER' block.
+ (interpreter_package_files): New list.
+ (interpreter_header_vars): Ditto.
+ (emit_package_rule_to_list): Renamed from emit_package_rule with
+ new target list parameter.
+ (emit_package_rule): Rewritten to call emit_package_rule_to_list.
+ (emit_interpreter_rule): New function.
+ (emit_source_var): Place interpreter related files in
+ interpreter_header_vars.
+ * Makefile.am (ACLOCAL_AMFLAGS): Add -I libltdl.
+ (libgcj_interpret_source_files): New variable.
+ (libgcj_la_SOURCES): Move jvmti.cc and interpret.cc to
+ libgcj_interpret_source_files and include
+ libgcj_interpret_source_files.
+ (nat_jdwp_source_files): New variable.
+ (nat_jvmti_source_files): Ditto.
+ (nat_source_files): Move jdwp and jvmti related files to
+ nat_jdwp_source_files and nat_jvmti_source_files and include
+ nat_jdwp_source_files and nat_jvmti_source_files.
+ * Makefile.in: Regenerate.
+ * include/Makefile.in: Ditto.
+ * testsuite/Makefile.in: Ditto.
+ * gcj/Makefile.in: Ditto.
+ * sources.am: Ditto.
+ * configure: Ditto.
+ * include/config.h.in: Ditto.
+ * interpret.cc: Remove #ifdef INTERPRETER block.
+ * stacktrace.cc (UnwindTraceFn): Do not handle proxy frames if
+ interpreter disabled.
+ * include/java-interp.h (_Jv_FrameType): Move outside of
+ #ifdef INTERPRETER block.
+ * include/execution.h (_Jv_IndirectCompiledEngine::do_get_closure_list,
+ _Jv_InterpreterEngine, _Jv_soleInterpreterEngine): Place in
+ #ifdef INTERPRETER block.
+ * jni.cc (jvmti.h, jvmti-int.h): Only include if INTERPRETER is
+ defined.
+ (_Jv_JNI_PopSystemFrame, _Jv_JNI_GetEnv): Only do jvmti processing
+ if INTERPRETER is defined.
+ * prims.cc (jvmti.h, jvmti-int.h, Jdwp.h, VMVirtualMachine.h): Only
+ include if INTERPRETER is defined.
+ (defaultJdwpOptions, jdwpOptions, jvmti_agent_onload_func,
+ jvmti_agent_onunload_func, jvmti_agentonload, jvmti_agentonunload,
+ jvmti_agent_opts, load_jvmti_agent): Only define if INTERPRETER is
+ defined.
+ (parse_x_arg): Only process 'runjdwp:' if INTERPRETER is defined.
+ (parse_init_args): Only process jvmti related options if
+ INTERPRETER is defined.
+ (_Jv_CreateJavaVM): Only call _Jv_JVMTI_Init if INTERPRETER is
+ defined.
+ (_Jv_RunMain): Only do jvmti and jdwp processing if INTERPRETER is
+ defined.
+ * link.cc (jvmti.h, jvmti-int.h): Only include if INTERPRETER is
+ defined.
+ (_Jv_ThrowNoClassDefFoundError, _Jv_Linker::create_error_method):
+ Define if if INTERPRETER is not defined.
+ (_Jv_Linker::wait_for_state): Only do jvmti proccessing if
+ INTERPRETER is defined.
+ * boehm.cc (closure_list_pointer, finalize_closure_list,
+ _Jv_ClosureListFinalizer): Only define if INTERPRETER is
+ defined.
+ * java/lang/natThread.cc (jvmti.h, jvmti-int.h): Only include if
+ INTERPRETER is defined.
+ (finish_, _Jv_NotifyThreadStart): Only do jvmti proccessing if
+ INTERPRETER is defined.
+ * java/lang/Class.h (_Jv_InterpreterEngine): Move declaration
+ and friend declaration inside #ifdef INTERPRETER block.
+ * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures,
+ _Jv_ClosureList::registerClosure, _Jv_GetInterpClassSourceFile):
+ Only define if INTERPRETER is defined.
+ * java/lang/reflect/natVMProxy.cc (UnsupportedOperationException.h):
+ Include.
+ (generateProxyClass): Throw UnsupportedOperationException unless
+ INTERPRETER is defined.
+
+2007-07-29 Matthias Klose <doko@ubuntu.com>
+
+ * HACKING: Document regenerating configure.
+
+2007-07-29 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR libgcj/32929
+ * aclocal.m4: Regenerated.
+ * configure: Likewise.
+
+2007-07-28 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Encode the libgcj soversion in dbexecdir,
+ pass --with-native-libdir to classpath configure.
+ * configure: Regenerate.
+
+2007-07-28 Matthias Klose <doko@ubuntu.com>
+
+ * classpath/jvmti.h: Remove.
+
2007-07-27 Tom Tromey <tromey@redhat.com>
* Rebuild .class files with new ecj.
diff --git a/libjava/HACKING b/libjava/HACKING
index dc5e144ed43..560b0f7b8eb 100644
--- a/libjava/HACKING
+++ b/libjava/HACKING
@@ -34,6 +34,22 @@ non-maintainer-mode build and use the newly installed gjavah.
--
+To regenerate libjava/configure, first run aclocal passing the flags
+found near the top of Makefile.am, then autoconf. H. J. Lu writes that
+this can be done using these commands:
+
+ cd libjava &&
+ rm -f aclocal.m4 &&
+ ACFLAGS=$(grep "^ACLOCAL_AMFLAGS" Makefile.in | sed -e "s/ACLOCAL_AMFLAGS[ \t ]*=//") &&
+ aclocal-1.9 $ACFLAGS &&
+ rm -f configure &&
+ autoconf-2.59 &&
+ rm -fr autom4te.cache
+
+See the GCC documentation which auto* versions to use.
+
+--
+
libgcj uses GNU Classpath as an upstream provider. Snapshots of
Classpath are imported into the libgcj source tree. Some classes are
overridden by local versions; these files still appear in the libgcj
@@ -88,17 +104,27 @@ To import a new release:
cd ..
scripts/makemake.tcl > sources.am
automake
+- Remove the generated class and header files:
+ find classpath -name '*.class' xargs -r rm -f
+ find gnu java javax org sun -name '*.h' \
+ | xargs -r grep -Fl 'DO NOT EDIT THIS FILE - it is machine generated' \
+ | xargs -r rm -f
- Build, fix, till everything works.
Be sure to build all peers (--enable-java-awt=gtk,xlib,qt
- --enable-gconf-peer)
+ --enable-gconf-peer --enable-gstreamer-peer)
Be sure to update gnu/classpath/Configuration.java to reflect
the new version
Possibly update the gcj/javaprims.h file with scripts/classes.pl
(See below, it can only be done after the first source->bytecode
pass has finished.)
- You will need to configure with --enable-maintainer-mode and you
+ You will need to configure with --enable-java-maintainer-mode and you
will need to update the .class files and generated CNI header files in
your working tree
+- Add/Remove newly generated files:
+ - svn status classpath | grep '^\!.*\.class$' | cut -c8- | xargs svn remove
+ - svn status classpath | grep '^\?' | cut -c8- | xargs svn add
+ - svn status gnu java javax org sun | grep '^\!.*\.h$' | cut -c8- | xargs svn remove
+ - svn status gnu java javax org sun | grep '^\?' | cut -c8- | xargs svn add
Over time we plan to remove as many of the remaining divergences as
possible.
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index ca030e15366..d840782d163 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -2,7 +2,7 @@
AUTOMAKE_OPTIONS = foreign subdir-objects
-ACLOCAL_AMFLAGS = -I . -I .. -I ../config
+ACLOCAL_AMFLAGS = -I . -I .. -I ../config -I libltdl
# May be used by various substitution variables.
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
@@ -100,6 +100,7 @@ endif
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
extra_ldflags_libjava = @extra_ldflags_libjava@
+extra_ldflags = @extra_ldflags@
if ANONVERSCRIPT
extra_ldflags_libjava += -Wl,--version-script=$(srcdir)/libgcj.ver
@@ -110,7 +111,7 @@ GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
GCJ_FOR_ECJX = @GCJ_FOR_ECJX@
GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@
LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \
- $(LDFLAGS) $(extra_ldflags_libjava) -o $@
+ $(LDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -o $@
GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
@@ -154,6 +155,12 @@ if USING_GCC
AM_CFLAGS += $(WARNINGS)
endif
+if SUPPRESS_LIBGCJ_BC
+LIBGCJ_BC_FLAGS =
+else
+LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes
+endif
+
## Extra CFLAGS used for JNI C sources shared with GNU Classpath.
PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
@@ -186,8 +193,14 @@ libgij_la_LIBADD = -L$(here)/.libs libgcj.la
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
-libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc stacktrace.cc \
- link.cc defineclass.cc interpret.cc verify.cc \
+if INTERPRETER
+libgcj_interpret_source_files = jvmti.cc interpret.cc
+else
+libgcj_interpret_source_files =
+endif
+
+libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc \
+ link.cc defineclass.cc verify.cc $(libgcj_interpret_source_files) \
$(nat_source_files)
## We need to compile at least the interpreter this way.
@@ -232,7 +245,7 @@ xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
# Include THREADLIBS here to ensure that the correct version of
# certain linuxthread functions get linked:
## The mysterious backslash in the grep pattern is consumed by make.
-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
+libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
@@ -440,7 +453,8 @@ extra_headers = java/lang/Object.h java/lang/Class.h
$(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
@:
-install-exec-hook: install-toolexeclibLTLIBRARIES install-libexecsubPROGRAMS
+install-exec-hook: install-binPROGRAMS install-toolexeclibLTLIBRARIES \
+ install-libexecsubPROGRAMS
## Support for libgcj_bc: dummy shared library used only at link-time.
if USE_LIBGCJ_BC
## Install libgcj_bc dummy lib in the target directory. We also need to delete
@@ -614,7 +628,7 @@ jv_convert_SOURCES =
## need this because we are explicitly using libtool to link using the
## `.la' file.
jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
jv_convert_LINK = $(GCJLINK)
## We don't explicitly link in the libraries we need; libgcj.la brings
## in all dependencies. We need the -L so that gcj can find libgcj
@@ -635,7 +649,7 @@ gnu/gcj/tools/gcj_dbtool/natMain.cc
## need this because we are explicitly using libtool to link using the
## `.la' file.
gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gcj_dbtool_LINK = $(GCJLINK)
## We don't explicitly link in the libraries we need; libgcj.la brings
## in all dependencies. We need the -L so that gcj can find libgcj
@@ -655,7 +669,7 @@ gc_analyze_SOURCES =
## need this because we are explicitly using libtool to link using the
## `.la' file.
gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gc_analyze_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la
@@ -668,7 +682,8 @@ gij_SOURCES =
## need this because we are explicitly using libtool to link using the
## `.la' file.
gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
- -shared-libgcc $(THREADLDFLAGS)
+ -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \
+ $(extra_gij_ldflags)
gij_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gij_LDADD = -L$(here)/.libs libgij.la
@@ -715,7 +730,7 @@ endif !NATIVE
## This is a dummy definition.
gappletviewer_SOURCES =
gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gappletviewer_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gappletviewer_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -724,7 +739,7 @@ gappletviewer_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gjarsigner_SOURCES =
gjarsigner_LDFLAGS = --main=gnu.classpath.tools.jarsigner.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gjarsigner_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gjarsigner_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -733,7 +748,7 @@ gjarsigner_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gkeytool_SOURCES =
gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gkeytool_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -742,7 +757,7 @@ gkeytool_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gjar_SOURCES =
gjar_LDFLAGS = --main=gnu.classpath.tools.jar.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gjar_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gjar_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -751,7 +766,7 @@ gjar_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gjavah_SOURCES =
gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gjavah_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gjavah_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -760,7 +775,7 @@ gjavah_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gcjh_SOURCES =
gcjh_LDFLAGS = --main=gnu.classpath.tools.javah.GcjhMain \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gcjh_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gcjh_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -769,7 +784,7 @@ gcjh_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gnative2ascii_SOURCES =
gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gnative2ascii_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gnative2ascii_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -778,7 +793,7 @@ gnative2ascii_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gorbd_SOURCES =
gorbd_LDFLAGS = --main=gnu.classpath.tools.orbd.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gorbd_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gorbd_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -787,7 +802,7 @@ gorbd_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
grmid_SOURCES =
grmid_LDFLAGS = --main=gnu.classpath.tools.rmid.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
grmid_LINK = $(GCJLINK)
## See jv_convert_LDADD.
grmid_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -796,7 +811,7 @@ grmid_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gserialver_SOURCES =
gserialver_LDFLAGS = --main=gnu.classpath.tools.serialver.SerialVer \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gserialver_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gserialver_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -805,7 +820,7 @@ gserialver_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
gtnameserv_SOURCES =
gtnameserv_LDFLAGS = --main=gnu.classpath.tools.tnameserv.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gtnameserv_LINK = $(GCJLINK)
## See jv_convert_LDADD.
gtnameserv_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -814,7 +829,7 @@ gtnameserv_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
grmic_SOURCES =
grmic_LDFLAGS = --main=gnu.classpath.tools.rmic.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
grmic_LINK = $(GCJLINK)
## See jv_convert_LDADD.
grmic_LDADD = -L$(here)/.libs libgcj-tools.la
@@ -823,19 +838,29 @@ grmic_DEPENDENCIES = libgcj-tools.la
## This is a dummy definition.
grmiregistry_SOURCES =
grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
grmiregistry_LINK = $(GCJLINK)
## See jv_convert_LDADD.
grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
grmiregistry_DEPENDENCIES = libgcj-tools.la
## ################################################################
+if INTERPRETER
+nat_jdwp_source_files = \
+gnu/classpath/jdwp/natVMFrame.cc \
+gnu/classpath/jdwp/natVMMethod.cc \
+gnu/classpath/jdwp/natVMVirtualMachine.cc
+nat_jvmti_source_files = \
+gnu/gcj/jvmti/natBreakpoint.cc \
+gnu/gcj/jvmti/natNormalBreakpoint.cc
+else
+nat_jdwp_source_files =
+nat_jvmti_source_files =
+endif
## This lists all the C++ source files in subdirectories.
nat_source_files = \
-gnu/classpath/jdwp/natVMFrame.cc \
-gnu/classpath/jdwp/natVMMethod.cc \
-gnu/classpath/jdwp/natVMVirtualMachine.cc \
+$(nat_jdwp_source_files) \
gnu/classpath/natConfiguration.cc \
gnu/classpath/natSystemProperties.cc \
gnu/classpath/natVMStackWalker.cc \
@@ -850,8 +875,7 @@ gnu/gcj/convert/natOutput_EUCJIS.cc \
gnu/gcj/convert/natOutput_SJIS.cc \
gnu/gcj/io/natSimpleSHSStream.cc \
gnu/gcj/io/shs.cc \
-gnu/gcj/jvmti/natBreakpoint.cc \
-gnu/gcj/jvmti/natNormalBreakpoint.cc \
+$(nat_jvmti_source_files) \
gnu/gcj/runtime/natFinalizerThread.cc \
gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natSystemClassLoader.cc \
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index cc460e88917..6003de5de0a 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -79,7 +79,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
@XLIB_AWT_TRUE@am__append_17 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
+ $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/confsubdir.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
@@ -155,18 +156,21 @@ lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
libgcj_tools_la_LIBADD =
am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
-am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
- gnu/classpath/debug.lo gnu/classpath/jdwp.lo \
- gnu/classpath/jdwp/event.lo \
- gnu/classpath/jdwp/event/filters.lo \
- gnu/classpath/jdwp/exception.lo gnu/classpath/jdwp/id.lo \
- gnu/classpath/jdwp/processor.lo \
- gnu/classpath/jdwp/transport.lo gnu/classpath/jdwp/util.lo \
- gnu/classpath/jdwp/value.lo gnu/gcj.lo gnu/gcj/convert.lo \
- gnu/gcj/io.lo gnu/gcj/jvmti.lo gnu/gcj/runtime.lo \
- gnu/gcj/util.lo gnu/java/awt.lo gnu/java/awt/color.lo \
- gnu/java/awt/dnd.lo gnu/java/awt/font.lo \
- gnu/java/awt/font/autofit.lo gnu/java/awt/font/opentype.lo \
+@INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/event.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/event/filters.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/exception.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/id.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/processor.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/transport.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/util.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/value.lo gnu/gcj/jvmti.lo
+am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
+ gnu/classpath/debug.lo gnu/gcj.lo gnu/gcj/convert.lo \
+ gnu/gcj/io.lo gnu/gcj/runtime.lo gnu/gcj/util.lo \
+ gnu/java/awt.lo gnu/java/awt/color.lo gnu/java/awt/dnd.lo \
+ gnu/java/awt/font.lo gnu/java/awt/font/autofit.lo \
+ gnu/java/awt/font/opentype.lo \
gnu/java/awt/font/opentype/truetype.lo gnu/java/awt/image.lo \
gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \
gnu/java/awt/peer/headless.lo gnu/java/awt/print.lo \
@@ -219,10 +223,10 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
gnu/javax/print/ipp/attribute/printer.lo \
gnu/javax/print/ipp/attribute/supported.lo \
gnu/javax/security/auth.lo gnu/javax/security/auth/callback.lo \
- gnu/javax/security/auth/login.lo gnu/javax/sound/sampled/AU.lo \
- gnu/javax/sound/sampled/WAV.lo gnu/javax/swing/plaf/gnu.lo \
- gnu/javax/swing/plaf/metal.lo gnu/javax/swing/text/html.lo \
- gnu/javax/swing/text/html/css.lo \
+ gnu/javax/security/auth/login.lo gnu/javax/sound.lo \
+ gnu/javax/sound/sampled/AU.lo gnu/javax/sound/sampled/WAV.lo \
+ gnu/javax/swing/plaf/gnu.lo gnu/javax/swing/plaf/metal.lo \
+ gnu/javax/swing/text/html.lo gnu/javax/swing/text/html/css.lo \
gnu/javax/swing/text/html/parser/GnuParserDelegator.lo \
gnu/javax/swing/text/html/parser/HTML_401F.lo \
gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.lo \
@@ -274,9 +278,10 @@ am__DEPENDENCIES_1 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
javax/swing/text/html.lo javax/swing/text/html/parser.lo \
javax/swing/text/rtf.lo javax/swing/tree.lo \
javax/swing/undo.lo javax/transaction.lo \
- javax/transaction/xa.lo org/ietf/jgss.lo sun/misc.lo \
- sun/reflect.lo sun/reflect/annotation.lo sun/reflect/misc.lo
-am__DEPENDENCIES_2 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \
+ javax/transaction/xa.lo org/ietf/jgss.lo sun/awt.lo \
+ sun/misc.lo sun/reflect.lo sun/reflect/annotation.lo \
+ sun/reflect/misc.lo $(am__DEPENDENCIES_1)
+am__DEPENDENCIES_3 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \
gnu-java-awt-peer-gtk.lo gnu-java-awt-peer-swing.lo \
gnu-java-beans.lo gnu-java-lang-management.lo \
gnu-java-util-prefs-gconf.lo gnu-javax-management.lo \
@@ -286,12 +291,12 @@ am__DEPENDENCIES_2 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \
gnu-xml-validation.lo gnu-xml-xpath.lo java-lang-management.lo \
javax-imageio.lo javax-rmi.lo javax-xml.lo org-omg.lo \
org-relaxng.lo org-w3c.lo org-xml.lo
-am__DEPENDENCIES_3 = $(patsubst classpath/resource/%,%,$(addsuffix \
+am__DEPENDENCIES_4 = $(patsubst classpath/resource/%,%,$(addsuffix \
.lo,$(property_files)))
-am__DEPENDENCIES_4 =
-am__libgcj_la_SOURCES_DIST = prims.cc jni.cc jvmti.cc exception.cc \
- stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \
- gnu/classpath/jdwp/natVMFrame.cc \
+am__DEPENDENCIES_5 =
+am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
+ stacktrace.cc link.cc defineclass.cc verify.cc jvmti.cc \
+ interpret.cc gnu/classpath/jdwp/natVMFrame.cc \
gnu/classpath/jdwp/natVMMethod.cc \
gnu/classpath/jdwp/natVMVirtualMachine.cc \
gnu/classpath/natConfiguration.cc \
@@ -355,10 +360,13 @@ am__libgcj_la_SOURCES_DIST = prims.cc jni.cc jvmti.cc exception.cc \
java/util/zip/natInflater.cc sun/misc/natUnsafe.cc boehm.cc \
nogc.cc posix.cc win32.cc darwin.cc posix-threads.cc \
win32-threads.cc no-threads.cc
-am__objects_2 = gnu/classpath/jdwp/natVMFrame.lo \
- gnu/classpath/jdwp/natVMMethod.lo \
- gnu/classpath/jdwp/natVMVirtualMachine.lo \
- gnu/classpath/natConfiguration.lo \
+@INTERPRETER_TRUE@am__objects_2 = jvmti.lo interpret.lo
+@INTERPRETER_TRUE@am__objects_3 = gnu/classpath/jdwp/natVMFrame.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/natVMMethod.lo \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/natVMVirtualMachine.lo
+@INTERPRETER_TRUE@am__objects_4 = gnu/gcj/jvmti/natBreakpoint.lo \
+@INTERPRETER_TRUE@ gnu/gcj/jvmti/natNormalBreakpoint.lo
+am__objects_5 = $(am__objects_3) gnu/classpath/natConfiguration.lo \
gnu/classpath/natSystemProperties.lo \
gnu/classpath/natVMStackWalker.lo gnu/gcj/natCore.lo \
gnu/gcj/convert/JIS0208_to_Unicode.lo \
@@ -369,9 +377,7 @@ am__objects_2 = gnu/classpath/jdwp/natVMFrame.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/jvmti/natBreakpoint.lo \
- gnu/gcj/jvmti/natNormalBreakpoint.lo \
- gnu/gcj/runtime/natFinalizerThread.lo \
+ $(am__objects_4) gnu/gcj/runtime/natFinalizerThread.lo \
gnu/gcj/runtime/natSharedLibLoader.lo \
gnu/gcj/runtime/natSystemClassLoader.lo \
gnu/gcj/runtime/natStringBuffer.lo gnu/gcj/util/natDebug.lo \
@@ -417,19 +423,19 @@ am__objects_2 = gnu/classpath/jdwp/natVMFrame.lo \
java/util/concurrent/atomic/natAtomicLong.lo \
java/util/logging/natLogger.lo java/util/zip/natDeflater.lo \
java/util/zip/natInflater.lo sun/misc/natUnsafe.lo
-@USING_BOEHMGC_TRUE@am__objects_3 = boehm.lo
-@USING_NOGC_TRUE@am__objects_4 = nogc.lo
-@USING_POSIX_PLATFORM_TRUE@am__objects_5 = posix.lo
-@USING_WIN32_PLATFORM_TRUE@am__objects_6 = win32.lo
-@USING_DARWIN_CRT_TRUE@am__objects_7 = darwin.lo
-@USING_POSIX_THREADS_TRUE@am__objects_8 = posix-threads.lo
-@USING_WIN32_THREADS_TRUE@am__objects_9 = win32-threads.lo
-@USING_NO_THREADS_TRUE@am__objects_10 = no-threads.lo
-am_libgcj_la_OBJECTS = prims.lo jni.lo jvmti.lo exception.lo \
- stacktrace.lo link.lo defineclass.lo interpret.lo verify.lo \
- $(am__objects_2) $(am__objects_3) $(am__objects_4) \
+@USING_BOEHMGC_TRUE@am__objects_6 = boehm.lo
+@USING_NOGC_TRUE@am__objects_7 = nogc.lo
+@USING_POSIX_PLATFORM_TRUE@am__objects_8 = posix.lo
+@USING_WIN32_PLATFORM_TRUE@am__objects_9 = win32.lo
+@USING_DARWIN_CRT_TRUE@am__objects_10 = darwin.lo
+@USING_POSIX_THREADS_TRUE@am__objects_11 = posix-threads.lo
+@USING_WIN32_THREADS_TRUE@am__objects_12 = win32-threads.lo
+@USING_NO_THREADS_TRUE@am__objects_13 = no-threads.lo
+am_libgcj_la_OBJECTS = prims.lo jni.lo exception.lo stacktrace.lo \
+ link.lo defineclass.lo verify.lo $(am__objects_2) \
$(am__objects_5) $(am__objects_6) $(am__objects_7) \
- $(am__objects_8) $(am__objects_9) $(am__objects_10)
+ $(am__objects_8) $(am__objects_9) $(am__objects_10) \
+ $(am__objects_11) $(am__objects_12) $(am__objects_13)
libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS)
am_libgcj_bc_la_OBJECTS = libgcj_bc.lo
libgcj_bc_la_OBJECTS = $(am_libgcj_bc_la_OBJECTS)
@@ -624,6 +630,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+INTERPRETER_FALSE = @INTERPRETER_FALSE@
+INTERPRETER_TRUE = @INTERPRETER_TRUE@
JAR = @JAR@
JAVA_HOME = @JAVA_HOME@
JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
@@ -651,6 +659,7 @@ LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
@@ -680,6 +689,8 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SUPPRESS_LIBGCJ_BC_FALSE = @SUPPRESS_LIBGCJ_BC_FALSE@
+SUPPRESS_LIBGCJ_BC_TRUE = @SUPPRESS_LIBGCJ_BC_TRUE@
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
@@ -758,6 +769,8 @@ build_vendor = @build_vendor@
datadir = @datadir@
dbexecdir = @dbexecdir@
exec_prefix = @exec_prefix@
+extra_gij_ldflags = @extra_gij_ldflags@
+extra_ldflags = @extra_ldflags@
extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_5)
gxx_include_dir = @gxx_include_dir@
here = @here@
@@ -800,7 +813,7 @@ toolexecdir = @toolexecdir@
toolexeclibdir = @toolexeclibdir@
toolexecmainlibdir = @toolexecmainlibdir@
AUTOMAKE_OPTIONS = foreign subdir-objects
-ACLOCAL_AMFLAGS = -I . -I .. -I ../config
+ACLOCAL_AMFLAGS = -I . -I .. -I ../config -I libltdl
# May be used by various substitution variables.
gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
@@ -840,7 +853,7 @@ GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
GCJ_FOR_ECJX_LINK = $(GCJ_FOR_ECJX) -o $@
LIBLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXX) -L$(here) $(JC1FLAGS) \
- $(LDFLAGS) $(extra_ldflags_libjava) -o $@
+ $(LDFLAGS) $(extra_ldflags_libjava) $(extra_ldflags) -o $@
WARNINGS = -Wextra -Wall
AM_CXXFLAGS = \
@@ -872,6 +885,8 @@ AM_GCJFLAGS = \
-Wno-deprecated -fbootstrap-classes
AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_6)
+@SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes
+@SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS =
PEDANTIC_CFLAGS = -ansi -pedantic -Wall -Wno-long-long
JCFLAGS = -g
JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
@@ -890,8 +905,10 @@ libgij_la_LIBADD = -L$(here)/.libs libgcj.la
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
-libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc \
- stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \
+@INTERPRETER_FALSE@libgcj_interpret_source_files =
+@INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc
+libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
+ defineclass.cc verify.cc $(libgcj_interpret_source_files) \
$(nat_source_files) $(am__append_7) $(am__append_8) \
$(am__append_9) $(am__append_10) $(am__append_11) \
$(am__append_12) $(am__append_13) $(am__append_14)
@@ -900,7 +917,7 @@ xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
# Include THREADLIBS here to ensure that the correct version of
# certain linuxthread functions get linked:
-libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
+libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
$(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
@@ -1514,12 +1531,14 @@ classpath/gnu/java/awt/java2d/AlphaCompositeContext.java \
classpath/gnu/java/awt/java2d/CubicSegment.java \
classpath/gnu/java/awt/java2d/ImagePaint.java \
classpath/gnu/java/awt/java2d/LineSegment.java \
+classpath/gnu/java/awt/java2d/Pixelizer.java \
classpath/gnu/java/awt/java2d/PolyEdge.java \
classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \
classpath/gnu/java/awt/java2d/QuadSegment.java \
classpath/gnu/java/awt/java2d/RasterGraphics.java \
classpath/gnu/java/awt/java2d/Scanline.java \
classpath/gnu/java/awt/java2d/ScanlineConverter.java \
+classpath/gnu/java/awt/java2d/ScanlineCoverage.java \
classpath/gnu/java/awt/java2d/Segment.java \
classpath/gnu/java/awt/java2d/ShapeCache.java \
classpath/gnu/java/awt/java2d/TexturePaintContext.java
@@ -1640,6 +1659,7 @@ classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
gnu_java_awt_peer_swing_source_files = \
classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java \
classpath/gnu/java/awt/peer/swing/SwingCanvasPeer.java \
+classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java \
classpath/gnu/java/awt/peer/swing/SwingComponent.java \
classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java \
classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java \
@@ -1659,20 +1679,19 @@ gnu_java_awt_peer_x_source_files = \
classpath/gnu/java/awt/peer/x/GLGraphics.java \
classpath/gnu/java/awt/peer/x/ImageConverter.java \
classpath/gnu/java/awt/peer/x/KeyboardMapping.java \
+classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java \
classpath/gnu/java/awt/peer/x/XDialogPeer.java \
classpath/gnu/java/awt/peer/x/XEventPump.java \
-classpath/gnu/java/awt/peer/x/XFontPeer.java \
classpath/gnu/java/awt/peer/x/XFontPeer2.java \
classpath/gnu/java/awt/peer/x/XFramePeer.java \
-classpath/gnu/java/awt/peer/x/XGraphics.java \
classpath/gnu/java/awt/peer/x/XGraphics2D.java \
classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \
classpath/gnu/java/awt/peer/x/XGraphicsDevice.java \
classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java \
classpath/gnu/java/awt/peer/x/XImage.java \
-classpath/gnu/java/awt/peer/x/XLightweightPeer.java \
classpath/gnu/java/awt/peer/x/XToolkit.java \
-classpath/gnu/java/awt/peer/x/XWindowPeer.java
+classpath/gnu/java/awt/peer/x/XWindowPeer.java \
+classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
gnu_java_awt_print_source_files = \
classpath/gnu/java/awt/print/JavaPrinterGraphics.java \
@@ -3211,6 +3230,10 @@ classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java \
classpath/gnu/javax/security/auth/login/GnuConfiguration.java
gnu_javax_security_auth_login_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_security_auth_login_source_files)))
+gnu_javax_sound_source_files = \
+classpath/gnu/javax/sound/AudioSecurityManager.java
+
+gnu_javax_sound_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_sound_source_files)))
gnu_javax_sound_midi_source_files = \
classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java \
classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java \
@@ -4513,6 +4536,7 @@ classpath/java/nio/ByteBufferImpl.java \
classpath/java/nio/ByteOrder.java \
classpath/java/nio/CharBuffer.java \
classpath/java/nio/CharBufferImpl.java \
+classpath/java/nio/CharSequenceBuffer.java \
classpath/java/nio/CharViewBufferImpl.java \
java/nio/DirectByteBufferImpl.java \
classpath/java/nio/DoubleBuffer.java \
@@ -7285,6 +7309,10 @@ classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java \
classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java \
classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java
+sun_awt_source_files = \
+classpath/sun/awt/CausedFocusEvent.java
+
+sun_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_awt_source_files)))
sun_misc_source_files = \
classpath/sun/misc/Service.java \
classpath/sun/misc/ServiceConfigurationError.java \
@@ -7307,24 +7335,40 @@ sun_reflect_misc_source_files = \
sun/reflect/misc/ReflectUtil.java
sun_reflect_misc_header_files = $(patsubst %.java,%.h,$(sun_reflect_misc_source_files))
+@INTERPRETER_FALSE@interpreter_packages_source_files =
+@INTERPRETER_TRUE@interpreter_packages_source_files = \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/event.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/event/filters.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/exception.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/id.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/processor.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/transport.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/util.list \
+@INTERPRETER_TRUE@ gnu/classpath/jdwp/value.list \
+@INTERPRETER_TRUE@ gnu/gcj/jvmti.list
+
+@INTERPRETER_FALSE@interpreter_header_files =
+@INTERPRETER_TRUE@interpreter_header_files = \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_event_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_event_filters_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_exception_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_id_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_processor_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_transport_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_util_header_files) \
+@INTERPRETER_TRUE@ $(gnu_classpath_jdwp_value_header_files) \
+@INTERPRETER_TRUE@ $(gnu_gcj_jvmti_header_files)
+
all_packages_source_files = \
gnu/awt.list \
gnu/awt/j2d.list \
gnu/classpath.list \
gnu/classpath/debug.list \
- gnu/classpath/jdwp.list \
- gnu/classpath/jdwp/event.list \
- gnu/classpath/jdwp/event/filters.list \
- gnu/classpath/jdwp/exception.list \
- gnu/classpath/jdwp/id.list \
- gnu/classpath/jdwp/processor.list \
- gnu/classpath/jdwp/transport.list \
- gnu/classpath/jdwp/util.list \
- gnu/classpath/jdwp/value.list \
gnu/gcj.list \
gnu/gcj/convert.list \
gnu/gcj/io.list \
- gnu/gcj/jvmti.list \
gnu/gcj/runtime.list \
gnu/gcj/util.list \
gnu/java/awt.list \
@@ -7434,6 +7478,7 @@ all_packages_source_files = \
gnu/javax/security/auth.list \
gnu/javax/security/auth/callback.list \
gnu/javax/security/auth/login.list \
+ gnu/javax/sound.list \
gnu/javax/sound/sampled/AU.list \
gnu/javax/sound/sampled/WAV.list \
gnu/javax/swing/plaf/gnu.list \
@@ -7555,29 +7600,21 @@ all_packages_source_files = \
javax/transaction.list \
javax/transaction/xa.list \
org/ietf/jgss.list \
+ sun/awt.list \
sun/misc.list \
sun/reflect.list \
sun/reflect/annotation.list \
- sun/reflect/misc.list
+ sun/reflect/misc.list \
+ $(interpreter_packages_source_files)
ordinary_header_files = \
$(gnu_awt_header_files) \
$(gnu_awt_j2d_header_files) \
$(gnu_classpath_header_files) \
$(gnu_classpath_debug_header_files) \
- $(gnu_classpath_jdwp_header_files) \
- $(gnu_classpath_jdwp_event_header_files) \
- $(gnu_classpath_jdwp_event_filters_header_files) \
- $(gnu_classpath_jdwp_exception_header_files) \
- $(gnu_classpath_jdwp_id_header_files) \
- $(gnu_classpath_jdwp_processor_header_files) \
- $(gnu_classpath_jdwp_transport_header_files) \
- $(gnu_classpath_jdwp_util_header_files) \
- $(gnu_classpath_jdwp_value_header_files) \
$(gnu_gcj_header_files) \
$(gnu_gcj_convert_header_files) \
$(gnu_gcj_io_header_files) \
- $(gnu_gcj_jvmti_header_files) \
$(gnu_gcj_runtime_header_files) \
$(gnu_gcj_tools_gcj_dbtool_header_files) \
$(gnu_gcj_util_header_files) \
@@ -7689,6 +7726,7 @@ ordinary_header_files = \
$(gnu_javax_security_auth_header_files) \
$(gnu_javax_security_auth_callback_header_files) \
$(gnu_javax_security_auth_login_header_files) \
+ $(gnu_javax_sound_header_files) \
$(gnu_javax_sound_sampled_AU_header_files) \
$(gnu_javax_sound_sampled_WAV_header_files) \
$(gnu_javax_swing_plaf_gnu_header_files) \
@@ -7805,10 +7843,12 @@ ordinary_header_files = \
$(javax_transaction_header_files) \
$(javax_transaction_xa_header_files) \
$(org_ietf_jgss_header_files) \
+ $(sun_awt_header_files) \
$(sun_misc_header_files) \
$(sun_reflect_header_files) \
$(sun_reflect_annotation_header_files) \
- $(sun_reflect_misc_header_files)
+ $(sun_reflect_misc_header_files) \
+ $(interpreter_header_files)
bc_objects = \
gnu-CORBA.lo \
@@ -7913,7 +7953,7 @@ extra_headers = java/lang/Object.h java/lang/Class.h
jv_convert_SOURCES =
jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
jv_convert_LINK = $(GCJLINK)
jv_convert_LDADD = -L$(here)/.libs libgcj.la
@@ -7922,21 +7962,22 @@ gcj_dbtool_SOURCES = \
gnu/gcj/tools/gcj_dbtool/natMain.cc
gcj_dbtool_LDFLAGS = --main=gnu.gcj.tools.gcj_dbtool.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gcj_dbtool_LINK = $(GCJLINK)
gcj_dbtool_LDADD = gnu/gcj/tools/gcj_dbtool.lo -L$(here)/.libs libgcj.la
gcj_dbtool_DEPENDENCIES = gnu/gcj/tools/gcj_dbtool.lo libgcj.la libgcj.spec
gc_analyze_SOURCES =
gc_analyze_LDFLAGS = --main=gnu.gcj.tools.gc_analyze.MemoryAnalyze \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gc_analyze_LINK = $(GCJLINK)
gc_analyze_LDADD = -L$(here)/.libs libgcj-tools.la libgcj.la
gc_analyze_DEPENDENCIES = libgcj-tools.la libgcj.la libgcj.spec
gij_SOURCES =
gij_LDFLAGS = -rpath $(dbexecdir) -rpath $(toolexeclibdir) \
- -shared-libgcc $(THREADLDFLAGS)
+ -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags) \
+ $(extra_gij_ldflags)
gij_LINK = $(GCJLINK)
gij_LDADD = -L$(here)/.libs libgij.la
@@ -7957,99 +7998,108 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
@NATIVE_TRUE@ $(am__append_16)
gappletviewer_SOURCES =
gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gappletviewer_LINK = $(GCJLINK)
gappletviewer_LDADD = -L$(here)/.libs libgcj-tools.la
gappletviewer_DEPENDENCIES = libgcj-tools.la
gjarsigner_SOURCES =
gjarsigner_LDFLAGS = --main=gnu.classpath.tools.jarsigner.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gjarsigner_LINK = $(GCJLINK)
gjarsigner_LDADD = -L$(here)/.libs libgcj-tools.la
gjarsigner_DEPENDENCIES = libgcj-tools.la
gkeytool_SOURCES =
gkeytool_LDFLAGS = --main=gnu.classpath.tools.keytool.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gkeytool_LINK = $(GCJLINK)
gkeytool_LDADD = -L$(here)/.libs libgcj-tools.la
gkeytool_DEPENDENCIES = libgcj-tools.la
gjar_SOURCES =
gjar_LDFLAGS = --main=gnu.classpath.tools.jar.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gjar_LINK = $(GCJLINK)
gjar_LDADD = -L$(here)/.libs libgcj-tools.la
gjar_DEPENDENCIES = libgcj-tools.la
gjavah_SOURCES =
gjavah_LDFLAGS = --main=gnu.classpath.tools.javah.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gjavah_LINK = $(GCJLINK)
gjavah_LDADD = -L$(here)/.libs libgcj-tools.la
gjavah_DEPENDENCIES = libgcj-tools.la
gcjh_SOURCES =
gcjh_LDFLAGS = --main=gnu.classpath.tools.javah.GcjhMain \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gcjh_LINK = $(GCJLINK)
gcjh_LDADD = -L$(here)/.libs libgcj-tools.la
gcjh_DEPENDENCIES = libgcj-tools.la
gnative2ascii_SOURCES =
gnative2ascii_LDFLAGS = --main=gnu.classpath.tools.native2ascii.Native2ASCII \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gnative2ascii_LINK = $(GCJLINK)
gnative2ascii_LDADD = -L$(here)/.libs libgcj-tools.la
gnative2ascii_DEPENDENCIES = libgcj-tools.la
gorbd_SOURCES =
gorbd_LDFLAGS = --main=gnu.classpath.tools.orbd.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gorbd_LINK = $(GCJLINK)
gorbd_LDADD = -L$(here)/.libs libgcj-tools.la
gorbd_DEPENDENCIES = libgcj-tools.la
grmid_SOURCES =
grmid_LDFLAGS = --main=gnu.classpath.tools.rmid.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
grmid_LINK = $(GCJLINK)
grmid_LDADD = -L$(here)/.libs libgcj-tools.la
grmid_DEPENDENCIES = libgcj-tools.la
gserialver_SOURCES =
gserialver_LDFLAGS = --main=gnu.classpath.tools.serialver.SerialVer \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gserialver_LINK = $(GCJLINK)
gserialver_LDADD = -L$(here)/.libs libgcj-tools.la
gserialver_DEPENDENCIES = libgcj-tools.la
gtnameserv_SOURCES =
gtnameserv_LDFLAGS = --main=gnu.classpath.tools.tnameserv.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
gtnameserv_LINK = $(GCJLINK)
gtnameserv_LDADD = -L$(here)/.libs libgcj-tools.la
gtnameserv_DEPENDENCIES = libgcj-tools.la
grmic_SOURCES =
grmic_LDFLAGS = --main=gnu.classpath.tools.rmic.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
grmic_LINK = $(GCJLINK)
grmic_LDADD = -L$(here)/.libs libgcj-tools.la
grmic_DEPENDENCIES = libgcj-tools.la
grmiregistry_SOURCES =
grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \
- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
grmiregistry_LINK = $(GCJLINK)
grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
grmiregistry_DEPENDENCIES = libgcj-tools.la
+@INTERPRETER_FALSE@nat_jdwp_source_files =
+@INTERPRETER_TRUE@nat_jdwp_source_files = \
+@INTERPRETER_TRUE@gnu/classpath/jdwp/natVMFrame.cc \
+@INTERPRETER_TRUE@gnu/classpath/jdwp/natVMMethod.cc \
+@INTERPRETER_TRUE@gnu/classpath/jdwp/natVMVirtualMachine.cc
+
+@INTERPRETER_FALSE@nat_jvmti_source_files =
+@INTERPRETER_TRUE@nat_jvmti_source_files = \
+@INTERPRETER_TRUE@gnu/gcj/jvmti/natBreakpoint.cc \
+@INTERPRETER_TRUE@gnu/gcj/jvmti/natNormalBreakpoint.cc
+
nat_source_files = \
-gnu/classpath/jdwp/natVMFrame.cc \
-gnu/classpath/jdwp/natVMMethod.cc \
-gnu/classpath/jdwp/natVMVirtualMachine.cc \
+$(nat_jdwp_source_files) \
gnu/classpath/natConfiguration.cc \
gnu/classpath/natSystemProperties.cc \
gnu/classpath/natVMStackWalker.cc \
@@ -8064,8 +8114,7 @@ gnu/gcj/convert/natOutput_EUCJIS.cc \
gnu/gcj/convert/natOutput_SJIS.cc \
gnu/gcj/io/natSimpleSHSStream.cc \
gnu/gcj/io/shs.cc \
-gnu/gcj/jvmti/natBreakpoint.cc \
-gnu/gcj/jvmti/natNormalBreakpoint.cc \
+$(nat_jvmti_source_files) \
gnu/gcj/runtime/natFinalizerThread.cc \
gnu/gcj/runtime/natSharedLibLoader.cc \
gnu/gcj/runtime/natSystemClassLoader.cc \
@@ -9726,7 +9775,7 @@ distclean-tags:
distdir: $(DISTFILES)
$(am__remove_distdir)
mkdir $(distdir)
- $(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/../config $(distdir)/scripts
+ $(mkdir_p) $(distdir)/. $(distdir)/.. $(distdir)/../config $(distdir)/libltdl $(distdir)/scripts
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
@@ -10113,7 +10162,7 @@ java/lang/Class.lo: classpath/lib/java/lang/Class.class
gnu-CORBA.lo: $(gnu_CORBA_source_files)
@find $(srcdir)/classpath/lib/gnu/CORBA -name '*.class' > gnu-CORBA.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-CORBA.lo @gnu-CORBA.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-CORBA.lo @gnu-CORBA.list
@rm -f gnu-CORBA.list
gnu/awt.list: $(gnu_awt_source_files)
@@ -10268,7 +10317,7 @@ gnu/java/awt/dnd.list: $(gnu_java_awt_dnd_source_files)
gnu-java-awt-dnd-peer-gtk.lo: $(gnu_java_awt_dnd_peer_gtk_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/dnd/peer/gtk -name '*.class' > gnu-java-awt-dnd-peer-gtk.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-dnd-peer-gtk.lo @gnu-java-awt-dnd-peer-gtk.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-dnd-peer-gtk.lo @gnu-java-awt-dnd-peer-gtk.list
@rm -f gnu-java-awt-dnd-peer-gtk.list
gnu/java/awt/font.list: $(gnu_java_awt_font_source_files)
@@ -10315,7 +10364,7 @@ gnu/java/awt/peer.list: $(gnu_java_awt_peer_source_files)
gnu-java-awt-peer-gtk.lo: $(gnu_java_awt_peer_gtk_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/gtk -name '*.class' > gnu-java-awt-peer-gtk.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-gtk.lo @gnu-java-awt-peer-gtk.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-gtk.lo @gnu-java-awt-peer-gtk.list
@rm -f gnu-java-awt-peer-gtk.list
gnu/java/awt/peer/headless.list: $(gnu_java_awt_peer_headless_source_files)
@@ -10326,17 +10375,17 @@ gnu/java/awt/peer/headless.list: $(gnu_java_awt_peer_headless_source_files)
gnu-java-awt-peer-qt.lo: $(gnu_java_awt_peer_qt_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/qt -name '*.class' > gnu-java-awt-peer-qt.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-qt.lo @gnu-java-awt-peer-qt.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-qt.lo @gnu-java-awt-peer-qt.list
@rm -f gnu-java-awt-peer-qt.list
gnu-java-awt-peer-swing.lo: $(gnu_java_awt_peer_swing_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/swing -name '*.class' > gnu-java-awt-peer-swing.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-swing.lo @gnu-java-awt-peer-swing.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-swing.lo @gnu-java-awt-peer-swing.list
@rm -f gnu-java-awt-peer-swing.list
gnu-java-awt-peer-x.lo: $(gnu_java_awt_peer_x_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/x -name '*.class' > gnu-java-awt-peer-x.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-x.lo @gnu-java-awt-peer-x.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-x.lo @gnu-java-awt-peer-x.list
@rm -f gnu-java-awt-peer-x.list
gnu/java/awt/print.list: $(gnu_java_awt_print_source_files)
@@ -10347,7 +10396,7 @@ gnu/java/awt/print.list: $(gnu_java_awt_print_source_files)
gnu-java-beans.lo: $(gnu_java_beans_source_files)
@find $(srcdir)/classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-beans.lo @gnu-java-beans.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-beans.lo @gnu-java-beans.list
@rm -f gnu-java-beans.list
gnu/java/io.list: $(gnu_java_io_source_files)
@@ -10364,7 +10413,7 @@ gnu/java/lang.list: $(gnu_java_lang_source_files)
gnu-java-lang-management.lo: $(gnu_java_lang_management_source_files)
@find $(srcdir)/classpath/lib/gnu/java/lang/management -name '*.class' > gnu-java-lang-management.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -findirect-dispatch -fno-indirect-classes -c -o gnu-java-lang-management.lo @gnu-java-lang-management.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes $(LIBGCJ_BC_FLAGS) -c -o gnu-java-lang-management.lo @gnu-java-lang-management.list
@rm -f gnu-java-lang-management.list
gnu/java/lang/reflect.list: $(gnu_java_lang_reflect_source_files)
@@ -10639,7 +10688,7 @@ gnu/java/util/prefs.list: $(gnu_java_util_prefs_source_files)
gnu-java-util-prefs-gconf.lo: $(gnu_java_util_prefs_gconf_source_files)
@find $(srcdir)/classpath/lib/gnu/java/util/prefs/gconf -name '*.class' > gnu-java-util-prefs-gconf.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-util-prefs-gconf.lo @gnu-java-util-prefs-gconf.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-util-prefs-gconf.lo @gnu-java-util-prefs-gconf.list
@rm -f gnu-java-util-prefs-gconf.list
gnu/java/util/regex.list: $(gnu_java_util_regex_source_files)
@@ -10836,7 +10885,7 @@ gnu/javax/imageio/png.list: $(gnu_javax_imageio_png_source_files)
gnu-javax-management.lo: $(gnu_javax_management_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/management -name '*.class' > gnu-javax-management.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-management.lo @gnu-javax-management.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-javax-management.lo @gnu-javax-management.list
@rm -f gnu-javax-management.list
gnu/javax/naming/giop.list: $(gnu_javax_naming_giop_source_files)
@@ -10919,7 +10968,7 @@ gnu/javax/print/ipp/attribute/supported.list: $(gnu_javax_print_ipp_attribute_su
gnu-javax-rmi.lo: $(gnu_javax_rmi_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/rmi -name '*.class' > gnu-javax-rmi.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-rmi.lo @gnu-javax-rmi.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-javax-rmi.lo @gnu-javax-rmi.list
@rm -f gnu-javax-rmi.list
gnu/javax/security/auth.list: $(gnu_javax_security_auth_source_files)
@@ -10940,9 +10989,15 @@ gnu/javax/security/auth/login.list: $(gnu_javax_security_auth_login_source_files
-include gnu/javax/security/auth/login.deps
+gnu/javax/sound.list: $(gnu_javax_sound_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/gnu/javax/sound/*.class > gnu/javax/sound.list
+
+-include gnu/javax/sound.deps
+
gnu-javax-sound-midi.lo: $(gnu_javax_sound_midi_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list
@rm -f gnu-javax-sound-midi.list
gnu/javax/sound/sampled/AU.list: $(gnu_javax_sound_sampled_AU_source_files)
@@ -11043,47 +11098,47 @@ gnu/javax/swing/tree.list: $(gnu_javax_swing_tree_source_files)
gnu-xml-aelfred2.lo: $(gnu_xml_aelfred2_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/aelfred2 -name '*.class' > gnu-xml-aelfred2.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-aelfred2.lo @gnu-xml-aelfred2.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-aelfred2.lo @gnu-xml-aelfred2.list
@rm -f gnu-xml-aelfred2.list
gnu-xml-dom.lo: $(gnu_xml_dom_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/dom -name '*.class' > gnu-xml-dom.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-dom.lo @gnu-xml-dom.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-dom.lo @gnu-xml-dom.list
@rm -f gnu-xml-dom.list
gnu-xml-libxmlj.lo: $(gnu_xml_libxmlj_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/libxmlj -name '*.class' > gnu-xml-libxmlj.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-libxmlj.lo @gnu-xml-libxmlj.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-libxmlj.lo @gnu-xml-libxmlj.list
@rm -f gnu-xml-libxmlj.list
gnu-xml-pipeline.lo: $(gnu_xml_pipeline_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/pipeline -name '*.class' > gnu-xml-pipeline.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-pipeline.lo @gnu-xml-pipeline.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-pipeline.lo @gnu-xml-pipeline.list
@rm -f gnu-xml-pipeline.list
gnu-xml-stream.lo: $(gnu_xml_stream_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/stream -name '*.class' > gnu-xml-stream.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-stream.lo @gnu-xml-stream.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-stream.lo @gnu-xml-stream.list
@rm -f gnu-xml-stream.list
gnu-xml-transform.lo: $(gnu_xml_transform_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/transform -name '*.class' > gnu-xml-transform.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-transform.lo @gnu-xml-transform.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-transform.lo @gnu-xml-transform.list
@rm -f gnu-xml-transform.list
gnu-xml-util.lo: $(gnu_xml_util_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/util -name '*.class' > gnu-xml-util.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-util.lo @gnu-xml-util.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-util.lo @gnu-xml-util.list
@rm -f gnu-xml-util.list
gnu-xml-validation.lo: $(gnu_xml_validation_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/validation -name '*.class' > gnu-xml-validation.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-validation.lo @gnu-xml-validation.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-validation.lo @gnu-xml-validation.list
@rm -f gnu-xml-validation.list
gnu-xml-xpath.lo: $(gnu_xml_xpath_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/xpath -name '*.class' > gnu-xml-xpath.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-xpath.lo @gnu-xml-xpath.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-xpath.lo @gnu-xml-xpath.list
@rm -f gnu-xml-xpath.list
java/applet.list: $(java_applet_source_files)
@@ -11214,7 +11269,7 @@ java/lang/instrument.list: $(java_lang_instrument_source_files)
java-lang-management.lo: $(java_lang_management_source_files)
@find $(srcdir)/classpath/lib/java/lang/management -name '*.class' > java-lang-management.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o java-lang-management.lo @java-lang-management.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o java-lang-management.lo @java-lang-management.list
@rm -f java-lang-management.list
java/lang/ref.list: $(java_lang_ref_source_files)
@@ -11441,7 +11496,7 @@ javax/crypto/spec.list: $(javax_crypto_spec_source_files)
javax-imageio.lo: $(javax_imageio_source_files)
@find $(srcdir)/classpath/lib/javax/imageio -name '*.class' > javax-imageio.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-imageio.lo @javax-imageio.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o javax-imageio.lo @javax-imageio.list
@rm -f javax-imageio.list
javax/management.list: $(javax_management_source_files)
@@ -11530,7 +11585,7 @@ javax/print/event.list: $(javax_print_event_source_files)
javax-rmi.lo: $(javax_rmi_source_files)
@find $(srcdir)/classpath/lib/javax/rmi -name '*.class' > javax-rmi.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-rmi.lo @javax-rmi.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o javax-rmi.lo @javax-rmi.list
@rm -f javax-rmi.list
javax/security/auth.list: $(javax_security_auth_source_files)
@@ -11727,7 +11782,7 @@ javax/transaction/xa.list: $(javax_transaction_xa_source_files)
javax-xml.lo: $(javax_xml_source_files)
@find $(srcdir)/classpath/lib/javax/xml -name '*.class' > javax-xml.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-xml.lo @javax-xml.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o javax-xml.lo @javax-xml.list
@rm -f javax-xml.list
org/ietf/jgss.list: $(org_ietf_jgss_source_files)
@@ -11738,24 +11793,30 @@ org/ietf/jgss.list: $(org_ietf_jgss_source_files)
org-omg.lo: $(org_omg_source_files)
@find $(srcdir)/classpath/lib/org/omg -name '*.class' > org-omg.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-omg.lo @org-omg.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-omg.lo @org-omg.list
@rm -f org-omg.list
org-relaxng.lo: $(org_relaxng_source_files)
@find $(srcdir)/classpath/lib/org/relaxng -name '*.class' > org-relaxng.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-relaxng.lo @org-relaxng.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-relaxng.lo @org-relaxng.list
@rm -f org-relaxng.list
org-w3c.lo: $(org_w3c_source_files)
@find $(srcdir)/classpath/lib/org/w3c -name '*.class' > org-w3c.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-w3c.lo @org-w3c.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-w3c.lo @org-w3c.list
@rm -f org-w3c.list
org-xml.lo: $(org_xml_source_files)
@find $(srcdir)/classpath/lib/org/xml -name '*.class' > org-xml.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-xml.lo @org-xml.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-xml.lo @org-xml.list
@rm -f org-xml.list
+sun/awt.list: $(sun_awt_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/sun/awt/*.class > sun/awt.list
+
+-include sun/awt.deps
+
sun/misc.list: $(sun_misc_source_files)
@$(mkinstalldirs) $(dir $@)
echo $(srcdir)/classpath/lib/sun/misc/*.class > sun/misc.list
@@ -11808,7 +11869,8 @@ gcjh.stamp: classpath/lib/compile-classes
$(extra_headers) $(srcdir)/java/lang/Object.h $(srcdir)/java/lang/Class.h:
@:
-install-exec-hook: install-toolexeclibLTLIBRARIES install-libexecsubPROGRAMS
+install-exec-hook: install-binPROGRAMS install-toolexeclibLTLIBRARIES \
+ install-libexecsubPROGRAMS
@USE_LIBGCJ_BC_TRUE@ @echo Installing dummy lib libgcj_bc.so.1.0.0; \
@USE_LIBGCJ_BC_TRUE@ rm $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
@USE_LIBGCJ_BC_TRUE@ mv $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so.1.0.0 $(DESTDIR)$(toolexeclibdir)/libgcj_bc.so; \
diff --git a/libjava/aclocal.m4 b/libjava/aclocal.m4
index 638c7daa45a..0d35c898868 100644
--- a/libjava/aclocal.m4
+++ b/libjava/aclocal.m4
@@ -11,6402 +11,6 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-
-# serial 48 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
- [],
- [m4_define([AC_PROVIDE_IFELSE],
- [m4_ifdef([AC_PROVIDE_$1],
- [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
- AC_PROVIDE_IFELSE([AC_PROG_CXX],
- [AC_LIBTOOL_CXX],
- [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
- ])])
-dnl And a similar setup for Fortran 77 support
- AC_PROVIDE_IFELSE([AC_PROG_F77],
- [AC_LIBTOOL_F77],
- [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
- AC_PROVIDE_IFELSE([AC_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
- [AC_LIBTOOL_GCJ],
- [ifdef([AC_PROG_GCJ],
- [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
- ifdef([A][M_PROG_GCJ],
- [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
- ifdef([LT_AC_PROG_GCJ],
- [define([LT_AC_PROG_GCJ],
- defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
- fi
- ;;
-esac
-
-# Sed substitution that helps us do robust quoting. It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- AC_PATH_MAGIC
- fi
- ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
- [AC_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
- [AC_HELP_STRING([--with-pic],
- [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
- [pic_mode="$withval"],
- [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
-AC_DEFUN([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
- case $cc_temp in
- compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
- distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
-])
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-AC_DEFUN([_LT_COMPILER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$rm conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-AC_DEFUN([_LT_LINKER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
-])# _LT_LINKER_BOILERPLATE
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
- [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
- [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
- # Remove one level of quotation (which was required for Make).
- ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
- ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
- # Discard the --no-reexec flag, and continue.
- shift
-elif test "X[$]1" = X--fallback-echo; then
- # Avoid inline document here, it may be left over
- :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
- # Yippee, $echo works!
- :
-else
- # Restart under the correct shell.
- exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
- # used as fallback echo
- shift
- cat <<EOF
-[$]*
-EOF
- exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
- for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
- # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
- if (echo_test_string=`eval $cmd`) 2>/dev/null &&
- echo_test_string=`eval $cmd` &&
- (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
- then
- break
- fi
- done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- :
-else
- # The Solaris, AIX, and Digital Unix default echo programs unquote
- # backslashes. This makes it impossible to quote backslashes using
- # echo "$something" | sed 's/\\/\\\\/g'
- #
- # So, first we look for a working echo in the user's PATH.
-
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for dir in $PATH /usr/ucb; do
- IFS="$lt_save_ifs"
- if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
- test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- echo="$dir/echo"
- break
- fi
- done
- IFS="$lt_save_ifs"
-
- if test "X$echo" = Xecho; then
- # We didn't find a better echo, so look for alternatives.
- if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- # This shell has a builtin print -r that does the trick.
- echo='print -r'
- elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
- test "X$CONFIG_SHELL" != X/bin/ksh; then
- # If we have ksh, try running configure again with it.
- ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
- export ORIGINAL_CONFIG_SHELL
- CONFIG_SHELL=/bin/ksh
- export CONFIG_SHELL
- exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
- else
- # Try using printf.
- echo='printf %s\n'
- if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
- echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- # Cool, printf works
- :
- elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
- test "X$echo_testing_string" = 'X\t' &&
- echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
- export CONFIG_SHELL
- SHELL="$CONFIG_SHELL"
- export SHELL
- echo="$CONFIG_SHELL [$]0 --fallback-echo"
- elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
- test "X$echo_testing_string" = 'X\t' &&
- echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
- test "X$echo_testing_string" = "X$echo_test_string"; then
- echo="$CONFIG_SHELL [$]0 --fallback-echo"
- else
- # maybe with a smaller string...
- prev=:
-
- for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
- if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
- then
- break
- fi
- prev="$cmd"
- done
-
- if test "$prev" != 'sed 50q "[$]0"'; then
- echo_test_string=`eval $prev`
- export echo_test_string
- exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
- else
- # Oops. We lost completely, so just stick with echo.
- echo=echo
- fi
- fi
- fi
- fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
- ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
- [AC_HELP_STRING([--disable-libtool-lock],
- [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
- [AC_LANG_PUSH(C)
- AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
- AC_LANG_POP])
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *) LD="${LD-ld} -64" ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
- AC_CHECK_TOOL(DLLTOOL, dlltool, false)
- AC_CHECK_TOOL(AS, as, false)
- AC_CHECK_TOOL(OBJDUMP, objdump, false)
- ;;
- ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_REQUIRE([LT_AC_PROG_SED])
-AC_CACHE_CHECK([$1], [$2],
- [$2=no
- ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$3"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- fi
- $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
- ifelse([$5], , :, [$5])
-else
- ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-# [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
- [$2=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $3"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&AS_MESSAGE_LOG_FD
- $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- $2=yes
- fi
- else
- $2=yes
- fi
- fi
- $rm conftest*
- LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
- ifelse([$4], , :, [$4])
-else
- ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
- i=0
- teststring="ABCD"
-
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
-
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
-
- cygwin* | mingw*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
-
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
-
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
-
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
- = "XX$teststring") >/dev/null 2>&1 &&
- new_result=`expr "X$teststring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- teststring=
- # Add a significant safety factor because C++ compilers can tack on massive
- # amounts of additional arguments before passing them to the linker.
- # It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- ;;
- esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
- AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
- AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# ------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ---------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
- [$4]
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
-
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
-
- exit (status);
-}]
-EOF
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) $1 ;;
- x$lt_dlneed_uscore) $2 ;;
- x$lt_dlunknown|x*) $3 ;;
- esac
- else :
- # compilation failed
- $3
- fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# ----------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
-
- case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ;;
-
- mingw* | pw32*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
- ;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
- ;;
-
- darwin*)
- # if libdl is installed we need to link against it
- AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
- ])
- ;;
-
- *)
- AC_CHECK_FUNC([shl_load],
- [lt_cv_dlopen="shl_load"],
- [AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
- [AC_CHECK_FUNC([dlopen],
- [lt_cv_dlopen="dlopen"],
- [AC_CHECK_LIB([dl], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
- [AC_CHECK_LIB([svld], [dlopen],
- [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
- [AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
- ])
- ])
- ])
- ])
- ])
- ;;
- esac
-
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
- else
- enable_dlopen=no
- fi
-
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
-
- AC_CACHE_CHECK([whether a program can dlopen itself],
- lt_cv_dlopen_self, [dnl
- _LT_AC_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
- lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
- ])
-
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
- lt_cv_dlopen_self_static, [dnl
- _LT_AC_TRY_DLOPEN_SELF(
- lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
- lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
- ])
- fi
-
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
-
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
-
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
- [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
- $rm -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&AS_MESSAGE_LOG_FD
- echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
- fi
- fi
- chmod u+w . 2>&AS_MESSAGE_LOG_FD
- $rm conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files
- $rm out/* && rmdir out
- cd ..
- rmdir conftest
- $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- AC_MSG_CHECKING([if we can lock with hard links])
- hard_links=yes
- $rm conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- AC_MSG_RESULT([$hard_links])
- if test "$hard_links" = no; then
- AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
- need_locks=warn
- fi
-else
- need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
- test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \
- test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
- # We can hardcode non-existant directories.
- if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
- test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
- # Linking always hardcodes the temporary library directory.
- _LT_AC_TAGVAR(hardcode_action, $1)=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- _LT_AC_TAGVAR(hardcode_action, $1)=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
-fi
- ;;
- *)
- AC_MSG_RESULT([no])
- ;;
- esac
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix4* | aix5*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[[01]] | aix4.[[01]].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
- :
- else
- can_build_shared=no
- fi
- ;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-
-amigaos*)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
-
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
-
-bsdi[[45]]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
-
-cygwin* | mingw* | pw32*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
-
- case $GCC,$host_os in
- yes,cygwin* | yes,mingw* | yes,pw32*)
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $rm \$dlpath'
- shlibpath_overrides_runpath=yes
-
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
- ;;
- mingw*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
- # It is most probably a Windows format PATH printed by
- # mingw gcc, but we are running on Cygwin. Gcc prints its search
- # path with ; separators, and with drive letters. We can handle the
- # drive letters (cygwin fileutils understands them), so leave them,
- # especially as we might pass files found there to a mingw objdump,
- # which wouldn't understand a cygwinified path. Ahh.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
- ;;
- esac
- ;;
-
- *)
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
- ;;
- esac
- dynamic_linker='Win32 ld.exe'
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
-
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
-
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-freebsd1*)
- dynamic_linker=no
- ;;
-
-kfreebsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[[123]]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[[01]]* | freebsdelf3.[[01]]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
- freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- freebsd*) # from 4.6 on
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- esac
- ;;
-
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
-
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
- fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
- esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555.
- postinstall_cmds='chmod 555 $lib'
- ;;
-
-interix3*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
- *)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
- else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
- ;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/^[ ]*//;s/#.*//;/^[^\/]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-knetbsd*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='GNU ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-nto-qnx*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[[89]] | openbsd2.[[89]].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
-
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
-
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
-
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- shlibpath_overrides_runpath=no
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- shlibpath_overrides_runpath=yes
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-
-*)
- dynamic_linker=no
- ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
- [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
- [include additional configurations @<:@automatic@:>@])],
- [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
- if test ! -f "${ofile}"; then
- AC_MSG_WARN([output file `$ofile' does not exist])
- fi
-
- if test -z "$LTCC"; then
- eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
- if test -z "$LTCC"; then
- AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
- else
- AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
- fi
- fi
- if test -z "$LTCFLAGS"; then
- eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`"
- fi
-
- # Extract list of available tagged configurations in $ofile.
- # Note that this assumes the entire list is on one line.
- available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for tagname in $tagnames; do
- IFS="$lt_save_ifs"
- # Check whether tagname contains only valid characters
- case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
- "") ;;
- *) AC_MSG_ERROR([invalid tag name: $tagname])
- ;;
- esac
-
- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
- then
- AC_MSG_ERROR([tag name \"$tagname\" already exists])
- fi
-
- # Update the list of available tags.
- if test -n "$tagname"; then
- echo appending configuration tag \"$tagname\" to $ofile
-
- case $tagname in
- CXX)
- if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_LIBTOOL_LANG_CXX_CONFIG
- else
- tagname=""
- fi
- ;;
-
- F77)
- if test -n "$F77" && test "X$F77" != "Xno"; then
- AC_LIBTOOL_LANG_F77_CONFIG
- else
- tagname=""
- fi
- ;;
-
- GCJ)
- if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
- AC_LIBTOOL_LANG_GCJ_CONFIG
- else
- tagname=""
- fi
- ;;
-
- RC)
- AC_LIBTOOL_LANG_RC_CONFIG
- ;;
-
- *)
- AC_MSG_ERROR([Unsupported tag name: $tagname])
- ;;
- esac
-
- # Append the new tag name to the list of available tags.
- if test -n "$tagname" ; then
- available_tags="$available_tags $tagname"
- fi
- fi
- done
- IFS="$lt_save_ifs"
-
- # Now substitute the updated list of available tags.
- if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
- mv "${ofile}T" "$ofile"
- chmod +x "$ofile"
- else
- rm -f "${ofile}T"
- AC_MSG_ERROR([unable to update list of available tagged configurations.])
- fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 DLLs
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
- [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
- [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-# set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
- [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
- [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
- [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
- [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
- [p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac],
- [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
- [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] | ?:[\\/]*])
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word. This closes a longstanding sh security hole.
- ac_dummy="ifelse([$2], , $PATH, [$2])"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$1; then
- lt_cv_path_MAGIC_CMD="$ac_dir/$1"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- AC_MSG_RESULT($MAGIC_CMD)
-else
- AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
- else
- MAGIC_CMD=:
- fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
- [AC_HELP_STRING([--with-gnu-ld],
- [assume the C compiler uses GNU ld @<:@default=no@:>@])],
- [test "$withval" = no || with_gnu_ld=yes],
- [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- AC_MSG_CHECKING([for ld used by $CC])
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [[\\/]]* | ?:[[\\/]]*)
- re_direlt='/[[^/]][[^/]]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
- while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- AC_MSG_CHECKING([for GNU ld])
-else
- AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- AC_MSG_RESULT($LD)
-else
- AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-# -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
- lt_cv_ld_reload_flag,
- [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
- else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-# -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-bsdi[[45]]*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump'.
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-freebsd* | kfreebsd*-gnu | dragonfly*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-
-interix3*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
- ;;
-
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-# This must be Linux ELF.
-linux*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
- fi
- ;;
-
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-
-nto-qnx*)
- lt_cv_deplibs_check_method=unknown
- ;;
-
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
- fi
- ;;
-
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the pathname to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
- # These system don't have libm, or don't need it
- ;;
-*-ncr-sysv4.3*)
- AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
- AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
- ;;
-*)
- AC_CHECK_LIB(m, cos, LIBM="-lm")
- ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments. Note that
-# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
-# it is assumed to be `libltdl'. LIBLTDL will be prefixed with
-# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
-# (note the single quotes!). If your package is not flat and you're not
-# using automake, define top_builddir and top_srcdir appropriately in
-# the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- case $enable_ltdl_convenience in
- no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
- "") enable_ltdl_convenience=yes
- ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
- esac
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
- # For backwards non-gettext consistent compatibility...
- INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments. Note that
-# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
-# and an installed libltdl is not found, it is assumed to be `libltdl'.
-# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
-# '${top_srcdir}/' (note the single quotes!). If your package is not
-# flat and you're not using automake, define top_builddir and top_srcdir
-# appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
- AC_CHECK_LIB(ltdl, lt_dlinit,
- [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
- [if test x"$enable_ltdl_install" = xno; then
- AC_MSG_WARN([libltdl not installed, but installation disabled])
- else
- enable_ltdl_install=yes
- fi
- ])
- if test x"$enable_ltdl_install" = x"yes"; then
- ac_configure_args="$ac_configure_args --enable-ltdl-install"
- LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
- LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
- else
- ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
- LIBLTDL="-lltdl"
- LTDLINCL=
- fi
- # For backwards non-gettext consistent compatibility...
- INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([_LT_AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
-])# _LT_AC_LANG_CXX
-
-# _LT_AC_PROG_CXXCPP
-# ------------------
-AC_DEFUN([_LT_AC_PROG_CXXCPP],
-[
-AC_REQUIRE([AC_PROG_CXX])
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
- ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
- (test "X$CXX" != "Xg++"))) ; then
- AC_PROG_CXXCPP
-fi
-])# _LT_AC_PROG_CXXCPP
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
- [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
- [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
- [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
- [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
- [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# -------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_DLOPEN_SELF
-
-# Report which library types will actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-
-aix4* | aix5*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([_LT_AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
- $as_unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
- lt_cv_path_LD=$lt_cv_path_LDCXX
-else
- $as_unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
- # Set up default GNU C++ configuration
-
- AC_PROG_LD
-
- # Check if GNU C++ uses GNU ld as the underlying linker, since the
- # archiving commands below assume that GNU ld is being used.
- if test "$with_gnu_ld" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # If archive_cmds runs LD, not CC, wlarc should be empty
- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
- # investigate it a little bit more. (MM)
- wlarc='${wl}'
-
- # ancient GNU ld didn't support --whole-archive et. al.
- if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
- grep 'no-whole-archive' > /dev/null; then
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- with_gnu_ld=no
- wlarc=
-
- # A generic and very simple default shared library creation
- # command for GNU C++ for the case where it uses the native
- # linker, instead of GNU ld. If possible, this setting should
- # overridden to take advantage of the native linker features on
- # the platform it is being used on.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- fi
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
- GXX=no
- with_gnu_ld=no
- wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
- aix3*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
- for ld_flag in $LDFLAGS; do
- case $ld_flag in
- *-brtl*)
- aix_use_runtimelinking=yes
- break
- ;;
- esac
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_AC_TAGVAR(archive_cmds, $1)=''
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- if test "$GXX" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- else
- # We have old collect2
- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- _LT_AC_SYS_LIBPATH_AIX
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- _LT_AC_SYS_LIBPATH_AIX
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- chorus*)
- case $cc_basename in
- *)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- if test "$GXX" = yes ; then
- lt_int_apple_cc_single_mod=no
- output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
- lt_int_apple_cc_single_mod=yes
- fi
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- case $cc_basename in
- xlc*)
- output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- ;;
- *)
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- fi
- ;;
-
- dgux*)
- case $cc_basename in
- ec++*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
- freebsd[[12]]*)
- # C++ shared libraries reported to be fairly broken before switch to ELF
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- freebsd-elf*)
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- ;;
- freebsd* | kfreebsd*-gnu | dragonfly*)
- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
- # conventions
- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
- ;;
- gnu*)
- ;;
- hpux9*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- hpux10*|hpux11*)
- if test $with_gnu_ld = no; then
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- ;;
- *)
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
- esac
- fi
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
- # but as the default
- # location of the library.
- ;;
- esac
-
- case $cc_basename in
- CC*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- aCC*)
- case $host_cpu in
- hppa*64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes; then
- if test $with_gnu_ld = no; then
- case $host_cpu in
- hppa*64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- ;;
- esac
- fi
- else
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- interix3*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- irix5* | irix6*)
- case $cc_basename in
- CC*)
- # SGI C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
- # Archives containing C++ object files must be created using
- # "CC -ar", where "CC" is the IRIX C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
- ;;
- *)
- if test "$GXX" = yes; then
- if test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
- fi
- fi
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- ;;
- esac
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
- linux*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
- ;;
- icpc*)
- # Intel C++
- with_gnu_ld=yes
- # version 8.0 and above of icpc choke on multiply defined symbols
- # if we add $predep_objects and $postdep_objects, however 7.1 and
- # earlier do not add the objects themselves.
- case `$CC -V 2>&1` in
- *"Version 7."*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- *) # Version 8.0 or newer
- tmp_idyn=
- case $host_cpu in
- ia64*) tmp_idyn=' -i_dynamic';;
- esac
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- ;;
- esac
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- ;;
- pgCC*)
- # Portland Group C++ compiler
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- ;;
- cxx*)
- # Compaq C++
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
- runpath_var=LD_RUN_PATH
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- esac
- ;;
- lynxos*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- m88k*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
- wlarc=
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- fi
- # Workaround some broken pre-1.5 toolchains
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
- ;;
- openbsd2*)
- # C++ shared libraries are fairly broken
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- openbsd*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- fi
- output_verbose_link_cmd='echo'
- ;;
- osf3*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # "CC -Bstatic", where "CC" is the KAI C++ compiler.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- osf4* | osf5*)
- case $cc_basename in
- KCC*)
- # Kuck and Associates, Inc. (KAI) C++ Compiler
-
- # KCC will only create a shared library if the output file
- # ends with ".so" (or ".sl" for HP-UX), so rename the library
- # to its proper name (with version) after linking.
- _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Archives containing C++ object files must be created using
- # the KAI C++ compiler.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- cxx*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
- echo "-hidden">> $lib.exp~
- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~
- $rm $lib.exp'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- #
- # There doesn't appear to be a way to prevent this compiler from
- # explicitly linking system object files so we need to strip them
- # from the output so that they don't get included in the library
- # dependencies.
- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
- ;;
- *)
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
- else
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
- psos*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- lcc*)
- # Lucid
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The C++ compiler is used as linker so we must use $wl
- # flag to pass the commands to the underlying system
- # linker. We must also pass each convience library through
- # to the system linker between allextract/defaultextract.
- # The C++ compiler will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
- ;;
- esac
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- output_verbose_link_cmd='echo'
-
- # Archives containing C++ object files must be created using
- # "CC -xar", where "CC" is the Sun C++ compiler. This is
- # necessary to make sure instantiated templates are included
- # in the archive.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
- # The C++ compiler must be used to create the archive.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
- ;;
- *)
- # GNU C++ compiler with Solaris linker
- if test "$GXX" = yes && test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
- if $CC --version | grep -v '^2\.7' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
- else
- # g++ 2.7 appears to require `-G' NOT `-shared' on this
- # platform.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
- # Commands to make compiler produce verbose output that lists
- # what "hidden" libraries, object files and flags are used when
- # linking a shared library.
- output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
- fi
-
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
- fi
- ;;
- esac
- ;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- # So that behaviour is only enabled if SCOABSPATH is set to a
- # non-empty value in the environment. Most likely only useful for
- # creating official distributions of packages.
- # This is a hack until libtool officially supports absolute path
- # names for shared libraries.
- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- case $cc_basename in
- CC*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- ;;
- vxworks*)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- *)
- # FIXME: insert proper C++ library support
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library. It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
- Foo (void) { a = 0; }
-private:
- int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
- subroutine foo
- implicit none
- integer*4 a
- a=0
- return
- end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
- private int a;
- public void bar (void) {
- a = 0;
- }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
- # Parse the compiler output and extract the necessary
- # objects, libraries and library flags.
-
- # Sentinel used to keep track of whether or not we are before
- # the conftest object file.
- pre_test_object_deps_done=no
-
- # The `*' in the case matches for architectures that use `case' in
- # $output_verbose_cmd can trigger glob expansion during the loop
- # eval without this substitution.
- output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
-
- for p in `eval $output_verbose_link_cmd`; do
- case $p in
-
- -L* | -R* | -l*)
- # Some compilers place space between "-{L,R}" and the path.
- # Remove the space.
- if test $p = "-L" \
- || test $p = "-R"; then
- prev=$p
- continue
- else
- prev=
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- case $p in
- -L* | -R*)
- # Internal compiler library paths should come after those
- # provided the user. The postdeps already come after the
- # user supplied libs so there is no need to process them.
- if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
- else
- _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
- fi
- ;;
- # The "-l" case would never come before the object being
- # linked, so don't bother handling this case.
- esac
- else
- if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
- _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
- else
- _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
- fi
- fi
- ;;
-
- *.$objext)
- # This assumes that the test object file only shows up
- # once in the compiler output.
- if test "$p" = "conftest.$objext"; then
- pre_test_object_deps_done=yes
- continue
- fi
-
- if test "$pre_test_object_deps_done" = no; then
- if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
- _LT_AC_TAGVAR(predep_objects, $1)="$p"
- else
- _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
- fi
- else
- if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
- _LT_AC_TAGVAR(postdep_objects, $1)="$p"
- else
- _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
- fi
- fi
- ;;
-
- *) ;; # Ignore the rest.
-
- esac
- done
-
- # Clean up.
- rm -f a.out a.exe
-else
- echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-# PORTME: override above test on systems where it is broken
-ifelse([$1],[CXX],
-[case $host_os in
-interix3*)
- # Interix 3.5 installs completely hosed .la files for C++, so rather than
- # hack all around it, let's just trust "g++" to DTRT.
- _LT_AC_TAGVAR(predep_objects,$1)=
- _LT_AC_TAGVAR(postdep_objects,$1)=
- _LT_AC_TAGVAR(postdeps,$1)=
- ;;
-
-solaris*)
- case $cc_basename in
- CC*)
- # Adding this requires a known-good setup of shared libraries for
- # Sun compiler versions before 5.6, else PIC objects from an old
- # archive will be linked into the output, leading to subtle bugs.
- _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
- ;;
- esac
- ;;
-esac
-])
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code=" subroutine t\n return\n end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code=" program t\n end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case $host_os in
-aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
-aix4* | aix5*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# -------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined. Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars. Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
- # See if we are running on zsh, and set the options which allow our commands through
- # without removal of \ escapes.
- if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
- fi
- # Now quote all the things that may contain metacharacters while being
- # careful not to overquote the AC_SUBSTed values. We take copies of the
- # variables and quote the copies for generation of the libtool script.
- for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \
- SED SHELL STRIP \
- libname_spec library_names_spec soname_spec extract_expsyms_cmds \
- old_striplib striplib file_magic_cmd finish_cmds finish_eval \
- deplibs_check_method reload_flag reload_cmds need_locks \
- lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
- lt_cv_sys_global_symbol_to_c_name_address \
- sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
- old_postinstall_cmds old_postuninstall_cmds \
- _LT_AC_TAGVAR(compiler, $1) \
- _LT_AC_TAGVAR(CC, $1) \
- _LT_AC_TAGVAR(LD, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
- _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
- _LT_AC_TAGVAR(old_archive_cmds, $1) \
- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
- _LT_AC_TAGVAR(predep_objects, $1) \
- _LT_AC_TAGVAR(postdep_objects, $1) \
- _LT_AC_TAGVAR(predeps, $1) \
- _LT_AC_TAGVAR(postdeps, $1) \
- _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
- _LT_AC_TAGVAR(archive_cmds, $1) \
- _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
- _LT_AC_TAGVAR(postinstall_cmds, $1) \
- _LT_AC_TAGVAR(postuninstall_cmds, $1) \
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
- _LT_AC_TAGVAR(allow_undefined_flag, $1) \
- _LT_AC_TAGVAR(no_undefined_flag, $1) \
- _LT_AC_TAGVAR(export_symbols_cmds, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
- _LT_AC_TAGVAR(hardcode_automatic, $1) \
- _LT_AC_TAGVAR(module_cmds, $1) \
- _LT_AC_TAGVAR(module_expsym_cmds, $1) \
- _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
- _LT_AC_TAGVAR(exclude_expsyms, $1) \
- _LT_AC_TAGVAR(include_expsyms, $1); do
-
- case $var in
- _LT_AC_TAGVAR(old_archive_cmds, $1) | \
- _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
- _LT_AC_TAGVAR(archive_cmds, $1) | \
- _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
- _LT_AC_TAGVAR(module_cmds, $1) | \
- _LT_AC_TAGVAR(module_expsym_cmds, $1) | \
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
- _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
- extract_expsyms_cmds | reload_cmds | finish_cmds | \
- postinstall_cmds | postuninstall_cmds | \
- old_postinstall_cmds | old_postuninstall_cmds | \
- sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
- # Double-quote double-evaled strings.
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
- ;;
- *)
- eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
- ;;
- esac
- done
-
- case $lt_echo in
- *'\[$]0 --fallback-echo"')
- lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
- ;;
- esac
-
-ifelse([$1], [],
- [cfgfile="${ofile}T"
- trap "$rm \"$cfgfile\"; exit 1" 1 2 15
- $rm -f "$cfgfile"
- AC_MSG_NOTICE([creating $ofile])],
- [cfgfile="$ofile"])
-
- cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e 1s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_LTCFLAGS
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$lt_STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext_cmds='$shrext_cmds'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names. First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
- case $host_os in
- aix3*)
- cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program. For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
-fi
-EOF
- ;;
- esac
-
- # We use sed instead of cat because bash on DJGPP gets confused if
- # if finds mixed CR/LF and LF-only lines. Since sed operates in
- # text mode, it properly converts lines to CR/LF. This bash problem
- # is reportedly fixed, but why not run on old versions too?
- sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
- mv -f "$cfgfile" "$ofile" || \
- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
- chmod +x "$ofile"
-])
-else
- # If there is no Makefile yet, we rely on a make rule to execute
- # `config.status --recheck' to rerun these tests and create the
- # libtool script then.
- ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'`
- if test -f "$ltmain_in"; then
- test -f Makefile && make "$ltmain"
- fi
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
- _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
- AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
- lt_cv_prog_compiler_rtti_exceptions,
- [-fno-rtti -fno-exceptions], [],
- [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
- symcode='[[BCDT]]'
- ;;
-cygwin* | mingw* | pw32*)
- symcode='[[ABCDGISTW]]'
- ;;
-hpux*) # Its linker distinguishes data from code symbols
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDEGRST]]'
- fi
- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
- ;;
-linux*)
- if test "$host_cpu" = ia64; then
- symcode='[[ABCDGIRSTW]]'
- lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
- lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'"
- fi
- ;;
-irix* | nonstopux*)
- symcode='[[BCDEGRST]]'
- ;;
-osf*)
- symcode='[[BCDEGQRST]]'
- ;;
-solaris*)
- symcode='[[BDRT]]'
- ;;
-sco3.2v5*)
- symcode='[[DT]]'
- ;;
-sysv4.2uw2*)
- symcode='[[DT]]'
- ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[[ABDT]]'
- ;;
-sysv4)
- symcode='[[DFNSTU]]'
- ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
- ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
-
- # Write the raw and C identifiers.
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
- if AC_TRY_EVAL(ac_compile); then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
-
- # Make sure that we snagged all the symbols we need.
- if grep ' nm_test_var$' "$nlist" >/dev/null; then
- if grep ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
- cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
- const char *name;
- lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
- cat <<\EOF >> conftest.$ac_ext
- {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_save_LIBS="$LIBS"
- lt_save_CFLAGS="$CFLAGS"
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
- if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS="$lt_save_LIBS"
- CFLAGS="$lt_save_CFLAGS"
- else
- echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
- fi
- else
- echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
- cat conftest.$ac_ext >&5
- fi
- rm -f conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- AC_MSG_RESULT(failed)
-else
- AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
- # C++ specific cases for pic, static, wl, etc.
- if test "$GXX" = yes; then
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw* | os2* | pw32*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
- ;;
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
- *djgpp*)
- # DJGPP does not support shared libraries at all
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- interix3*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- case $host_os in
- aix4* | aix5*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- chorus*)
- case $cc_basename in
- cxch68*)
- # Green Hills C++ Compiler
- # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
- ;;
- esac
- ;;
- darwin*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- case $cc_basename in
- xlc*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- esac
- ;;
- dgux*)
- case $cc_basename in
- ec++*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- ghcx*)
- # Green Hills C++ Compiler
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- freebsd* | kfreebsd*-gnu | dragonfly*)
- # FreeBSD uses GNU C++
- ;;
- hpux9* | hpux10* | hpux11*)
- case $cc_basename in
- CC*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- if test "$host_cpu" != ia64; then
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- fi
- ;;
- aCC*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- ;;
- *)
- ;;
- esac
- ;;
- interix*)
- # This is c89, which is MS Visual C++ (no shared libs)
- # Anyone wants to do a port?
- ;;
- irix5* | irix6* | nonstopux*)
- case $cc_basename in
- CC*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- # CC pic flag -KPIC is the default.
- ;;
- *)
- ;;
- esac
- ;;
- linux*)
- case $cc_basename in
- KCC*)
- # KAI C++ Compiler
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- icpc* | ecpc*)
- # Intel C++
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgCC*)
- # Portland Group C++ compiler.
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- cxx*)
- # Compaq C++
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- lynxos*)
- ;;
- m88k*)
- ;;
- mvs*)
- case $cc_basename in
- cxx*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
- ;;
- *)
- ;;
- esac
- ;;
- netbsd*)
- ;;
- osf3* | osf4* | osf5*)
- case $cc_basename in
- KCC*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
- ;;
- RCC*)
- # Rational C++ 2.4.1
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- cxx*)
- # Digital/Compaq C++
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # Make sure the PIC flag is empty. It appears that all Alpha
- # Linux and Compaq Tru64 Unix objects are PIC.
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- *)
- ;;
- esac
- ;;
- psos*)
- ;;
- solaris*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.2, 5.x and Centerline C++
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- ;;
- gcx*)
- # Green Hills C++ Compiler
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- ;;
- *)
- ;;
- esac
- ;;
- sunos4*)
- case $cc_basename in
- CC*)
- # Sun C++ 4.x
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- lcc*)
- # Lucid
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- ;;
- *)
- ;;
- esac
- ;;
- tandem*)
- case $cc_basename in
- NCC*)
- # NonStop-UX NCC 3.20
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- ;;
- *)
- ;;
- esac
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- case $cc_basename in
- CC*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- esac
- ;;
- vxworks*)
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-],
-[
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- amigaos*)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
- ;;
-
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
- ;;
-
- interix3*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
-
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- enable_shared=no
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
- fi
- ;;
-
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- ;;
-
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
- ;;
- esac
- else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- else
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
- darwin*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- case $cc_basename in
- xlc*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon'
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- ;;
- esac
- ;;
-
- mingw* | pw32* | os2*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
- ;;
-
- hpux9* | hpux10* | hpux11*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
- ;;
-
- irix5* | irix6* | nonstopux*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # PIC (with -KPIC) is the default.
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- newsos6)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- linux*)
- case $cc_basename in
- icc* | ecc*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
- ccc*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All Alpha code is PIC.
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
- esac
- ;;
-
- osf3* | osf4* | osf5*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- # All OSF/1 code is PIC.
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
- ;;
-
- solaris*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
- esac
- ;;
-
- sunos4*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4 | sysv4.2uw2* | sysv4.3*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec ;then
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- fi
- ;;
-
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- unicos*)
- _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
-
- uts4*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
- _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
- ;;
-
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
- ;;
- esac
- fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
- AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
- _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
- [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
- [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
- "" | " "*) ;;
- *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
- esac],
- [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
- _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
- ;;
- *)
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
- ;;
-esac
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
- $lt_tmp_static_flag,
- [],
- [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- case $host_os in
- aix4* | aix5*)
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
- fi
- ;;
- pw32*)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
- ;;
- cygwin* | mingw*)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- *)
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- ;;
- esac
-],[
- runpath_var=
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
- _LT_AC_TAGVAR(archive_cmds, $1)=
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
- _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
- _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
- _LT_AC_TAGVAR(hardcode_automatic, $1)=no
- _LT_AC_TAGVAR(module_cmds, $1)=
- _LT_AC_TAGVAR(module_expsym_cmds, $1)=
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- _LT_AC_TAGVAR(include_expsyms, $1)=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- extract_expsyms_cmds=
- # Just being paranoid about ensuring that cc_basename is set.
- _LT_CC_BASENAME([$compiler])
- case $host_os in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
-
- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
- if test "$with_gnu_ld" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
-
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>/dev/null` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
-
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix3* | aix4* | aix5*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
- fi
- ;;
-
- amigaos*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we can't use
- # them.
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- cygwin* | mingw* | pw32*)
- # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
- # as there is no search path for DLLs.
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_AC_TAGVAR(always_export_symbols, $1)=no
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- interix3*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
-
- linux*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- tmp_addflag=
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- esac
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
- if test $supports_anon_versioning = yes; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- $echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
-
- solaris*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
- ;;
-
- sunos4*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- fi
- ;;
- esac
-
- if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then
- runpath_var=
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
- fi
- ;;
-
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
- else
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
-
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
-
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
-
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
- _LT_AC_TAGVAR(archive_cmds, $1)=''
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- if test "$GCC" = yes; then
- case $host_os in aix4.[[012]]|aix4.[[012]].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- else
- # We have old collect2
- _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
-
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- _LT_AC_TAGVAR(always_export_symbols, $1)=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
- # Determine the default libpath from the value encoded in an empty executable.
- _LT_AC_SYS_LIBPATH_AIX
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an empty executable.
- _LT_AC_SYS_LIBPATH_AIX
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
- # Exported symbols can be pulled into shared objects from archives
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
-
- amigaos*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- # see comment about different semantics on the GNU ld section
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- bsdi[[45]]*)
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
- ;;
-
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
- # FIXME: Should let the user specify the lib program.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
- _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
- _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- ;;
-
- darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- if test "$GCC" = yes ; then
- output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- case $cc_basename in
- xlc*)
- output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- ;;
- *)
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- fi
- ;;
-
- dgux*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- freebsd1*)
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
-
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | kfreebsd*-gnu | dragonfly*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- hpux9*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- ;;
-
- hpux10*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- fi
- ;;
-
- hpux11*)
- if test "$GCC" = yes -a "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
- case $host_cpu in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
- *)
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- ;;
- esac
- fi
- ;;
-
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
- fi
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- netbsd*)
- if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- newsos6)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- openbsd*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- ;;
-
- os2*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
- _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
-
- osf3*)
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
- else
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
- $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp'
-
- # Both c and cxx compiler support -rpath directly
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
- fi
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
- ;;
-
- solaris*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
- else
- wlarc=''
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
- fi
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- case $host_os in
- solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
- *)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
- *)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
- esac
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- ;;
-
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4)
- case $host_vendor in
- sni)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no
- ;;
- motorola)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- sysv4.3*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
- ;;
-
- sysv4*MP*)
- if test -d /usr/nec; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- _LT_AC_TAGVAR(ld_shlibs, $1)=yes
- fi
- ;;
-
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*)
- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
- _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
-
- uts4*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- ;;
-
- *)
- _LT_AC_TAGVAR(ld_shlibs, $1)=no
- ;;
- esac
- fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
- # Assume -lc should be added
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $_LT_AC_TAGVAR(archive_cmds, $1) in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- AC_MSG_CHECKING([whether -lc should be explicitly linked in])
- $rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
- pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=
- if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
- then
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
- else
- _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
- fi
- _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $rm conftest*
- AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
- ;;
- esac
- fi
- ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# # ifdef __CYGWIN32__
-# # define __CYGWIN__ __CYGWIN32__
-# # endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-# __hDllInstance_base = hInst;
-# return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
- test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
- AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for lt_ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
- lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
- fi
- done
- done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
- test ! -f $lt_ac_sed && continue
- cat /dev/null > conftest.in
- lt_ac_count=0
- echo $ECHO_N "0123456789$ECHO_C" >conftest.in
- # Check for GNU sed and select it if it is found.
- if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
- lt_cv_path_SED=$lt_ac_sed
- break
- fi
- while true; do
- cat conftest.in conftest.in >conftest.tmp
- mv conftest.tmp conftest.in
- cp conftest.in conftest.nl
- echo >>conftest.nl
- $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
- cmp -s conftest.out conftest.nl || break
- # 10000 chars as input seems more than enough
- test $lt_ac_count -gt 10 && break
- lt_ac_count=`expr $lt_ac_count + 1`
- if test $lt_ac_count -gt $lt_ac_max; then
- lt_ac_max=$lt_ac_count
- lt_cv_path_SED=$lt_ac_sed
- fi
- done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])
-
# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
@@ -7299,7 +903,9 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar])
]) # _AM_PROG_TAR
+m4_include([libltdl/acinclude.m4])
m4_include([../config/acx.m4])
+m4_include([../config/confsubdir.m4])
m4_include([../config/depstand.m4])
m4_include([../config/enable.m4])
m4_include([../config/gxx-include-dir.m4])
diff --git a/libjava/boehm.cc b/libjava/boehm.cc
index 3aa0acba987..855d23cb024 100644
--- a/libjava/boehm.cc
+++ b/libjava/boehm.cc
@@ -380,6 +380,7 @@ _Jv_AllocRawObj (jsize size)
return (void *) GC_MALLOC (size ? size : 1);
}
+#ifdef INTERPRETER
typedef _Jv_ClosureList *closure_list_pointer;
/* Release closures in a _Jv_ClosureList. */
@@ -402,6 +403,7 @@ _Jv_ClosureListFinalizer ()
NULL, NULL, NULL);
return clpp;
}
+#endif // INTERPRETER
static void
call_finalizer (GC_PTR obj, GC_PTR client_data)
@@ -463,6 +465,12 @@ _Jv_GCSetMaximumHeapSize (size_t size)
GC_set_max_heap_size ((GC_word) size);
}
+int
+_Jv_SetGCFreeSpaceDivisor (int div)
+{
+ return (int)GC_set_free_space_divisor ((GC_word)div);
+}
+
void
_Jv_DisableGC (void)
{
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index 9f136e094d2..87ffc2344ec 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,16 +1,503 @@
-2007-07-20 Keith Seitz <keiths@redhat.com>
+2008-01-27 Bernhard Fischer <rep.dot.nop@gmail.com>
- * gnu/classpath/jdwp/value/StringValue.java
+ * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment.
+ * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in
+ exception message.
+
+2008-01-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/README.jaxp: Fix typos.
+
+2008-01-24 Tom Tromey <tromey@redhat.com>
+
+ * resource/gnu/classpath/tools/native2ascii/messages.properties
+ (Native2ASCII.ReversedHelpCompat): New.
+ * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
+ (createParser): Add -reverse. Update -reversed.
+
+2008-01-21 Luciano Chavez <lnx1138@us.ibm.com>
+
+ PR libgcj/34369:
+ * java/net/URI.java (relativize): Check initial segment for
+ trailing "/".
+
+2007-12-05 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+ (isWindowUnderMouse): New method.
+ * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h:
+ Regenerate.
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java
+ (getLocationOnScreen): Move WindowPeer section to...
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen):
+ New method.
+ * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
+ (isWindowUnderMouse): Implement.
+ * java/awt/Component.java (getMousePosition): New method.
+ (getMousePositionHelper): Likewise.
+ (mouseOverComponent): Likewise.
+ * java/awt/Container.java (getMousePosition): New method.
+ (mouseOverComponent): Likewise.
+ * classpath/lib/java/awt/Component.class,
+ classpath/lib/java/awt/Component$BltBufferStrategy.class,
+ classpath/lib/java/awt/Container$GfxPaintAllVisitor.class,
+ classpath/lib/java/awt/Component$AccessibleAWTComponent
+ $AccessibleAWTFocusHandler.class,
+ classpath/lib/java/awt/Component$FlipBufferStrategy.class,
+ classpath/lib/java/awt/Container$GfxVisitor.class,
+ classpath/lib/java/awt/Component$AccessibleAWTComponent
+ $AccessibleAWTComponentHandler.class,
+ classpath/lib/java/awt/Container$AccessibleAWTContainer
+ $AccessibleContainerHandler.class,
+ classpath/lib/java/awt/Container.class,
+ classpath/lib/java/awt/Container$AccessibleAWTContainer.class,
+ classpath/lib/java/awt/Container$GfxPrintAllVisitor.class,
+ classpath/lib/java/awt/Component$AccessibleAWTComponent.class,
+ classpath/lib/java/awt/Container$GfxPaintVisitor.class,
+ classpath/lib/java/awt/Container$GfxPrintVisitor.class,
+ classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class,
+ classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class,
+ classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class,
+ classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class,
+ classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class,
+ classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer
+ $RepaintTimerTask.class:
+ Regenerate.
+
+2007-10-01 Alexandre Oliva <aoliva@redhat.com>
+
+ * scripts/check_jni_methods.sh: Don't depend on diff -b ignoring
+ a single trailing whitespace.
+
+2007-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/EnumSet.java:
+ Documented.
+ (complementOf(EnumSet)): Fixed to flip only
+ the bits used by the enumset.
+
+2007-07-31 Dalibor Topic <robilad@kaffe.org>
+
+ PR 32844
+ * java/util/EnumSet.java:
+ Made class abstract per API spec.
+ (size, iterator, add, addAll, clear, contains,
+ containsAll, remove, removeAll, retainAll) Moved
+ into an anonymous inner class in of(T).
+ (allOf, noneOf, copyOf, of, range) Made more
+ implementation independent.
+ (of(T)) return an instance of an anonymous class
+ implementing EmptySet.
+
+2007-07-28 Matthias Klose <doko@ubuntu.com>
+
+ * include/jvmti.h(jniNativeInterface): Rename type.
+
+2007-07-24 Tom Tromey <tromey@redhat.com>
+
+ PR java/32862:
+ * java/util/EnumMap.java (get): Special case emptySlot.
+ (clone): Rewrote.
+
+2007-07-23 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * gnu/java/nio/charset/ISO_8859_1.java: Added ISO8859-1 to
+ aliases.
+
+2007-07-23 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * vm/reference/sun/misc/Unsafe.java (unpark): Changed signature to
+ be compatible with OpenJDK.
+
+2007-07-13 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java
+ (clip(Shape)): Call setClip when the clip changes.
+ (drawImage): Add translation.
+ (drawLine): Add translation.
+ * gnu/java/awt/peer/x/PixmapVolatileImage.java
+ (getPixmap): New method.
+ * gnu/java/awt/peer/x/XEventPump.java
+ (XEventPump): Name thread. Start as daemon thread.
+ * gnu/java/awt/peer/x/XGraphics2D.java
+ (rawDrawImage): Special handling for PixmapVolatileImage.
+ (rawDrawLine): Don't add translation here. This is done in
+ the superclass.
+ (rawFillRect): Don't add translation here. This is done in
+ the superclass.
+ (renderScanline): Added null check.
+
+2007-07-13 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/x/PixmapVolatileImage.java: New class.
+ * gnu/java/awt/peer/x/XGraphicsConfiguration.java
+ (createCompatibleImage(int,int)): Delegate to the 3-int overload.
+ (createCompatibleImage(int,int,int)): Implemented. Using
+ the ZPixmapDataBuffer for OPAQUE images.
+ (createCompatibleVolatileImage(int,int)): Delegate to the 3-int
+ overload.
+ (createCompatibleVolatileImage(int,int,int)): Implemented. Using
+ PixmapVolatileImage.
+ * gnu/java/awt/peer/x/XWindowPeer.java
+ (createImage): Return a PixmapVolatileImage (for now).
+ (createVolatileImage): Implemented, using PixmapVolatileImage.
+ * gnu/java/awt/peer/x/ZPixmapDataBuffer.java
+ New class.
+
+2007-07-10 Roman Kennke <roman@kennke.org>
+
+ PR 32645
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
+ (copyPixbuf): Swap asserts.
+
+2007-07-09 Chris Burdess <dog@gnu.org>
+
+ Fixes #32672
+ * gnu/xml/dom/DomElement.java,
+ * gnu/xml/dom/DomNamedNodeMap.java: don't check owner in
+ setNamedNode when cloning.
+
+2007-07-08 Mario Torre <neugens@limasoftware.net>
+
+ * gnu/javax/sound/sampled/gstreamer: new package hierarchy.
+ * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: new file.
+ * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java:
+ likewise.
+ * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java: likewise.
+ * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: likewise.
+ * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java: likewise.
+ * gnu/javax/sound/AudioSecurityManager.java: likewise.
+ * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: likewise.
+ * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java: likewise.
+ * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: likewise.
+ * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise.
+ * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in:
+ likewise.
+ * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in:
+ likewise.
+ * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider:
+ likewise.
+ * native/jni/gstreamer-peer/gstclasspathsrc.c: likewise.
+ * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise.
+ * native/jni/gstreamer-peer/gstinputstream.c: likewise.
+ * native/jni/gstreamer-peer/gstinputstream.h: likewise.
+ * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise.
+ * native/jni/gstreamer-peer/Makefile.am: likewise.
+ * native/jni/gstreamer-peer/.cvsignore: likewise.
+ * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h:
+ likewise.
+ * include/Makefile.am: add gstreamer generated headers.
+ * configure.ac: add gstreamer sound backend configuration.
+ The backend is currently disabled by default.
+ * native/jni/Makefile.am: code to allow compilation of the gstreamer
+ sound backend.
+ * javax/sound/sampled/spi/MixerProvider.java (isMixerSupported):
+ indentation fixes.
+ * javax/sound/sampled/AudioFormat.java (toString): fix method to display
+ informations only when available.
+ * javax/sound/sampled/DataLine.java:
+ (Info.isFormatSupported): indentation fixes.
+ (Info): indentation fixes.
+ (Info.toString): indentation fixes.
+ (Info.matches): indentation fixes.
+
+2007-07-03 Tania Bento <tbento@redhat.com>
+
+ * java/lang/Integer.java:
+ (parseInt(String,int,boolean)): Throw NumberFormatException if
+ String is just "+".
+
+2007-07-01 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/transform/WithParam.java: Handle case where content is
+ empty.
+
+2007-06-28 Tom Tromey <tromey@redhat.com>
+
+ * include/jni.h: Fixed local variables.
+
+2007-06-26 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ * ChangeLog: Correction of a bug fix number.
+
+2007-06-25 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/ClasspathFontPeer.java
+ (canDisplay): Take character as integer codepoint.
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java
+ (canDisplay): Take character as integer codepoint.
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java
+ (postMouseEvent): Use MouseEvent constructor with absolute coordinates
+ to avoid deadlock (over getLocationOnScreen()).
+ * gnu/java/awt/peer/gtk/VolatileImageGraphics.java
+ (getDeviceConfiguration): Fall back to the default configuration
+ if the component is not set.
+ * gnu/java/awt/peer/qt/QtFontMetrics.java
+ (canDisplay): Take character as integer codepoint.
+ * gnu/java/awt/peer/qt/QtFontPeer.java
+ (canDisplay): Take character as integer codepoint.
+ * gnu/java/awt/peer/x/XFontPeer2.java
+ (canDisplay): Take character as integer codepoint.
+ * include/gnu_java_awt_peer_qt_QtFontMetrics.h
+ (canDisplay): Take character as integer codepoint.
+ * java/awt/Font.java
+ (DIALOG): New constant.
+ (DIALOG_INPUT): New constant.
+ (MONOSPACED): New constant.
+ (SANS_SERIF): New constant.
+ (SERIF): New constant.
+ (Font(Font)): New constructor.
+ (canDisplay(char)): Use new canDisplay(int) method.
+ (canDisplay(int)): New method.
+ (hasLayoutAttributes): New method.
+ * java/awt/event/MouseEvent.java
+ (absX,absY): New fields.
+ (MouseEvent): New constructor with absolute coordinates.
+ (getLocationOnScreen): New method.
+ (getXOnScreen): New method.
+ (getYOnScreen): New method.
+ * native/jni/qt-peer/qtfontmetrics.cpp
+ (canDisplay): Take character as integer codepoint.
+
+2007-06-25 Mark Wielaard <mark@klomp.org>
+
+ * native/jni/native-lib/cpnet.c
+ (cpnet_aton) Moved variable declaration of inet6_addr so it is
+ actually in the scope of its use.
+
+2007-06-25 Dalibor Topic <robilad@kaffe.org>
+
+ * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
+ (THROW_NO_IPV6): New macro.
+ (Java_gnu_java_net_VMPlainSocketImpl_bind6) Conditionally
+ build code if IPv6 facilities are available, otherwise
+ throw an error.
+ (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6,
+ Java_gnu_java_net_VMPlainSocketImpl_join6,
+ Java_gnu_java_net_VMPlainSocketImpl_leave6,
+ Java_gnu_java_net_VMPlainSocketImpl_joinGroup6,
+ Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6)
+ Use THROW_NO_IPV6.
+
+ * native/jni/java-net/java_net_VMInetAddress.c
+ (Java_java_net_VMInetAddress_getHostByAddr,
+ Java_java_net_VMInetAddress_getHostByName,
+ Java_java_net_VMInetAddress_aton) Build IPv6 dependant
+ code conditionally on IPv6 facilities being available.
+ Switched if-else blocks where necessary to allow that.
+
+ * native/jni/java-net/javanet.c
+ (_javanet_get_ip_netaddr) Build IPv6 dependant code conditionally
+ on IPv6 facilities being available.
+
+ * native/jni/native-lib/cpnet.c
+ (cpnet_getHostByName, cpnet_getHostByAddr) Build IPv6 dependant
+ code conditionally on IPv6 facilities being available.
+ (cpnet_aton) Moved variable declaration of inet6_addr to the scope
+ of its use. Build IPv6 dependant code conditionally
+ on IPv6 facilities being available.
+
+ * native/jni/native-lib/cpnet.h (cpnet_newIPV6Address,
+ cpnet_isIPV6Address, cpnet_IPV6AddressToBytes,
+ cpnet_bytesToIPV6Address): Make IPv6 dependant utility functions
+ available conditionally on IPv6 facilities being available.
+
+2007-06-25 Dalibor Topic <robilad@kaffe.org>
+
+ * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): If the user passes an
+ explicit argument to configure, just use it, and don't attempt to
+ run AC_CHECK_PROG. This makes --with-javac="javac -J-Xmx512M" work.
+
+2007-06-25 Dalibor Topic <robilad@kaffe.org>
+
+ * configure.ac: Check for MSG_WAITALL, since it does not exist on
+ Cygwin.
+
+ * native/jni/java-nio/gnu_java_nio_VMChannel.c
+ (Java_gnu_java_nio_VMChannel_receive): Define MSG_WAITALL as 0 if
+ it does not exist.
+
+2007-06-24 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ Fixes bug #31927
+ * native/jni/java-nio/gnu_java_nio_VMChannel.c
+ (Java_gnu_java_nio_VMChannel_available): Retry using fstat if ioctl
+ fails with ENOTTY.
+
+2007-06-22 Tania Bento <tbento@redhat.com>
+
+ * java/util/Currency.java:
+ (getInstance (Locale)): Check that the country of the
+ locale given is valid. If it is not, throw an
+ IllegalArgumentException.
+
+2007-06-22 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/GLightweightPeer.java
+ * gnu/java/awt/peer/gtk/GdkRobotPeer.java
+ * gnu/java/awt/peer/gtk/GtkCompoonentPeer.java
+ * gnu/java/awt/peer/gtk/GtkFramePeer.java
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java
+ * gnu/java/awt/peer/qt/QtComponentPeer.java
+ * gnu/java/awt/peer/qt/QtFramePeer.java
+ * gnu/java/awt/peer/qt/QtWindowPeer.java
+ * gnu/java/awt/peer/swing/SwingComponentPeer.java
+ * gnu/java/awt/peer/swing/SwingWindowPeer.java
+ * gnu/java/awt/peer/x/XFramePeer.java:
+ Removed @Override annotations from some interface implementation
+ methods to ensure 1.5 compatibility.
+
+2007-06-22 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * include/jni.h (JNINativeInterface): Renamed to
+ JNINativeInterface_, added const to arguments where necessary.
+ (JNIInvokeInterface): Renamed to JNIInvokeInterface_.
+
+2007-06-22 Roman Kennke <roman@kennke.org>
+
+ * sun/awt/CausedFocusEvent.java: New class. Needed for compatibility
+ in java.awt.peer.
+ * java/awt/Dialog.java
+ (ModalExclusionType): New enum.
+ (ModalityType): New enum.
+ * java/awt/Toolkit.java
+ (isModalExclusionTypeSupported): New abstract method.
+ (isModalityTypeSupported): New abstract method.
+ * java/awt/peer/ComponentPeer.java
+ (requestFocus): New method.
+ * java/awt/peer/FramePeer.java
+ (getBoundsPrivate): New method.
+ * java/awt/peer/RobotPeer.java
+ (dispose): New method.
+ * java/awt/peer/WindowPeer.java
+ (setAlwaysOnTop): New method.
+ (updateFocusableWindowState): New method.
+ (setModalBlocked): New method.
+ (updateMinimumSize): New method.
+ (updateIconImages): New method.
+ * gnu/java/awt/peer/GLightweightPeer.java
+ (requestFocus): New method.
+ * gnu/java/awt/peer/gtk/GdkRobotPeer.java
+ (dispose): New method.
+ * gnu/java/awt/peer/gtk/GtkComponentPeer.java
+ (requestFocus): New method.
+ * gnu/java/awt/peer/gtk/GtkFramePeer.java
+ (getBoundsPrivate): New method.
+ * gnu/java/awt/peer/gtk/GtkToolkit.java
+ (isModalExclusionTypeSupported): New method.
+ (isModalityTypeSupported): New method.
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java
+ (updateIconImages): New method.
+ (updateMinimumSize): New method.
+ (setModalBlocked): New method.
+ (updateFocusableWindowState): New method.
+ (setAlwaysOnTop): New method.
+ * gnu/java/awt/peer/headless/HeadlessToolkit.java
+ (isModalExclusionTypeSupported): New method.
+ (isModalityTypeSupported): New method.
+ * gnu/java/awt/peer/qt/QtComponentPeer.java
+ (requestFocus): New method.
+ * gnu/java/awt/peer/qt/QtFramePeer.java
+ (getBoundsPrivate): New method.
+ * gnu/java/awt/peer/qt/QtToolkit.java
+ (isModalExclusionTypeSupported): New method.
+ (isModalityTypeSupported): New method.
+ * gnu/java/awt/peer/qt/QtWindowPeer.java
+ (updateIconImages): New method.
+ (updateMinimumSize): New method.
+ (setModalBlocked): New method.
+ (updateFocusableWindowState): New method.
+ (setAlwaysOnTop): New method.
+ * gnu/java/awt/peer/swing/SwingComponentPeer.java
+ (requestFocus): New method.
+ * gnu/java/awt/peer/swing/SwingToolkit.java
+ (isModalExclusionTypeSupported): New method.
+ (isModalityTypeSupported): New method.
+ * gnu/java/awt/peer/swing/SwingWindowPeer.java
+ (updateIconImages): New method.
+ (updateMinimumSize): New method.
+ (setModalBlocked): New method.
+ (updateFocusableWindowState): New method.
+ (setAlwaysOnTop): New method.
+ * gnu/java/awt/peer/x/XFramePeer.java
+ (getBoundsPrivate): New method.
+ * gnu/java/awt/peer/x/XToolkit.java
+ (isModalExclusionTypeSupported): New method.
+ (isModalityTypeSupported): New method.
+
+2007-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/Makefile.am:
+ Compile in com.sun.tools.javah
+ * tools/com/sun/tools/javah/Main.java:
+ Javah Sun-->Classpath wrapper.
+
+2007-06-21 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * javax/swing/text/html/parser/AttributeList.java (getValues):
+ Check if values is null.
+
+2007-06-21 Roman Kennke <roman@kennke.org>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
+ Fix some type signatures.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
+ Fix intendation.
+
+2007-06-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/io/ObjectStreamClass.java (getClassUID): Return 0L for
+ enums and proxies.
+
+2007-06-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/net/URLClassLoader.java
+ (URLClassLoader(URL[],ClassLoader,URLStreamHandlerFactory):
+ Add factory to cache before calling addURLS.
+ (run): Don't call initCause() on ClassNotFoundException.
+
+2007-06-21 Jeroen Frijters <jeroen@frijters.net>
+
+ Fixes #32356
+ * java/lang/reflect/Array.java
+ (newInstance(Class,int[])): Call createMultiArray correctly.
+ (createMultiArray): Fixed dimensions processing order.
+
+2007-06-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * gnu/java/net/loader/URLLoader.java
+ (URLLoader(URLClassLoader,URLStreamHandlerCache,
+ URLStreamHandlerFactory,URL,URL)): Disabiguate CodeSource constructor
+ invocation.
+ * java/awt/AWTKeyStroke.java
+ (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile
+ error when compiled against OpenJDK java.util package.
+ * java/awt/AlphaComposite.java
+ (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile
+ error when compiled against OpenJDK java.util package.
+
+2007-06-21 Jeroen Frijters <jeroen@frijters.net>
+
+ * gnu/java/security/Engine.java
+ (getInstance(String,String,Provider,Object[]): Use correctly cased
+ property name.
+
+2007-07-19 Keith Seitz <keiths@redhat.com>
+
+ * classpath/gnu/classpath/jdwp/value/StringValue.java
(StringValue): Tag of StringValue is STRING not OBJECT.
(write): String values are written to the wire as tag byte
and object ID, not JdwpString.
-2007-07-20 Keith Seitz <keiths@redhat.com>
+2007-07-19 Keith Seitz <keiths@redhat.com>
* gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
(executeInvokeMethod): No need to use ValueFactory any more;
MethodResult.getReturnedValue now returns a Value.
- (executeNewInstance): Double-check that return result is
+ (executeNewInstance): Double-check that return result is
an ObjectValue; throw JdwpInternalErrorException if it is not.
(invokeMethod): Method IDs come from VMMethod, not VMIdManager.
Arguments are Values not Objects.
@@ -36,21 +523,295 @@
(SetThrownException): Remove.
(getResultType): Remove.
(setResultType): Remove.
- * gnu/classpath/jdwp/value/ObjectValue.java (getValue):
+ * gnu/classpath/jdwp/value/ObjectValue.java (getValue):
New method.
* vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
(executeMethod): Replace "nonVirtual" parameter with more
generic "options" parameter.
Replace java.lang.reflect.Method parameter with VMMethod.
- Replace Object[] parameter with Value[] parameter.
+ Replace Objet[] parameter with Value[] parameter.
+
+2007-07-10 Dalibor Topic <robilad@kaffe.org>
+
+ * configure.ac (FOUND_CACAO): Removed.
+
+2007-06-01 Robin Garner <robin.garner@anu.edu.au>
+
+ Fixes #32162
+ * gnu/xml/dom/DomNode.java: Correct concurrency problem when deep
+ cloning nodes.
+
+2007-05-30 Mark Wielaard <mark@klomp.org>
+
+ Fixes bug #32030 reported by Steve.Blackburn@anu.edu.au
+ * native/jni/java-nio/gnu_java_nio_VMChannel.c
+ (Java_gnu_java_nio_VMChannel_open): Only set O_TRUNC when
+ CPNIO_APPEND is not, but O_WRONLY is set.
+
+2007-05-25 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/awt/peer/x/XGraphics2D.java:
+ (rawDrawLine): Added addition of translation.
+ (rawFillRect): Dito.
+
+2007-05-25 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/awt/font/opentype/OpenTypeFont.java:
+ (getGlyphIndex): Call getGlyphCharMap() instead of
+ accessing cmap field directly.
+
+2007-05-24 Ito Kazumitsu <kaz@maczuka.gcd.org>
+
+ * native/jni/java-nio/gnu_java_nio_VMChannel.c
+ (Java_gnu_java_nio_VMChannel_available): Use fstat or select as an
+ alternative to ioctl.
+ * native/jni/native-lib/cpio.c(cpio_availableBytes): Corrected typo.
+
+2007-05-24 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/math/Fixed.java
+ (trunc): New method.
+
+2007-05-24 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java
+ (fillShape): Pass rendering hints to scanline converter.
+ * gnu/java/awt/java2d/ScanlineConverter.java
+ (ONE): New constant for the number 1 as fixed point number.
+ (Y_RESOLUTION): New constant for the Y resolution.
+ (doScanline): Handle the Y resolution.
+ (renderShape): Accept rendering hints.
+ (setResolution): Adjust maximum resolution with Y resolution.
+ * gnu/java/awt/java2d/ScanlineCoverage.java
+ (Iterator.handledPixelCoverage): New field.
+ (Iterator.next): Handle single pixel coverage.
+ (Iterator.hasNext): Handle single pixel coverage.
+ (Iterator.reset): Reset single pixel coverage.
+ (Range.toString): New method.
+ (Coverage.pixelCoverage): New field.
+ (add): Include Y (pixel) coverage.
+ (findOrInsert): Reset Y coverage in reused entries.
+
+2007-05-24 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/java2d/ScanlineCoverage.java
+ (Iterator): New class.
+ (Range): New class.
+ (Coverage.covDelta): Made field package private.
+ (Coverage.xPos): Made field package private.
+ (iterator): New field. Stores the iterator that is reused.
+ (ScanlineCoverage): Initialize iterator.
+ (assertion): Removed.
+ (isEmpty): Refined conditions.
+ (iterate): Return Iterator instance.
+ (next): Removed. This is done by the Iterator class now.
+ (test): Removed.
+ * gnu/java/awt/java2d/ScanlineConverter.java
+ (main): Removed.
+ * gnu/java/awt/peer/x/XGraphics2D.java
+ (renderScanline): Adjust to new coverage iterator stuff.
+ * gnu/java/awt/java2d/AbstractGraphics2D.java
+ (renderScanline): Adjust to new coverage iterator stuff.
+
+2007-05-23 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/util/Arrays.java
+ (copyOfRange(T,int,int)): Fixed to instantiate right array type.
+
+2007-05-22 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/awt/peer/x/XEventQueue.java:
+ (handleEvent): Calculate modifier value for mouse presse
+ and release events, clip button values.
+ (buttonToModifier): New method.
+ * gnu/java/awt/peer/x/KeyboardMapping.java:
+ (mapModifiers): Added cases for alt gr and the meta key.
+
+2007-05-22 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/awt/peer/x/XEventQueue.java:
+ (handleEvent): Use Input.event_window_id for
+ key presses/releases.
+
+2007-05-22 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/awt/peer/x/XEventQueue.java:
+ (handleEvent): Use Input.event_window_id instead of
+ Input.child_window_id for mouse presses/releases &
+ movement.
+
+2007-05-22 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/x/XFontPeer2.java
+ (XFontMetrics.charWidth): Use cached Point2D instance.
+ * gnu/java/awt/peer/x/XGraphics2D.java
+ (renderScanline): New method. Renders a scanline according to
+ the coverage information.
+ (setPaint): Call super, so that the state is updated correctly.
2007-05-19 Andreas Tobler <a.tobler@schweiz.org>
PR libgcj/31659
* m4/ax_create_stdint_h.m4: Apply patch from PR31659.
- * configure: Regenerate.
-2007-05-07 Keith Seitz <keiths@redhat.com>
+2007-05-18 Andreas Tobler <a.tobler@schweiz.org>
+
+ * autogen.sh (have_libtool): Update comments for Darwin.
+
+2007-05-18 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java
+ (fillScanlineAA): Removed. Replaced by renderScanline().
+ (fillScanline): Dito.
+ (renderScanline): New method. Renders a scanline according to
+ the coverage information from the scanline converter.
+ * gnu/java/awt/java2d/Pixelizer.java: New interface. Describes
+ the targets of the rasterizer.
+ * gnu/java/awt/java2d/ScanlineConverter.java
+ (alphaRes): Removed.
+ (ONE): Removed.
+ (scanlineCoverage): New field. Manages the coverage information.
+ (scanlinesPerPixel): Removed.
+ (scanlineXCov): Removed.
+ (scanlineYCov): Removed.
+ (slPix0): Removed.
+ (ScanlineConverter): Initialize scanline coverage data structure.
+ (clear): Also clear the scanline coverage.
+ (doScanline): Work with Pixelizer objects.
+ Use the ScanlineCoverage datastructure.
+ (main): New method. Performs some tests.
+ (renderShape): Work with pixelizer objects rather than directly
+ on AbstractGraphic2D. Adjust to use ScanlineCoverage datastructure.
+ (setResolution): Set resolution on ScanlineCoverage data too.
+ * gnu/java/awt/java2d/ScanlineCoverage.java: New class. Stores
+ and manages scanline coverage information.
+
+2007-05-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/rmi/MarshelledObject.java,
+ * java/rmi/activation/Activatable.java,
+ * java/rmi/activation/ActivationDesc.java,
+ * java/rmi/activation/ActivationGroup.java,
+ * java/rmi/activation/ActivationGroupDesc.java,
+ * java/rmi/activation/ActivationInstantiator.java,
+ * java/rmi/activation/ActivationMonitor.java,
+ * java/rmi/activation/Activator.java:
+ Genericized.
+
+2007-05-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Check if nsl library is needed for inet_pton.
+ * tools/gappletviewer.in,
+ * tools/gjar.in,
+ * tools/gjarsigner.in,
+ * tools/gjavah.in,
+ * tools/gkeytool.in,
+ * tools/gnative2ascii.in,
+ * tools/gorbd.in,
+ * tools/grmic.in,
+ * tools/grmid.in,
+ * tools/grmiregistry.in,
+ * tools/gserialver.in,
+ * tools/gtnameserv.in:
+ Remove spaces around '=' in setting of datarootdir.
+
+2007-05-11 Kyle Galloway <kgallowa@redhat.com>
+
+ * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
+ (executeMethods): Remove cast to ClassReferenceTypeId.
+
+2007-05-11 Jeroen Frijters <jeroen@frijters.net>
+
+ * java/lang/Float.java
+ (toString(float)): Call VMFloat instead of VMDouble.
+ (parseFloat): Call VMFloat. Fixed comment.
+ * vm/reference/java/lang/VMFloat.java
+ (toString, parseFloat): New methods.
+ NEWS: added note about these changes.
+
+2007-05-08 Kyle Galloway <kgallowa@redhat.com>
+
+ * vm/reference/VMFrame.java (<init>): Add a parameter for the "this"
+ pointer of the frame.
+
+2007-05-08 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/x/XFontPeer.java: Removed.
+ * gnu/java/awt/peer/x/XGraphics.java: Removed
+ * gnu/java/awt/peer/x/XFontPeer2.java
+ (XLineMetrics.getDescent): Use cached idendity transform.
+ (XFontMetrics.cachedPoint): New field. Caches a Point2D instance
+ for reuse.
+ (XFontMetrics.getAscent): Use cached idendity transform.
+ (XFontMetrics.getDescent): Use cached idendity transform.
+ (XFontMetrics.getHeight): Use cached idendity transform.
+ (XFontMetrics.charWidth): Map character to glyph index first.
+ (XFontMetrics.stringWidth): Use cached idendity transform.
+ (IDENDITY): New static field. A reused AffineTransform instance.
+
+2007-05-08 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/font/FontDelegate.java
+ (getGlyphIndex): New method. Maps characters to their
+ glyph index in the font.
+ M gnu/java/awt/font/opentype/OpenTypeFont.java
+ (getGlyphIndex): New method. Maps characters to their
+ glyph index in the font.
+
+2007-05-08 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java
+ (AA_SAMPLING): Removed.
+ (alpha): Removed field.
+ (edgeTable): Removed field.
+ (fillScanlineAA): Removed obsolete method.
+ (drawPolyline): Implemented by using a GeneralPath.
+ (drawPolygon): Reset the cached polygon.
+ (fillPolygon): Reset the cached polygon.
+ (fillShape): Default to antialias on for text.
+ (rawDrawLine): Use ShapeCache.
+ (rawDrawRect): Use ShapeCache.
+ (rawFillRect): Use ShapeCache.
+ (fillScanlineAA): New method for antialiased rendering.
+ * gnu/java/awt/java2d/ScanlineConverter.java
+ (scanlinesPerPixel): New field.
+ (minX,maxX): New fields.
+ (scanlineYCov,scanlineXCov): New fields.
+ (slPix0): New field.
+ (alphaRes): New field.
+ (renderShape): Add antialiasing functionality.
+ (doScanline): Add antialiasing functionality.
+ (setResolution): Add antialiasing functionality.
+ (addShape): Determine span in X direction.
+ (fit): Fix thinko.
+ * gnu/java/awt/java2d/ShapeCache.java
+ (polyline): New field for caching polylines.
+
+2007-05-08 Roman Kennke <roman@kennke.org>
+
+ * examples/gnu/classpath/examples/awt/HintingDemo.java
+ Add support for showing the original vs the hinted glyphs plus
+ a grid.
+
+2007-05-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * lib/Makefile.am: Print property files as well.
+
+2007-05-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * native/jni/gtk-peer/gtkpeer.c:
+ Added support for 64-bit architectures.
+
+2007-05-04 Chris Burdess <dog@gnu.org>
+
+ Fixes PR #31814
+ * gnu/xml/dom/DomDocument.java,
+ gnu/xml/dom/ls/SAXEventSink.java: Don't default attribute when mode is
+ #IMPLIED and value is not specified.
+ * gnu/xml/stream/XMLParser.java: Add debugging info.
+
+2007-05-03 Keith Seitz <keiths@redhat.com>
* gnu/classpath/jdwp/Jdwp.java (notify): Rewrite to call
new array-based method.
@@ -68,6 +829,15 @@
Change parameters to use arrays for events and requests.
Add suspendPolicy parameter.
+2007-05-03 Thomas Fitzsimmons <fitzsim@redhat.com>
+
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304
+ * javax/swing/text/html/HTMLEditorKit.java
+ (getStyleSheet): Throw RuntimeException when style loading fails.
+ * lib/Makefile.am: Treat css files as a property files.
+ * javax/swing/text/html/default.css: Move to...
+ * resource/javax/swing/text/html/default.css: New file.
+
2007-05-03 Andrew Haley <aph@redhat.com>
* gnu/javax/management/Server.java (Server): Record the delegate.
@@ -75,9 +845,188 @@
(unregisterMBean): Likewise.
(notify): New method.
+2007-04-30 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/x/XLightweightPeer.java: Removed.
+ * gnu/java/awt/peer/x/XEventPump.java
+ (handleEvent): Improved handling of event ids to window mapping.
+ * gnu/java/awt/peer/x/XFontPeer2.java:
+ Load font.properties at startup.
+ (XLineMetrics.glyphVector): New field.
+ (XLineMetrics.XLineMetrics): Get glyphVector from font delegate.
+ (XLineMetrics.getHeight): Implemented using glyph vector.
+ (XLineMetrics.getLeading): Implemented.
+ (XFontPeer2): Change hardwired font to something more common.
+ (encodeFont): New methods, encodes a font to the font.properties
+ format.
+ (validName): New method. Checks and returns a valid font name.
+ * gnu/java/awt/peer/x/XGraphics2D.java
+ (foreground): New field.
+ (rawSetPixel): Removed.
+ (rawDrawLine): Draw a segment.
+ (rawSetForeground): Removed.
+ (fillScanline): New method.
+ (fillScanlineAA): New method.
+ (setPaint): Set the foreground color.
+ (fillShape): Synchronize super behaviour.
+ (rawDrawImage): Optimize XImage.
+ * gnu/java/awt/peer/x/XGraphicsDevice.java
+ (getDisplay): Improve creation of socket.
+ (createLocalSocket): New helper method to create a local socket.
+ * gnu/java/awt/peer/x/XImage.java
+ (getGraphics): Return an XGraphics2D.
+ * gnu/java/awt/peer/x/XToolkit.java
+ (getClasspathFontPeer): Use XFontPeer2.
+ (createComponent): Removed.
+ * gnu/java/awt/peer/x/XWindowPeer.java
+ (getGraphics): Return an XGraphics2D.
+ (show): Clear the window.
+ (getFontMetrics): Use XFontPeer2.
+
+2007-04-30 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/swing/SwingButtonPeer.java
+ (SwingButton.handleFocusEvent): New method. Handles focus events.
+ (SwingButton.requestFocus): Overridden to avoid loop into peer
+ and back.
+ (SwingButton.requestFocus(boolean)): Overridden to avoid loop
+ into peer and back.
+ * gnu/java/awt/peer/swing/SwingCheckboxPeer.java: New class.
+ Implements CheckboxPeer for Swing toolkit.
+ * gnu/java/awt/peer/swing/SwingComponent.java
+ (handleFocusEvent): New method. Handles focus events.
+ * gnu/java/awt/peer/swing/SwingComponentPeer.java
+ (getMinimumSize): Delegate to minimumSize().
+ (getPreferredSize): Delegate to preferredSize().
+ (handleEvent): Only paint when component is showing. Coalesce
+ paint event in any case. Reformat. Handle focus events.
+ (requestFocus): Post FOCUS_GAINED event.
+ (handleFocusEvent): New method. Delegate to SwingComponent
+ object.
+ * gnu/java/awt/peer/swing/SwingContainerPeer.java
+ (addHeavyweightDescendent): Make this protected.
+ (removeHeavyweightDescendent): Make this protected.
+ (getHeavyweightDescendents): New method. Returns all registered
+ heavyweights.
+ (handleKeyEvent): Delegate to peer's handleEvent() method.
+ * gnu/java/awt/peer/swing/SwingLabelPeer.java
+ (SwingLabel.handleFocusEvent): New method.
+ * gnu/java/awt/peer/swing/SwingListPeer.java
+ (SwingList.handleFocusEvent): New method.
+ * gnu/java/awt/peer/swing/SwingPanelPeer.java
+ Fix typo and import.
+ * gnu/java/awt/peer/swing/SwingTextAreaPeer.java
+ Wrap up text area in viewport.
+ * gnu/java/awt/peer/swing/SwingTextFieldPeer.java
+ (SwingTextField.handleFocusEvent): New method.
+ (SwingTextField.requestFocus): New method.
+ (SwingTextField.requestFocus(boolean)): New method.
+
+2007-04-27 Keith Seitz <keiths@redhat.com>
+
+ * gnu/classpath/jdwp/event/EventManager.java
+ (getEventRequest): Rename to...
+ (getEventRequests): ...this.
+ Change return type to array of requests.
+ Construct a list of all matching events and return
+ them all.
+ * gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests
+ and send event notifications for all matching requests.
+
+2007-04-27 Keith Seitz <keiths@redhat.com>
+
+ * gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java
+ (matches): Use Location.equals to determine equality.
+ * vm/reference/gnu/classpath/jdwp/VMMethod.java (equals):
+ New method.
+ * gnu/classpath/jdwp/util/Location.java (equals):
+ New method.
+
+2007-04-27 Roman Kennke <roman@kennke.org>
+
+ * java/nio/CharViewBufferImpl.java
+ (slice): Fixed offset for slice buffer.
+ * java/nio/DoubleViewBufferImpl.java
+ (slice): Fixed offset for slice buffer.
+ * java/nio/FloatViewBufferImpl.java
+ (slice): Fixed offset for slice buffer.
+ * java/nio/IntViewBufferImpl.java
+ (slice): Fixed offset for slice buffer.
+ * java/nio/LongViewBufferImpl.java
+ (slice): Fixed offset for slice buffer.
+ * java/nio/ShortViewBufferImpl.java
+ (slice): Fixed offset for slice buffer.
+
+2007-04-25 Roman Kennke <roman@kennke.org>
+
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+ * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
+ * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
+ * gnu/java/awt/peer/gtk/GtkGenericPeer.java,
+ * gnu/java/awt/peer/gtk/GtkToolkit.java:
+ Added fields to hold the native state. Added class initialization
+ things to fetch the JNI field IDs.
+ * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
+ * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h,
+ * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
+ * include/gnu_java_awt_peer_gtk_GtkToolkit.h:
+ Added / changed class init methods for field ID initialization.
+ * native/jni/classpath/Makefile.am: Removed native_state stuff.
+ * native/jni/classpath/native_state.c,
+ * native/jni/classpath/native_state.h: Removed.
+ * native/jni/gconf-peer/Makefile.am: Removed native_state stuff.
+ * native/jni/gtk-peer/Makefile.am: Removed native_state stuff.
+ * native/jni/gtk-peer/cairographics2d.h,
+ * native/jni/gtk-peer/gdkdisplay.h,
+ * native/jni/gtk-peer/gdkfont.h,
+ * native/jni/gtk-peer/GtkDragSourceContextPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c,
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,
+ * native/jni/gtk-peer/gtk_jawt.c:
+ Removed native state stuff and replaced that with an approach
+ to store the native state of an object directly in that object.
+ * native/jni/gtk-peer/gtkpeer.c: New file. Implements the new native
+ state management.
+ * native/jni/gtk-peer/gtkpeer.h: Remove NSA stuff and added
+ prototypes for new native state handling.
+
2007-04-23 Mark Wielaard <mark@klomp.org>
- * configure.ac (VERSION): Set to 0.95.
+ * doc/www.gnu.org/newsitems.txt: Add 0.95.
+ * doc/www.gnu.org/downloads/downloads.wml: Likewise.
+ * doc/www.gnu.org/announce/20070423.wml: New file.
2007-04-23 Mark Wielaard <mark@klomp.org>
@@ -88,10 +1037,15 @@
PR classpath/31646:
* java/util/Arrays.java (qsort): Corrected initial median calculation.
-2007-04-19 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2007-04-22 Dalibor Topic <robilad@kaffe.org>
- * m4/acinclude.m4
- (CLASSPATH_FIND_JAVAC): Allow detected JAVAC.
+ * Makefile.am (ACLOCAL_AMFLAGS): Add contents of env var
+ LOCAL_AUTORECONF_AMFLAGS to allow for systems where the user
+ has a mix of system & hacked-up autotools.
+
+2007-04-22 Dalibor Topic <robilad@kaffe.org>
+
+ * autogen.sh: Removed unnecessary -I m4 flag.
2007-04-19 Casey Marshall <csm@gnu.org>
@@ -99,6 +1053,127 @@
* gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
(createSocket): New method.
+2007-04-19 Dalibor Topic <robilad@kaffe.org>
+
+ * tools/gappletviewer.in,
+ tools/gjar.in,
+ tools/gjarsigner.in,
+ tools/gjavah.in,
+ tools/gkeytool.in,
+ tools/gnative2ascii.in,
+ tools/gorbd.in,
+ tools/grmic.in,
+ tools/grmid.in,
+ tools/grmiregistry.in,
+ tools/gserialver.in,
+ tools/gtnameserv.in: Set datarootdir to fix a warning from
+ configure.
+
+2007-04-19 Dalibor Topic <robilad@kaffe.org>
+
+ * INSTALL: Removed file generated by autogen.sh.
+
+ * .cvsignore: Added INSTALL.
+
+2007-04-19 Dalibor Topic <robilad@kaffe.org>
+
+ * INSTALL: Replaced by generic install file.
+
+ * autogen.sh: Removed redundant and no longer necessary
+ sections. Use autoreconf.
+
+2007-04-19 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/acinclude.m4
+ (CLASSPATH_FIND_JAVAC): Allow detected JAVAC.
+
+2007-04-19 Dalibor Topic <robilad@kaffe.org>
+
+ * lib/Makefile.am (propertyfiles, cssfiles, metafiles,
+ iconfiles) Removed variables, inlined them into resource
+ target to avoid use of shell construct and fix portability
+ warning from automake 1.10.
+
+2007-04-18 Tom Tromey <tromey@redhat.com>
+
+ * tools/gnu/classpath/tools/javah/MethodHelper.java (print):
+ Changed arguments. Directly print method name.
+ * tools/gnu/classpath/tools/javah/ClassWrapper.java
+ (methodNameMap): New field.
+ (makeVtable): Initialize it.
+ (printMethods): Compute name for bridge targets.
+
+2007-04-18 Andrew Haley <aph@redhat.com>
+
+ * gnu/java/rmi/server/UnicastConnectionManager.java
+ (UnicastConnectionManager(int port, RMIServerSocketFactory)):
+ Listen on "localhost", not localhost.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * include/GtkDragSourceContextPeer.h: Removed, renamed to ..
+
+ * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h:
+ New file.
+
+ * native/jni/gtk-peer/GtkDragSourceContextPeer.c: Include
+ gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h.
+
+ * include/Makefile.am (GTKPEER_H_FILES): Renamed
+ GtkDragSourceContextPeer.h to
+ gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
+ per current convention. Use portable construct to create
+ gtk and libxmlj peer headers. Depend on the java source code,
+ rather then the class files in order to avoid spurious
+ regeneration.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * include/Makefile.am: Use portable construct to create
+ qt peer headers. Depend on the java source code,
+ rather then the class files in order to avoid spurious
+ regeneration.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * include/Makefile.am: Use portable construct to create
+ alsa and dssi peer headers. Depend on the java source code,
+ rather then the class files in order to avoid spurious
+ regeneration.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * include/Makefile.am: Use portable construct to create
+ gconf peer header. Depend on the java source code, rather
+ the class file to avoid spurious regeneration.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h:
+ Removed empty header file.
+
+ * include/Makefile.am (QTPEER_H_FILES):
+ Removed gnu_java_awt_peer_qt_QtGraphicsEnvironment.h.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * native/jni/xmlj/xmlj_xpath.c: Don't include
+ gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h.
+
+ * include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h:
+ Removed empty header file.
+
+ * include/Makefile.am (XMLJ_H_FILES): Removed
+ gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h.
+
+2007-04-18 Dalibor Topic <robilad@kaffe.org>
+
+ * include/gnu_java_awt_peer_qt_QtContainerPeer.h: Removed
+ empty header file.
+
+ * include/Makefile.am (QTPEER_H_FILES): Removed
+ gnu_java_awt_peer_qt_QtContainerPeer.h.
+
2007-04-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
* native/jni/java-net/local.c:
@@ -106,6 +1181,41 @@
* native/jni/java-nio/gnu_java_nio_VMChannel.c,
* native/jni/native-lib/cpnet.c:
Likewise.
+
+2007-04-17 Dalibor Topic <robilad@kaffe.org>
+
+ * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH):
+ Use AC_CHECK_PROGS and AC_MSG_ERROR. Check for
+ gjavah, gcjh-wrapper-4.1 and gcjh-4.1. Error out
+ when no javah implementation can be found.
+
+2007-04-17 Dalibor Topic <robilad@kaffe.org>
+
+ * configure.ac (CLASSPATH_WITH_JAVAH): Only check if
+ the JNI headers need to be regenerated.
+
+ * m4/acinclude.m4 (USER_SPECIFIED_JAVAH): Removed unused
+ conditional.
+
+2007-04-17 Dalibor Topic <robilad@kaffe.org>
+
+ * lib/Makefile.am (JAVAH): Removed unused variable.
+
+2007-04-17 Casey Marshall <csm@gnu.org>
+
+ PR classpath/31302:
+ * gnu/javax/net/ssl/provider/SSLSocketImpl.java (SSLSocketImpl):
+ Always make a new socket.
+ (bind, connect, getInetAddress, getLocalAddress, getPort,
+ getLocalPort, getRemoteSocketAddress, getLocalSocketAddress,
+ setTcpNoDelay, getTcpNoDelay, setSoLinger, getSoLinger,
+ setOOBInline, getOOBInline, setSoTimeout, getSoTimeout,
+ setSendBufferSize, getSendBufferSize, setReceiveBufferSize,
+ getReceiveBufferSize, setKeepAlive, getKeepAlive, setTrafficClass,
+ getTrafficClass, setReuseAddress, getReuseAddress, close,
+ shutdownInput, shutdownOutput, isConnected, isBound, isClosed,
+ isInputShutdown, isOutputShutdown): Always use
+ 'underlyingSocket'.
2007-04-16 Dalibor Topic <robilad@kaffe.org>
@@ -117,15 +1227,39 @@
* native/plugin/Makefile.am (libgcjwebplugin_la_LDFLAGS):
Added AM_LDFLAGS for automake 1.10.
-2007-04-15 Dalibor Topic <robilad@kaffe.org>
+2007-04-16 Tom Tromey <tromey@redhat.com>
- * depcomp, install-sh, missing, mkinstalldirs,
- doc/texinfo.tex: Removed files generated by autogen.sh.
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
+ * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
+ (createSocket): Change order of delegation.
- * .cvsignore: Ignore generated files depcomp, install-sh,
- missing, mkinstalldirs.
+2007-04-16 Andrew Haley <aph@redhat.com>
- * doc/.cvsignore: Ignore generated file doc/texinfo.tex.
+ * java/io/ObjectInputStream.java: (parseContent): Call (String,
+ Object) version of dumpElementln.
+ (dumpElementln(String, Object)): New method.
+ * java/io/ObjectOutputStream.java (writeObject): Call (String,
+ Object) version of dumpElementln.
+ (dumpElementln(String, Object)): New method.
+
+2007-04-16 Mark Wielaard <mark@klomp.org>
+
+ Fixes bug #31590
+ * java/net/URI.java (parseServerAuthority): Allow empty portStr.
+
+2007-04-16 Andrew Haley <aph@redhat.com>
+
+ * org/omg/IOP/TaggedComponentHelper.java (read): Use
+ read_octet_array(), not read().
+ (write): Use write_octet_array(), not write().
+
+ * org/omg/PortableServer/Servant.java (_get_delegate): Throw if no
+ delegate has been set.
+
+2007-04-16 Chris Burdess <dog@gnu.org>
+
+ * gnu/xml/stream/XMLParser.java: Work around a problem with incorrectly
+ formatted file URLs.
2007-04-15 Dalibor Topic <robilad@kaffe.org>
@@ -140,6 +1274,11 @@
* native/target/.cvsignore: Removed.
+2007-04-15 Dalibor Topic <robilad@kaffe.org>
+
+ * doc/Makefile.am: Fix portability warnings from
+ automake 1.10.
+
2007-04-15 Roman Kennke <roman@kennke.org>
* native/target/Linux/.cvsignore,
@@ -147,8 +1286,13 @@
2007-04-15 Dalibor Topic <robilad@kaffe.org>
- * doc/Makefile.am: Fix portability warnings from
- automake 1.10.
+ * depcomp, install-sh, missing, mkinstalldirs,
+ doc/texinfo.tex: Removed files generated by autogen.sh.
+
+ * .cvsignore: Ignore generated files depcomp, install-sh,
+ missing, mkinstalldirs.
+
+ * doc/.cvsignore: Ignore generated file doc/texinfo.tex.
2007-04-15 Dalibor Topic <robilad@kaffe.org>
@@ -160,44 +1304,62 @@
2007-04-15 Dalibor Topic <robilad@kaffe.org>
- * configure.ac: Added support for Iceape libraries as
+ * configure.ac: Added support for Iceape libraries as
a substitute for Mozilla for Debian.
-2007-04-17 Tom Tromey <tromey@redhat.com>
+2007-04-12 Roman Kennke <roman@kennke.org>
- https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
- * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
- (createSocket): Change order of delegation.
+ * java/nio/Buffer.java
+ (array): New abstract method.
+ (hasArray): New abstract method.
+ (arrayOffset): New abstract method.
+ (isDirect): New abstract method.
-2007-04-17 Casey Marshall <csm@gnu.org>
+2007-04-12 Roman Kennke <roman@kennke.org>
- PR classpath/31302:
- * gnu/javax/net/ssl/provider/SSLSocketImpl.java (SSLSocketImpl):
- Always make a new socket.
- (bind, connect, getInetAddress, getLocalAddress, getPort,
- getLocalPort, getRemoteSocketAddress, getLocalSocketAddress,
- setTcpNoDelay, getTcpNoDelay, setSoLinger, getSoLinger,
- setOOBInline, getOOBInline, setSoTimeout, getSoTimeout,
- setSendBufferSize, getSendBufferSize, setReceiveBufferSize,
- getReceiveBufferSize, setKeepAlive, getKeepAlive, setTrafficClass,
- getTrafficClass, setReuseAddress, getReuseAddress, close,
- shutdownInput, shutdownOutput, isConnected, isBound, isClosed,
- isInputShutdown, isOutputShutdown): Always use
- 'underlyingSocket'.
+ * java/nio/CharBuffer.java
+ (wrap(CharSequence,int,int)): Reimplemented using specialized
+ subclass.
+ * java/nio/CharSequenceBuffer.java: New class. Implements char
+ buffers that wrap CharSequences.
-2007-04-16 Mark Wielaard <mark@klomp.org>
+2007-04-12 Francis Kung <fkung@redhat.com>
- Fixes bug #31590
- * java/net/URI.java (parseServerAuthority): Allow empty portStr.
+ PR 23887
+ * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+ (drawGlyphVector): Check for transforms before using optimized path.
+ * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+ (FreetypeGlyphVector(FreetypeGlyphVector)): Initialize glyphTransforms array
+ to null and check for nulls in copied array.
+ (hasTransforms): New method.
+ (performDefaultLayout): Check for identity transform.
+ (setGlyphTransform): Check for equality before making changes.
-2007-04-16 Chris Burdess <dog@gnu.org>
+2007-04-12 Francis Kung <fkung@redhat.com>
- * gnu/xml/stream/XMLParser.java: Work around a problem with
- incorrectly formatted file URLs.
+ PR 23887
+ * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+ (getGlyphLogicalBounds): Fix number of coordinates in transform call.
+ (performDefaultLayout): Respect transformation in font attributes.
+ * javax/swing/plaf/basic/BasicProgressBarUI.java
+ (getStringPlacement): Handle vertical orientations.
+ (paintString): Space vertical text properly.
-2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at>
+2007-04-12 Francis Kung <fkung@redhat.com>
- * configure.ac: Added AC_C_INLINE.
+ PR 31539
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+ (ft2_map): New static variable.
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState): Set up ft2_map.
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Use cached ft2_map.
+
+2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
+ (clipboard_get_func): Call DeleteLocalRef.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
+ (clipboard_targets_received): Likewise.
+ (clipboard_uris_received): Likewise.
2007-04-12 Christian Thalinger <twisti@complang.tuwien.ac.at>
@@ -207,37 +1369,46 @@
* native/jni/native-lib/cpnet.c (cpnet_getHostByName): Check for
different number of arguments of gethostbyname_r.
-2007-04-11 Francis Kung <fkung@redhat.com>
+2007-04-12 Mark Wielaard <mark@klomp.org>
- * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
- (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Avoid
- unneeded object reference.
- * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
- (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): Unlock font.
- (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Remove redundant
- checks.
+ * gnu/java/awt/peer/ClasspathFontPeer.java (LRUCache): New static
+ inner class.
+ (transCache): New static LRUChache field.
+ (copyTransformToAttrs): Check whether a TransformAttribute already
+ exists in the transCache for the given AffineTransform.
-2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at>
+2007-04-12 Mark Wielaard <mark@klomp.org>
- * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed
- warning on some compilers, e.g. MIPSpro.
+ * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8.
2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at>
* native/jni/java-nio/javanio.c: Include fcntl.h instead of
sys/fcntl.h.
-2007-04-12 Mark Wielaard <mark@klomp.org>
+2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at>
- * gnu/java/awt/peer/ClasspathFontPeer.java (LRUCache): New static
- inner class.
- (transCache): New static LRUChache field.
- (copyTransformToAttrs): Check whether a TransformAttribute already
- exists in the transCache for the given AffineTransform.
+ * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed
+ warning on some compilers, e.g. MIPSpro.
-2007-04-12 Mark Wielaard <mark@klomp.org>
+2007-04-11 Francis Kung <fkung@redhat.com>
- * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+ (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Avoid unneeded
+ object reference.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): Unlock font.
+ (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Remove redundant checks.
+
+2007-04-11 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * configure.ac: Added AC_C_INLINE.
+
+2007-04-10 Mark Wielaard <mark@klomp.org>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+ (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile):
+ Destroy surface after it is used to create a cairo context.
2007-04-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
@@ -250,12 +1421,6 @@
(quote(String)): Handle newlines and quotes
correctly.
-2007-04-10 Mark Wielaard <mark@klomp.org>
-
- * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
- (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile):
- Destroy surface after it is used to create a cairo context.
-
2007-04-09 Francis Kung <fkung@redhat.com>
PR 31311
@@ -265,16 +1430,26 @@
* gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
(Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface): Removed.
- (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surfac
-e
+ (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surface
after it is used to create a cairo context.
+2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * javax/management/ObjectName.java:
+ (propertyValuePattern): New cache variable.
+ (parse(String)): Record in propertyListPattern
+ not propertyPattern and set propertyValuePattern.
+ (isPropertyPattern()): Semantics altered to be the
+ OR of isPropertyListPattern() and isPropertyValuePattern().
+ (isPropertyListPattern()): Implemented.
+ (isPropertyValuePattern()): Implemented.
+ (isPropertyValuePattern(String)): Implemented.
+
2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
* javax/management/ObjectName.java:
(parse(String)): Fix result of getKeyPropertyListString().
-
+
2007-04-07 Mark Wielaard <mark@klomp.org>
* resource/META-INF/services/javax.xml.parsers.DocumentBuilderFactor,
@@ -286,13 +1461,19 @@ e
2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * javax/management/ObjectName.java:
+ (checkComponents()): Separate value and
+ key illegal characters to allow value wildcards.
+
+2007-04-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
* javax/management/ObjectName.java
(parse(String)): Fix parsing where the wildcard
is juxtaposed between other pairs.
-
+
2007-04-06 Mark Wielaard <mark@klomp.org>
- * configure.ac (VERSION): Set to 0.95-rc.
+ * configure.ac (VERSION): Set to 0.96-pre.
2007-04-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj
index 8bb18fc8e53..c28eba0be82 100644
--- a/libjava/classpath/ChangeLog.gcj
+++ b/libjava/classpath/ChangeLog.gcj
@@ -1,3 +1,29 @@
+2008-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ * doc/cp-tools.texinfo (@direntry): Prefix info name with cp-.
+ * doc/cp-hacking.texinfo (@direntry): Likewise.
+ * doc/cp-vmintegration.texinfo (@direntry): Likewise.
+
+2008-02-06 Matthias Klose <doko@ubuntu.com>
+
+ * tools/Makefile.am ($(TOOLS_ZIP)): Copy over rmic template files.
+ Copy resource files independent of JAVA_MAINTAINER_MODE.
+ * tools/Makefile.in: Regenerate.
+
+2008-01-28 Tom Tromey <tromey@redhat.com>
+
+ * tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class:
+ Added.
+
+2007-09-04 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Append libgcj soversion to nativeexeclibdir.
+ * configure: Regenerate.
+
+2007-08-04 Matthias Klose <doko@ubuntu.com>
+
+ * java/util/EnumMap.java (clone): Add cast.
+
2007-07-12 Matthias Klose <doko@ubuntu.com>
* lib/jazzlib, tools/gnu/classpath/tools/rmi: Remove empty directories.
diff --git a/libjava/classpath/INSTALL b/libjava/classpath/INSTALL
index 86ce66c64e4..23e5f25d0e5 100644
--- a/libjava/classpath/INSTALL
+++ b/libjava/classpath/INSTALL
@@ -1,225 +1,236 @@
-Installing GNU Classpath - Last updated: June 19, 2006
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
-First, this is a development release only! Unless you are interested in
-active development and debugging, or just like running random alpha code,
-this release is probably not for you. Please see the README file for a
-list of VMs that work with GNU Classpath.
+Specifying the System Type
+==========================
-Note that if you are building from a non-released (CVS) version of GNU
-classpath, installation instructions are found in the doc/hacking.texi
-file. Or at http://www.gnu.org/software/classpath/docs/hacking.html
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
-------------------------------------------------------------------
-Suggested Software
-------------------------------------------------------------------
- GNU make ("gmake") is required for building Classpath.
+ CPU-COMPANY-SYSTEM
- For any build environment involving native libraries, these
- new versions of autoconf, automake, and libtool are required
- if changes are made that require rebuilding configure, Makefile.in,
- aclocal.m4, or config.h.in.
+where SYSTEM can have one of these forms:
- - GNU autoconf 2.59+
- - GNU automake 1.9+
- - GNU libtool 1.5+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
- When working from CVS you can run the above tools by executing
- ./autogen.sh in the source directory.
+Sharing Defaults
+================
- For building the Java bytecode (.class files), one of these
- compilers are required. You can select which compiler using
- --with-jikes, --with-gcj, --with-ecj or --with-kjc as argument to
- configure; the present default is gcj.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
- - GCJ 4.0+ (part of the GNU GCC package).
- - IBM jikes 1.19+.
- - Eclipse Compiler for Java 3.1+
- - The kjc compiler is supported with configure but we have
- been unable to successfully compile with it.
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
- IMPORTANT: Versions of GCJ which are earlier than 4.0 contain
- bugs which make it impossible to compile the class library and
- are *not* supported any more. If you are stuck on a system where
- GCC 3.x is the system compiler we recommend using Jikes.
-
- For building the gtk+ AWT peer JNI native libraries, the following
- are required unless --disable-gtk-peer is used as an argument to
- configure.
-
- - GTK+ 2.8.x (or higher)
- - gdk-pixbuf
-
- - XTest Extension (libXtst) for GdkRobot support in java.awt.
-
- - There is a bug in earlier versions of at-spi, atk, and gail, which are
- used for GNOME accessibility. Prior to version 1.18.0 of these packages,
- gtk graphical applications should be run without accessibility (clear the
- GTK_MODULES environment variable).
-
- For building gcjwebplugin you'll need the Mozilla plugin
- support headers and libraries.
-
- The GConf-based backend for java.util.prefs needs the following
- library headers:
-
- - gconf 2.11.2 (or higher)
-
- For building the Qt AWT peer JNI native libraries you have to
- specify --enable-qt-peer and need the following library:
-
- - Qt 4.0.1
-
- For building the X AWT peers see information below
- (Building and running with the X AWT peers). You will need
- the Escher 0.2.3 library:
- http://escher.sourceforge.net
-
- Please note that at the moment most operating systems do not
- ship Qt4 by default. We recommend using GNU Classpath' Qt4
- support only for its developers and bug reporters. See
- http://developer.classpath.org/mediation/ClasspathShowcase
- for details on how to get it to work.
-
- For building the xmlj JAXP implementation (disabled by default, use
- configure --enable-xmlj) you need the following installed:
- - The XML C library for Gnome (libxml2)
- http://www.xmlsoft.org/
- Minimum version of libxml2 required: 2.6.8
-
- - The XSLT C library for Gnome (libxslt)
- http://www.xmlsoft.org/XSLT/
- Minimum version of libxslt required: 1.1.11
-
- For building the documentation you will need
-
- - texinfo 4.2 or higher.
-
- For building the ALSA midi provider code you will need
- ALSA. http://www.alsa-project.org.
-
- For building the DSSI midi synthesizer provider code you will
- need DSSI from http://dssi.sourceforge.net. This, in turn,
- introduces many dependencies, including:
-
- - liblo: the Lightweight OSC implementation
- http://plugin.org.uk/liblo/
-
- - LADSPA: Linux Audio Developer's Simple Plugin API
- http://www.ladspa.org
-
- - the JACK Audio Connection Kit: A low latency audio server
- http://jackit.sourceforge.net
-
- - libsndfile: an audio file I/O library
- http://www.mega-nerd.com/libsndfile/
-
- - fluidsynth: a real-time SoundFont 2 based soft-synth
- http://www.fluidsynth.org/
-
- For enabling the com.sun.tools.javac support in tools.zip you
- will a need jar file containing the Eclipse Java Compiler.
- Otherwise com.sun.tools.javac will not be included in tools.zip.
-
-This package was designed to use the GNU standard for configuration
-and makefiles. To build and install do the following:
-
-1). Run the "configure" script to configure the package. There are
-various options you might want to pass to configure to control how the
-package is built. Consider the following options, "configure --help"
-gives a complete list.
-
- --enable-java compile Java source default=yes
- --enable-jni compile JNI source default=yes
- --enable-gtk-peer compile GTK native peers default=yes
- --enable-qt-peer compile Qt4 native peers default=no
- --enable-default-toolkit
- fully qualified class name of default AWT toolkit
- default=no
- --enable-xmlj compile native libxml/xslt library default=no
- --enable-load-library enable to use JNI native methods default=yes
- --enable-local-sockets enable build of local Unix sockets
- --with-jikes to compile the class library using jikes
- the default is to use gcj
- --with-glibj define what to install (zip|flat|both|none)
- default=zip
- --with-escher=/path/to/escher
- enable build of the X/Escher peers, with
- the escher library at /path/to/escher, either
- in the form of a JAR file, or a directory
- containing the .class files of Escher.
- --enable-Werror whether to compile C code with -Werror which turns
- any compiler warning into a compilation failure
- default=no
- --with-gjdoc generate documentation using gjdoc default=no
- --with-jay Regenerate the parsers with jay must be given the
- path to the jay executable
- --with-glibj-zip=ABS.PATH
- use prebuilt glibj.zip class library
- --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
- Compiler
-
-For more flags run configure --help.
-
-2). Type "gmake" to build the package. There is no longer a
-dependency problem and we aim to keep it that way.
-
-3). Type "gmake install" to install everything. This may require
-being the superuser. The default install path is /usr/local/classpath
-you may change it by giving configure the --prefix=<path> option.
-
-Report bugs to classpath@gnu.org or much better via Savannah at this
-URL: http://savannah.gnu.org/support/?func=addsupport&group=classpath
-
-Happy Hacking!
-
-Once installed, GNU Classpath is ready to be used by any VM that supports
-using the official version of GNU Classpath. Simply ensure that
-/usr/local/classpath/share/classpath is in your $CLASSPATH environment
-variable. You'll also have to set your LD_LIBRARY_PATH
-variable (or similar system configuration) to include the Classpath
-native libraries in /usr/local/classpath/lib/classpath.
-
-*NOTE* All example paths assume the default prefix is used with configure.
-If you don't know what this means then the examples are correct.
-
-LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
-CLASSPATH=/usr/local/classpath/share/classpath/glibj.zip:.
-export LD_LIBRARY_PATH CLASSPATH
-
-More information about the VMs that use GNU Classpath can be found in the
-README file.
-
-------------------------------------------------------------------
-Building and running with the X AWT peers
-------------------------------------------------------------------
-
-In order build the X peers you need the Escher library version 0.2.3
-from http://escher.sourceforge.net . Unpack (and optionally build) the
-Escher library following the instructions in the downloaded
-package. Enable the build of the X peers by passing
---with-escher=/path/to/escher to ./configure where /path/to/escher
-either points to a directory structure or JAR file containing the
-Escher classes. For Unix systems it is preferable to also build local
-socket support by passing --enable-local-sockets, which accelerates
-the network communication to the X server significantly.
-
-In this release you have to enable the X peers at runtime by
-setting the system property awt.toolkit=gnu.java.awt.peer.x.XToolkit
-by passing -Dawt.toolkit=gnu.java.awt.peer.x.XToolkit to the java
-command when running an application.
-
-------------------------------------------------------------------
-Misc. Notes
-------------------------------------------------------------------
-Compilation is accomplished using a compiler's @file syntax. For our
-part, we avoid placing make style dependencies as rules upon the
-compilation of a particular class file and leave this up to the Java
-compiler instead.
-
-The --enable-maintainer-mode option to configure currently does very
-little and shouldn't be used by ordinary developers or users anyway.
-
-On Windows machines, the native libraries do not currently build, but
-the Java bytecode library will. Gcj trunk is beginning to work under
-Cygwin. The mingw32 version of jikes cannot follow symbolic links, you
-must use a cygwin build of jikes to access this limited functionality.
diff --git a/libjava/classpath/Makefile.am b/libjava/classpath/Makefile.am
index 59cc3c0733b..4434026c331 100644
--- a/libjava/classpath/Makefile.am
+++ b/libjava/classpath/Makefile.am
@@ -4,8 +4,9 @@
SUBDIRS = lib doc external include native resource scripts tools $(EXAMPLESDIR)
DIST_SUBDIRS = lib doc external include native resource scripts tools examples
+# Allow users to pass site-specific flags to autoreconf via an env var.
## GCJ LOCAL: we need an extra -I here.
-ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config
+ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
native: lib
diff --git a/libjava/classpath/Makefile.in b/libjava/classpath/Makefile.in
index cbec75149dd..3f1ba4820e8 100644
--- a/libjava/classpath/Makefile.in
+++ b/libjava/classpath/Makefile.in
@@ -45,6 +45,8 @@ DIST_COMMON = README $(am__configure_deps) \
$(top_srcdir)/gnu/classpath/Configuration.java.in \
$(top_srcdir)/gnu/java/security/Configuration.java.in \
$(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \
+ $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in \
+ $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in \
../../ABOUT-NLS ../../COPYING ../../COPYING.LIB \
../../ChangeLog ../../README ../../compile ../../config.guess \
../../config.rpath ../../config.sub ../../depcomp \
@@ -79,7 +81,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = gnu/classpath/Configuration.java \
gnu/java/security/Configuration.java \
- resource/META-INF/services/java.util.prefs.PreferencesFactory
+ resource/META-INF/services/java.util.prefs.PreferencesFactory \
+ resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader \
+ resource/META-INF/services/javax.sound.sampled.spi.MixerProvider
SOURCES =
DIST_SOURCES =
MULTISRCTOP =
@@ -142,6 +146,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -180,8 +186,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -205,6 +209,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -277,8 +290,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -354,7 +365,9 @@ vm_classes = @vm_classes@
# lib first, to compile .class files before native code, last examples
SUBDIRS = lib doc external include native resource scripts tools $(EXAMPLESDIR)
DIST_SUBDIRS = lib doc external include native resource scripts tools examples
-ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config
+
+# Allow users to pass site-specific flags to autoreconf via an env var.
+ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 ChangeLog-2006 \
ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
@@ -402,6 +415,10 @@ gnu/java/security/Configuration.java: $(top_builddir)/config.status $(top_srcdir
cd $(top_builddir) && $(SHELL) ./config.status $@
resource/META-INF/services/java.util.prefs.PreferencesFactory: $(top_builddir)/config.status $(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in
cd $(top_builddir) && $(SHELL) ./config.status $@
+resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: $(top_builddir)/config.status $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+resource/META-INF/services/javax.sound.sampled.spi.MixerProvider: $(top_builddir)/config.status $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
mostlyclean-libtool:
-rm -f *.lo
diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS
index 85630ffab3c..c46be603589 100644
--- a/libjava/classpath/NEWS
+++ b/libjava/classpath/NEWS
@@ -1,3 +1,10 @@
+New in release 0.96
+
+Runtime interface changes:
+
+* Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default
+ implementations are the same as previous behavior.
+
New in release 0.95 (Apr 23, 2007)
* Full merge of 1.5 generics work.
diff --git a/libjava/classpath/autogen.sh b/libjava/classpath/autogen.sh
index eb94e2258b3..3e46cff1d9c 100755
--- a/libjava/classpath/autogen.sh
+++ b/libjava/classpath/autogen.sh
@@ -28,50 +28,9 @@ if $have_libtool ; then : ; else
echo "You must have libtool 1.5 installed to compile $PROJECT."
echo "Install the appropriate package for your distribution,"
echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
- echo "For Darwin you need the latest stable (1.5.18) to support"
- echo "Frameworks linking. Also, you have to point ACLOCAL_FLAGS"
- echo "to this libtool/share/aclocal."
- DIE=1
-fi
-
-have_autoconf=false
-if autoconf --version < /dev/null > /dev/null 2>&1 ; then
- autoconf_version=`autoconf --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
- case $autoconf_version in
- 2.59* | 2.6[0-9]* )
- have_autoconf=true
- ;;
- esac
-fi
-if $have_autoconf ; then : ; else
- echo
- echo "You must have autoconf 2.59 or later installed for $PROJECT."
- echo "Install the appropriate package for your distribution,"
- echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
- DIE=1
-fi
-
-have_automake=false
-# We know each 1.9.x version works
-if automake-1.9 --version < /dev/null > /dev/null 2>&1 ; then
- AUTOMAKE=automake-1.9
- ACLOCAL=aclocal-1.9
- have_automake=true
-elif automake --version < /dev/null > /dev/null 2>&1 ; then
- AUTOMAKE=automake
- ACLOCAL=aclocal
- automake_version=`automake --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
- case $automake_version in
- 1.9* | 1.10*)
- have_automake=true
- ;;
- esac
-fi
-if $have_automake ; then : ; else
- echo
- echo "You must have automake 1.9 or 1.10 installed to compile $PROJECT."
- echo "Install the appropriate package for your distribution,"
- echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
+ echo "For Darwin you need the latest stable (1.5.22) to support"
+ echo "Frameworks linking. Also, you have to point"
+ echo "LOCAL_AUTORECONF_FLAGS to this libtool/share/aclocal."
DIE=1
fi
@@ -91,34 +50,8 @@ if test "x$AUTOGEN_SUBDIR_MODE" = "xyes"; then
fi
fi
-if test -z "$ACLOCAL_FLAGS"; then
-
- acdir=`$ACLOCAL --print-ac-dir`
- m4list="glib-2.0.m4 glib-gettext.m4"
-
- for file in $m4list
- do
- if [ ! -f "$acdir/$file" ]; then
- echo "WARNING: aclocal's directory is $acdir, but..."
- echo " no file $acdir/$file"
- echo " You may see fatal macro warnings below."
- echo " If these files are installed in /some/dir, set the ACLOCAL_FLAGS "
- echo " environment variable to \"-I /some/dir\", or install"
- echo " $acdir/$file."
- echo ""
- fi
- done
-fi
-
-# Use the "-I m4 flag in order to include pkg.m4 and other .m4 files.
-$ACLOCAL -I m4 $ACLOCAL_FLAGS || exit $?
-
-${LIBTOOLIZE} --force || exit $?
-
-autoheader || exit $?
+autoreconf --force --install --warnings=no-portability || exit $?
-$AUTOMAKE --add-missing || exit $?
-autoconf || exit $?
cd $ORIGDIR || exit $?
if test "x$AUTOGEN_SUBDIR_MODE" = "xyes"; then
diff --git a/libjava/classpath/configure b/libjava/classpath/configure
index cdc6bf4d3e1..7d283ed19a3 100755
--- a/libjava/classpath/configure
+++ b/libjava/classpath/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GNU Classpath 0.95.
+# Generated by GNU Autoconf 2.59 for GNU Classpath 0.96-pre.
#
# Report bugs to <classpath@gnu.org>.
#
@@ -418,8 +418,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='GNU Classpath'
PACKAGE_TARNAME='classpath'
-PACKAGE_VERSION='0.95'
-PACKAGE_STRING='GNU Classpath 0.95'
+PACKAGE_VERSION='0.96-pre'
+PACKAGE_STRING='GNU Classpath 0.96-pre'
PACKAGE_BUGREPORT='classpath@gnu.org'
ac_unique_file="java/lang/System.java"
@@ -461,7 +461,7 @@ ac_includes_default="\
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY FOUND_CACAO_TRUE FOUND_CACAO_FALSE CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH USER_SPECIFIED_JAVAH_TRUE USER_SPECIFIED_JAVAH_FALSE CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC ECJ JAVAC FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_JAVAC_TRUE FOUND_JAVAC_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC ECJ JAVAC FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_JAVAC_TRUE FOUND_JAVAC_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -942,7 +942,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GNU Classpath 0.95 to adapt to many kinds of systems.
+\`configure' configures GNU Classpath 0.96-pre to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1013,7 +1013,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU Classpath 0.95:";;
+ short | recursive ) echo "Configuration of GNU Classpath 0.96-pre:";;
esac
cat <<\_ACEOF
@@ -1038,6 +1038,8 @@ Optional Features:
--disable-gconf-peer compile GConf native peers (disabled by
--disable-jni) default=yes
+ --enable-gstreamer-peer compile GStreamer native peers (disabled by
+ --disable-jni) default=no
--enable-Werror whether to compile C code with -Werror which turns
any compiler warning into a compilation failure
default=no
@@ -1227,7 +1229,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-GNU Classpath configure 0.95
+GNU Classpath configure 0.96-pre
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1241,7 +1243,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GNU Classpath $as_me 0.95, which was
+It was created by GNU Classpath $as_me 0.96-pre, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -2076,7 +2078,7 @@ fi
# Define the identity of the package.
PACKAGE='classpath'
- VERSION='0.95'
+ VERSION='0.96-pre'
cat >>confdefs.h <<_ACEOF
@@ -2406,6 +2408,36 @@ echo "$as_me: error: No --enable-gconf-peers (or --disable-gconf-peers) option;
{ (exit 1); exit 1; }; }
fi;
+# Check whether --enable-gstreamer-peer or --disable-gstreamer-peer was given.
+if test "${enable_gstreamer_peer+set}" = set; then
+ enableval="$enable_gstreamer_peer"
+ case "${enableval}" in
+ yes) COMPILE_GSTREAMER_PEER=yes ;;
+ no) COMPILE_GSTREAMER_PEER=no ;;
+ *) COMPILE_GSTREAMER_PEER=default ;;
+ esac
+else
+ COMPILE_GSTREAMER_PEER=default
+fi;
+
+
+if test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
+ CREATE_GSTREAMER_PEER_LIBRARIES_TRUE=
+ CREATE_GSTREAMER_PEER_LIBRARIES_FALSE='#'
+else
+ CREATE_GSTREAMER_PEER_LIBRARIES_TRUE='#'
+ CREATE_GSTREAMER_PEER_LIBRARIES_FALSE=
+fi
+
+
+# Check whether --enable-gstreamer-peers or --disable-gstreamer-peers was given.
+if test "${enable_gstreamer_peers+set}" = set; then
+ enableval="$enable_gstreamer_peers"
+ { { echo "$as_me:$LINENO: error: No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer" >&5
+echo "$as_me: error: No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer" >&2;}
+ { (exit 1); exit 1; }; }
+fi;
+
# Check whether --enable-Werror or --disable-Werror was given.
if test "${enable_Werror+set}" = set; then
enableval="$enable_Werror"
@@ -4739,7 +4771,7 @@ if test "${with_native_libdir+set}" = set; then
else
- nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`
+ nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`-`awk -F: '/^[^#].*:/ { print $1 }' ${srcdir}/../libtool-version`
fi;
@@ -4775,16 +4807,6 @@ fi;
-
-if test "x`basename $VM_BINARY`" = xcacao; then
- FOUND_CACAO_TRUE=
- FOUND_CACAO_FALSE='#'
-else
- FOUND_CACAO_TRUE='#'
- FOUND_CACAO_FALSE=
-fi
-
-
# Check whether --enable-regen-headers or --disable-regen-headers was given.
if test "${enable_regen_headers+set}" = set; then
enableval="$enable_regen_headers"
@@ -5680,13 +5702,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5683: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:5705: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5686: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:5708: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5689: output\"" >&5)
+ (eval echo "\"\$as_me:5711: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6730,7 +6752,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6733 "configure"' > conftest.$ac_ext
+ echo '#line 6755 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -7362,11 +7384,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7365: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7387: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7369: \$? = $ac_status" >&5
+ echo "$as_me:7391: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -7684,11 +7706,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7687: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7709: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7691: \$? = $ac_status" >&5
+ echo "$as_me:7713: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -7789,11 +7811,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7792: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7814: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:7796: \$? = $ac_status" >&5
+ echo "$as_me:7818: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -7844,11 +7866,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:7847: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7869: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:7851: \$? = $ac_status" >&5
+ echo "$as_me:7873: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -10696,7 +10718,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10699 "configure"
+#line 10721 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10796,7 +10818,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10799 "configure"
+#line 10821 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15193,11 +15215,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15196: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15218: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15200: \$? = $ac_status" >&5
+ echo "$as_me:15222: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15292,11 +15314,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15295: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15317: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15299: \$? = $ac_status" >&5
+ echo "$as_me:15321: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -15344,11 +15366,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15347: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15369: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15351: \$? = $ac_status" >&5
+ echo "$as_me:15373: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17225,6 +17247,142 @@ fi
rm -f conftest*
+ echo "$as_me:$LINENO: checking for library containing inet_pton" >&5
+echo $ECHO_N "checking for library containing inet_pton... $ECHO_C" >&6
+if test "${ac_cv_search_inet_pton+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+ac_cv_search_inet_pton=no
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char inet_pton ();
+int
+main ()
+{
+inet_pton ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_inet_pton="none required"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_inet_pton" = no; then
+ for ac_lib in nsl; do
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char inet_pton ();
+int
+main ()
+{
+inet_pton ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_search_inet_pton="-l$ac_lib"
+break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_inet_pton" >&5
+echo "${ECHO_T}$ac_cv_search_inet_pton" >&6
+if test "$ac_cv_search_inet_pton" != no; then
+ test "$ac_cv_search_inet_pton" = "none required" || LIBS="$ac_cv_search_inet_pton $LIBS"
+
+fi
+
@@ -21911,6 +22069,322 @@ echo "$as_me: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adj
fi
fi
+ if test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
+ GST_MAJORMINOR=0.10
+ GST_REQUIRED=0.10.10
+
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo "$as_me:$LINENO: checking for gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED" >&5
+echo $ECHO_N "checking for gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED... $ECHO_C" >&6
+
+ if $PKG_CONFIG --exists "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED" ; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ succeeded=yes
+
+ echo "$as_me:$LINENO: checking GSTREAMER_CFLAGS" >&5
+echo $ECHO_N "checking GSTREAMER_CFLAGS... $ECHO_C" >&6
+ GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo "$as_me:$LINENO: result: $GSTREAMER_CFLAGS" >&5
+echo "${ECHO_T}$GSTREAMER_CFLAGS" >&6
+
+ echo "$as_me:$LINENO: checking GSTREAMER_LIBS" >&5
+echo $ECHO_N "checking GSTREAMER_LIBS... $ECHO_C" >&6
+ GSTREAMER_LIBS=`$PKG_CONFIG --libs "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo "$as_me:$LINENO: result: $GSTREAMER_LIBS" >&5
+echo "${ECHO_T}$GSTREAMER_LIBS" >&6
+ else
+ GSTREAMER_CFLAGS=""
+ GSTREAMER_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo $GSTREAMER_PKG_ERRORS
+ fi
+
+
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ :
+ else
+ { { echo "$as_me:$LINENO: error: Library requirements (gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+
+
+
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo "$as_me:$LINENO: checking for gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED" >&5
+echo $ECHO_N "checking for gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED... $ECHO_C" >&6
+
+ if $PKG_CONFIG --exists "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED" ; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ succeeded=yes
+
+ echo "$as_me:$LINENO: checking GSTREAMER_BASE_CFLAGS" >&5
+echo $ECHO_N "checking GSTREAMER_BASE_CFLAGS... $ECHO_C" >&6
+ GSTREAMER_BASE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo "$as_me:$LINENO: result: $GSTREAMER_BASE_CFLAGS" >&5
+echo "${ECHO_T}$GSTREAMER_BASE_CFLAGS" >&6
+
+ echo "$as_me:$LINENO: checking GSTREAMER_BASE_LIBS" >&5
+echo $ECHO_N "checking GSTREAMER_BASE_LIBS... $ECHO_C" >&6
+ GSTREAMER_BASE_LIBS=`$PKG_CONFIG --libs "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo "$as_me:$LINENO: result: $GSTREAMER_BASE_LIBS" >&5
+echo "${ECHO_T}$GSTREAMER_BASE_LIBS" >&6
+ else
+ GSTREAMER_BASE_CFLAGS=""
+ GSTREAMER_BASE_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ GSTREAMER_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo $GSTREAMER_BASE_PKG_ERRORS
+ fi
+
+
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ :
+ else
+ { { echo "$as_me:$LINENO: error: Library requirements (gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+
+
+
+
+ succeeded=no
+
+ if test -z "$PKG_CONFIG"; then
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+ echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ fi
+
+ if test "$PKG_CONFIG" = "no" ; then
+ echo "*** The pkg-config script could not be found. Make sure it is"
+ echo "*** in your path, or set the PKG_CONFIG environment variable"
+ echo "*** to the full path to pkg-config."
+ echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+ else
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ echo "$as_me:$LINENO: checking for gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED" >&5
+echo $ECHO_N "checking for gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED... $ECHO_C" >&6
+
+ if $PKG_CONFIG --exists "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED" ; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ succeeded=yes
+
+ echo "$as_me:$LINENO: checking GSTREAMER_PLUGINS_BASE_CFLAGS" >&5
+echo $ECHO_N "checking GSTREAMER_PLUGINS_BASE_CFLAGS... $ECHO_C" >&6
+ GSTREAMER_PLUGINS_BASE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo "$as_me:$LINENO: result: $GSTREAMER_PLUGINS_BASE_CFLAGS" >&5
+echo "${ECHO_T}$GSTREAMER_PLUGINS_BASE_CFLAGS" >&6
+
+ echo "$as_me:$LINENO: checking GSTREAMER_PLUGINS_BASE_LIBS" >&5
+echo $ECHO_N "checking GSTREAMER_PLUGINS_BASE_LIBS... $ECHO_C" >&6
+ GSTREAMER_PLUGINS_BASE_LIBS=`$PKG_CONFIG --libs "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo "$as_me:$LINENO: result: $GSTREAMER_PLUGINS_BASE_LIBS" >&5
+echo "${ECHO_T}$GSTREAMER_PLUGINS_BASE_LIBS" >&6
+ else
+ GSTREAMER_PLUGINS_BASE_CFLAGS=""
+ GSTREAMER_PLUGINS_BASE_LIBS=""
+ ## If we have a custom action on failure, don't print errors, but
+ ## do set a variable so people can do so.
+ GSTREAMER_PLUGINS_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+ echo $GSTREAMER_PLUGINS_BASE_PKG_ERRORS
+ fi
+
+
+
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ fi
+ fi
+
+ if test $succeeded = yes; then
+ :
+ else
+ { { echo "$as_me:$LINENO: error: Library requirements (gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+
+
+
+ GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
+
+
+ GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
+ GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
+ fi
+
+
+
if test "x${COMPILE_QT_PEER}" = xyes; then
succeeded=no
@@ -22319,6 +22793,61 @@ echo "${ECHO_T}no" >&6
fi
rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ echo "$as_me:$LINENO: checking for MSG_WAITALL" >&5
+echo $ECHO_N "checking for MSG_WAITALL... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/socket.h>
+int
+main ()
+{
+ int f = MSG_WAITALL;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MSG_WAITALL 1
+_ACEOF
+
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
if test "x${COMPILE_PLUGIN}" = xyes; then
@@ -23122,6 +23651,7 @@ echo "$as_me: error: Library requirements (gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gd
fi
fi
+if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
# Check whether --with-javah or --without-javah was given.
@@ -23175,9 +23705,10 @@ fi
fi
else
- for javah_name in gcjh javah; do
- # Extract the first word of ""$javah_name"", so it can be a program name with args.
-set dummy "$javah_name"; ac_word=$2
+ for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_USER_JAVAH+set}" = set; then
@@ -23215,16 +23746,16 @@ else
echo "${ECHO_T}no" >&6
fi
- if test "x${USER_JAVAH}" != x; then
- break
- fi
- done
+ test -n "$USER_JAVAH" && break
+done
+
fi
-# if test "x${USER_JAVAH}" = x; then
-# echo "configure: cannot find javah" 1>&2
-# exit 1
-# fi
+ if test "x${USER_JAVAH}" = x; then
+ { { echo "$as_me:$LINENO: error: can not find javah" >&5
+echo "$as_me: error: can not find javah" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
else
@@ -23273,9 +23804,10 @@ fi
fi
else
- for javah_name in gcjh javah; do
- # Extract the first word of ""$javah_name"", so it can be a program name with args.
-set dummy "$javah_name"; ac_word=$2
+ for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_USER_JAVAH+set}" = set; then
@@ -23313,16 +23845,16 @@ else
echo "${ECHO_T}no" >&6
fi
- if test "x${USER_JAVAH}" != x; then
- break
- fi
- done
+ test -n "$USER_JAVAH" && break
+done
+
fi
-# if test "x${USER_JAVAH}" = x; then
-# echo "configure: cannot find javah" 1>&2
-# exit 1
-# fi
+ if test "x${USER_JAVAH}" = x; then
+ { { echo "$as_me:$LINENO: error: can not find javah" >&5
+echo "$as_me: error: can not find javah" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
fi
@@ -23374,9 +23906,10 @@ fi
fi
else
- for javah_name in gcjh javah; do
- # Extract the first word of ""$javah_name"", so it can be a program name with args.
-set dummy "$javah_name"; ac_word=$2
+ for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_USER_JAVAH+set}" = set; then
@@ -23414,32 +23947,23 @@ else
echo "${ECHO_T}no" >&6
fi
- if test "x${USER_JAVAH}" != x; then
- break
- fi
- done
+ test -n "$USER_JAVAH" && break
+done
+
fi
-# if test "x${USER_JAVAH}" = x; then
-# echo "configure: cannot find javah" 1>&2
-# exit 1
-# fi
+ if test "x${USER_JAVAH}" = x; then
+ { { echo "$as_me:$LINENO: error: can not find javah" >&5
+echo "$as_me: error: can not find javah" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
fi;
-if test "x${USER_JAVAH}" != x; then
- USER_SPECIFIED_JAVAH_TRUE=
- USER_SPECIFIED_JAVAH_FALSE='#'
-else
- USER_SPECIFIED_JAVAH_TRUE='#'
- USER_SPECIFIED_JAVAH_FALSE=
fi
-
-
-
CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib"
@@ -24793,49 +25317,7 @@ if test "${with_javac+set}" = set; then
if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
if test "x${withval}" != x; then
- if test -f "${withval}"; then
- JAVAC="${withval}"
- else
- # Extract the first word of ""${withval}"", so it can be a program name with args.
-set dummy "${withval}"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JAVAC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $JAVAC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- ;;
-esac
-fi
-JAVAC=$ac_cv_path_JAVAC
-
-if test -n "$JAVAC"; then
- echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- fi
+ JAVAC="${withval}"
else
# Extract the first word of ""javac"", so it can be a program name with args.
set dummy "javac"; ac_word=$2
@@ -24882,49 +25364,7 @@ fi
if test "x${withval}" != xno; then
if test "x" != x; then
- if test -f ""; then
- JAVAC=""
- else
- # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JAVAC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $JAVAC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- ;;
-esac
-fi
-JAVAC=$ac_cv_path_JAVAC
-
-if test -n "$JAVAC"; then
- echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- fi
+ JAVAC=""
else
# Extract the first word of ""javac"", so it can be a program name with args.
set dummy "javac"; ac_word=$2
@@ -24975,49 +25415,7 @@ else
if test "x" != x; then
- if test -f ""; then
- JAVAC=""
- else
- # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JAVAC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- case $JAVAC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-
- ;;
-esac
-fi
-JAVAC=$ac_cv_path_JAVAC
-
-if test -n "$JAVAC"; then
- echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
- echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
- fi
+ JAVAC=""
else
# Extract the first word of ""javac"", so it can be a program name with args.
set dummy "javac"; ac_word=$2
@@ -29102,7 +29500,7 @@ fi
- ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
+ ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
if test "x${COMPILE_WRAPPERS}" = xno
@@ -29272,6 +29670,13 @@ echo "$as_me: error: conditional \"CREATE_GCONF_PEER_LIBRARIES\" was never defin
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${CREATE_GSTREAMER_PEER_LIBRARIES_TRUE}" && test -z "${CREATE_GSTREAMER_PEER_LIBRARIES_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CREATE_GSTREAMER_PEER_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GSTREAMER_PEER_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${CREATE_XMLJ_LIBRARY_TRUE}" && test -z "${CREATE_XMLJ_LIBRARY_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CREATE_XMLJ_LIBRARY\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29328,13 +29733,6 @@ echo "$as_me: error: conditional \"CREATE_PLUGIN\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${FOUND_CACAO_TRUE}" && test -z "${FOUND_CACAO_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"FOUND_CACAO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_CACAO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
if test -z "${CREATE_JNI_HEADERS_TRUE}" && test -z "${CREATE_JNI_HEADERS_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CREATE_JNI_HEADERS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29370,13 +29768,6 @@ echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
-if test -z "${USER_SPECIFIED_JAVAH_TRUE}" && test -z "${USER_SPECIFIED_JAVAH_FALSE}"; then
- { { echo "$as_me:$LINENO: error: conditional \"USER_SPECIFIED_JAVAH\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"USER_SPECIFIED_JAVAH\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
- { (exit 1); exit 1; }; }
-fi
if test -z "${FOUND_GCJ_TRUE}" && test -z "${FOUND_GCJ_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"FOUND_GCJ\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29781,7 +30172,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by GNU Classpath $as_me 0.95, which was
+This file was extended by GNU Classpath $as_me 0.96-pre, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -29847,7 +30238,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-GNU Classpath config.status 0.95
+GNU Classpath config.status 0.96-pre
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -30343,6 +30734,7 @@ do
"native/jni/java-util/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-util/Makefile" ;;
"native/jni/gtk-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/gtk-peer/Makefile" ;;
"native/jni/gconf-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/gconf-peer/Makefile" ;;
+ "native/jni/gstreamer-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/gstreamer-peer/Makefile" ;;
"native/jni/qt-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/qt-peer/Makefile" ;;
"native/jni/xmlj/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/xmlj/Makefile" ;;
"native/jni/midi-alsa/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/midi-alsa/Makefile" ;;
@@ -30351,6 +30743,8 @@ do
"native/plugin/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/plugin/Makefile" ;;
"resource/Makefile" ) CONFIG_FILES="$CONFIG_FILES resource/Makefile" ;;
"resource/META-INF/services/java.util.prefs.PreferencesFactory" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/java.util.prefs.PreferencesFactory" ;;
+ "resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader" ;;
+ "resource/META-INF/services/javax.sound.sampled.spi.MixerProvider" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/javax.sound.sampled.spi.MixerProvider" ;;
"scripts/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
"scripts/classpath.spec" ) CONFIG_FILES="$CONFIG_FILES scripts/classpath.spec" ;;
"lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
@@ -30529,6 +30923,8 @@ s,@CREATE_CORE_JNI_LIBRARIES_TRUE@,$CREATE_CORE_JNI_LIBRARIES_TRUE,;t t
s,@CREATE_CORE_JNI_LIBRARIES_FALSE@,$CREATE_CORE_JNI_LIBRARIES_FALSE,;t t
s,@CREATE_GCONF_PEER_LIBRARIES_TRUE@,$CREATE_GCONF_PEER_LIBRARIES_TRUE,;t t
s,@CREATE_GCONF_PEER_LIBRARIES_FALSE@,$CREATE_GCONF_PEER_LIBRARIES_FALSE,;t t
+s,@CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@,$CREATE_GSTREAMER_PEER_LIBRARIES_TRUE,;t t
+s,@CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@,$CREATE_GSTREAMER_PEER_LIBRARIES_FALSE,;t t
s,@default_toolkit@,$default_toolkit,;t t
s,@CREATE_XMLJ_LIBRARY_TRUE@,$CREATE_XMLJ_LIBRARY_TRUE,;t t
s,@CREATE_XMLJ_LIBRARY_FALSE@,$CREATE_XMLJ_LIBRARY_FALSE,;t t
@@ -30564,8 +30960,6 @@ s,@toolexeclibdir@,$toolexeclibdir,;t t
s,@nativeexeclibdir@,$nativeexeclibdir,;t t
s,@glibjdir@,$glibjdir,;t t
s,@VM_BINARY@,$VM_BINARY,;t t
-s,@FOUND_CACAO_TRUE@,$FOUND_CACAO_TRUE,;t t
-s,@FOUND_CACAO_FALSE@,$FOUND_CACAO_FALSE,;t t
s,@CREATE_JNI_HEADERS_TRUE@,$CREATE_JNI_HEADERS_TRUE,;t t
s,@CREATE_JNI_HEADERS_FALSE@,$CREATE_JNI_HEADERS_FALSE,;t t
s,@CREATE_WRAPPERS_TRUE@,$CREATE_WRAPPERS_TRUE,;t t
@@ -30621,6 +31015,15 @@ s,@GCONF_CFLAGS@,$GCONF_CFLAGS,;t t
s,@GCONF_LIBS@,$GCONF_LIBS,;t t
s,@GDK_CFLAGS@,$GDK_CFLAGS,;t t
s,@GDK_LIBS@,$GDK_LIBS,;t t
+s,@GSTREAMER_CFLAGS@,$GSTREAMER_CFLAGS,;t t
+s,@GSTREAMER_LIBS@,$GSTREAMER_LIBS,;t t
+s,@GSTREAMER_BASE_CFLAGS@,$GSTREAMER_BASE_CFLAGS,;t t
+s,@GSTREAMER_BASE_LIBS@,$GSTREAMER_BASE_LIBS,;t t
+s,@GSTREAMER_PLUGINS_BASE_CFLAGS@,$GSTREAMER_PLUGINS_BASE_CFLAGS,;t t
+s,@GSTREAMER_PLUGINS_BASE_LIBS@,$GSTREAMER_PLUGINS_BASE_LIBS,;t t
+s,@GST_PLUGIN_LDFLAGS@,$GST_PLUGIN_LDFLAGS,;t t
+s,@GSTREAMER_FILE_READER@,$GSTREAMER_FILE_READER,;t t
+s,@GSTREAMER_MIXER_PROVIDER@,$GSTREAMER_MIXER_PROVIDER,;t t
s,@QT_CFLAGS@,$QT_CFLAGS,;t t
s,@QT_LIBS@,$QT_LIBS,;t t
s,@MOC@,$MOC,;t t
@@ -30630,8 +31033,6 @@ s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
s,@GLIB_LIBS@,$GLIB_LIBS,;t t
s,@PLUGIN_DIR@,$PLUGIN_DIR,;t t
s,@USER_JAVAH@,$USER_JAVAH,;t t
-s,@USER_SPECIFIED_JAVAH_TRUE@,$USER_SPECIFIED_JAVAH_TRUE,;t t
-s,@USER_SPECIFIED_JAVAH_FALSE@,$USER_SPECIFIED_JAVAH_FALSE,;t t
s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t
s,@GCJ@,$GCJ,;t t
s,@JIKES@,$JIKES,;t t
diff --git a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac
index a751c7dd312..0a017d19e9d 100644
--- a/libjava/classpath/configure.ac
+++ b/libjava/classpath/configure.ac
@@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
dnl define([AC_CACHE_LOAD], )dnl
dnl define([AC_CACHE_SAVE], )dnl
-AC_INIT([GNU Classpath],[0.95],[classpath@gnu.org],[classpath])
+AC_INIT([GNU Classpath],[0.96-pre],[classpath@gnu.org],[classpath])
AC_CONFIG_SRCDIR(java/lang/System.java)
dnl GCJ LOCAL
@@ -150,11 +150,29 @@ AC_ARG_ENABLE([gconf-peer],
AM_CONDITIONAL(CREATE_GCONF_PEER_LIBRARIES, test "x${COMPILE_GCONF_PEER}" = xyes)
dnl -----------------------------------------------------------
-dnl GTK native peer error checking
+dnl GConf native peer error checking
dnl -----------------------------------------------------------
AC_ARG_ENABLE([gconf-peers],,AC_MSG_ERROR([No --enable-gconf-peers (or --disable-gconf-peers) option; you want --enable-gconf-peer]))
dnl ------------------------------------------------------------
+dnl GStreamer based sound provider backend (disabled by default)
+dnl ------------------------------------------------------------
+AC_ARG_ENABLE([gstreamer-peer],
+ [AS_HELP_STRING(--enable-gstreamer-peer,compile GStreamer native peers (disabled by --disable-jni) [default=no])],
+ [case "${enableval}" in
+ yes) COMPILE_GSTREAMER_PEER=yes ;;
+ no) COMPILE_GSTREAMER_PEER=no ;;
+ *) COMPILE_GSTREAMER_PEER=default ;;
+ esac],
+ [COMPILE_GSTREAMER_PEER=default])
+AM_CONDITIONAL(CREATE_GSTREAMER_PEER_LIBRARIES, test "x${COMPILE_GSTREAMER_PEER}" = xyes)
+
+dnl -----------------------------------------------------------
+dnl GStreamer native peer error checking
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([gstreamer-peers],,AC_MSG_ERROR([No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer]))
+
+dnl ------------------------------------------------------------
dnl Whether to compile with -Werror or not (disabled by default)
dnl ------------------------------------------------------------
AC_ARG_ENABLE([Werror],
@@ -276,14 +294,14 @@ CLASSPATH_TOOLEXECLIBDIR
dnl -----------------------------------------------------------
dnl Sets the native libraries installation dir
dnl -----------------------------------------------------------
-dnl GCJ LOCAL: default to ${toolexeclibdir}/gcj-${gcc_version}
+dnl GCJ LOCAL: default to ${toolexeclibdir}/gcj-${gcc_version}-${libgcj_soversion}
AC_ARG_WITH([native-libdir],
[AS_HELP_STRING(--with-native-libdir,sets the installation directory for native libraries [default='${libdir}/${PACKAGE}'])],
[
nativeexeclibdir=${withval}
],
[
- nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`
+ nativeexeclibdir='${toolexeclibdir}/gcj-'`cat ${srcdir}/../../gcc/BASE-VER`-`awk -F: '/^[[^#]].*:/ { print $1 }' ${srcdir}/../libtool-version`
])
AC_SUBST(nativeexeclibdir)
@@ -315,7 +333,6 @@ AC_ARG_WITH([vm],
])
AC_SUBST(VM_BINARY)
-AM_CONDITIONAL(FOUND_CACAO, test "x`basename $VM_BINARY`" = xcacao)
dnl -----------------------------------------------------------
dnl Regenerate headers at build time (disabled by default)
@@ -416,6 +433,7 @@ if test "x${COMPILE_JNI}" = xyes; then
AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
+ AC_SEARCH_LIBS([inet_pton],[nsl])
AC_CHECK_FUNCS([ftruncate fsync select \
gethostname socket strerror fork pipe execve open close \
lseek fstat read readv write writev htonl memset htons connect \
@@ -566,6 +584,39 @@ if test "x${COMPILE_JNI}" = xyes; then
fi
fi
+ dnl gstreamer-peer
+ if test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
+ GST_MAJORMINOR=0.10
+ GST_REQUIRED=0.10.10
+
+ dnl gstreamer
+ PKG_CHECK_MODULES(GSTREAMER, gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED)
+ AC_SUBST(GSTREAMER_CFLAGS)
+ AC_SUBST(GSTREAMER_LIBS)
+
+ dnl gstreamer-base
+ PKG_CHECK_MODULES(GSTREAMER_BASE,
+ gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED)
+ AC_SUBST(GSTREAMER_BASE_CFLAGS)
+ AC_SUBST(GSTREAMER_BASE_LIBS)
+
+ dnl gstreamer-plugin-base
+ PKG_CHECK_MODULES(GSTREAMER_PLUGINS_BASE,
+ gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED)
+ AC_SUBST(GSTREAMER_PLUGINS_BASE_CFLAGS)
+ AC_SUBST(GSTREAMER_PLUGINS_BASE_LIBS)
+
+ GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
+ AC_SUBST(GST_PLUGIN_LDFLAGS)
+
+ dnl set the gstreamer based file reader, writer and mixer
+ GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
+ GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
+ fi
+ dnl add the gstreamer resources
+ AC_SUBST(GSTREAMER_FILE_READER)
+ AC_SUBST(GSTREAMER_MIXER_PROVIDER)
+
dnl Check for AWT related Qt4
if test "x${COMPILE_QT_PEER}" = xyes; then
PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.1.0, HAVE_QT4="yes", HAVE_QT4="no")
@@ -637,6 +688,17 @@ if test "x${COMPILE_JNI}" = xyes; then
[Define this symbol if you have SO_NOSIGPIPE]) ],
[ AC_MSG_RESULT(no)]
)
+ dnl **********************************************************************
+ dnl Check for MSG_WAITALL
+ dnl **********************************************************************
+ AC_MSG_CHECKING(for MSG_WAITALL)
+ AC_TRY_COMPILE([#include <sys/socket.h>],
+ [ int f = MSG_WAITALL; ],
+ [ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_MSG_WAITALL, 1,
+ [Define this symbol if you have MSG_WAITALL]) ],
+ [ AC_MSG_RESULT(no)]
+ )
dnl Check for plugin support headers and libraries.
if test "x${COMPILE_PLUGIN}" = xyes; then
@@ -674,7 +736,9 @@ if test "x${COMPILE_JNI}" = xyes; then
fi
fi
-CLASSPATH_WITH_JAVAH
+if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
+ CLASSPATH_WITH_JAVAH
+fi
dnl -----------------------------------------------------------
dnl Add the include files for the native abstraction layer.
@@ -944,6 +1008,7 @@ native/jni/java-nio/Makefile
native/jni/java-util/Makefile
native/jni/gtk-peer/Makefile
native/jni/gconf-peer/Makefile
+native/jni/gstreamer-peer/Makefile
native/jni/qt-peer/Makefile
native/jni/xmlj/Makefile
native/jni/midi-alsa/Makefile
@@ -952,6 +1017,8 @@ native/jni/native-lib/Makefile
native/plugin/Makefile
resource/Makefile
resource/META-INF/services/java.util.prefs.PreferencesFactory
+resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
+resource/META-INF/services/javax.sound.sampled.spi.MixerProvider
scripts/Makefile
scripts/classpath.spec
lib/Makefile
diff --git a/libjava/classpath/depcomp b/libjava/classpath/depcomp
index ca5ea4e1ef9..04701da536f 100755
--- a/libjava/classpath/depcomp
+++ b/libjava/classpath/depcomp
@@ -1,10 +1,9 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2006-10-15.18
+scriptversion=2005-07-09.11
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -92,20 +91,7 @@ gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
-## Unfortunately, FreeBSD c89 acceptance of flags depends upon
-## the command line argument order; so add the flags where they
-## appear in depend2.am. Note that the slowdown incurred here
-## affects only configure: in makefiles, %FASTDEP% shortcuts this.
- for arg
- do
- case $arg in
- -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
- *) set fnord "$@" "$arg" ;;
- esac
- shift # fnord
- shift # $arg
- done
- "$@"
+ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
stat=$?
if test $stat -eq 0; then :
else
@@ -290,46 +276,6 @@ icc)
rm -f "$tmpdepfile"
;;
-hp2)
- # The "hp" stanza above does not work with aCC (C++) and HP's ia64
- # compilers, which have integrated preprocessors. The correct option
- # to use with these is +Maked; it writes dependencies to a file named
- # 'foo.d', which lands next to the object file, wherever that
- # happens to be.
- # Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
- if test "$libtool" = yes; then
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir.libs/$base.d
- "$@" -Wc,+Maked
- else
- tmpdepfile1=$dir$base.d
- tmpdepfile2=$dir$base.d
- "$@" +Maked
- fi
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add `dependent.h:' lines.
- sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile" "$tmpdepfile2"
- ;;
-
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
@@ -342,13 +288,13 @@ tru64)
if test "$libtool" = yes; then
# With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
+ # static library. This mecanism is used in libtool 1.4 series to
# handle both shared and static libraries in a single compilation.
# With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
#
# With libtool 1.5 this exception was removed, and libtool now
# generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
+ # compilations output dependencies in in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
diff --git a/libjava/classpath/doc/Makefile.in b/libjava/classpath/doc/Makefile.in
index e00e0aefd1e..f5af2231061 100644
--- a/libjava/classpath/doc/Makefile.in
+++ b/libjava/classpath/doc/Makefile.in
@@ -123,6 +123,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -161,8 +163,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -186,6 +186,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -258,8 +267,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/doc/README.jaxp b/libjava/classpath/doc/README.jaxp
index ec881322684..afafb083c19 100644
--- a/libjava/classpath/doc/README.jaxp
+++ b/libjava/classpath/doc/README.jaxp
@@ -155,7 +155,7 @@ To enable the various GNU JAXP factories, set the following system properties
When using libxmlj, the libxmlj shared library must be available.
In general it is picked up by the runtime using GNU Classpath. If not you
might want to try adding the directory where libxmlj.so is installed
-(by default ${prefix}/lib/classpath/) with ldconfig or specifing in the
+(by default ${prefix}/lib/classpath/) with ldconfig or specifying in the
LD_LIBRARY_PATH environment variable. Additionally, you may need to specify
the location of your shared libraries to the runtime environment using the
java.library.path system property.
@@ -174,7 +174,7 @@ Update: it may be possible to make libxmlj thread-safe nonetheless
using thread context variables.
Update: thread context variables have been introduced. This is very
-untested though, libxmll therefore still has the single thread
+untested though, libxmlj therefore still has the single thread
bottleneck.
diff --git a/libjava/classpath/doc/api/Makefile.in b/libjava/classpath/doc/api/Makefile.in
index 937d0cc9f9c..128cd53d49c 100644
--- a/libjava/classpath/doc/api/Makefile.in
+++ b/libjava/classpath/doc/api/Makefile.in
@@ -100,6 +100,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -138,8 +140,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -163,6 +163,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -235,8 +244,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/doc/cp-hacking.texinfo b/libjava/classpath/doc/cp-hacking.texinfo
index c79ea528750..f4beb7e799f 100644
--- a/libjava/classpath/doc/cp-hacking.texinfo
+++ b/libjava/classpath/doc/cp-hacking.texinfo
@@ -16,7 +16,7 @@ Copyright (C) 1998,1999,2000,2001,2002,2003,2004,2005,2007 Free Software Foundat
@ifnotplaintext
@dircategory GNU Libraries
@direntry
-* Classpath Hacking: (hacking). GNU Classpath Hacker's Guide
+* Classpath Hacking: (cp-hacking). GNU Classpath Hacker's Guide
@end direntry
@end ifnotplaintext
@end ifinfo
diff --git a/libjava/classpath/doc/cp-tools.texinfo b/libjava/classpath/doc/cp-tools.texinfo
index 64a9b67d289..f961bfd87e8 100644
--- a/libjava/classpath/doc/cp-tools.texinfo
+++ b/libjava/classpath/doc/cp-tools.texinfo
@@ -27,7 +27,7 @@ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
@ifnotplaintext
@dircategory GNU Libraries
@direntry
-* Classpath Tools: (tools). GNU Classpath Tools Guide
+* Classpath Tools: (cp-tools). GNU Classpath Tools Guide
@end direntry
@end ifnotplaintext
@end ifinfo
diff --git a/libjava/classpath/doc/cp-vmintegration.texinfo b/libjava/classpath/doc/cp-vmintegration.texinfo
index 97f381a5ffa..4d54e30f44c 100644
--- a/libjava/classpath/doc/cp-vmintegration.texinfo
+++ b/libjava/classpath/doc/cp-vmintegration.texinfo
@@ -17,7 +17,7 @@ Copyright (C) 1998-2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
@ifnotplaintext
@dircategory GNU Libraries
@direntry
-* VM Integration: (vmintegration). GNU Classpath VM Integration Guide
+* VM Integration: (cp-vmintegration). GNU Classpath VM Integration Guide
@end direntry
@end ifnotplaintext
@end ifinfo
diff --git a/libjava/classpath/doc/texinfo.tex b/libjava/classpath/doc/texinfo.tex
index 80836223506..ff2c40654b2 100644
--- a/libjava/classpath/doc/texinfo.tex
+++ b/libjava/classpath/doc/texinfo.tex
@@ -3,11 +3,11 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2006-10-04.17}
+\def\texinfoversion{2005-07-05.19}
%
% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
-% Software Foundation, Inc.
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
+% Foundation, Inc.
%
% This texinfo.tex file is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -153,22 +153,28 @@
\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
-% Since the category of space is not known, we have to be careful.
-\chardef\spacecat = 10
-\def\spaceisspace{\catcode`\ =\spacecat}
-
-% sometimes characters are active, so we need control sequences.
+% In some macros, we cannot use the `\? notation---the left quote is
+% in some cases the escape char.
+\chardef\backChar = `\\
\chardef\colonChar = `\:
\chardef\commaChar = `\,
-\chardef\dashChar = `\-
\chardef\dotChar = `\.
\chardef\exclamChar= `\!
-\chardef\lquoteChar= `\`
+\chardef\plusChar = `\+
\chardef\questChar = `\?
-\chardef\rquoteChar= `\'
\chardef\semiChar = `\;
\chardef\underChar = `\_
+\chardef\spaceChar = `\ %
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode\spaceChar=\spacecat}
+
+{% for help with debugging.
+ % example usage: \expandafter\show\activebackslash
+ \catcode`\! = 0 \catcode`\\ = \active
+ !global!def!activebackslash{\}
+}
+
% Ignore a token.
%
\def\gobble#1{}
@@ -305,13 +311,6 @@
% before the \shipout runs.
%
\indexdummies % don't expand commands in the output.
- \normalturnoffactive % \ in index entries must not stay \, e.g., if
- % the page break happens to be in the middle of an example.
- % We don't want .vr (or whatever) entries like this:
- % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
- % "\acronym" won't work when it's read back in;
- % it needs to be
- % {\code {{\tt \backslashcurfont }acronym}
\shipout\vbox{%
% Do this early so pdf references go to the beginning of the page.
\ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
@@ -339,9 +338,9 @@
\pagebody{#1}%
\ifdim\ht\footlinebox > 0pt
% Only leave this space if the footline is nonempty.
- % (We lessened \vsize for it in \oddfootingyyy.)
+ % (We lessened \vsize for it in \oddfootingxxx.)
% The \baselineskip=24pt in plain's \makefootline has no effect.
- \vskip 24pt
+ \vskip 2\baselineskip
\unvbox\footlinebox
\fi
%
@@ -397,7 +396,7 @@
%
\def\parsearg{\parseargusing{}}
\def\parseargusing#1#2{%
- \def\argtorun{#2}%
+ \def\next{#2}%
\begingroup
\obeylines
\spaceisspace
@@ -428,7 +427,8 @@
\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
\def\temp{#3}%
\ifx\temp\empty
- % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
+ % We cannot use \next here, as it holds the macro to run;
+ % thus we reuse \temp.
\let\temp\finishparsearg
\else
\let\temp\argcheckspaces
@@ -440,14 +440,14 @@
% If a _delimited_ argument is enclosed in braces, they get stripped; so
% to get _exactly_ the rest of the line, we had to prevent such situation.
% We prepended an \empty token at the very beginning and we expand it now,
-% just before passing the control to \argtorun.
+% just before passing the control to \next.
% (Similarily, we have to think about #3 of \argcheckspacesY above: it is
% either the null string, or it ends with \^^M---thus there is no danger
% that a pair of braces would be stripped.
%
% But first, we have to remove the trailing space token.
%
-\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
+\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
% \parseargdef\foo{...}
% is roughly equivalent to
@@ -1051,9 +1051,9 @@ where each line of input produces a line of output.}
% _ active, and distinguish by seeing if the current family is \slfam,
% which is what @var uses.
{
- \catcode`\_ = \active
+ \catcode\underChar = \active
\gdef\mathunderscore{%
- \catcode`\_=\active
+ \catcode\underChar=\active
\def_{\ifnum\fam=\slfam \_\else\sb\fi}%
}
}
@@ -1096,24 +1096,15 @@ where each line of input produces a line of output.}
\def\minus{$-$}
% @dots{} outputs an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in the cm
-% typewriter fonts as three actual period characters; on the other hand,
-% in other typewriter fonts three periods are wider than 1.5em. So do
-% whichever is larger.
+% We do .5em per period so that it has the same spacing in a typewriter
+% font as three actual period characters.
%
\def\dots{%
\leavevmode
- \setbox0=\hbox{...}% get width of three periods
- \ifdim\wd0 > 1.5em
- \dimen0 = \wd0
- \else
- \dimen0 = 1.5em
- \fi
- \hbox to \dimen0{%
- \hskip 0pt plus.25fil
- .\hskip 0pt plus1fil
- .\hskip 0pt plus1fil
- .\hskip 0pt plus.5fil
+ \hbox to 1.5em{%
+ \hskip 0pt plus 0.25fil
+ .\hfil.\hfil.%
+ \hskip 0pt plus 0.5fil
}%
}
@@ -1206,20 +1197,21 @@ where each line of input produces a line of output.}
\fi
\fi
-% PDF uses PostScript string constants for the names of xref targets,
+% PDF uses PostScript string constants for the names of xref targets, to
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
% interpreted as a newline (\n), followed by o, d, e. Not good.
% http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
% (and related messages, the final outcome is that it is up to the TeX
% user to double the backslashes and otherwise make the string valid, so
-% that's what we do).
+% that's we do).
% double active backslashes.
%
{\catcode`\@=0 \catcode`\\=\active
+ @gdef@activebackslash{@catcode`@\=@active @otherbackslash}
@gdef@activebackslashdouble{%
- @catcode`@\=@active
+ @catcode@backChar=@active
@let\=@doublebackslash}
}
@@ -1251,17 +1243,21 @@ where each line of input produces a line of output.}
\def\backslashparens#1{%
\xdef#1{#1}% redefine it as its expansion; the definition is simply
% \lastnode when called from \setref -> \pdfmkdest.
- \HyPsdSubst{(}{\realbackslash(}{#1}%
- \HyPsdSubst{)}{\realbackslash)}{#1}%
+ \HyPsdSubst{(}{\backslashlparen}{#1}%
+ \HyPsdSubst{)}{\backslashrparen}{#1}%
+}
+
+{\catcode\exclamChar = 0 \catcode\backChar = \other
+ !gdef!backslashlparen{\(}%
+ !gdef!backslashrparen{\)}%
}
\ifpdf
\input pdfcolor
\pdfcatalog{/PageMode /UseOutlines}%
- % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
\def\dopdfimage#1#2#3{%
- \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
- \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+ \def\imagewidth{#2}%
+ \def\imageheight{#3}%
% without \immediate, pdftex seg faults when the same image is
% included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
\ifnum\pdftexversion < 14
@@ -1269,8 +1265,8 @@ where each line of input produces a line of output.}
\else
\immediate\pdfximage
\fi
- \ifdim \wd0 >0pt width \imagewidth \fi
- \ifdim \wd2 >0pt height \imageheight \fi
+ \ifx\empty\imagewidth\else width \imagewidth \fi
+ \ifx\empty\imageheight\else height \imageheight \fi
\ifnum\pdftexversion<13
#1.pdf%
\else
@@ -1394,7 +1390,7 @@ where each line of input produces a line of output.}
% now, I guess we'll just let the pdf reader have its way.
\indexnofonts
\setupdatafile
- \catcode`\\=\active \otherbackslash
+ \activebackslash
\input \jobname.toc
\endgroup
}
@@ -1413,17 +1409,9 @@ where each line of input produces a line of output.}
\else
\let \startlink \pdfstartlink
\fi
- % make a live url in pdf output.
\def\pdfurl#1{%
\begingroup
- % it seems we really need yet another set of dummies; have not
- % tried to figure out what each command should do in the context
- % of @url. for now, just make @/ a no-op, that's the only one
- % people have actually reported a problem with.
- %
- \normalturnoffactive
- \def\@{@}%
- \let\/=\empty
+ \normalturnoffactive\def\@{@}%
\makevalueexpandable
\leavevmode\Red
\startlink attr{/Border [0 0 0]}%
@@ -1493,7 +1481,6 @@ where each line of input produces a line of output.}
% We don't need math for this font style.
\def\ttsl{\setfontstyle{ttsl}}
-
% Default leading.
\newdimen\textleading \textleading = 13.2pt
@@ -1515,13 +1502,11 @@ where each line of input produces a line of output.}
}%
}
-
% Set the font macro #1 to the font named #2, adding on the
% specified font prefix (normally `cm').
% #3 is the font's design size, #4 is a scale factor
\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
-
% Use cm as the default font prefix.
% To specify the font prefix, you must define \fontprefix
% before you read in texinfo.tex.
@@ -1545,10 +1530,6 @@ where each line of input produces a line of output.}
\def\scshape{csc}
\def\scbshape{csc}
-% Definitions for a main text size of 11pt. This is the default in
-% Texinfo.
-%
-\def\definetextfontsizexi{
% Text fonts (11.2pt, magstep1).
\def\textnominalsize{11pt}
\edef\mainmagstep{\magstephalf}
@@ -1662,165 +1643,6 @@ where each line of input produces a line of output.}
\font\reducedi=cmmi10
\font\reducedsy=cmsy10
-% reset the current fonts
-\textfonts
-\rm
-} % end of 11pt text font size definitions
-
-
-% Definitions to make the main text be 10pt Computer Modern, with
-% section, chapter, etc., sizes following suit. This is for the GNU
-% Press printing of the Emacs 22 manual. Maybe other manuals in the
-% future. Used with @smallbook, which sets the leading to 12pt.
-%
-\def\definetextfontsizex{%
-% Text fonts (10pt).
-\def\textnominalsize{10pt}
-\edef\mainmagstep{1000}
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstephalf}
-\setfont\deftt\ttshape{10}{\magstephalf}
-\setfont\defttsl\ttslshape{10}{\magstephalf}
-\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
-
-% Fonts for indices, footnotes, small examples (9pt).
-\def\smallnominalsize{9pt}
-\setfont\smallrm\rmshape{9}{1000}
-\setfont\smalltt\ttshape{9}{1000}
-\setfont\smallbf\bfshape{10}{900}
-\setfont\smallit\itshape{9}{1000}
-\setfont\smallsl\slshape{9}{1000}
-\setfont\smallsf\sfshape{9}{1000}
-\setfont\smallsc\scshape{10}{900}
-\setfont\smallttsl\ttslshape{10}{900}
-\font\smalli=cmmi9
-\font\smallsy=cmsy9
-
-% Fonts for small examples (8pt).
-\def\smallernominalsize{8pt}
-\setfont\smallerrm\rmshape{8}{1000}
-\setfont\smallertt\ttshape{8}{1000}
-\setfont\smallerbf\bfshape{10}{800}
-\setfont\smallerit\itshape{8}{1000}
-\setfont\smallersl\slshape{8}{1000}
-\setfont\smallersf\sfshape{8}{1000}
-\setfont\smallersc\scshape{10}{800}
-\setfont\smallerttsl\ttslshape{10}{800}
-\font\smalleri=cmmi8
-\font\smallersy=cmsy8
-
-% Fonts for title page (20.4pt):
-\def\titlenominalsize{20pt}
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-\def\authortt{\sectt}
-
-% Chapter fonts (14.4pt).
-\def\chapnominalsize{14pt}
-\setfont\chaprm\rmbshape{12}{\magstep1}
-\setfont\chapit\itbshape{10}{\magstep2}
-\setfont\chapsl\slbshape{10}{\magstep2}
-\setfont\chaptt\ttbshape{12}{\magstep1}
-\setfont\chapttsl\ttslshape{10}{\magstep2}
-\setfont\chapsf\sfbshape{12}{\magstep1}
-\let\chapbf\chaprm
-\setfont\chapsc\scbshape{10}{\magstep2}
-\font\chapi=cmmi12 scaled \magstep1
-\font\chapsy=cmsy10 scaled \magstep2
-
-% Section fonts (12pt).
-\def\secnominalsize{12pt}
-\setfont\secrm\rmbshape{12}{1000}
-\setfont\secit\itbshape{10}{\magstep1}
-\setfont\secsl\slbshape{10}{\magstep1}
-\setfont\sectt\ttbshape{12}{1000}
-\setfont\secttsl\ttslshape{10}{\magstep1}
-\setfont\secsf\sfbshape{12}{1000}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep1}
-\font\seci=cmmi12
-\font\secsy=cmsy10 scaled \magstep1
-
-% Subsection fonts (10pt).
-\def\ssecnominalsize{10pt}
-\setfont\ssecrm\rmbshape{10}{1000}
-\setfont\ssecit\itbshape{10}{1000}
-\setfont\ssecsl\slbshape{10}{1000}
-\setfont\ssectt\ttbshape{10}{1000}
-\setfont\ssecttsl\ttslshape{10}{1000}
-\setfont\ssecsf\sfbshape{10}{1000}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1000}
-\font\sseci=cmmi10
-\font\ssecsy=cmsy10
-
-% Reduced fonts for @acro in text (9pt).
-\def\reducednominalsize{9pt}
-\setfont\reducedrm\rmshape{9}{1000}
-\setfont\reducedtt\ttshape{9}{1000}
-\setfont\reducedbf\bfshape{10}{900}
-\setfont\reducedit\itshape{9}{1000}
-\setfont\reducedsl\slshape{9}{1000}
-\setfont\reducedsf\sfshape{9}{1000}
-\setfont\reducedsc\scshape{10}{900}
-\setfont\reducedttsl\ttslshape{10}{900}
-\font\reducedi=cmmi9
-\font\reducedsy=cmsy9
-
-% reduce space between paragraphs
-\divide\parskip by 2
-
-% reset the current fonts
-\textfonts
-\rm
-} % end of 10pt text font size definitions
-
-
-% We provide the user-level command
-% @fonttextsize 10
-% (or 11) to redefine the text font size. pt is assumed.
-%
-\def\xword{10}
-\def\xiword{11}
-%
-\parseargdef\fonttextsize{%
- \def\textsizearg{#1}%
- \wlog{doing @fonttextsize \textsizearg}%
- %
- % Set \globaldefs so that documents can use this inside @tex, since
- % makeinfo 4.8 does not support it, but we need it nonetheless.
- %
- \begingroup \globaldefs=1
- \ifx\textsizearg\xword \definetextfontsizex
- \else \ifx\textsizearg\xiword \definetextfontsizexi
- \else
- \errhelp=\EMsimple
- \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
- \fi\fi
- \endgroup
-}
-
-
% In order for the font changes to affect most math symbols and letters,
% we have to define the \textfont of the standard families. Since
% texinfo doesn't allow for producing subscripts and superscripts except
@@ -1931,7 +1753,7 @@ where each line of input produces a line of output.}
% Set up the default fonts, so we can use them for creating boxes.
%
-\definetextfontsizexi
+\textfonts \rm
% Define these so they can be easily changed for other fonts.
\def\angleleft{$\langle$}
@@ -2056,14 +1878,11 @@ where each line of input produces a line of output.}
% and arrange explicitly to hyphenate at a dash.
% -- rms.
{
- \catcode`\-=\active \catcode`\_=\active
- \catcode`\'=\active \catcode`\`=\active
+ \catcode`\-=\active
+ \catcode`\_=\active
%
\global\def\code{\begingroup
- \catcode\rquoteChar=\active \catcode\lquoteChar=\active
- \let'\codequoteright \let`\codequoteleft
- %
- \catcode\dashChar=\active \catcode\underChar=\active
+ \catcode`\-=\active \catcode`\_=\active
\ifallowcodebreaks
\let-\codedash
\let_\codeunder
@@ -2309,10 +2128,6 @@ where each line of input produces a line of output.}
}$%
}
-% @textdegree - the normal degrees sign.
-%
-\def\textdegree{$^\circ$}
-
% Laurent Siebenmann reports \Orb undefined with:
% Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38
% so we'll define it if necessary.
@@ -2484,8 +2299,8 @@ where each line of input produces a line of output.}
%
% Leave some space for the footline. Hopefully ok to assume
% @evenfooting will not be used by itself.
- \global\advance\pageheight by -12pt
- \global\advance\vsize by -12pt
+ \global\advance\pageheight by -\baselineskip
+ \global\advance\vsize by -\baselineskip
}
\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
@@ -3144,7 +2959,6 @@ where each line of input produces a line of output.}
\def\doignore#1{\begingroup
% Scan in ``verbatim'' mode:
- \obeylines
\catcode`\@ = \other
\catcode`\{ = \other
\catcode`\} = \other
@@ -3165,16 +2979,16 @@ where each line of input produces a line of output.}
\gdef\dodoignore#1{%
% #1 contains the command name as a string, e.g., `ifinfo'.
%
- % Define a command to find the next `@end #1'.
- \long\def\doignoretext##1^^M@end #1{%
- \doignoretextyyy##1^^M@#1\_STOP_}%
- %
+ % Define a command to find the next `@end #1', which must be on a line
+ % by itself.
+ \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
% And this command to find another #1 command, at the beginning of a
% line. (Otherwise, we would consider a line `@c @ifset', for
% example, to count as an @ifset for nesting.)
\long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
%
% And now expand that command.
+ \obeylines %
\doignoretext ^^M%
}%
}
@@ -3204,12 +3018,7 @@ where each line of input produces a line of output.}
}
% Finish off ignored text.
-{ \obeylines%
- % Ignore anything after the last `@end #1'; this matters in verbatim
- % environments, where otherwise the newline after an ignored conditional
- % would result in a blank line in the output.
- \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
-}
+\def\enddoignore{\endgroup\ignorespaces}
% @set VAR sets the variable VAR to an empty value.
@@ -3412,39 +3221,12 @@ where each line of input produces a line of output.}
\escapechar = `\\ % use backslash in output files.
\def\@{@}% change to @@ when we switch to @ as escape char in index files.
\def\ {\realbackslash\space }%
- %
% Need these in case \tex is in effect and \{ is a \delimiter again.
% But can't use \lbracecmd and \rbracecmd because texindex assumes
% braces and backslashes are used only as delimiters.
\let\{ = \mylbrace
\let\} = \myrbrace
%
- % I don't entirely understand this, but when an index entry is
- % generated from a macro call, the \endinput which \scanmacro inserts
- % causes processing to be prematurely terminated. This is,
- % apparently, because \indexsorttmp is fully expanded, and \endinput
- % is an expandable command. The redefinition below makes \endinput
- % disappear altogether for that purpose -- although logging shows that
- % processing continues to some further point. On the other hand, it
- % seems \endinput does not hurt in the printed index arg, since that
- % is still getting written without apparent harm.
- %
- % Sample source (mac-idx3.tex, reported by Graham Percival to
- % help-texinfo, 22may06):
- % @macro funindex {WORD}
- % @findex xyz
- % @end macro
- % ...
- % @funindex commtest
- %
- % The above is not enough to reproduce the bug, but it gives the flavor.
- %
- % Sample whatsit resulting:
- % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
- %
- % So:
- \let\endinput = \empty
- %
% Do the redefinitions.
\commondummies
}
@@ -3462,7 +3244,6 @@ where each line of input produces a line of output.}
%
% Do the redefinitions.
\commondummies
- \otherbackslash
}
% Called from \indexdummies and \atdummies.
@@ -3536,7 +3317,6 @@ where each line of input produces a line of output.}
\definedummyword\point
\definedummyword\print
\definedummyword\result
- \definedummyword\textdegree
%
% We want to disable all macros so that they are not expanded by \write.
\macrolist
@@ -3550,62 +3330,63 @@ where each line of input produces a line of output.}
% \commondummiesnofonts: common to \commondummies and \indexnofonts.
%
-\def\commondummiesnofonts{%
- % Control letters and accents.
- \definedummyletter\!%
- \definedummyaccent\"%
- \definedummyaccent\'%
- \definedummyletter\*%
- \definedummyaccent\,%
- \definedummyletter\.%
- \definedummyletter\/%
- \definedummyletter\:%
- \definedummyaccent\=%
- \definedummyletter\?%
- \definedummyaccent\^%
- \definedummyaccent\`%
- \definedummyaccent\~%
- \definedummyword\u
- \definedummyword\v
- \definedummyword\H
- \definedummyword\dotaccent
- \definedummyword\ringaccent
- \definedummyword\tieaccent
- \definedummyword\ubaraccent
- \definedummyword\udotaccent
- \definedummyword\dotless
- %
- % Texinfo font commands.
- \definedummyword\b
- \definedummyword\i
- \definedummyword\r
- \definedummyword\sc
- \definedummyword\t
- %
- % Commands that take arguments.
- \definedummyword\acronym
- \definedummyword\cite
- \definedummyword\code
- \definedummyword\command
- \definedummyword\dfn
- \definedummyword\emph
- \definedummyword\env
- \definedummyword\file
- \definedummyword\kbd
- \definedummyword\key
- \definedummyword\math
- \definedummyword\option
- \definedummyword\pxref
- \definedummyword\ref
- \definedummyword\samp
- \definedummyword\strong
- \definedummyword\tie
- \definedummyword\uref
- \definedummyword\url
- \definedummyword\var
- \definedummyword\verb
- \definedummyword\w
- \definedummyword\xref
+% Better have this without active chars.
+{
+ \catcode`\~=\other
+ \gdef\commondummiesnofonts{%
+ % Control letters and accents.
+ \definedummyletter\!%
+ \definedummyaccent\"%
+ \definedummyaccent\'%
+ \definedummyletter\*%
+ \definedummyaccent\,%
+ \definedummyletter\.%
+ \definedummyletter\/%
+ \definedummyletter\:%
+ \definedummyaccent\=%
+ \definedummyletter\?%
+ \definedummyaccent\^%
+ \definedummyaccent\`%
+ \definedummyaccent\~%
+ \definedummyword\u
+ \definedummyword\v
+ \definedummyword\H
+ \definedummyword\dotaccent
+ \definedummyword\ringaccent
+ \definedummyword\tieaccent
+ \definedummyword\ubaraccent
+ \definedummyword\udotaccent
+ \definedummyword\dotless
+ %
+ % Texinfo font commands.
+ \definedummyword\b
+ \definedummyword\i
+ \definedummyword\r
+ \definedummyword\sc
+ \definedummyword\t
+ %
+ % Commands that take arguments.
+ \definedummyword\acronym
+ \definedummyword\cite
+ \definedummyword\code
+ \definedummyword\command
+ \definedummyword\dfn
+ \definedummyword\emph
+ \definedummyword\env
+ \definedummyword\file
+ \definedummyword\kbd
+ \definedummyword\key
+ \definedummyword\math
+ \definedummyword\option
+ \definedummyword\samp
+ \definedummyword\strong
+ \definedummyword\tie
+ \definedummyword\uref
+ \definedummyword\url
+ \definedummyword\var
+ \definedummyword\verb
+ \definedummyword\w
+ }
}
% \indexnofonts is used when outputting the strings to sort the index
@@ -3670,7 +3451,6 @@ where each line of input produces a line of output.}
\def\point{.}%
\def\print{-|}%
\def\result{=>}%
- \def\textdegree{degrees}%
%
% We need to get rid of all macros, leaving only the arguments (if present).
% Of course this is not nearly correct, but it is the best we can do for now.
@@ -4019,9 +3799,9 @@ where each line of input produces a line of output.}
\endgroup
}
-% Like plain.tex's \dotfill, except uses up at least 1 em.
+% Like \dotfill except takes at least 1 em.
\def\indexdotfill{\cleaders
- \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
+ \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
\def\primary #1{\line{#1\hfil}}
@@ -4595,17 +4375,14 @@ where each line of input produces a line of output.}
\ifx\temptype\Ynothingkeyword
\setbox0 = \hbox{}%
\def\toctype{unnchap}%
- \gdef\thischapternum{}%
\gdef\thischapter{#1}%
\else\ifx\temptype\Yomitfromtockeyword
\setbox0 = \hbox{}% contents like unnumbered, but no toc entry
\def\toctype{omit}%
- \gdef\thischapternum{}%
\gdef\thischapter{}%
\else\ifx\temptype\Yappendixkeyword
\setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
\def\toctype{app}%
- \xdef\thischapternum{\appendixletter}%
% We don't substitute the actual chapter name into \thischapter
% because we don't want its macros evaluated now. And we don't
% use \thissection because that changes with each section.
@@ -4615,7 +4392,6 @@ where each line of input produces a line of output.}
\else
\setbox0 = \hbox{#3\enspace}%
\def\toctype{numchap}%
- \xdef\thischapternum{\the\chapno}%
\xdef\thischapter{\putwordChapter{} \the\chapno:
\noexpand\thischaptername}%
\fi\fi\fi
@@ -4727,21 +4503,13 @@ where each line of input produces a line of output.}
\gdef\thissection{#1}%
\fi\fi\fi
%
- % Write the toc entry (before \donoderef). See comments in \chapmacro.
+ % Write the toc entry (before \donoderef). See comments in \chfplain.
\writetocentry{\toctype\sectionlevel}{#1}{#4}%
%
% Write the node reference (= pdf destination for pdftex).
- % Again, see comments in \chapmacro.
+ % Again, see comments in \chfplain.
\donoderef{#3}%
%
- % Interline glue will be inserted when the vbox is completed.
- % That glue will be a valid breakpoint for the page, since it'll be
- % preceded by a whatsit (usually from the \donoderef, or from the
- % \writetocentry if there was no node). We don't want to allow that
- % break, since then the whatsits could end up on page n while the
- % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000.
- \nobreak
- %
% Output the actual section heading.
\vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
\hangindent=\wd0 % zero if no section number
@@ -4804,7 +4572,7 @@ where each line of input produces a line of output.}
\edef\temp{%
\write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
\temp
- }%
+ }
\fi
\fi
%
@@ -5056,7 +4824,7 @@ where each line of input produces a line of output.}
{\tentt \global\dimen0 = 3em}% Width of the box.
\dimen2 = .55pt % Thickness of rules
% The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
%
\setbox\errorbox=\hbox to \dimen0{\hfil
\hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -5279,10 +5047,11 @@ where each line of input produces a line of output.}
%
\maketwodispenvs {lisp}{example}{%
\nonfillstart
- \tt\quoteexpand
+ \tt
\let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
\gobble % eat return
}
+
% @display/@smalldisplay: same as @lisp except keep current font.
%
\makedispenv {display}{%
@@ -5410,34 +5179,6 @@ where each line of input produces a line of output.}
\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
%
\def\starttabbox{\setbox0=\hbox\bgroup}
-
-% Allow an option to not replace quotes with a regular directed right
-% quote/apostrophe (char 0x27), but instead use the undirected quote
-% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it
-% the default, but it works for pasting with more pdf viewers (at least
-% evince), the lilypond developers report. xpdf does work with the
-% regular 0x27.
-%
-\def\codequoteright{%
- \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
- '%
- \else
- \char'15
- \fi
-}
-%
-% and a similar option for the left quote char vs. a grave accent.
-% Modern fonts display ASCII 0x60 as a grave accent, so some people like
-% the code environments to do likewise.
-%
-\def\codequoteleft{%
- \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
- `%
- \else
- \char'22
- \fi
-}
-%
\begingroup
\catcode`\^^I=\active
\gdef\tabexpand{%
@@ -5450,16 +5191,7 @@ where each line of input produces a line of output.}
\wd0=\dimen0 \box0 \starttabbox
}%
}
- \catcode`\'=\active
- \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
- %
- \catcode`\`=\active
- \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
- %
- \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
\endgroup
-
-% start the verbatim environment.
\def\setupverbatim{%
\let\nonarrowing = t%
\nonfillstart
@@ -5468,7 +5200,6 @@ where each line of input produces a line of output.}
\def\par{\leavevmode\egroup\box0\endgraf}%
\catcode`\`=\active
\tabexpand
- \quoteexpand
% Respect line breaks,
% print special symbols as themselves, and
% make each space count
@@ -5918,6 +5649,7 @@ where each line of input produces a line of output.}
\spaceisspace
%
% Append \endinput to make sure that TeX does not see the ending newline.
+ %
% I've verified that it is necessary both for e-TeX and for ordinary TeX
% --kasal, 29nov03
\scantokens{#1\endinput}%
@@ -6184,11 +5916,11 @@ where each line of input produces a line of output.}
% {. If so it reads up to the closing }, if not, it reads the whole
% line. Whatever was read is then fed to the next control sequence
% as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
\def\braceorlinexxx{%
\ifx\nchar\bgroup\else
\expandafter\parsearg
- \fi \macnamexxx}
+ \fi \next}
% @alias.
@@ -6353,7 +6085,7 @@ where each line of input produces a line of output.}
% If the user specified the print name (third arg) to the ref,
% print it instead of our usual "Figure 1.2".
\ifdim\wd0 = 0pt
- \refx{#1-snt}{}%
+ \refx{#1-snt}%
\else
\printedrefname
\fi
@@ -6783,7 +6515,7 @@ where each line of input produces a line of output.}
% above and below.
\nobreak\vskip\parskip
\nobreak
- \line\bgroup
+ \line\bgroup\hss
\fi
%
% Output the image.
@@ -6796,7 +6528,7 @@ where each line of input produces a line of output.}
\epsfbox{#1.eps}%
\fi
%
- \ifimagevmode \egroup \bigbreak \fi % space after the image
+ \ifimagevmode \hss \egroup \bigbreak \fi % space after the image
\endgroup}
@@ -6937,7 +6669,6 @@ where each line of input produces a line of output.}
% caption if specified, else the full caption if specified, else nothing.
{%
\atdummies
- %
% since we read the caption text in the macro world, where ^^M
% is turned into a normal character, we have to scan it back, so
% we don't write the literal three characters "^^M" into the aux file.
@@ -6958,9 +6689,8 @@ where each line of input produces a line of output.}
%
% place the captured inserts
%
- % BEWARE: when the floats start floating, we have to issue warning
- % whenever an insert appears inside a float which could possibly
- % float. --kasal, 26may04
+ % BEWARE: when the floats start float, we have to issue warning whenever an
+ % insert appears inside a float which could possibly float. --kasal, 26may04
%
\checkinserts
}
@@ -7387,13 +7117,6 @@ should work if nowhere else does.}
% \otherifyactive is called near the end of this file.
\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
-% Used sometimes to turn off (effectively) the active characters even after
-% parsing them.
-\def\turnoffactive{%
- \normalturnoffactive
- \otherbackslash
-}
-
\catcode`\@=0
% \backslashcurfont outputs one backslash character in current font,
@@ -7401,29 +7124,28 @@ should work if nowhere else does.}
\global\chardef\backslashcurfont=`\\
\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
+% \rawbackslash defines an active \ to do \backslashcurfont.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
+{\catcode`\\=\active
+ @gdef@rawbackslash{@let\=@backslashcurfont}
+ @gdef@otherbackslash{@let\=@realbackslash}
+}
+
% \realbackslash is an actual character `\' with catcode other, and
% \doublebackslash is two of them (for the pdf outlines).
{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
-% In texinfo, backslash is an active character; it prints the backslash
-% in fixed width font.
-\catcode`\\=\active
-@def@normalbackslash{{@tt@backslashcurfont}}
-% On startup, @fixbackslash assigns:
-% @let \ = @normalbackslash
+% \normalbackslash outputs one backslash in fixed width font.
+\def\normalbackslash{{\tt\backslashcurfont}}
-% \rawbackslash defines an active \ to do \backslashcurfont.
-% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
-@gdef@rawbackslash{@let\=@backslashcurfont}
-@gdef@otherbackslash{@let\=@realbackslash}
+\catcode`\\=\active
-% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-%
-@def@normalturnoffactive{%
- @let\=@normalbackslash
+% Used sometimes to turn off (effectively) the active characters
+% even after parsing them.
+@def@turnoffactive{%
@let"=@normaldoublequote
+ @let\=@realbackslash
@let~=@normaltilde
@let^=@normalcaret
@let_=@normalunderscore
@@ -7435,6 +7157,12 @@ should work if nowhere else does.}
@unsepspaces
}
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'. (Thus, \ is not expandable when this is in
+% effect.)
+%
+@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
+
% Make _ and + \other characters, temporarily.
% This is canceled by @fixbackslash.
@otherifyactive
@@ -7447,7 +7175,7 @@ should work if nowhere else does.}
@global@let\ = @eatinput
% On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\' in the file would cause an error. This macro tries to fix
+% the first `\{ in the file would cause an error. This macro tries to fix
% that, assuming it is called before the first `\' could plausibly occur.
% Also turn back on active characters that might appear in the input
% file name, in case not using a pre-dumped format.
diff --git a/libjava/classpath/examples/Makefile.in b/libjava/classpath/examples/Makefile.in
index 731671c8a5f..996274c10bc 100644
--- a/libjava/classpath/examples/Makefile.in
+++ b/libjava/classpath/examples/Makefile.in
@@ -109,6 +109,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -147,8 +149,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -172,6 +172,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -244,8 +253,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java b/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java
index 75b6f67c92f..99c262b7172 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.java
@@ -20,17 +20,28 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
package gnu.classpath.examples.awt;
-import gnu.java.awt.font.*;
-import gnu.java.awt.font.opentype.*;
-
-import java.awt.*;
+import gnu.java.awt.font.FontDelegate;
+import gnu.java.awt.font.GNUGlyphVector;
+import gnu.java.awt.font.opentype.OpenTypeFontFactory;
+
+import java.awt.BasicStroke;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.RenderingHints;
+import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
-import java.awt.font.*;
-import java.io.*;
-import java.nio.*;
-import java.nio.channels.*;
-import java.text.*;
+import java.awt.font.FontRenderContext;
+import java.io.File;
+import java.io.RandomAccessFile;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.text.StringCharacterIterator;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
@@ -57,6 +68,9 @@ public class HintingDemo extends JFrame {
char character;
Options options;
boolean antiAlias;
+ boolean showGrid;
+ boolean showOriginal;
+ boolean showHinted;
int flags;
class StringViewer extends JPanel
@@ -133,24 +147,35 @@ public class HintingDemo extends JFrame {
Insets i = getInsets();
g2d.clearRect(i.left, i.top, getWidth() - i.left - i.right,
getHeight() - i.top - i.bottom);
- g2d.setColor(Color.GRAY);
- for (int x = 20; x < getWidth(); x += 20)
- {
- g2d.drawLine(x, i.top, x, getHeight() - i.top - i.bottom);
- }
- for (int y = 20; y < getHeight(); y += 20)
+ if (showGrid)
{
- g2d.drawLine(i.left, y, getWidth() - i.left - i.right, y);
+ g2d.setColor(Color.GRAY);
+ for (int x = 20; x < getWidth(); x += 20)
+ {
+ g2d.drawLine(x, i.top, x, getHeight() - i.top - i.bottom);
+ }
+ for (int y = 20; y < getHeight(); y += 20)
+ {
+ g2d.drawLine(i.left, y, getWidth() - i.left - i.right, y);
+ }
}
- g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_OFF);
+// g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+// RenderingHints.VALUE_ANTIALIAS_ON);
g2d.translate(40, 300);
g2d.scale(20., 20.);
- g2d.setStroke(new BasicStroke((float) (1/20.)));
- g2d.setColor(Color.RED);
- g2d.draw(glyph.getOutline(0, 0, flags & ~FontDelegate.FLAG_FITTED));
- g2d.setColor(Color.GREEN);
- g2d.draw(glyph.getOutline(0, 0, flags | FontDelegate.FLAG_FITTED));
+ g2d.setStroke(new BasicStroke((float) (1/10.)));
+ if (showOriginal)
+ {
+ g2d.setColor(Color.RED);
+ g2d.draw(glyph.getOutline(0, 0,
+ flags & ~FontDelegate.FLAG_FITTED));
+ }
+ if (showHinted)
+ {
+ g2d.setColor(Color.RED);
+ g2d.draw(glyph.getOutline(0, 0,
+ flags | FontDelegate.FLAG_FITTED));
+ }
}
}
@@ -186,7 +211,7 @@ public class HintingDemo extends JFrame {
HintingDemo()
{
- File file = new File("/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/DejaVuSerif.ttf");
+ File file = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
loadFont(file);
setLayout(new BorderLayout());
chooser = new Chooser();
@@ -244,6 +269,9 @@ public class HintingDemo extends JFrame {
implements ActionListener
{
JCheckBox antiAliasOpt;
+ JCheckBox showGridOpt;
+ JCheckBox showOriginalOpt;
+ JCheckBox showHintedOpt;
JCheckBox hintHorizontalOpt;
JCheckBox hintVerticalOpt;
JCheckBox hintEdgeOpt;
@@ -257,6 +285,18 @@ public class HintingDemo extends JFrame {
antiAliasOpt.setSelected(true);
antiAliasOpt.addActionListener(this);
add(antiAliasOpt);
+ showGridOpt = new JCheckBox("Show grid");
+ showGridOpt.setSelected(true);
+ showGridOpt.addActionListener(this);
+ add(showGridOpt);
+ showOriginalOpt = new JCheckBox("Show original");
+ showOriginalOpt.setSelected(true);
+ showOriginalOpt.addActionListener(this);
+ add(showOriginalOpt);
+ showHintedOpt = new JCheckBox("Show hinted");
+ showHintedOpt.setSelected(true);
+ showHintedOpt.addActionListener(this);
+ add(showHintedOpt);
hintHorizontalOpt = new JCheckBox("Hint horizontal");
hintHorizontalOpt.setSelected(true);
hintHorizontalOpt.addActionListener(this);
@@ -283,6 +323,9 @@ public class HintingDemo extends JFrame {
void sync()
{
antiAlias = antiAliasOpt.isSelected();
+ showGrid = showGridOpt.isSelected();
+ showOriginal = showOriginalOpt.isSelected();
+ showHinted = showHintedOpt.isSelected();
if (hintHorizontalOpt.isSelected())
flags &= ~FontDelegate.FLAG_NO_HINT_HORIZONTAL;
else
diff --git a/libjava/classpath/external/Makefile.in b/libjava/classpath/external/Makefile.in
index 416d390c263..4d7ccfdd3c6 100644
--- a/libjava/classpath/external/Makefile.in
+++ b/libjava/classpath/external/Makefile.in
@@ -107,6 +107,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -145,8 +147,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -170,6 +170,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -242,8 +251,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/external/jsr166/Makefile.in b/libjava/classpath/external/jsr166/Makefile.in
index 93f58bf2337..a942ff75724 100644
--- a/libjava/classpath/external/jsr166/Makefile.in
+++ b/libjava/classpath/external/jsr166/Makefile.in
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/external/relaxngDatatype/Makefile.in b/libjava/classpath/external/relaxngDatatype/Makefile.in
index 6d36ab3eb18..9a568158b7f 100644
--- a/libjava/classpath/external/relaxngDatatype/Makefile.in
+++ b/libjava/classpath/external/relaxngDatatype/Makefile.in
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/external/sax/Makefile.in b/libjava/classpath/external/sax/Makefile.in
index 3ddaa288b54..1b22402b15f 100644
--- a/libjava/classpath/external/sax/Makefile.in
+++ b/libjava/classpath/external/sax/Makefile.in
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in
index ae8905f509b..d553a7b305e 100644
--- a/libjava/classpath/external/w3c_dom/Makefile.in
+++ b/libjava/classpath/external/w3c_dom/Makefile.in
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java b/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java
index 6b37b6c676c..2afa4b3a1d5 100644
--- a/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java
+++ b/libjava/classpath/gnu/CORBA/GIOP/v1_2/RequestHeader.java
@@ -153,7 +153,7 @@ public class RequestHeader
throw new NO_IMPLEMENT("Object addressing by IOP tagged profile");
case ReferenceAddr :
- throw new NO_IMPLEMENT("Object addressing by by IOR addressing info");
+ throw new NO_IMPLEMENT("Object addressing by IOR addressing info");
default :
MARSHAL m = new MARSHAL("Unknow addressing method in request, " +
diff --git a/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java b/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
index 0da0154d9d2..5f579050aa3 100644
--- a/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
+++ b/libjava/classpath/gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
@@ -1,6 +1,6 @@
/* ArrayReferenceCommandSet.java -- class to implement the Array
Reference Command Set
- Copyright (C) 2005, 2007 Free Software Foundation
+ Copyright (C) 2005 Free Software Foundation
This file is part of GNU Classpath.
diff --git a/libjava/classpath/gnu/java/awt/font/FontDelegate.java b/libjava/classpath/gnu/java/awt/font/FontDelegate.java
index 030f9d3bca5..a7787330984 100644
--- a/libjava/classpath/gnu/java/awt/font/FontDelegate.java
+++ b/libjava/classpath/gnu/java/awt/font/FontDelegate.java
@@ -115,8 +115,16 @@ public interface FontDelegate
* Returns the number of glyphs in this font face.
*/
public int getNumGlyphs();
-
-
+
+ /**
+ * Returns the glyph code for the specified character.
+ *
+ * @param c the character to map
+ *
+ * @return the glyph code
+ */
+ public int getGlyphIndex(int c);
+
/**
* Returns the index of the glyph which gets displayed if the font
* cannot map a Unicode code point to a glyph. Many fonts show this
diff --git a/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java b/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java
index a270ce7d96d..6c2193b94ae 100644
--- a/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java
+++ b/libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java
@@ -617,7 +617,17 @@ public final class OpenTypeFont
return new GNUGlyphVector(this, font, frc, glyphs);
}
-
+ /**
+ * Returns the glyph code for the specified character.
+ *
+ * @param c the character to map
+ *
+ * @return the glyph code
+ */
+ public int getGlyphIndex(int c)
+ {
+ return getCharGlyphMap().getGlyph(c);
+ }
/**
* Determines the advance width for a glyph.
diff --git a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
index f6c5ff0cb3b..15ec90da1c0 100644
--- a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
+++ b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
@@ -51,6 +51,7 @@ import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Paint;
import java.awt.PaintContext;
+import java.awt.Point;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.RenderingHints;
@@ -75,10 +76,10 @@ import java.awt.image.DataBuffer;
import java.awt.image.ImageObserver;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
+import java.awt.image.SampleModel;
import java.awt.image.WritableRaster;
import java.awt.image.renderable.RenderableImage;
import java.text.AttributedCharacterIterator;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@@ -147,7 +148,7 @@ import java.util.Map;
*/
public abstract class AbstractGraphics2D
extends Graphics2D
- implements Cloneable
+ implements Cloneable, Pixelizer
{
/**
@@ -156,13 +157,6 @@ public abstract class AbstractGraphics2D
private static final Font FONT = new Font("SansSerif", Font.PLAIN, 12);
/**
- * Accuracy of the sampling in the anti-aliasing shape filler.
- * Lower values give more speed, while higher values give more quality.
- * It is advisable to choose powers of two.
- */
- private static final int AA_SAMPLING = 8;
-
- /**
* Caches certain shapes to avoid massive creation of such Shapes in
* the various draw* and fill* methods.
*/
@@ -227,17 +221,6 @@ public abstract class AbstractGraphics2D
private WritableRaster destinationRaster;
/**
- * Stores the alpha values for a scanline in the anti-aliasing shape
- * renderer.
- */
- private transient int[] alpha;
-
- /**
- * The edge table for the scanline conversion algorithms.
- */
- private transient ArrayList[] edgeTable;
-
- /**
* Indicates if certain graphics primitives can be rendered in an optimized
* fashion. This will be the case if the following conditions are met:
* - The transform may only be a translation, no rotation, shearing or
@@ -931,8 +914,8 @@ public abstract class AbstractGraphics2D
{
// Initialize clip if not already present.
if (clip == null)
- clip = s;
-
+ setClip(s);
+
// This is so common, let's optimize this.
else if (clip instanceof Rectangle && s instanceof Rectangle)
{
@@ -1174,7 +1157,9 @@ public abstract class AbstractGraphics2D
{
if (isOptimized)
{
- rawDrawLine(x1, y1, x2, y2);
+ int tx = (int) transform.getTranslateX();
+ int ty = (int) transform.getTranslateY();
+ rawDrawLine(x1 + tx, y1 + ty, x2 + tx, y2 + ty);
}
else
{
@@ -1214,7 +1199,8 @@ public abstract class AbstractGraphics2D
{
if (isOptimized)
{
- rawFillRect(x, y, width, height);
+ rawFillRect(x + (int) transform.getTranslateX(),
+ y + (int) transform.getTranslateY(), width, height);
}
else
{
@@ -1352,8 +1338,16 @@ public abstract class AbstractGraphics2D
public void drawPolyline(int[] xPoints, int[] yPoints, int npoints)
{
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
+ ShapeCache sc = getShapeCache();
+ if (sc.polyline == null)
+ sc.polyline = new GeneralPath();
+ GeneralPath p = sc.polyline;
+ p.reset();
+ if (npoints > 0)
+ p.moveTo(xPoints[0], yPoints[0]);
+ for (int i = 1; i < npoints; i++)
+ p.lineTo(xPoints[i], yPoints[i]);
+ fill(p);
}
/**
@@ -1364,6 +1358,7 @@ public abstract class AbstractGraphics2D
ShapeCache sc = getShapeCache();
if (sc.polygon == null)
sc.polygon = new Polygon();
+ sc.polygon.reset();
sc.polygon.xpoints = xPoints;
sc.polygon.ypoints = yPoints;
sc.polygon.npoints = npoints;
@@ -1378,6 +1373,7 @@ public abstract class AbstractGraphics2D
ShapeCache sc = getShapeCache();
if (sc.polygon == null)
sc.polygon = new Polygon();
+ sc.polygon.reset();
sc.polygon.xpoints = xPoints;
sc.polygon.ypoints = yPoints;
sc.polygon.npoints = npoints;
@@ -1397,7 +1393,10 @@ public abstract class AbstractGraphics2D
{
boolean ret;
if (isOptimized)
- ret = rawDrawImage(image, x, y, observer);
+ {
+ ret = rawDrawImage(image, x + (int) transform.getTranslateX(),
+ y + (int) transform.getTranslateY(), observer);
+ }
else
{
AffineTransform t = new AffineTransform();
@@ -1559,17 +1558,15 @@ public abstract class AbstractGraphics2D
if (isFont)
{
Object v = renderingHints.get(RenderingHints.KEY_TEXT_ANTIALIASING);
- // We default to antialiasing on for text as long as we have no
- // good hinting implemented.
- antialias = (v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
- //|| v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+ // We default to antialiasing for text rendering.
+ antialias = (v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON
+ || v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
}
else
{
Object v = renderingHints.get(RenderingHints.KEY_ANTIALIASING);
antialias = (v == RenderingHints.VALUE_ANTIALIAS_ON);
}
-
ScanlineConverter sc = getScanlineConverter();
int resolution = 0;
if (antialias)
@@ -1577,7 +1574,7 @@ public abstract class AbstractGraphics2D
// Adjust resolution according to rendering hints.
resolution = 2;
}
- sc.renderShape(this, s, clip, transform, resolution);
+ sc.renderShape(this, s, clip, transform, resolution, renderingHints);
}
/**
@@ -1609,12 +1606,20 @@ public abstract class AbstractGraphics2D
*/
protected void rawDrawLine(int x0, int y0, int x1, int y1)
{
- draw(new Line2D.Float(x0, y0, x1, y1));
+ ShapeCache sc = getShapeCache();
+ if (sc.line == null)
+ sc.line = new Line2D.Float();
+ sc.line.setLine(x0, y0, x1, y1);
+ draw(sc.line);
}
protected void rawDrawRect(int x, int y, int w, int h)
{
- draw(new Rectangle(x, y, w, h));
+ ShapeCache sc = getShapeCache();
+ if (sc.rect == null)
+ sc.rect = new Rectangle();
+ sc.rect.setBounds(x, y, w, h);
+ draw(sc.rect);
}
/**
@@ -1662,7 +1667,11 @@ public abstract class AbstractGraphics2D
*/
protected void rawFillRect(int x, int y, int w, int h)
{
- fill(new Rectangle(x, y, w, h));
+ ShapeCache sc = getShapeCache();
+ if (sc.rect == null)
+ sc.rect = new Rectangle();
+ sc.rect.setBounds(x, y, w, h);
+ fill(sc.rect);
}
/**
@@ -1718,10 +1727,38 @@ public abstract class AbstractGraphics2D
* @param x1 the right offset
* @param y the scanline
*/
- protected void fillScanline(int x0, int x1, int y)
+ public void renderScanline(int y, ScanlineCoverage c)
{
PaintContext pCtx = paintContext;
+ int x0 = c.getMinX();
+ int x1 = c.getMaxX();
Raster paintRaster = pCtx.getRaster(x0, y, x1 - x0, 1);
+
+ // Do the anti aliasing thing.
+ float coverageAlpha = 0;
+ float maxCoverage = c.getMaxCoverage();
+ ColorModel cm = pCtx.getColorModel();
+ DataBuffer db = paintRaster.getDataBuffer();
+ Point loc = new Point(paintRaster.getMinX(), paintRaster.getMinY());
+ SampleModel sm = paintRaster.getSampleModel();
+ WritableRaster writeRaster = Raster.createWritableRaster(sm, db, loc);
+ WritableRaster alphaRaster = cm.getAlphaRaster(writeRaster);
+ int pixel;
+ ScanlineCoverage.Iterator iter = c.iterate();
+ while (iter.hasNext())
+ {
+ ScanlineCoverage.Range range = iter.next();
+ coverageAlpha = range.getCoverage() / maxCoverage;
+ if (coverageAlpha < 1.0)
+ {
+ for (int x = range.getXPos(); x < range.getXPosEnd(); x++)
+ {
+ pixel = alphaRaster.getSample(x, y, 0);
+ pixel = (int) (pixel * coverageAlpha);
+ alphaRaster.setSample(x, y, 0, pixel);
+ }
+ }
+ }
ColorModel paintColorModel = pCtx.getColorModel();
CompositeContext cCtx = composite.createContext(paintColorModel,
getColorModel(),
@@ -1734,66 +1771,6 @@ public abstract class AbstractGraphics2D
/**
- * Fills a horizontal line between x0 and x1 for anti aliased rendering.
- * the alpha array contains the deltas of the alpha values from one pixel
- * to the next.
- *
- * @param alpha the alpha values in the scanline
- * @param x0 the beginning of the scanline
- * @param yy the y coordinate of the line
- */
- private void fillScanlineAA(int[] alpha, int x0, int yy, int numPixels,
- PaintContext pCtx, int offs)
- {
- CompositeContext cCtx = composite.createContext(pCtx.getColorModel(),
- getColorModel(),
- renderingHints);
- Raster paintRaster = pCtx.getRaster(x0, yy, numPixels, 1);
- //System.err.println("paintColorModel: " + pCtx.getColorModel());
- WritableRaster aaRaster = paintRaster.createCompatibleWritableRaster();
- ColorModel cm = pCtx.getColorModel();
- double lastAlpha = 0.;
- int lastAlphaInt = 0;
-
- Object pixel = null;
- int[] comps = null;
- int x1 = x0 + numPixels;
- for (int x = x0; x < x1; x++)
- {
- int i = x - offs;
- if (alpha[i] != 0)
- {
- lastAlphaInt += alpha[i];
- lastAlpha = (double) lastAlphaInt / (double) AA_SAMPLING;
- alpha[i] = 0;
- }
- pixel = paintRaster.getDataElements(x - x0, 0, pixel);
- comps = cm.getComponents(pixel, comps, 0);
- if (cm.hasAlpha() && ! cm.isAlphaPremultiplied())
- comps[comps.length - 1] *= lastAlpha;
- else
- {
- int max;
- if (cm.hasAlpha())
- max = comps.length - 2;
- else
- max = comps.length - 1;
- for (int j = 0; j < max; j++)
- comps[j] *= lastAlpha;
- }
- pixel = cm.getDataElements(comps, 0, pixel);
- aaRaster.setDataElements(x - x0, 0, pixel);
- }
-
- WritableRaster targetChild =
- destinationRaster.createWritableTranslatedChild(-x0, -yy);
- cCtx.compose(aaRaster, targetChild, targetChild);
- updateRaster(destinationRaster, x0, yy, numPixels, 1);
-
- cCtx.dispose();
- }
-
- /**
* Initializes this graphics object. This must be called by subclasses in
* order to correctly initialize the state of this object.
*/
@@ -1971,4 +1948,5 @@ public abstract class AbstractGraphics2D
}
return sc;
}
+
}
diff --git a/libjava/classpath/gnu/java/awt/java2d/Pixelizer.java b/libjava/classpath/gnu/java/awt/java2d/Pixelizer.java
new file mode 100644
index 00000000000..43e53bf63d9
--- /dev/null
+++ b/libjava/classpath/gnu/java/awt/java2d/Pixelizer.java
@@ -0,0 +1,56 @@
+/* Pixelizer.java -- Interface for the target of the rasterizer
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.java2d;
+
+/**
+ * A pixelizer is responsible for actually manipulating the pixel of a drawing
+ * surface after the scanline conversion process. It receives coverage
+ * information for a scanline and adjusts the surface pixels accordingly.
+ */
+public interface Pixelizer
+{
+
+ /**
+ * Renders the pixel for one scanline at the Y location <code>y</code>
+ * and using the coverage information in <code>sc</code>.
+ *
+ * @param y the scanline Y coordinate
+ * @param sc the coverage information
+ */
+ void renderScanline(int y, ScanlineCoverage sc);
+}
diff --git a/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java b/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
index 9f9d8921f59..2693a0b70c7 100644
--- a/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
+++ b/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
@@ -1,5 +1,5 @@
/* ScanlineConverter.java -- Rasterizes Shapes
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,6 +40,7 @@ package gnu.java.awt.java2d;
import gnu.java.math.Fixed;
+import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
@@ -47,7 +48,7 @@ import java.awt.geom.PathIterator;
/**
* Rasterizes {@link Shape} objects on an AbstractGraphics2D.
*/
-final class ScanlineConverter
+public final class ScanlineConverter
{
/**
@@ -56,11 +57,16 @@ final class ScanlineConverter
private static int FIXED_DIGITS = 6;
/**
- * The fixed value for the number 1.
+ * The fixed point constant for the number one.
*/
private static int ONE = Fixed.fixedValue(FIXED_DIGITS, 1);
/**
+ * The number of significant bits for the Y resolution.
+ */
+ private static int Y_RESOLUTION = 4;
+
+ /**
* The actual number of scanlines.
*/
private int numScanlines;
@@ -109,6 +115,13 @@ final class ScanlineConverter
private int minY;
private int maxY;
+ private int minX;
+ private int maxX;
+
+ /**
+ * Holds and manages information about the pixel coverage.
+ */
+ private ScanlineCoverage scanlineCoverage;
/**
* Create a new ScanlineConverter.
@@ -120,18 +133,23 @@ final class ScanlineConverter
activeEdges = new ActiveEdges();
edgePool = new PolyEdge();
edgePoolLast = edgePool;
+ scanlineCoverage = new ScanlineCoverage();
}
/**
* Renders the specified shape using the specified clip and transform.
*
+ * @param p the pixelizer that receives the coverage information
* @param shape the shape to render
* @param clip the clip
* @param trans the transform
*/
- void renderShape(AbstractGraphics2D g, Shape shape, Shape clip,
- AffineTransform trans, int res)
+ public void renderShape(Pixelizer p, Shape shape, Shape clip,
+ AffineTransform trans, int res, RenderingHints hints)
{
+ // TODO: Do something useful with the rendering hints. Like, adjusting
+ // the resolution.
+
// Prepare resolution and upper bounds.
clear();
setResolution(res);
@@ -139,11 +157,12 @@ final class ScanlineConverter
boolean haveClip = clip != null;
// Add shapes.
- PathIterator path = shape.getPathIterator(trans, resolution);
+ float flatness = Fixed.floatValue(FIXED_DIGITS, resolution / 2);
+ PathIterator path = shape.getPathIterator(trans, flatness);
addShape(path, false);
if (haveClip)
{
- path= clip.getPathIterator(trans, resolution);
+ path= clip.getPathIterator(trans, flatness);
addShape(path, true);
}
@@ -157,11 +176,11 @@ final class ScanlineConverter
}
int y = upperBounds;
- int lastIndex = scanlineIndex(y - resolution);
int index;
activeEdges.clear();
// The render loop...
Scanline scanline = null;
+ int lastRealY = Fixed.intValue(FIXED_DIGITS, y);
while (y <= maxY)
{
// First we put together our list of active edges.
@@ -184,15 +203,16 @@ final class ScanlineConverter
activeEdges.intersectSortAndPack(FIXED_DIGITS, y + halfStep);
// Ok, now we can perform the actual scanlining.
- boolean push = lastIndex != index;
- doScanline(g, y, push, haveClip);
+ int realY = Fixed.intValue(FIXED_DIGITS, y + resolution);
+ boolean push = lastRealY != realY;
+ doScanline(p, y, push, haveClip);
// Remove obsolete active edges.
//activeEdges.remove(y + halfStep);
-
// Go on with the next line...
y += resolution;
- lastIndex = index;
+ lastRealY = realY;
+
}
}
@@ -212,17 +232,31 @@ final class ScanlineConverter
sl.clear();
}
+ // Reset scanline coverage.
+ scanlineCoverage.clear();
+
// Reset bounds.
minY = Integer.MAX_VALUE;
maxY = Integer.MIN_VALUE;
+ minX = Integer.MAX_VALUE;
+ maxX = Integer.MIN_VALUE;
}
/**
* Performs the scanlining on the current set of active edges.
+ *
+ * @param p the pixelizer to receive the pixel coverage data
+ * @param y the Y coordinate
+ * @param push true when the scanline is ready to be pushed to the
+ * pixelizer
+ * @param haveClip true when there's a clip, false otherwise
*/
- private void doScanline(AbstractGraphics2D g, int y, boolean push,
+ private void doScanline(Pixelizer p, int y, boolean push,
boolean haveClip)
{
+ // First, rewind the scanline coverage.
+ scanlineCoverage.rewind();
+
// We begin outside the clip and outside the shape. We only draw when
// we are inside the clip AND inside the shape.
boolean inClip = ! haveClip;
@@ -238,22 +272,16 @@ final class ScanlineConverter
int x0 = lastEdge.xIntersection;
int x1 = edge.xIntersection;
assert x0 <= x1;
- if (push)
- {
- if (resolution == ONE)
- {
- // Non-AA rendering.
- g.fillScanline(Fixed.intValue(FIXED_DIGITS, x0),
- Fixed.intValue(FIXED_DIGITS, x1 - resolution),
- Fixed.intValue(FIXED_DIGITS, y));
- }
- else
- {
- // AA rendering.
- // FIXME: Implement.
- System.err.println("Implement AA rendering.");
- }
- }
+
+ int pix0 = Fixed.intValue(FIXED_DIGITS, x0);
+ int pix1 = Fixed.intValue(FIXED_DIGITS, x1);
+ int frac0 = ONE - Fixed.trunc(FIXED_DIGITS, x0);
+ int frac1 = ONE - Fixed.trunc(FIXED_DIGITS, x1);
+ // Only keep the first 4 digits after the point.
+ frac0 = frac0 >> (FIXED_DIGITS - Y_RESOLUTION);
+ frac1 = frac1 >> (FIXED_DIGITS - Y_RESOLUTION);
+ scanlineCoverage.add(pix0, 1 * (1 << Y_RESOLUTION), frac0);
+ scanlineCoverage.add(pix1, -1 * (1 << Y_RESOLUTION), -frac1);
}
if (edge.isClip)
inClip = ! inClip;
@@ -262,7 +290,15 @@ final class ScanlineConverter
lastEdge = edge;
}
- }
+
+ // Push out the whole scanline to the pixelizer.
+ if (push && ! scanlineCoverage.isEmpty())
+ {
+ p.renderScanline(Fixed.intValue(FIXED_DIGITS, y), scanlineCoverage);
+ scanlineCoverage.clear();
+ }
+ }
+
/**
* Sets the resolution. A value of 0 rasterizes the shape normally without
@@ -272,9 +308,12 @@ final class ScanlineConverter
*/
private void setResolution(int res)
{
+ int scanlinesPerPixel = 1 << res;
int one = Fixed.fixedValue(FIXED_DIGITS, 1);
- resolution = one / (1 << res);
+ resolution = one / (scanlinesPerPixel);
halfStep = resolution / 2;
+
+ scanlineCoverage.setMaxCoverage(scanlinesPerPixel << Y_RESOLUTION);
}
/**
@@ -309,6 +348,8 @@ final class ScanlineConverter
startY = lastY = Fixed.fixedValue(FIXED_DIGITS, coords[1]);
minY = Math.min(startY, minY);
maxY = Math.max(startY, maxY);
+ minX = Math.min(startX, minX);
+ maxX = Math.max(startX, maxX);
break;
case PathIterator.SEG_LINETO:
int x = Fixed.fixedValue(FIXED_DIGITS, coords[0]);
@@ -318,6 +359,8 @@ final class ScanlineConverter
lastY = y;
minY = Math.min(lastY, minY);
maxY = Math.max(lastY, maxY);
+ minX = Math.min(lastX, minX);
+ maxX = Math.max(lastX, maxX);
break;
case PathIterator.SEG_CLOSE:
edgePoolAdd(lastX, lastY, startX, startY, clip);
@@ -371,7 +414,7 @@ final class ScanlineConverter
{
int val1 = Fixed.div(FIXED_DIGITS, y, resolution);
int rounded = Fixed.round(FIXED_DIGITS, val1);
- return Fixed.div(FIXED_DIGITS, rounded, resolution);
+ return Fixed.mul(FIXED_DIGITS, rounded, resolution);
}
/**
diff --git a/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java b/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java
new file mode 100644
index 00000000000..6db7fb01988
--- /dev/null
+++ b/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java
@@ -0,0 +1,630 @@
+/* ScanlineCoverage.java -- Manages coverage information for a scanline
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.java2d;
+
+/**
+ * Stores and handles the pixel converage for a scanline. The pixel coverage
+ * is stored as sorted list of {@linke Covergage} entries, each of which holds
+ * information about the coverage for the X and Y axis. This is utilized to
+ * compute the actual coverage for each pixel on the scanline and finding
+ * chunks of pixels with equal coverage quickly.
+ */
+public final class ScanlineCoverage
+{
+
+ /**
+ * Iterates over the coverage list and calculates the actual coverage
+ * ranges on a scanline.
+ */
+ public final class Iterator
+ {
+ /**
+ * This instance is reused in the iteration.
+ */
+ private Range range;
+
+ /**
+ * The pointer to the current item in the iteration.
+ */
+ private Coverage currentItem;
+
+ /**
+ * The current coverage value.
+ */
+ private int currentCoverage;
+
+ /**
+ * True when the current pixel coverage has already been handled, false
+ * otherwise.
+ */
+ private boolean handledPixelCoverage;
+
+ /**
+ * Creates a new CoverageIterator.
+ */
+ Iterator()
+ {
+ range = new Range();
+ }
+
+ /**
+ * Returns the next coverage range on the scanline. The returned object
+ * will always be the same object, but with different values. Keep that
+ * in mind when dealing with this object.
+ *
+ * @return the next coverage range on the scanline
+ */
+ public Range next()
+ {
+ // TODO: Lump together the single-pixel coverage and the
+ // between-pixel coverage when the pixel coverage delta is 0.
+ if (handledPixelCoverage == false)
+ {
+ // Handle single pixel coverage.
+ range.setXPos(currentItem.xPos);
+ range.setLength(1);
+ range.setCoverage(currentCoverage + currentItem.pixelCoverage);
+ handledPixelCoverage = true;
+ }
+ else
+ {
+ // Handle pixel span coverage.
+ currentCoverage += currentItem.covDelta;
+ range.setCoverage(currentCoverage);
+ range.setXPos(currentItem.xPos + 1);
+ currentItem = currentItem.next;
+ range.setLength(currentItem.xPos - range.xPos);
+ handledPixelCoverage = false;
+ }
+ return range;
+ }
+
+ /**
+ * Returns {@ true} when there are more coverage ranges to iterate,
+ * {@ false} otherwise.
+ *
+ * @return {@ true} when there are more coverage ranges to iterate,
+ * {@ false} otherwise
+ */
+ public boolean hasNext()
+ {
+ boolean hasNext;
+ if (currentItem != null && handledPixelCoverage == false)
+ {
+ // We have at least one more coverage item when there's a pixel
+ // coverage piece left.
+ hasNext = true;
+ }
+ else if (currentItem == null || currentItem.next == null
+ || currentItem.next == last)
+ {
+ hasNext = false;
+ }
+ else
+ {
+ hasNext = true;
+ }
+ return hasNext;
+ }
+
+ /**
+ * Resets this iterator to the start of the list.
+ */
+ void reset()
+ {
+ currentItem = head;
+ currentCoverage = 0;
+ handledPixelCoverage = false;
+ }
+ }
+
+ /**
+ * A data object that carries information about pixel coverage on a scanline.
+ * The data consists of a starting X position on the scanline, the
+ * length of the range in pixels and the actual coverage value.
+´ */
+ public static final class Range
+ {
+ /**
+ * The X position on the scanline, in pixels.
+ */
+ private int xPos;
+
+ /**
+ * The length of the range, in pixels.
+ */
+ private int length;
+
+ /**
+ * The actual coverage. The relation depends on
+ * {@link ScanlineCoverage#maxCoverage}.
+ */
+ private int coverage;
+
+ /**
+ * Creates a new CoverageRange object.
+ */
+ Range()
+ {
+ // Nothing to do. The values get initialized in the corresponding
+ // setters.
+ }
+
+ /**
+ * Sets the X start position (left) on the scanline. This value is
+ * considered to be in pixels and device space.
+ *
+ * @param x the x position
+ */
+ void setXPos(int x)
+ {
+ xPos = x;
+ }
+
+ /**
+ * Returns the X start position (left) on the scanline. This value
+ * is considered to be in pixels and device space.
+ *
+ * @return the X position on the scanline
+ */
+ public int getXPos()
+ {
+ return xPos;
+ }
+
+ /**
+ * Sets the length of the pixel range. This is in pixel units.
+ *
+ * @param l the length of the range
+ */
+ void setLength(int l)
+ {
+ length = l;
+ }
+
+ /**
+ * Returns the length of the range in pixel units.
+ *
+ * @return the length of the range in pixel units
+ */
+ public int getLength()
+ {
+ return length;
+ }
+
+ /**
+ * Returns the first X position after the range.
+ *
+ * @return the first X position after the range
+ */
+ public int getXPosEnd()
+ {
+ return xPos + length;
+ }
+
+ /**
+ * Sets the coverage of the pixel range. The relation of that value
+ * depends on {@link ScanlineCoverage#maxCoverage}.
+ *
+ * @param cov the coverage value for the pixel range
+ */
+ void setCoverage(int cov)
+ {
+ coverage = cov;
+ }
+
+ /**
+ * Returns the coverage of the pixel range. The relation of this value
+ * depends on {@link ScanlineCoverage#getMaxCoverage()}.
+ *
+ * @return the coverage of the pixel range
+ */
+ public int getCoverage()
+ {
+ return coverage;
+ }
+
+ /**
+ * Returns a string representation.
+ */
+ public String toString()
+ {
+ return "Coverage range: xPos=" + xPos + ", length=" + length
+ + ", coverage: " + coverage;
+ }
+ }
+
+ /**
+ * One bucket in the list.
+ */
+ private static final class Coverage
+ {
+ /**
+ * The X coordinate on the scanline to which this bucket belongs.
+ */
+ int xPos;
+
+ /**
+ * The coverage delta from the pixel at xPos to xPos + 1.
+ */
+ int covDelta;
+
+ /**
+ * The delta for the pixel at xPos. This is added to the pixel at xPos,
+ * but not to the following pixel.
+ */
+ int pixelCoverage;
+
+ /**
+ * Implements a linked list. This points to the next element of the list.
+ */
+ Coverage next;
+
+ /**
+ * Returns the X coordinate for this entry.
+ *
+ * @return the X coordinate for this entry
+ */
+ public int getXPos()
+ {
+ return xPos;
+ }
+
+ /**
+ * Returns the coverage delta for this entry.
+ *
+ * @return the coverage delta for this entry
+ */
+ public int getCoverageDelta()
+ {
+ return covDelta;
+ }
+
+ /**
+ * Returns a string representation.
+ *
+ * @return a string representation
+ */
+ public String toString()
+ {
+ return "Coverage: xPos: " + xPos + ", covDelta: " + covDelta;
+ }
+
+ /**
+ * Returns a string representation of this entry and all the following
+ * in the linked list.
+ *
+ * @return a string representation of this entry and all the following
+ * in the linked list
+ */
+ public String list()
+ {
+ String str = toString();
+ if (next != null)
+ str = str + " --> " + next.list();
+ return str;
+ }
+ }
+
+ /**
+ * The head of the sorted list of buckets.
+ */
+ private Coverage head;
+
+ /**
+ * The current bucket. We make use of the fact that the scanline converter
+ * always scans the scanline (and thus this list) from left to right to
+ * quickly find buckets or insertion points.
+ */
+ private Coverage current;
+
+ /**
+ * The item that is before current in the list.
+ */
+ private Coverage currentPrev;
+
+ /**
+ * The bucket after the last valid bucket. Unused buckets are not thrown
+ * away and garbage collected. Instead, we keep them at the tail of the list
+ * and reuse them when necessary.
+ */
+ private Coverage last;
+
+ /**
+ * The last valid entry.
+ */
+ private Coverage lastPrev;
+
+ /**
+ * The minimum X coordinate of this scanline.
+ */
+ private int minX;
+
+ /**
+ * The maximum X coordinate of this scanline.
+ */
+ private int maxX;
+
+ /**
+ * The maximum coverage value.
+ */
+ private int maxCoverage;
+
+ /**
+ * The iterator over the ranges of this scanline.
+ */
+ private Iterator iterator;
+
+ /**
+ * Creates a new ScanlineCoverage instance.
+ */
+ public ScanlineCoverage()
+ {
+ iterator = new Iterator();
+ }
+
+ /**
+ * Indicates the the next scan of the scanline begins and that the next
+ * request will be at the beginning of this list. This makes searching and
+ * sorting of this list very quick.
+ */
+ public void rewind()
+ {
+ current = head;
+ currentPrev = null;
+ }
+
+ /**
+ * Clears the list. This does not throw away the old buckets but only
+ * resets the end-pointer of the list to the first element. All buckets are
+ * then unused and are reused when the list is filled again.
+ */
+ public void clear()
+ {
+ last = head;
+ lastPrev = null;
+ current = head;
+ currentPrev = null;
+ minX = Integer.MAX_VALUE;
+ maxX = Integer.MIN_VALUE;
+ }
+
+ /**
+ * This adds the specified coverage to the pixel at the specified
+ * X position.
+ *
+ * @param x the X position
+ * @param xc the x coverage
+ * @param yc the y coverage
+ */
+ public void add(int x, int xc, int yc)
+ {
+ Coverage bucket = findOrInsert(x);
+ bucket.covDelta += xc;
+ bucket.pixelCoverage += yc;
+ minX = Math.min(minX, x);
+ maxX = Math.max(maxX, x);
+ }
+
+ /**
+ * Returns the maximum coverage value for the scanline.
+ *
+ * @return the maximum coverage value for the scanline
+ */
+ public int getMaxCoverage()
+ {
+ return maxCoverage;
+ }
+
+ /**
+ * Sets the maximum coverage value for the scanline.
+ *
+ * @param maxCov the maximum coverage value for the scanline
+ */
+ void setMaxCoverage(int maxCov)
+ {
+ maxCoverage = maxCov;
+ }
+
+ /**
+ * Returns the maximum X coordinate of the current scanline.
+ *
+ * @return the maximum X coordinate of the current scanline
+ */
+ public int getMaxX()
+ {
+ return maxX;
+ }
+
+ /**
+ * Returns the minimum X coordinate of the current scanline.
+ *
+ * @return the minimum X coordinate of the current scanline
+ */
+ public int getMinX()
+ {
+ return minX;
+ }
+
+ /**
+ * Finds the bucket in the list with the specified X coordinate.
+ * If no such bucket is found, then a new one is fetched (either a cached
+ * bucket from the end of the list or a newly allocated one) inserted at the
+ * correct position and returned.
+ *
+ * @param x the X coordinate
+ *
+ * @return a bucket to hold the coverage data
+ */
+ private Coverage findOrInsert(int x)
+ {
+ // First search for a matching bucket.
+ if (head == null)
+ {
+ // Special case: the list is still empty.
+ // Testpoint 1.
+ head = new Coverage();
+ head.xPos = x;
+ current = head;
+ currentPrev = null;
+ return head;
+ }
+
+ // This performs a linear search, starting from the current bucket.
+ // This is reasonably efficient because access to this list is always done
+ // in a linear fashion and we are usually not more then 1 or 2 buckets away
+ // from the one we're looking for.
+ Coverage match = current;
+ Coverage prev = currentPrev;
+ while (match != last && match.xPos < x)
+ {
+ prev = match;
+ match = match.next;
+ }
+
+ // At this point we have either found an entry with xPos >= x, or reached
+ // the end of the list (match == last || match == null).
+ if (match == null)
+ {
+ // End of the list. No cached items to reuse.
+ // Testpoint 2.
+ match = new Coverage();
+ match.xPos = x;
+ if (prev != null)
+ prev.next = match;
+ current = match;
+ currentPrev = prev;
+ return match;
+ }
+ else if (match == last)
+ {
+ // End of the list. Reuse this item. Expand list.
+ // Testpoint 3.
+ last = match.next;
+ lastPrev = match;
+ match.xPos = x;
+ match.covDelta = 0;
+ match.pixelCoverage = 0;
+ // Keep link to last element or null, indicating the end of the list.
+ current = match;
+ currentPrev = prev;
+ return match;
+ }
+
+ if (x == match.xPos)
+ {
+ // Special case: We have another coverage entry at the same location
+ // as an already existing entry. Return this.
+ // Testpoint 4.
+ current = match;
+ currentPrev = prev;
+ return match;
+ }
+ else // x <= match.xPos
+ {
+ assert (x <= match.xPos);
+ assert (prev == null ||x > prev.xPos);
+
+ // Create new entry, or reuse existing one.
+ Coverage cov;
+ if (last != null)
+ {
+ // Testpoint 5.
+ cov = last;
+ last = cov.next;
+ lastPrev.next = last;
+ }
+ else
+ {
+ // Testpoint 6.
+ cov = new Coverage();
+ }
+
+ cov.xPos = x;
+ cov.covDelta = 0;
+ cov.pixelCoverage = 0;
+
+ // Insert this item in the list.
+ if (prev != null)
+ {
+ // Testpoint 5 & 6.
+ prev.next = cov;
+ cov.next = match;
+ current = cov;
+ currentPrev = prev;
+ }
+ else
+ {
+ // Testpoint 7.
+ assert (match == head);
+ // Insert at head.
+ head = cov;
+ head.next = match;
+ current = head;
+ currentPrev = null;
+ }
+ return cov;
+ }
+ }
+
+ /**
+ * (Re-)Starts iterating the coverage values for the scanline.
+ * Use the returned iterator to get the consecutive coverage ranges.
+ *
+ * @return the iterator
+ */
+ public Iterator iterate()
+ {
+ iterator.reset();
+ return iterator;
+ }
+
+ /**
+ * Returns {@ true} if this object has no entries for the current scanline,
+ * {@ false} otherwise.
+ *
+ * @return {@ true} if this object has no entries for the current scanline,
+ * {@ false} otherwise
+ */
+ public boolean isEmpty()
+ {
+ return head == null || head == last
+ || head.next == null || head.next == last;
+ }
+
+}
diff --git a/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java b/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java
index 034b53cadd3..89a9ac4ab84 100644
--- a/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java
+++ b/libjava/classpath/gnu/java/awt/java2d/ShapeCache.java
@@ -42,6 +42,7 @@ import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
+import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.RoundRectangle2D;
@@ -82,4 +83,8 @@ public class ShapeCache
*/
public Polygon polygon;
+ /**
+ * A cached polyline.
+ */
+ public GeneralPath polyline;
}
diff --git a/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java b/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java
index 60fde2557ac..e43e5f284ed 100644
--- a/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java
@@ -644,7 +644,7 @@ public abstract class ClasspathFontPeer
* be ignored.
*/
- public abstract boolean canDisplay (Font font, char c);
+ public abstract boolean canDisplay (Font font, int c);
/**
* Implementation of {@link Font#canDisplay(String)},
diff --git a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java
index f9a7bac8ee6..bf40bf379fa 100644
--- a/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java
@@ -449,4 +449,13 @@ public class GLightweightPeer
{
// Nothing to do here for lightweights.
}
+
+ public boolean requestFocus(Component lightweightChild, boolean temporary,
+ boolean focusedWindowChangeAllowed,
+ long time, sun.awt.CausedFocusEvent.Cause cause)
+ {
+ // Always grant focus request.
+ return true;
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java b/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java
index 3a386075a69..db8acd1cda0 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java
@@ -1726,7 +1726,8 @@ public abstract class CairoGraphics2D extends Graphics2D
.equals(RenderingHints.VALUE_TEXT_ANTIALIAS_OFF));
ignoreAA = true;
- if (gv instanceof FreetypeGlyphVector && alpha == 1.0)
+ if (gv instanceof FreetypeGlyphVector && alpha == 1.0
+ && !((FreetypeGlyphVector)gv).hasTransforms())
{
int n = gv.getNumGlyphs ();
int[] codes = gv.getGlyphCodes (0, n, null);
@@ -2164,4 +2165,4 @@ public abstract class CairoGraphics2D extends Graphics2D
return new Rectangle2D.Double(minX, minY, (maxX - minX), (maxY - minY));
}
-}
+} \ No newline at end of file
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
index e54320697d8..4ce20a30d32 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
@@ -938,4 +938,4 @@ public class ComponentGraphics extends CairoGraphics2D
unlock();
}
}
-}
+} \ No newline at end of file
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java b/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
index 280f3e6fbcd..8d6d01ae317 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
@@ -43,6 +43,8 @@ import java.awt.font.FontRenderContext;
import java.awt.font.GlyphJustificationInfo;
import java.awt.font.GlyphMetrics;
import java.awt.font.GlyphVector;
+import java.awt.font.TextAttribute;
+import java.awt.font.TransformAttribute;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.awt.geom.Point2D;
@@ -86,7 +88,10 @@ public class FreetypeGlyphVector extends GlyphVector
private long[] fontSet = null;
/**
- * Glyph transforms. (de facto only the translation is used)
+ * Glyph transforms. Supports all transform operations.
+ *
+ * The identity transform should not be stored in this array; use a null
+ * instead (will result in performance improvements).
*/
private AffineTransform[] glyphTransforms;
@@ -185,9 +190,12 @@ public class FreetypeGlyphVector extends GlyphVector
fontSet = new long[nGlyphs];
glyphPositions = new float[(nGlyphs + 1) * 2];
glyphTransforms = new AffineTransform[ nGlyphs ];
+ Arrays.fill(glyphTransforms, null);
+
for(int i = 0; i < nGlyphs; i++ )
{
- glyphTransforms[ i ] = new AffineTransform( gv.glyphTransforms[ i ] );
+ if (gv.glyphTransforms[i] != null)
+ glyphTransforms[ i ] = new AffineTransform(gv.glyphTransforms[i]);
glyphCodes[i] = gv.glyphCodes[ i ];
}
System.arraycopy(gv.glyphPositions, 0, glyphPositions, 0,
@@ -313,6 +321,25 @@ public class FreetypeGlyphVector extends GlyphVector
}
glyphPositions[nGlyphs * 2] = x;
glyphPositions[nGlyphs * 2 + 1] = y;
+
+ // Apply any transform that may be in the font's attributes
+ TransformAttribute ta;
+ ta = (TransformAttribute)font.getAttributes().get(TextAttribute.TRANSFORM);
+ if (ta != null)
+ {
+ AffineTransform tx = ta.getTransform();
+
+ // Transform glyph positions
+ tx.transform(glyphPositions, 0, glyphPositions, 0,
+ glyphPositions.length / 2);
+
+ // Also store per-glyph scale/shear/rotate (but not translation)
+ double[] matrix = new double[4];
+ tx.getMatrix(matrix);
+ AffineTransform deltaTx = new AffineTransform(matrix);
+ if (!deltaTx.isIdentity())
+ Arrays.fill(glyphTransforms, deltaTx);
+ }
}
/**
@@ -375,7 +402,7 @@ public class FreetypeGlyphVector extends GlyphVector
p.getY() + r.getY() + r.getHeight()};
if (glyphTransforms[glyphIndex] != null)
- glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 4);
+ glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 2);
return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0],
bounds[3] - bounds[1]);
@@ -473,7 +500,19 @@ public class FreetypeGlyphVector extends GlyphVector
{
return glyphTransforms[glyphIndex];
}
-
+
+ /**
+ * Checks whether any transform has been set on any glyphs.
+ */
+ protected boolean hasTransforms()
+ {
+ for (int i = 0; i < glyphTransforms.length; i++)
+ if (glyphTransforms[i] != null)
+ return true;
+
+ return false;
+ }
+
/**
* Returns the visual bounds of a glyph
* May be off by a pixel or two due to hinting/rasterization.
@@ -570,6 +609,19 @@ public class FreetypeGlyphVector extends GlyphVector
*/
public void setGlyphTransform(int glyphIndex, AffineTransform newTX)
{
+ // The identity transform should never be in the glyphTransforms array;
+ // using and checking for nulls can be much faster.
+ if (newTX != null && newTX.isIdentity())
+ newTX = null;
+
+ // If the old and new transforms are identical, bail
+ if (glyphTransforms[glyphIndex] == null && newTX == null)
+ return;
+
+ if (newTX != null && newTX.equals(glyphTransforms[glyphIndex]))
+ return;
+
+ // Invalidate bounds cache and set new transform
logicalBounds = null;
glyphTransforms[glyphIndex] = newTX;
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
index c3c94d8a935..95a806ac7ee 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
+import gnu.classpath.Pointer;
+
import gnu.java.awt.ClasspathToolkit;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.java.awt.font.opentype.NameDecoder;
@@ -172,6 +174,14 @@ public class GdkFontPeer extends ClasspathFontPeer
private ByteBuffer nameTable = null;
+ /**
+ * The pointer to the native font data.
+ *
+ * This field is manipulated by native code. Don't change or remove
+ * without adjusting the native code.
+ */
+ private Pointer nativeFont;
+
private native void initState ();
private native void dispose ();
private native void setFont (String family, int style, int size);
@@ -351,7 +361,7 @@ public class GdkFontPeer extends ClasspathFontPeer
return NameDecoder.getName(nameTable, name, locale);
}
- public boolean canDisplay (Font font, char c)
+ public boolean canDisplay (Font font, int c)
{
// FIXME: inquire with pango
return true;
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
index bd6daa2d1e5..d06af84433f 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
@@ -52,6 +52,8 @@ import java.awt.image.SampleModel;
import java.awt.image.WritableRaster;
import java.util.Locale;
+import gnu.classpath.Pointer;
+
public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
{
private final int native_state = GtkGenericPeer.getUniqueInteger ();
@@ -59,15 +61,24 @@ public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
private GdkScreenGraphicsDevice defaultDevice;
private GdkScreenGraphicsDevice[] devices;
-
+
+ /**
+ * The pointer to the native display resource.
+ *
+ * This field is manipulated by native code. Don't change or remove
+ * without adjusting the native code.
+ */
+ private Pointer display;
+
static
{
System.loadLibrary("gtkpeer");
- initStaticState ();
+ GtkToolkit.initializeGlobalIDs();
+ initIDs();
}
- static native void initStaticState();
+ private static native void initIDs();
public GdkGraphicsEnvironment ()
{
@@ -144,6 +155,7 @@ public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
* Used by GtkMouseInfoPeer.
*/
native int[] getMouseCoordinates();
+ native boolean isWindowUnderMouse(GtkWindowPeer windowPeer);
public WritableRaster createRaster(ColorModel cm, SampleModel sm)
{
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
index 6f6ea560db7..e52bf050c09 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
@@ -68,6 +68,8 @@ import javax.imageio.spi.ImageWriterSpi;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.stream.ImageOutputStream;
+import gnu.classpath.Pointer;
+
public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
{
static
@@ -94,6 +96,14 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
// the current set of ImageConsumers for this decoder
Vector curr;
+ /**
+ * The pointer to the native pixbuf loader.
+ *
+ * This field is manipulated by native code. Don't change or remove
+ * without adjusting the native code.
+ */
+ private Pointer nativeDecoder;
+
// interface to GdkPixbuf
// These native functions should be called with the pixbufLock held.
native void initState ();
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java
index 6d0218d057a..d3e9774daa0 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkRobotPeer.java
@@ -91,4 +91,9 @@ public class GdkRobotPeer implements RobotPeer
return pixels;
}
+
+ public void dispose()
+ {
+ // Nothing to do here yet.
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
index a69c6f0659e..7ef4645a257 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
@@ -46,6 +46,8 @@ import java.awt.Rectangle;
import java.awt.Window;
import java.util.ArrayList;
+import gnu.classpath.Pointer;
+
class GdkScreenGraphicsDevice extends GraphicsDevice
{
private final int native_state = GtkGenericPeer.getUniqueInteger ();
@@ -85,15 +87,23 @@ class GdkScreenGraphicsDevice extends GraphicsDevice
* method must be called.
*/
DisplayMode fixedDisplayMode;
-
+
+ /**
+ * The pointer to the native screen resource.
+ *
+ * This field is manipulated by native code. Don't change or remove
+ * without adjusting the native code.
+ */
+ private Pointer screen;
+
static
{
System.loadLibrary("gtkpeer");
-
- initStaticState ();
+ GtkToolkit.initializeGlobalIDs();
+ initIDs();
}
- static native void initStaticState();
+ static native void initIDs();
GdkScreenGraphicsDevice (GdkGraphicsEnvironment e)
{
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
index a7ae8e17f2b..f658c17afbb 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
@@ -76,7 +76,6 @@ import java.awt.image.VolatileImage;
import java.awt.peer.ComponentPeer;
import java.awt.peer.ContainerPeer;
import java.awt.peer.LightweightPeer;
-import java.awt.peer.WindowPeer;
import java.util.Timer;
import java.util.TimerTask;
@@ -251,10 +250,7 @@ public class GtkComponentPeer extends GtkGenericPeer
public Point getLocationOnScreen ()
{
int point[] = new int[2];
- if( this instanceof WindowPeer )
- gtkWindowGetLocationOnScreen (point);
- else
- gtkWidgetGetLocationOnScreen (point);
+ gtkWidgetGetLocationOnScreen (point);
return new Point (point[0], point[1]);
}
@@ -616,11 +612,18 @@ public class GtkComponentPeer extends GtkGenericPeer
setVisible (true);
}
- protected void postMouseEvent(int id, long when, int mods, int x, int y,
+ protected void postMouseEvent(int id, long when, int mods, int x, int y,
int clickCount, boolean popupTrigger)
{
- q().postEvent(new MouseEvent(awtComponent, id, when, mods, x, y,
- clickCount, popupTrigger));
+ // It is important to do the getLocationOnScreen() here, instead
+ // of using the old MouseEvent constructors, because
+ // Component.getLocationOnScreen() locks on the AWT lock, which can
+ // trigger a deadlock. You don't want this.
+ Point locOnScreen = getLocationOnScreen();
+ q().postEvent(new MouseEvent(awtComponent, id, when, mods, x, y,
+ locOnScreen.x + x, locOnScreen.y + y,
+ clickCount, popupTrigger,
+ MouseEvent.NOBUTTON));
}
/**
@@ -899,4 +902,14 @@ public class GtkComponentPeer extends GtkGenericPeer
// FIXME: implement
}
+
+ public boolean requestFocus(Component lightweightChild, boolean temporary,
+ boolean focusedWindowChangeAllowed,
+ long time, sun.awt.CausedFocusEvent.Cause cause)
+ {
+ // TODO: Implement this properly and remove the other requestFocus()
+ // methods.
+ return true;
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java
index b35be522746..4278a4579e4 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java
@@ -244,6 +244,13 @@ public class GtkFramePeer extends GtkWindowPeer
// TODO Auto-generated method stub
return false;
}
+
+ public Rectangle getBoundsPrivate()
+ {
+ // TODO: Implement this properly.
+ throw new InternalError("Not yet implemented");
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.java
index 468c46dc4af..8d63699eab8 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkGenericPeer.java
@@ -43,6 +43,8 @@ import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
+import gnu.classpath.Pointer;
+
public class GtkGenericPeer
{
// Used by Native State Association (NSA) functions to map
@@ -56,6 +58,40 @@ public class GtkGenericPeer
protected final Object awtWidget;
/**
+ * The pointer to the native GTK widget.
+ *
+ * This field is manipulated by native code. Don't change or remove
+ * without adjusting the native code.
+ */
+ private Pointer widget;
+
+ /**
+ * The pointer to the global reference to this object. The native
+ * code creates a JNI global reference of the peer object to be able
+ * to pass it to the event callbacks. It gets stored here, so that
+ * we can later delete it in the dispose() method.
+ *
+ * This field is manipulated by native code. Don't change or remove
+ * without adjusting the native code.
+ */
+ private Pointer globalRef;
+
+ /**
+ * We initialize the field IDs that are used by native code here because
+ * these remain valid until a class gets unloaded.
+ */
+ static
+ {
+ GtkToolkit.initializeGlobalIDs();
+ initIDs();
+ }
+
+ /**
+ * Initializes the field IDs that are used by the native code.
+ */
+ private static native void initIDs();
+
+ /**
* Dispose of our native state. Calls gtk_widget_destroy on the
* native widget and removes the awtWidget from the native state
* tables. Should be overridden by subclasses if this is not (all)
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
index 7aea50991df..7407744af9e 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
@@ -60,17 +60,7 @@ public class GtkMouseInfoPeer implements MouseInfoPeer
public boolean isWindowUnderMouse(Window w)
{
- int[] coords = gde.getMouseCoordinates();
- GraphicsDevice[] gds = gde.getScreenDevices();
-
- // Check if the screen of the Window and the cursor match
- if( gds[ coords[0] ] != w.getGraphicsConfiguration().getDevice() )
- return false;
-
- // Return the bounds-check.
- Point p = w.getLocationOnScreen();
- return (coords[1] >= p.x && coords[1] < p.x + w.getWidth() &&
- coords[2] >= p.y && coords[2] < p.y + w.getHeight() );
- }
+ return gde.isWindowUnderMouse((GtkWindowPeer) w.getPeer());
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java
index df18d39c9d2..dc9c7155e6e 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java
@@ -144,10 +144,39 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
static native void gtkQuit();
+ /**
+ * Initializes field IDs that are used by native code.
+ */
+ private static native void initIDs();
+
+ /**
+ * True when the field IDs are already initialized, false otherwise.
+ */
+ private static boolean initializedGlobalIDs = false;
+
+ /**
+ * Initializes some global fieldIDs for use in the native code. This is
+ * called by a couple of classes in the GTK peers to ensure that
+ * some necessary stuff is loaded.
+ */
+ static synchronized void initializeGlobalIDs()
+ {
+ if (! initializedGlobalIDs)
+ {
+ initIDs();
+ initializedGlobalIDs = true;
+ }
+ }
+
static
{
System.loadLibrary("gtkpeer");
-
+
+ /**
+ * Gotta do that first.
+ */
+ initializeGlobalIDs();
+
int portableNativeSync;
String portNatSyncProp =
System.getProperty("gnu.classpath.awt.gtk.portable.native.sync");
@@ -716,4 +745,17 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
public native int getMouseNumberOfButtons();
+ @Override
+ public boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+ {
+ return false;
+ }
+
} // class GtkToolkit
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
index 1451dd93354..5dc4b2e5b37 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
@@ -45,6 +45,7 @@ import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.KeyboardFocusManager;
+import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Window;
import java.awt.event.ComponentEvent;
@@ -392,10 +393,42 @@ public class GtkWindowPeer extends GtkContainerPeer
clickCount, popupTrigger);
}
+ public Point getLocationOnScreen()
+ {
+ int point[] = new int[2];
+ gtkWindowGetLocationOnScreen(point);
+ return new Point(point[0], point[1]);
+ }
+
// We override this to keep it in sync with our internal
// representation.
public Rectangle getBounds()
{
return new Rectangle(x, y, width, height);
}
+
+ public void updateIconImages()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void updateMinimumSize()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void setModalBlocked(java.awt.Dialog d, boolean b)
+ {
+ // TODO: Implement properly.
+ }
+
+ public void updateFocusableWindowState()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void setAlwaysOnTop(boolean b)
+ {
+ // TODO: Implement properly.
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java b/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java
index 88438862b34..ad5cd5ecdf2 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java
@@ -86,7 +86,17 @@ public class VolatileImageGraphics extends ComponentGraphics
public GraphicsConfiguration getDeviceConfiguration()
{
- return owner.component.getGraphicsConfiguration();
+ GraphicsConfiguration conf;
+ if (owner.component != null)
+ {
+ conf = owner.component.getGraphicsConfiguration();
+ }
+ else
+ {
+ return java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()
+ .getDefaultScreenDevice().getDefaultConfiguration();
+ }
+ return conf;
}
public Graphics create()
diff --git a/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java b/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java
index 96798c9e9d8..58b5f333427 100644
--- a/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java
+++ b/libjava/classpath/gnu/java/awt/peer/headless/HeadlessToolkit.java
@@ -368,4 +368,18 @@ public class HeadlessToolkit
return graphicsEnv;
}
+ @Override
+ public boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+ {
+ return false;
+ }
+
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java
index 4d7b58c4d87..334f5908825 100644
--- a/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java
@@ -821,4 +821,14 @@ public class QtComponentPeer extends NativeWrapper implements ComponentPeer
{
// TODO Auto-generated method stub
}
+
+ public boolean requestFocus(Component lightweightChild, boolean temporary,
+ boolean focusedWindowChangeAllowed,
+ long time, sun.awt.CausedFocusEvent.Cause cause)
+ {
+ // TODO: Implement this properly and remove the other requestFocus()
+ // methods.
+ return true;
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java b/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java
index 2438fcc3282..3b182b5eada 100644
--- a/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java
+++ b/libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java
@@ -94,7 +94,7 @@ public class QtFontMetrics extends FontMetrics
// ****************** Package private ***************************
- native boolean canDisplay( char c );
+ native boolean canDisplay( int c );
// ****************** Public methods ****************************
diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java b/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java
index 6ffe3f69176..bd16daf28cb 100644
--- a/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java
@@ -98,7 +98,7 @@ public class QtFontPeer extends ClasspathFontPeer
// ****************** ClasspathFontPeer Methods.
- public boolean canDisplay (Font font, char c)
+ public boolean canDisplay (Font font, int c)
{
return metrics.canDisplay( c );
}
diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java b/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java
index b2c6a5921cb..e3b578933ac 100644
--- a/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java
@@ -155,4 +155,10 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer
return false;
}
+ public Rectangle getBoundsPrivate()
+ {
+ // TODO: Implement this properly.
+ throw new InternalError("Not yet implemented");
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java b/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java
index 9b53b278b26..4cea976ac22 100644
--- a/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java
+++ b/libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java
@@ -452,4 +452,19 @@ public class QtToolkit extends ClasspathToolkit
// return new QtEmbeddedWindowPeer( this, w );
return null;
}
+
+ @Override
+ public boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+ {
+ return false;
+ }
+
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
index 7baf8e6ebea..e0a9e8c55d9 100644
--- a/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
@@ -77,4 +77,29 @@ public class QtWindowPeer extends QtContainerPeer implements WindowPeer
return false;
}
+ public void updateIconImages()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void updateMinimumSize()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void setModalBlocked(java.awt.Dialog d, boolean b)
+ {
+ // TODO: Implement properly.
+ }
+
+ public void updateFocusableWindowState()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void setAlwaysOnTop(boolean b)
+ {
+ // TODO: Implement properly.
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java
index 531d6f2db3b..192d612ee79 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java
@@ -1,5 +1,5 @@
/* SwingButtonPeer.java -- A Swing based peer for AWT buttons
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,6 +44,7 @@ import java.awt.Image;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.peer.ButtonPeer;
@@ -70,12 +71,12 @@ public class SwingButtonPeer
extends JButton
implements SwingComponent
{
- Button button;
+ Button button;
- SwingButton(Button button)
- {
- this.button = button;
- }
+ SwingButton(Button button)
+ {
+ this.button = button;
+ }
/**
* Overridden so that this method returns the correct value even without a
@@ -184,6 +185,26 @@ public class SwingButtonPeer
par = button.getParent();
return par;
}
+
+ /**
+ * Handles focus events by forwarding it to
+ * <code>processFocusEvent()</code>.
+ *
+ * @param ev the Focus event
+ */
+ public void handleFocusEvent(FocusEvent ev)
+ {
+ processFocusEvent(ev);
+ }
+
+ public void requestFocus() {
+ SwingButtonPeer.this.requestFocus(awtComponent, false, true, 0);
+ }
+
+ public boolean requestFocus(boolean temporary) {
+ return SwingButtonPeer.this.requestFocus(awtComponent, temporary,
+ true, 0);
+ }
}
/**
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java
new file mode 100755
index 00000000000..a8e3cb01bab
--- /dev/null
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java
@@ -0,0 +1,261 @@
+/* SwingCheckboxPeer.java -- A Swing based peer for AWT checkboxes
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.peer.swing;
+
+import java.awt.Button;
+import java.awt.Checkbox;
+import java.awt.CheckboxGroup;
+import java.awt.Container;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Label;
+import java.awt.Point;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.peer.CheckboxPeer;
+
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JToggleButton;
+
+/**
+ * A CheckboxPeer implementation that is backed by the Swing JCheckBox.
+ */
+public class SwingCheckboxPeer extends SwingComponentPeer implements
+ CheckboxPeer {
+
+ /**
+ * A spezialized Swing checkbox used to paint the checkbox for the
+ * AWT checkbox.
+ */
+ private class SwingCheckbox
+ extends JCheckBox
+ implements SwingComponent
+ {
+ Checkbox checkbox;
+
+ SwingCheckbox(Checkbox checkbox)
+ {
+ this.checkbox = checkbox;
+ }
+
+ /**
+ * Returns this checkbox.
+ *
+ * @return <code>this</code>
+ */
+ public JComponent getJComponent()
+ {
+ return this;
+ }
+
+ /**
+ * Handles mouse events by forwarding it to
+ * <code>processMouseEvent()</code>.
+ *
+ * @param ev the mouse event
+ */
+ public void handleMouseEvent(MouseEvent ev)
+ {
+ ev.setSource(this);
+ processMouseEvent(ev);
+ }
+
+ /**
+ * Handles mouse motion events by forwarding it to
+ * <code>processMouseMotionEvent()</code>.
+ *
+ * @param ev the mouse motion event
+ */
+ public void handleMouseMotionEvent(MouseEvent ev)
+ {
+ ev.setSource(this);
+ processMouseMotionEvent(ev);
+ }
+
+ /**
+ * Handles key events by forwarding it to <code>processKeyEvent()</code>.
+ *
+ * @param ev the mouse event
+ */
+ public void handleKeyEvent(KeyEvent ev)
+ {
+ ev.setSource(this);
+ processKeyEvent(ev);
+ }
+
+ /**
+ * Handles focus events by forwarding it to
+ * <code>processFocusEvent()</code>.
+ *
+ * @param ev the Focus event
+ */
+ public void handleFocusEvent(FocusEvent ev)
+ {
+ processFocusEvent(ev);
+ }
+
+ /**
+ * Overridden so that this method returns the correct value even without a
+ * peer.
+ *
+ * @return the screen location of the button
+ */
+ public Point getLocationOnScreen()
+ {
+ return SwingCheckboxPeer.this.getLocationOnScreen();
+ }
+
+ /**
+ * Overridden so that the isShowing method returns the correct value
+ * for the swing button, even if it has no peer on its own.
+ *
+ * @return <code>true</code> if the button is currently showing,
+ * <code>false</code> otherwise
+ */
+ public boolean isShowing()
+ {
+ boolean retVal = false;
+ if (checkbox != null)
+ retVal = checkbox.isShowing();
+ return retVal;
+ }
+
+ /**
+ * Overridden, so that the Swing button can create an Image without its
+ * own peer.
+ *
+ * @param w the width of the image
+ * @param h the height of the image
+ *
+ * @return an image
+ */
+ public Image createImage(int w, int h)
+ {
+ return SwingCheckboxPeer.this.createImage(w, h);
+ }
+
+ public Graphics getGraphics()
+ {
+ return SwingCheckboxPeer.this.getGraphics();
+ }
+
+ public Container getParent()
+ {
+ Container par = null;
+ if (checkbox != null)
+ par = checkbox.getParent();
+ return par;
+ }
+
+ public void requestFocus() {
+ SwingCheckboxPeer.this.requestFocus(awtComponent, false, true, 0);
+ }
+
+ public boolean requestFocus(boolean temporary) {
+ return SwingCheckboxPeer.this.requestFocus(awtComponent, temporary,
+ true, 0);
+ }
+ }
+
+ /**
+ * Listens for ActionEvents on the Swing button and triggers corresponding
+ * ActionEvents on the AWT button.
+ */
+ class SwingCheckboxListener implements ItemListener
+ {
+ Checkbox awtCheckbox;
+
+ SwingCheckboxListener(Checkbox checkbox)
+ {
+ awtCheckbox = checkbox;
+ }
+
+ /**
+ * Receives notification when an action was performend on the button.
+ *
+ * @param event the action event
+ */
+ public void itemStateChanged(ItemEvent event)
+ {
+ awtCheckbox.setState(event.getStateChange()==ItemEvent.SELECTED);
+ ItemListener[] l = awtCheckbox.getItemListeners();
+ if (l.length == 0)
+ return;
+ ItemEvent ev = new ItemEvent(awtCheckbox, ItemEvent.ITEM_STATE_CHANGED,
+ awtCheckbox, event.getStateChange());
+ for (int i = 0; i < l.length; ++i)
+ l[i].itemStateChanged(ev);
+ }
+ }
+
+ /**
+ * Creates a new SwingCheckboxPeer instance.
+ */
+ public SwingCheckboxPeer(Checkbox checkbox)
+ {
+ SwingCheckbox swingCheckbox = new SwingCheckbox(checkbox);
+ swingCheckbox.addItemListener(new SwingCheckboxListener(checkbox));
+
+ init(checkbox, swingCheckbox);
+ setLabel(checkbox.getLabel());
+ setState(checkbox.getState());
+ }
+
+ public void setCheckboxGroup(CheckboxGroup group)
+ {
+ // TODO: Implement this.
+ }
+
+ public void setLabel(String label)
+ {
+ ((JToggleButton) swingComponent).setText(label);
+ }
+
+ public void setState(boolean state)
+ {
+ ((JToggleButton) swingComponent).setSelected(state);
+ }
+
+}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java
index 04ca7294f78..d22f55d6f19 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package gnu.java.awt.peer.swing;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
@@ -86,4 +87,13 @@ public interface SwingComponent
* @param ev the key event
*/
void handleKeyEvent(KeyEvent ev);
+
+ /**
+ * Handles a focus event. This is usually forwarded to
+ * {@link Component#processFocusEvent(FocusEvent)} of the swing
+ * component.
+ *
+ * @param ev the focus event
+ */
+ void handleFocusEvent(FocusEvent ev);
}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java
index bfa14dddee3..71a7bac4d00 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java
@@ -1,5 +1,5 @@
/* SwingComponentPeer.java -- An abstract base class for Swing based peers
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,6 +45,7 @@ import java.awt.Component;
import java.awt.Container;
import java.awt.Cursor;
import java.awt.Dimension;
+import java.awt.EventQueue;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
@@ -54,6 +55,7 @@ import java.awt.Point;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.BufferCapabilities.FlipContents;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.PaintEvent;
@@ -349,12 +351,7 @@ public class SwingComponentPeer
*/
public Dimension getMinimumSize()
{
- Dimension retVal;
- if (swingComponent != null)
- retVal = swingComponent.getJComponent().getMinimumSize();
- else
- retVal = new Dimension(0, 0);
- return retVal;
+ return minimumSize();
}
/**
@@ -367,12 +364,7 @@ public class SwingComponentPeer
*/
public Dimension getPreferredSize()
{
- Dimension retVal;
- if (swingComponent != null)
- retVal = swingComponent.getJComponent().getPreferredSize();
- else
- retVal = new Dimension(0, 0);
- return retVal;
+ return preferredSize();
}
/**
@@ -395,30 +387,28 @@ public class SwingComponentPeer
public void handleEvent(AWTEvent e)
{
switch (e.getID())
- {
+ {
case PaintEvent.UPDATE:
case PaintEvent.PAINT:
- // Need to synchronize to avoid threading problems on the
- // paint event list.
- // We must synchronize on the tree lock first to avoid deadlock,
- // because Container.paint() will grab it anyway.
- synchronized (this)
+ if (awtComponent.isShowing())
{
- assert paintArea != null;
- if (awtComponent.isShowing())
+ Rectangle clip ;
+ synchronized (this)
{
- Graphics g = awtComponent.getGraphics();
- try
- {
- Rectangle clip = paintArea;
- g.clipRect(clip.x, clip.y, clip.width, clip.height);
- peerPaint(g, e.getID() == PaintEvent.UPDATE);
- }
- finally
- {
- g.dispose();
- paintArea = null;
- }
+ coalescePaintEvent((PaintEvent) e);
+ assert paintArea != null;
+ clip = paintArea;
+ paintArea = null;
+ }
+ Graphics g = awtComponent.getGraphics();
+ try
+ {
+ g.clipRect(clip.x, clip.y, clip.width, clip.height);
+ peerPaint(g, e.getID() == PaintEvent.UPDATE);
+ }
+ finally
+ {
+ g.dispose();
}
}
break;
@@ -438,10 +428,14 @@ public class SwingComponentPeer
case KeyEvent.KEY_TYPED:
handleKeyEvent((KeyEvent) e);
break;
+ case FocusEvent.FOCUS_GAINED:
+ case FocusEvent.FOCUS_LOST:
+ handleFocusEvent((FocusEvent)e);
+ break;
default:
// Other event types are not handled here.
break;
- }
+ }
}
/**
@@ -574,13 +568,16 @@ public class SwingComponentPeer
* This is implemented to call repaint() on the Swing component.
*
* @param tm number of milliseconds to wait with repainting
- * @param x the X coordinate of the upper left corner of the damaged rectangle
- * @param y the Y coordinate of the upper left corner of the damaged rectangle
+ * @param x the X coordinate of the upper left corner of the damaged
+ * rectangle
+ * @param y the Y coordinate of the upper left corner of the damaged
+ * rectangle
* @param width the width of the damaged rectangle
* @param height the height of the damaged rectangle
*/
public void repaint(long tm, int x, int y, int width, int height)
{
+ // NOTE: This is never called by AWT but is mandated by the peer interface.
if (swingComponent != null)
swingComponent.getJComponent().repaint(tm, x, y, width, height);
else
@@ -602,8 +599,10 @@ public class SwingComponentPeer
*/
public void requestFocus()
{
- if (swingComponent != null)
- swingComponent.getJComponent().requestFocus();
+ // NOTE: This is never called by AWT but is mandated by the peer interface.
+ Toolkit tk = Toolkit.getDefaultToolkit();
+ EventQueue q = tk.getSystemEventQueue();
+ q.postEvent(new FocusEvent(awtComponent, FocusEvent.FOCUS_GAINED, false));
}
/**
@@ -612,18 +611,22 @@ public class SwingComponentPeer
*
* This calls requestFocus() on the Swing component.
*
- * @param source TODO
- * @param bool1 TODO
- * @param bool2 TODO
- * @param x TODO
+ * @param source the actual component that requests focus (may be a
+ * lightweight descendant of the heavyweight container)
+ * @param tmp true when the change is temporary
+ * @param allowWindowFocus
+ * @param tm the timestamp of the focus change
*
- * @return TODO
+ * @return true when the focus change is guaranteed to be granted, false
+ * otherwise
*/
- public boolean requestFocus(Component source, boolean bool1, boolean bool2, long x)
+ public boolean requestFocus(Component source, boolean tmp,
+ boolean allowWindowFocus, long tm)
{
- if (swingComponent != null)
- swingComponent.getJComponent().requestFocus();
- return swingComponent != null;
+ Toolkit tk = Toolkit.getDefaultToolkit();
+ EventQueue q = tk.getSystemEventQueue();
+ q.postEvent(new FocusEvent(source, FocusEvent.FOCUS_GAINED, tmp));
+ return true;
}
/**
@@ -1101,6 +1104,19 @@ public class SwingComponentPeer
}
/**
+ * Handles focus events on the component. This is usually forwarded to the
+ * SwingComponent's processFocusEvent() method.
+ *
+ * @param e the key event
+ */
+ protected void handleFocusEvent(FocusEvent e)
+ {
+ if (swingComponent != null)
+ swingComponent.handleFocusEvent(e);
+ }
+
+
+ /**
* Returns the AWT component for this peer.
*
* @return the AWT component for this peer
@@ -1109,4 +1125,12 @@ public class SwingComponentPeer
{
return awtComponent;
}
+
+ public boolean requestFocus(Component lightweightChild, boolean temporary,
+ boolean focusedWindowChangeAllowed,
+ long time, sun.awt.CausedFocusEvent.Cause cause)
+ {
+ return true;
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java
index c78b644a765..2d5d97ff14b 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java
@@ -1,5 +1,5 @@
/* SwingContainerPeer.java -- A Swing based peer for AWT containers
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -92,7 +92,7 @@ public class SwingContainerPeer
* @see #peerPaintChildren(Graphics)
* @see #removeHeavyweightDescendent(Component)
*/
- synchronized void addHeavyweightDescendent(Component comp)
+ protected synchronized void addHeavyweightDescendent(Component comp)
{
heavyweightDescendents.add(comp);
focusOwner = null;
@@ -106,13 +106,25 @@ public class SwingContainerPeer
* @see #peerPaintChildren(Graphics)
* @see #addHeavyweightDescendent(Component)
*/
- synchronized void removeHeavyweightDescendent(Component comp)
+ protected synchronized void removeHeavyweightDescendent(Component comp)
{
heavyweightDescendents.remove(comp);
focusOwner = null;
}
/**
+ * Returns an array of all registered heavyweight descendents.
+ *
+ * @return all registered heavyweight descendents
+ */
+ protected Component[] getHeavyweightDescendents()
+ {
+ Component[] heavyweights = new Component[heavyweightDescendents.size()];
+ heavyweights = (Component[]) heavyweightDescendents.toArray(heavyweights);
+ return heavyweights;
+ }
+
+ /**
* Returns the insets of the container.
*
* This is implemented to return the insets of the Swing container.
@@ -339,7 +351,7 @@ public class SwingContainerPeer
{
Component owner = getFocusOwner();
if(owner != null)
- owner.dispatchEvent(e);
+ owner.getPeer().handleEvent(e);
else
super.handleKeyEvent(e);
}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java
index 349c5a0abe2..55c394ecb6e 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java
@@ -1,5 +1,5 @@
/* SwingLabelPeer.java -- A Swing based peer for AWT labels
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -42,6 +42,7 @@ import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.Point;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.peer.LabelPeer;
@@ -120,6 +121,17 @@ public class SwingLabelPeer
}
/**
+ * Handles focus events by forwarding it to
+ * <code>processFocusEvent()</code>.
+ *
+ * @param ev the Focus event
+ */
+ public void handleFocusEvent(FocusEvent ev)
+ {
+ processFocusEvent(ev);
+ }
+
+ /**
* Overridden so that this method returns the correct value even without a
* peer.
*
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java
index aca2070486d..22a6052bb7e 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java
@@ -1,5 +1,5 @@
/* SwingListPeer.java -- A Swing based peer for AWT lists
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -46,6 +46,7 @@ import java.awt.Image;
import java.awt.List;
import java.awt.Point;
import java.awt.Rectangle;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.peer.ListPeer;
@@ -129,6 +130,17 @@ public class SwingListPeer
}
/**
+ * Handles focus events by forwarding it to <code>processFocusEvent()</code>.
+ *
+ * @param ev the Focus event
+ */
+ public void handleFocusEvent(FocusEvent ev)
+ {
+ processFocusEvent(ev);
+ }
+
+
+ /**
* Overridden so that this method returns the correct value even without a
* peer.
*
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java
index 3cea62ac4d1..37c6dbc7a5b 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.java
@@ -1,5 +1,5 @@
/* SwingPanelPeer.java -- A PanelPeer based on Swing
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -47,7 +47,7 @@ import java.awt.peer.PanelPeer;
* @author Roman Kennke (kennke@aicas.com)
*/
// TODO: Maybe base implementation on JPanel. However, this doesn't seem
-// necessary, but might be good for more consistend Look.
+// necessary, but might be good for more consistent Look.
public class SwingPanelPeer
extends SwingContainerPeer
implements PanelPeer
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java
index 04ac011419f..2c438a1ccb1 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java
@@ -1,5 +1,5 @@
/* SwingTextAreaPeer.java -- A Swing based peer for AWT textareas
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -45,14 +45,20 @@ import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.TextArea;
+import java.awt.event.ComponentEvent;
+import java.awt.event.FocusEvent;
+import java.awt.event.HierarchyEvent;
+import java.awt.event.InputMethodEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
import java.awt.im.InputMethodRequests;
import java.awt.peer.TextAreaPeer;
import javax.swing.JComponent;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
+import javax.swing.JViewport;
import javax.swing.text.BadLocationException;
public class SwingTextAreaPeer
@@ -65,15 +71,19 @@ public class SwingTextAreaPeer
*
* @author Roman Kennke (kennke@aicas.com)
*/
- private class SwingTextArea
+ private class SwingScrollPane
extends JScrollPane
implements SwingComponent
{
- SwingTextArea(Component comp)
+ SwingTextArea textArea;
+
+ SwingScrollPane(SwingTextArea textArea)
{
- super(comp, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ super(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+
+ this.textArea = textArea;
}
/**
@@ -94,8 +104,17 @@ public class SwingTextAreaPeer
*/
public void handleMouseEvent(MouseEvent ev)
{
- ev.setSource(this);
- dispatchEvent(ev);
+ JViewport viewPort = getViewport();
+ if(viewPort.contains(ev.getPoint()))
+ {
+ ev.setSource(textArea);
+ textArea.dispatchEvent(ev);
+ }
+ else
+ {
+ ev.setSource(this);
+ this.dispatchEvent(ev);
+ }
}
/**
@@ -114,7 +133,7 @@ public class SwingTextAreaPeer
*/
public void handleMouseMotionEvent(MouseEvent ev)
{
- processMouseMotionEvent(ev);
+ textArea.processMouseMotionEvent(ev);
}
/**
@@ -124,7 +143,18 @@ public class SwingTextAreaPeer
*/
public void handleKeyEvent(KeyEvent ev)
{
- processKeyEvent(ev);
+ textArea.processKeyEvent(ev);
+ }
+
+ /**
+ * Handles focus events by forwarding it to
+ * <code>processFocusEvent()</code>.
+ *
+ * @param ev the Focus event
+ */
+ public void handleFocusEvent(FocusEvent ev)
+ {
+ textArea.processFocusEvent(ev);
}
/**
@@ -179,35 +209,160 @@ public class SwingTextAreaPeer
par = SwingTextAreaPeer.this.awtComponent.getParent();
return par;
}
+
+ public void requestFocus() {
+ SwingTextAreaPeer.this.requestFocus(awtComponent, false, true, 0);
+ }
+
+ public boolean requestFocus(boolean temporary) {
+ return SwingTextAreaPeer.this.requestFocus(awtComponent, temporary,
+ true, 0);
+ }
+
}
+ private class SwingTextArea extends JTextArea
+ {
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processComponentKeyEvent(KeyEvent e)
+ {
+ super.processComponentKeyEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processMouseMotionEvent(MouseEvent ev)
+ {
+ super.processMouseMotionEvent(ev);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processComponentEvent(ComponentEvent e)
+ {
+ super.processComponentEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processFocusEvent(FocusEvent e)
+ {
+ super.processFocusEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processHierarchyBoundsEvent(HierarchyEvent e)
+ {
+ super.processHierarchyBoundsEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processHierarchyEvent(HierarchyEvent e)
+ {
+ super.processHierarchyEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processInputMethodEvent(InputMethodEvent e)
+ {
+ super.processInputMethodEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processMouseEvent(MouseEvent e)
+ {
+ super.processMouseEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processMouseWheelEvent(MouseWheelEvent e)
+ {
+ super.processMouseWheelEvent(e);
+ }
+
+ /**
+ * Make this method accessible in this Package.
+ */
+ protected final void processKeyEvent(KeyEvent e)
+ {
+ super.processKeyEvent(e);
+ }
+
+ public void requestFocus() {
+ SwingTextAreaPeer.this.requestFocus(awtComponent, false, true, 0);
+ }
+
+ public boolean requestFocus(boolean temporary) {
+ return SwingTextAreaPeer.this.requestFocus(awtComponent, temporary,
+ true, 0);
+ }
+ }
+
/**
* The actual JTextArea.
*/
- private JTextArea jTextArea;
+ private SwingTextArea jTextArea;
public SwingTextAreaPeer(TextArea textArea)
{
super();
- System.err.println("new SwingTextAreaPeer");
- jTextArea = new JTextArea();
- SwingTextArea swingArea = new SwingTextArea(jTextArea);
+ jTextArea = new SwingTextArea();
+ SwingScrollPane swingArea = new SwingScrollPane(jTextArea);
init(textArea, swingArea);
+ JViewport viewport = new JViewport()
+ {
+ public Image createImage(int width, int height)
+ {
+ return awtComponent.createImage(width, height);
+ }
+ };
+
+ viewport.setView(jTextArea);
+ swingArea.setViewport(viewport);
// Pull over the text from the text area.
setText(textArea.getText());
+
+ // Pull over the number of rows and columns
+ // if non were set use default values
+ int columns = textArea.getColumns();
+ int rows = textArea.getRows();
+
+ if(columns == 0 && rows == 0)
+ {
+ columns = 25;
+ textArea.setColumns(columns);
+ rows = 5;
+ textArea.setRows(rows);
+ }
+
+ jTextArea.setColumns(columns);
+ jTextArea.setRows(rows);
}
public Dimension getMinimumSize(int rows, int cols)
{
- // TODO Auto-generated method stub
- return null;
+ return jTextArea.getMinimumSize();
}
public Dimension getPreferredSize(int rows, int cols)
{
- // TODO Auto-generated method stub
- return null;
+ return jTextArea.getPreferredSize();
}
public void insert(String text, int pos)
@@ -220,16 +375,24 @@ public class SwingTextAreaPeer
jTextArea.insert(text, pos);
}
+ public Dimension minimumSize()
+ {
+ return jTextArea.getMinimumSize();
+ }
+
+ public Dimension preferredSize()
+ {
+ return jTextArea.getPreferredSize();
+ }
+
public Dimension minimumSize(int rows, int cols)
{
- // TODO Auto-generated method stub
- return null;
+ return jTextArea.getMinimumSize();
}
public Dimension preferredSize(int rows, int cols)
{
- // TODO Auto-generated method stub
- return null;
+ return jTextArea.getPreferredSize();
}
public void replaceRange(String text, int start, int end)
@@ -310,8 +473,16 @@ public class SwingTextAreaPeer
public void setText(String text)
{
- System.err.println("setText: " + text);
jTextArea.setText(text);
}
+ public void reshape(int x, int y, int width, int height)
+ {
+ if (swingComponent != null)
+ {
+ swingComponent.getJComponent().setBounds(x, y, width, height);
+ swingComponent.getJComponent().validate();
+ }
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java
index d7d574a0bb9..29a689da42a 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java
@@ -1,5 +1,5 @@
/* SwingTextFieldPeer.java -- A Swing based peer for AWT textfields
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -44,6 +44,7 @@ import java.awt.Image;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.TextField;
+import java.awt.event.FocusEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.im.InputMethodRequests;
@@ -72,13 +73,13 @@ public class SwingTextFieldPeer
implements SwingComponent
{
- TextField textField;
-
- SwingTextField(TextField textField)
- {
- this.textField = textField;
- }
-
+ TextField textField;
+
+ SwingTextField(TextField textField)
+ {
+ this.textField = textField;
+ }
+
/**
* Overridden to provide normal behaviour even without a real peer
* attached.
@@ -91,8 +92,8 @@ public class SwingTextFieldPeer
}
/**
- * Overridden so that the isShowing method returns the correct value for the
- * swing button, even if it has no peer on its own.
+ * Overridden so that the isShowing method returns the correct value
+ * for the swing button, even if it has no peer on its own.
*
* @return <code>true</code> if the button is currently showing,
* <code>false</code> otherwise
@@ -162,6 +163,18 @@ public class SwingTextFieldPeer
processKeyEvent(ev);
}
+ /**
+ * Handles focus events by forwarding it to
+ * <code>processFocusEvent()</code>.
+ *
+ * @param ev the Focus event
+ */
+ public void handleFocusEvent(FocusEvent ev)
+ {
+ processFocusEvent(ev);
+ }
+
+
public Container getParent()
{
Container par = null;
@@ -174,6 +187,16 @@ public class SwingTextFieldPeer
{
return SwingTextFieldPeer.this.getGraphics();
}
+
+ public void requestFocus() {
+ SwingTextFieldPeer.this.requestFocus(awtComponent, false, true, 0);
+ }
+
+ public boolean requestFocus(boolean temporary) {
+ return SwingTextFieldPeer.this.requestFocus(awtComponent, temporary,
+ true, 0);
+ }
+
}
/**
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingToolkit.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingToolkit.java
index 166e1f47b6f..63414050bfe 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingToolkit.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingToolkit.java
@@ -40,6 +40,7 @@ package gnu.java.awt.peer.swing;
import java.awt.Button;
import java.awt.Canvas;
+import java.awt.Dialog;
import java.awt.Label;
import java.awt.Menu;
import java.awt.MenuBar;
@@ -162,4 +163,19 @@ public abstract class SwingToolkit extends ClasspathToolkit
{
return new SwingTextFieldPeer(textField);
}
+
+ @Override
+ public boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType)
+ {
+ return false;
+ }
+
+ @Override
+ public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+ {
+ return false;
+ }
+
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java
index 531552d902c..bdc494e958c 100644
--- a/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java
@@ -71,4 +71,29 @@ public abstract class SwingWindowPeer
super(window);
init(window, null);
}
+
+ public void updateIconImages()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void updateMinimumSize()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void setModalBlocked(java.awt.Dialog d, boolean b)
+ {
+ // TODO: Implement properly.
+ }
+
+ public void updateFocusableWindowState()
+ {
+ // TODO: Implement properly.
+ }
+
+ public void setAlwaysOnTop(boolean b)
+ {
+ // TODO: Implement properly.
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java b/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java
index 8e0a31f5d36..8cda31d81dd 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java
@@ -405,8 +405,12 @@ final class KeyboardMapping
if ((xMods & Input.SHIFT_MASK) != 0)
mods |= KeyEvent.SHIFT_MASK | KeyEvent.SHIFT_DOWN_MASK;
+ if ((xMods & Input.META_MASK) != 0)
+ mods |= KeyEvent.META_MASK | KeyEvent.META_DOWN_MASK;
if ((xMods & Input.ALT_MASK) != 0)
mods |= KeyEvent.ALT_MASK | KeyEvent.ALT_DOWN_MASK;
+ if ((xMods & Input.MOD5_MASK) != 0)
+ mods |= KeyEvent.ALT_GRAPH_MASK | KeyEvent.ALT_GRAPH_DOWN_MASK;
if ((xMods & Input.CONTROL_MASK) != 0)
mods |= KeyEvent.CTRL_MASK | KeyEvent.CTRL_DOWN_MASK;
diff --git a/libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java b/libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java
new file mode 100644
index 00000000000..131647fab29
--- /dev/null
+++ b/libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java
@@ -0,0 +1,185 @@
+/* PixmapVolatileImage.java -- VolatileImage implementation around a Pixmap
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.peer.x;
+
+import gnu.x11.GC;
+import gnu.x11.Pixmap;
+import gnu.x11.image.Image;
+import gnu.x11.image.ZPixmap;
+
+import java.awt.Graphics2D;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsEnvironment;
+import java.awt.ImageCapabilities;
+import java.awt.Point;
+import java.awt.Transparency;
+import java.awt.color.ColorSpace;
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
+import java.awt.image.ComponentSampleModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.ImageObserver;
+import java.awt.image.Raster;
+import java.awt.image.SampleModel;
+import java.awt.image.VolatileImage;
+import java.awt.image.WritableRaster;
+
+/**
+ * A {@link VolatileImage} implementation that wraps an X Pixmap.
+ */
+class PixmapVolatileImage
+ extends VolatileImage
+{
+
+ /**
+ * The shared capabilities instance.
+ */
+ private static final ImageCapabilities caps = new ImageCapabilities(true);
+
+ /**
+ * The underlying pixmap.
+ */
+ private Pixmap pixmap;
+
+ /**
+ * Creates a new PixmapVolatileImage.
+ *
+ * @param w the width of the image
+ * @param h the height of the image
+ */
+ public PixmapVolatileImage(int w, int h)
+ {
+ GraphicsEnvironment env =
+ GraphicsEnvironment.getLocalGraphicsEnvironment();
+ XGraphicsDevice dev = (XGraphicsDevice) env.getDefaultScreenDevice();
+ pixmap = new Pixmap(dev.getDisplay(), w, h);
+
+ // Clear pixmap.
+ GC gc = new GC(pixmap);
+ gc.set_foreground(0xffffffff);
+ pixmap.fill_rectangle(gc, 0, 0, w, h);
+
+ }
+
+ @Override
+ public boolean contentsLost()
+ {
+ return false;
+ }
+
+ @Override
+ public Graphics2D createGraphics()
+ {
+ return new XGraphics2D(pixmap);
+ }
+
+ @Override
+ public ImageCapabilities getCapabilities()
+ {
+ return caps;
+ }
+
+ @Override
+ public int getHeight()
+ {
+ return pixmap.height;
+ }
+
+ @Override
+ public BufferedImage getSnapshot()
+ {
+ // TODO: Support non-24-bit resolutions.
+ int w = pixmap.width;
+ int h = pixmap.height;
+ ZPixmap zpixmap = (ZPixmap) pixmap.image(0, 0, w, h, 0xffffffff,
+ Image.Format.ZPIXMAP);
+ DataBuffer buffer = new ZPixmapDataBuffer(zpixmap);
+ SampleModel sm = new ComponentSampleModel(DataBuffer.TYPE_BYTE, w, h, 4,
+ w * 4,
+ new int[]{0, 1, 2, 3 });
+ ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB);
+ ColorModel cm = new ComponentColorModel(cs, true, false,
+ Transparency.OPAQUE,
+ DataBuffer.TYPE_BYTE);
+ WritableRaster raster = Raster.createWritableRaster(sm, buffer,
+ new Point(0, 0));
+ return new BufferedImage(cm, raster, false, null);
+ }
+
+ @Override
+ public int getWidth()
+ {
+ return pixmap.width;
+ }
+
+ @Override
+ public int validate(GraphicsConfiguration gc)
+ {
+ // TODO: Check compatibility with gc.
+ return IMAGE_OK;
+ }
+
+ @Override
+ public int getHeight(ImageObserver observer)
+ {
+ return getHeight();
+ }
+
+ @Override
+ public Object getProperty(String name, ImageObserver observer)
+ {
+ return null;
+ }
+
+ @Override
+ public int getWidth(ImageObserver observer)
+ {
+ return getWidth();
+ }
+
+ /**
+ * Returns the underlying X pixmap. This is used for the graphics code.
+ *
+ * @return the underlying X pixmap
+ */
+ Pixmap getPixmap()
+ {
+ return pixmap;
+ }
+}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java b/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
index 870edf3796d..d376619c595 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
@@ -97,8 +97,9 @@ public class XEventPump
display = d;
windows = new HashMap();
drag = -1;
- Thread t = new Thread(this);
- t.start();
+ Thread thread = new Thread(this, "X Event Pump");
+ thread.setDaemon(true);
+ thread.start();
}
/**
@@ -148,8 +149,9 @@ public class XEventPump
private void handleEvent(Event xEvent)
{
- Integer key = new Integer(xEvent.window_id());;
- Window awtWindow = (Window) windows.get(key);
+
+ Integer key = null;
+ Window awtWindow = null;
if (XToolkit.DEBUG)
System.err.println("fetched event: " + xEvent);
@@ -157,26 +159,45 @@ public class XEventPump
{
case ButtonPress.CODE:
ButtonPress bp = (ButtonPress) xEvent;
+ key= new Integer(bp.event_window_id);
+ awtWindow = (Window) windows.get(key);
// Create and post the mouse event.
int button = bp.detail();
+
+ // AWT cannot handle more than 3 buttons and expects 0 instead.
+ if (button >= gnu.x11.Input.BUTTON3)
+ button = 0;
drag = button;
+
MouseEvent mp = new MouseEvent(awtWindow, MouseEvent.MOUSE_PRESSED,
- System.currentTimeMillis(), 0,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(bp.state()) | buttonToModifier(button),
bp.event_x(), bp.event_y(),
1, false, button);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp);
break;
case ButtonRelease.CODE:
ButtonRelease br = (ButtonRelease) xEvent;
+ key= new Integer(br.event_window_id);
+ awtWindow = (Window) windows.get(key);
+
+ button = br.detail();
+ // AWT cannot handle more than 3 buttons and expects 0 instead.
+ if (button >= gnu.x11.Input.BUTTON3)
+ button = 0;
drag = -1;
MouseEvent mr = new MouseEvent(awtWindow, MouseEvent.MOUSE_RELEASED,
- System.currentTimeMillis(), 0,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(br.state()) | buttonToModifier(button),
br.event_x(), br.event_y(),
- 1, false, br.detail());
+ 1, false, button);
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr);
break;
case MotionNotify.CODE:
MotionNotify mn = (MotionNotify) xEvent;
+ key= new Integer(mn.event_window_id);
+ awtWindow = (Window) windows.get(key);
+
MouseEvent mm;
if (drag == -1)
{
@@ -195,6 +216,8 @@ public class XEventPump
Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm);
break;
case ConfigureNotify.CODE:
+ key= new Integer(((ConfigureNotify) xEvent).event_window_id);
+ awtWindow = (Window) windows.get(key);
ConfigureNotify c = (ConfigureNotify) xEvent;
if (XToolkit.DEBUG)
System.err.println("resize request for window id: " + key);
@@ -213,6 +236,8 @@ public class XEventPump
}
break;
case Expose.CODE:
+ key= new Integer(((Expose) xEvent).window_id);
+ awtWindow = (Window) windows.get(key);
Expose exp = (Expose) xEvent;
if (XToolkit.DEBUG)
System.err.println("expose request for window id: " + key);
@@ -228,6 +253,8 @@ public class XEventPump
break;
case KeyPress.CODE:
case KeyRelease.CODE:
+ key = new Integer(((Input) xEvent).event_window_id);
+ awtWindow = (Window) windows.get(key);
handleKeyEvent(xEvent, awtWindow);
break;
default:
@@ -282,6 +309,23 @@ public class XEventPump
}
+ /** Translates an X button identifier to the AWT's MouseEvent modifier
+ * mask. As the AWT cannot handle more than 3 buttons those return
+ * <code>0</code>.
+ */
+ static int buttonToModifier(int button)
+ {
+ switch (button)
+ {
+ case gnu.x11.Input.BUTTON1:
+ return MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON1_MASK;
+ case gnu.x11.Input.BUTTON2:
+ return MouseEvent.BUTTON2_DOWN_MASK | MouseEvent.BUTTON2_MASK;
+ case gnu.x11.Input.BUTTON3:
+ return MouseEvent.BUTTON3_DOWN_MASK | MouseEvent.BUTTON3_MASK;
+ }
-}
+ return 0;
+ }
+}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
deleted file mode 100644
index 8183fed0cd2..00000000000
--- a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
+++ /dev/null
@@ -1,759 +0,0 @@
-/* XFontPeer.java -- The font peer for X
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.java.awt.peer.x;
-
-import java.awt.AWTError;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.GraphicsDevice;
-import java.awt.GraphicsEnvironment;
-import java.awt.font.FontRenderContext;
-import java.awt.font.GlyphVector;
-import java.awt.font.LineMetrics;
-import java.awt.font.TextAttribute;
-import java.awt.geom.Rectangle2D;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.CharacterIterator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-
-import gnu.java.awt.peer.ClasspathFontPeer;
-import gnu.x11.Display;
-import gnu.x11.Fontable;
-
-/**
- * The bridge from AWT to X fonts.
- *
- * @author Roman Kennke (kennke@aicas.com)
- */
-public class XFontPeer
- extends ClasspathFontPeer
-{
-
- /**
- * The font mapping as specified in the file fonts.properties.
- */
- private static Properties fontProperties;
- static
- {
- fontProperties = new Properties();
- InputStream in = XFontPeer.class.getResourceAsStream("fonts.properties");
- try
- {
- fontProperties.load(in);
- }
- catch (IOException e)
- {
- e.printStackTrace();
- }
- }
-
- /**
- * The FontMetrics implementation for XFontPeer.
- */
- private class XFontMetrics
- extends FontMetrics
- {
- /**
- * The ascent of the font.
- */
- int ascent;
-
- /**
- * The descent of the font.
- */
- int descent;
-
- /**
- * The maximum of the character advances.
- */
- private int maxAdvance;
-
- /**
- * The internal leading.
- */
- int leading;
-
- /**
- * Cached string metrics. This caches string metrics locally so that the
- * server doesn't have to be asked each time.
- */
- private HashMap metricsCache;
-
- /**
- * The widths of the characters indexed by the characters themselves.
- */
- private int[] charWidths;
-
- /**
- * Creates a new XFontMetrics for the specified font.
- *
- * @param font the font
- */
- protected XFontMetrics(Font font)
- {
- super(font);
- metricsCache = new HashMap();
- Fontable.FontReply info = getXFont().info();
- ascent = info.font_ascent();
- descent = info.font_descent();
- maxAdvance = info.max_bounds().character_width();
- leading = 0; // TODO: Not provided by X. Possible not needed.
-
- if (info.min_byte1() == 0 && info.max_byte1() == 0)
- readCharWidthsLinear(info);
- else
- readCharWidthsNonLinear(info);
- }
-
- /**
- * Reads the character widths when specified in a linear fashion. That is
- * when the min-byte1 and max-byte2 fields are both zero in the X protocol.
- *
- * @param info the font info reply
- */
- private void readCharWidthsLinear(Fontable.FontReply info)
- {
- int startIndex = info.min_char_or_byte2();
- int endIndex = info.max_char_or_byte2();
- charWidths = new int[endIndex + 1];
- // All the characters before startIndex are zero width.
- for (int i = 0; i < startIndex; i++)
- {
- charWidths[i] = 0;
- }
- // All the other character info is fetched from the font info.
- int index = startIndex;
- Iterator charInfos = info.char_infos().iterator();
- while (charInfos.hasNext())
- {
- Fontable.FontReply.CharInfo charInfo =
- (Fontable.FontReply.CharInfo) charInfos.next();
- charWidths[index] = charInfo.character_width();
- index++;
- }
- }
-
- private void readCharWidthsNonLinear(Fontable.FontReply info)
- {
- // TODO: Implement.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- /**
- * Returns the ascent of the font.
- *
- * @return the ascent of the font
- */
- public int getAscent()
- {
- return ascent;
- }
-
- /**
- * Returns the descent of the font.
- *
- * @return the descent of the font
- */
- public int getDescent()
- {
- return descent;
- }
-
- /**
- * Returns the overall height of the font. This is the distance from
- * baseline to baseline (usually ascent + descent + leading).
- *
- * @return the overall height of the font
- */
- public int getHeight()
- {
- return ascent + descent;
- }
-
- /**
- * Returns the leading of the font.
- *
- * @return the leading of the font
- */
- public int getLeading()
- {
- return leading;
- }
-
- /**
- * Returns the maximum advance for this font.
- *
- * @return the maximum advance for this font
- */
- public int getMaxAdvance()
- {
- return maxAdvance;
- }
-
- /**
- * Determines the width of the specified character <code>c</code>.
- *
- * @param c the character
- *
- * @return the width of the character
- */
- public int charWidth(char c)
- {
- int width;
- if (c > charWidths.length)
- width = charWidths['?'];
- else
- width = charWidths[c];
- return width;
- }
-
- /**
- * Determines the overall width of the specified string.
- *
- * @param c the char buffer holding the string
- * @param offset the starting offset of the string in the buffer
- * @param length the number of characters in the string buffer
- *
- * @return the overall width of the specified string
- */
- public int charsWidth(char[] c, int offset, int length)
- {
- int width = 0;
- if (c.length > 0 && length > 0)
- {
- String s = new String(c, offset, length);
- width = stringWidth(s);
- }
- return width;
- }
-
- /**
- * Determines the overall width of the specified string.
- *
- * @param s the string
- *
- * @return the overall width of the specified string
- */
- public int stringWidth(String s)
- {
- int width = 0;
- if (s.length() > 0)
- {
- if (metricsCache.containsKey(s))
- {
- width = ((Integer) metricsCache.get(s)).intValue();
- }
- else
- {
- Fontable.TextExtentReply extents = getXFont().text_extent(s);
- /*
- System.err.println("string: '" + s + "' : ");
- System.err.println("ascent: " + extents.getAscent());
- System.err.println("descent: " + extents.getDescent());
- System.err.println("overall ascent: " + extents.getOverallAscent());
- System.err.println("overall descent: " + extents.getOverallDescent());
- System.err.println("overall width: " + extents.getOverallWidth());
- System.err.println("overall left: " + extents.getOverallLeft());
- System.err.println("overall right: " + extents.getOverallRight());
- */
- width = extents.overall_width(); // + extents.overall_left();
- //System.err.println("String: " + s + ", width: " + width);
- metricsCache.put(s, new Integer(width));
- }
- }
- //System.err.print("stringWidth: '" + s + "': ");
- //System.err.println(width);
- return width;
- }
- }
-
- /**
- * The LineMetrics implementation for the XFontPeer.
- */
- private class XLineMetrics
- extends LineMetrics
- {
-
- /**
- * Returns the ascent of the font.
- *
- * @return the ascent of the font
- */
- public float getAscent()
- {
- return fontMetrics.ascent;
- }
-
- public int getBaselineIndex()
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException();
- }
-
- public float[] getBaselineOffsets()
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException();
- }
-
- /**
- * Returns the descent of the font.
- *
- * @return the descent of the font
- */
- public float getDescent()
- {
- return fontMetrics.descent;
- }
-
- /**
- * Returns the overall height of the font. This is the distance from
- * baseline to baseline (usually ascent + descent + leading).
- *
- * @return the overall height of the font
- */
- public float getHeight()
- {
- return fontMetrics.ascent + fontMetrics.descent;
- }
-
- /**
- * Returns the leading of the font.
- *
- * @return the leading of the font
- */
- public float getLeading()
- {
- return fontMetrics.leading;
- }
-
- public int getNumChars()
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException();
- }
-
- public float getStrikethroughOffset()
- {
- return 0.F; // TODO: Provided by X??
- }
-
- public float getStrikethroughThickness()
- {
- return 1.F; // TODO: Provided by X??
- }
-
- public float getUnderlineOffset()
- {
- return 0.F; // TODO: Provided by X??
- }
-
- public float getUnderlineThickness()
- {
- return 1.F; // TODO: Provided by X??
- }
-
- }
-
- /**
- * The X font.
- */
- private gnu.x11.Font xfont;
-
- private String name;
-
- private int style;
-
- private int size;
-
- /**
- * The font metrics for this font.
- */
- XFontMetrics fontMetrics;
-
- /**
- * Creates a new XFontPeer for the specified font name, style and size.
- *
- * @param name the font name
- * @param style the font style (bold / italic / normal)
- * @param size the size of the font
- */
- public XFontPeer(String name, int style, int size)
- {
- super(name, style, size);
- this.name = name;
- this.style = style;
- this.size = size;
- }
-
- /**
- * Creates a new XFontPeer for the specified font name and style
- * attributes.
- *
- * @param name the font name
- * @param atts the font attributes
- */
- public XFontPeer(String name, Map atts)
- {
- super(name, atts);
- String family = name;
- if (family == null || family.equals(""))
- family = (String) atts.get(TextAttribute.FAMILY);
- if (family == null)
- family = "SansSerif";
-
- int size = 12;
- Float sizeFl = (Float) atts.get(TextAttribute.SIZE);
- if (sizeFl != null)
- size = sizeFl.intValue();
-
- int style = 0;
- // Detect italic attribute.
- Float posture = (Float) atts.get(TextAttribute.POSTURE);
- if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
- style |= Font.ITALIC;
-
- // Detect bold attribute.
- Float weight = (Float) atts.get(TextAttribute.WEIGHT);
- if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
- style |= Font.BOLD;
-
- this.name = name;
- this.style = style;
- this.size = size;
- }
-
- /**
- * Initializes the font peer with the specified attributes. This method is
- * called from both constructors.
- *
- * @param name the font name
- * @param style the font style
- * @param size the font size
- */
- private void init(String name, int style, int size)
- {
- GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
- GraphicsDevice dev = env.getDefaultScreenDevice();
- if (dev instanceof XGraphicsDevice)
- {
- Display display = ((XGraphicsDevice) dev).getDisplay();
- String fontDescr = encodeFont(name, style, size);
- if (XToolkit.DEBUG)
- System.err.println("XLFD font description: " + fontDescr);
- xfont = new gnu.x11.Font(display, fontDescr);
- }
- else
- {
- throw new AWTError("Local GraphicsEnvironment is not XWindowGraphicsEnvironment");
- }
- }
-
- public boolean canDisplay(Font font, char c)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public int canDisplayUpTo(Font font, CharacterIterator i, int start, int limit)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public String getSubFamilyName(Font font, Locale locale)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public String getPostScriptName(Font font)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public int getNumGlyphs(Font font)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public int getMissingGlyphCode(Font font)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public byte getBaselineFor(Font font, char c)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public String getGlyphName(Font font, int glyphIndex)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public GlyphVector createGlyphVector(Font font, FontRenderContext frc,
- CharacterIterator ci)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public GlyphVector createGlyphVector(Font font, FontRenderContext ctx,
- int[] glyphCodes)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- public GlyphVector layoutGlyphVector(Font font, FontRenderContext frc,
- char[] chars, int start, int limit,
- int flags)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- /**
- * Returns the font metrics for the specified font.
- *
- * @param font the font for which to fetch the font metrics
- *
- * @return the font metrics for the specified font
- */
- public FontMetrics getFontMetrics(Font font)
- {
- if (font.getPeer() != this)
- throw new AWTError("The specified font has a different peer than this");
-
- if (fontMetrics == null)
- fontMetrics = new XFontMetrics(font);
- return fontMetrics;
- }
-
- /**
- * Frees the font in the X server.
- */
- protected void finalize()
- {
- if (xfont != null)
- xfont.close();
- }
-
- public boolean hasUniformLineMetrics(Font font)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- /**
- * Returns the line metrics for this font and the specified string and
- * font render context.
- */
- public LineMetrics getLineMetrics(Font font, CharacterIterator ci, int begin,
- int limit, FontRenderContext rc)
- {
- return new XLineMetrics();
- }
-
- public Rectangle2D getMaxCharBounds(Font font, FontRenderContext rc)
- {
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
- }
-
- /**
- * Encodes a font name + style + size specification into a X logical font
- * description (XLFD) as described here:
- *
- * http://www.meretrx.com/e93/docs/xlfd.html
- *
- * This is implemented to look up the font description in the
- * fonts.properties of this package.
- *
- * @param name the font name
- * @param atts the text attributes
- *
- * @return the encoded font description
- */
- static String encodeFont(String name, Map atts)
- {
- String family = name;
- if (family == null || family.equals(""))
- family = (String) atts.get(TextAttribute.FAMILY);
- if (family == null)
- family = "SansSerif";
-
- int size = 12;
- Float sizeFl = (Float) atts.get(TextAttribute.SIZE);
- if (sizeFl != null)
- size = sizeFl.intValue();
-
- int style = 0;
- // Detect italic attribute.
- Float posture = (Float) atts.get(TextAttribute.POSTURE);
- if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
- style |= Font.ITALIC;
-
- // Detect bold attribute.
- Float weight = (Float) atts.get(TextAttribute.WEIGHT);
- if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
- style |= Font.BOLD;
-
- return encodeFont(name, style, size);
- }
-
- /**
- * Encodes a font name + style + size specification into a X logical font
- * description (XLFD) as described here:
- *
- * http://www.meretrx.com/e93/docs/xlfd.html
- *
- * This is implemented to look up the font description in the
- * fonts.properties of this package.
- *
- * @param name the font name
- * @param style the font style
- * @param size the font size
- *
- * @return the encoded font description
- */
- static String encodeFont(String name, int style, int size)
- {
- StringBuilder key = new StringBuilder();
- key.append(validName(name));
- key.append('.');
- switch (style)
- {
- case Font.BOLD:
- key.append("bold");
- break;
- case Font.ITALIC:
- key.append("italic");
- break;
- case (Font.BOLD | Font.ITALIC):
- key.append("bolditalic");
- break;
- case Font.PLAIN:
- default:
- key.append("plain");
-
- }
-
- String protoType = fontProperties.getProperty(key.toString());
- int s = validSize(size);
- return protoType.replaceFirst("%d", String.valueOf(s * 10));
- }
-
- /**
- * Checks the specified font name for a valid font name. If the font name
- * is not known, then this returns 'sansserif' as fallback.
- *
- * @param name the font name to check
- *
- * @return a valid font name
- */
- static String validName(String name)
- {
- String retVal;
- if (name.equalsIgnoreCase("sansserif")
- || name.equalsIgnoreCase("serif")
- || name.equalsIgnoreCase("monospaced")
- || name.equalsIgnoreCase("dialog")
- || name.equalsIgnoreCase("dialoginput"))
- {
- retVal = name.toLowerCase();
- }
- else
- {
- retVal = "sansserif";
- }
- return retVal;
- }
-
- /**
- * Translates an arbitrary point size to a size that is typically available
- * on an X server. These are the sizes 8, 10, 12, 14, 18 and 24.
- *
- * @param size the queried size
- * @return the real available size
- */
- private static final int validSize(int size)
- {
- int val;
- if (size <= 9)
- val = 8;
- else if (size <= 11)
- val = 10;
- else if (size <= 13)
- val = 12;
- else if (size <= 17)
- val = 14;
- else if (size <= 23)
- val = 18;
- else
- val = 24;
- return val;
- }
-
- /**
- * Returns the X Font reference. This lazily loads the font when first
- * requested.
- *
- * @return the X Font reference
- */
- gnu.x11.Font getXFont()
- {
- if (xfont == null)
- {
- init(name, style, size);
- }
- return xfont;
- }
-}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java
index ef9507f3050..ab3861be1a9 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java
@@ -42,17 +42,21 @@ import java.awt.FontMetrics;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.font.LineMetrics;
+import java.awt.font.TextAttribute;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.File;
import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
import java.util.Locale;
import java.util.Map;
+import java.util.Properties;
import gnu.java.awt.font.FontDelegate;
import gnu.java.awt.font.FontFactory;
@@ -62,11 +66,30 @@ public class XFontPeer2
extends ClasspathFontPeer
{
+ /**
+ * The font mapping as specified in the file fonts.properties.
+ */
+ private static Properties fontProperties;
+ static
+ {
+ fontProperties = new Properties();
+ InputStream in = XFontPeer2.class.getResourceAsStream("fonts.properties");
+ try
+ {
+ fontProperties.load(in);
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+
private class XLineMetrics
extends LineMetrics
{
private Font font;
+ private GlyphVector glyphVector;
// private CharacterIterator characterIterator;
// private int begin;
// private int limit;
@@ -79,6 +102,8 @@ public class XFontPeer2
// begin = b;
// limit = l;
fontRenderContext = rc;
+ glyphVector = fontDelegate.createGlyphVector(font, fontRenderContext,
+ ci);
}
public float getAscent()
@@ -86,7 +111,7 @@ public class XFontPeer2
return fontDelegate.getAscent(font.getSize(), fontRenderContext.getTransform(),
fontRenderContext.isAntiAliased(),
fontRenderContext.usesFractionalMetrics(), true);
- }
+ }
public int getBaselineIndex()
{
@@ -102,21 +127,18 @@ public class XFontPeer2
public float getDescent()
{
- return (int) fontDelegate.getDescent(font.getSize(),
- new AffineTransform(), false, false,
- false);
+ return (int) fontDelegate.getDescent(font.getSize(), IDENDITY, false,
+ false, false);
}
public float getHeight()
{
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
+ return (float) glyphVector.getLogicalBounds().getHeight();
}
public float getLeading()
{
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
+ return getHeight() - getAscent() - getDescent();
}
public int getNumChars()
@@ -150,6 +172,11 @@ public class XFontPeer2
private class XFontMetrics
extends FontMetrics
{
+ /**
+ * A cached point instance, to be used in #charWidth().
+ */
+ private Point2D cachedPoint = new Point2D.Double();
+
XFontMetrics(Font f)
{
super(f);
@@ -157,22 +184,20 @@ public class XFontPeer2
public int getAscent()
{
- return (int) fontDelegate.getAscent(getFont().getSize(),
- new AffineTransform(), false, false,
- false);
+ return (int) fontDelegate.getAscent(getFont().getSize(), IDENDITY,
+ false, false, false);
}
public int getDescent()
{
- return (int) fontDelegate.getDescent(getFont().getSize(),
- new AffineTransform(), false, false,
- false);
+ return (int) fontDelegate.getDescent(getFont().getSize(), IDENDITY,
+ false, false, false);
}
public int getHeight()
{
GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
- new FontRenderContext(new AffineTransform(), false, false),
+ new FontRenderContext(IDENDITY, false, false),
new StringCharacterIterator("m"));
Rectangle2D b = gv.getVisualBounds();
return (int) b.getHeight();
@@ -180,8 +205,9 @@ public class XFontPeer2
public int charWidth(char c)
{
- Point2D advance = new Point2D.Double();
- fontDelegate.getAdvance(c, getFont().getSize(), new AffineTransform(),
+ int code = fontDelegate.getGlyphIndex(c);
+ Point2D advance = cachedPoint;
+ fontDelegate.getAdvance(code, font.getSize2D(), IDENDITY,
false, false, true, advance);
return (int) advance.getX();
}
@@ -194,13 +220,18 @@ public class XFontPeer2
public int stringWidth(String s)
{
GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
- new FontRenderContext(new AffineTransform(), false, false),
+ new FontRenderContext(IDENDITY, false, false),
new StringCharacterIterator(s));
Rectangle2D b = gv.getVisualBounds();
return (int) b.getWidth();
}
}
+ /**
+ * The indendity transform, to be used in several methods.
+ */
+ private static final AffineTransform IDENDITY = new AffineTransform();
+
private FontDelegate fontDelegate;
XFontPeer2(String name, int style, int size)
@@ -208,7 +239,7 @@ public class XFontPeer2
super(name, style, size);
try
{
- File fontfile = new File("/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf");
+ File fontfile = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
FileInputStream in = new FileInputStream(fontfile);
FileChannel ch = in.getChannel();
ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0,
@@ -239,7 +270,7 @@ public class XFontPeer2
}
}
- public boolean canDisplay(Font font, char c)
+ public boolean canDisplay(Font font, int c)
{
// FIXME: Implement this.
throw new UnsupportedOperationException("Not yet implemented");
@@ -326,4 +357,112 @@ public class XFontPeer2
throw new UnsupportedOperationException("Not yet implemented");
}
+ /**
+ * Encodes a font name + style + size specification into a X logical font
+ * description (XLFD) as described here:
+ *
+ * http://www.meretrx.com/e93/docs/xlfd.html
+ *
+ * This is implemented to look up the font description in the
+ * fonts.properties of this package.
+ *
+ * @param name the font name
+ * @param atts the text attributes
+ *
+ * @return the encoded font description
+ */
+ static String encodeFont(String name, Map atts)
+ {
+ String family = name;
+ if (family == null || family.equals(""))
+ family = (String) atts.get(TextAttribute.FAMILY);
+ if (family == null)
+ family = "SansSerif";
+
+ int size = 12;
+ Float sizeFl = (Float) atts.get(TextAttribute.SIZE);
+ if (sizeFl != null)
+ size = sizeFl.intValue();
+
+ int style = 0;
+ // Detect italic attribute.
+ Float posture = (Float) atts.get(TextAttribute.POSTURE);
+ if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
+ style |= Font.ITALIC;
+
+ // Detect bold attribute.
+ Float weight = (Float) atts.get(TextAttribute.WEIGHT);
+ if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
+ style |= Font.BOLD;
+
+ return encodeFont(name, style, size);
+ }
+
+ /**
+ * Encodes a font name + style + size specification into a X logical font
+ * description (XLFD) as described here:
+ *
+ * http://www.meretrx.com/e93/docs/xlfd.html
+ *
+ * This is implemented to look up the font description in the
+ * fonts.properties of this package.
+ *
+ * @param name the font name
+ * @param style the font style
+ * @param size the font size
+ *
+ * @return the encoded font description
+ */
+ static String encodeFont(String name, int style, int size)
+ {
+ StringBuilder key = new StringBuilder();
+ key.append(validName(name));
+ key.append('.');
+ switch (style)
+ {
+ case Font.BOLD:
+ key.append("bold");
+ break;
+ case Font.ITALIC:
+ key.append("italic");
+ break;
+ case (Font.BOLD | Font.ITALIC):
+ key.append("bolditalic");
+ break;
+ case Font.PLAIN:
+ default:
+ key.append("plain");
+
+ }
+
+ String protoType = fontProperties.getProperty(key.toString());
+ int s = size;
+ return protoType.replaceFirst("%d", String.valueOf(s * 10));
+ }
+
+ /**
+ * Checks the specified font name for a valid font name. If the font name
+ * is not known, then this returns 'sansserif' as fallback.
+ *
+ * @param name the font name to check
+ *
+ * @return a valid font name
+ */
+ static String validName(String name)
+ {
+ String retVal;
+ if (name.equalsIgnoreCase("sansserif")
+ || name.equalsIgnoreCase("serif")
+ || name.equalsIgnoreCase("monospaced")
+ || name.equalsIgnoreCase("dialog")
+ || name.equalsIgnoreCase("dialoginput"))
+ {
+ retVal = name.toLowerCase();
+ }
+ else
+ {
+ retVal = "sansserif";
+ }
+ return retVal;
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
index 439a2a7bbf1..74e47bc2842 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
@@ -137,4 +137,10 @@ public class XFramePeer
throw new UnsupportedOperationException("Not yet implemented.");
}
+ public Rectangle getBoundsPrivate()
+ {
+ // TODO: Implement this properly.
+ throw new InternalError("Not yet implemented");
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphics.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphics.java
deleted file mode 100644
index 134d7d3305e..00000000000
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphics.java
+++ /dev/null
@@ -1,792 +0,0 @@
-/* XGraphics.java -- The Graphics implementation for X
- Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-package gnu.java.awt.peer.x;
-
-import gnu.x11.Colormap;
-import gnu.x11.Data;
-import gnu.x11.Display;
-import gnu.x11.Drawable;
-import gnu.x11.GC;
-import gnu.x11.Pixmap;
-import gnu.x11.Point;
-import gnu.x11.image.ZPixmap;
-
-import java.awt.AWTError;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.Image;
-import java.awt.Rectangle;
-import java.awt.Shape;
-import java.awt.Toolkit;
-import java.awt.Transparency;
-import java.awt.image.BufferedImage;
-import java.awt.image.ImageObserver;
-import java.awt.image.ImageProducer;
-import java.text.AttributedCharacterIterator;
-import java.util.HashMap;
-
-public class XGraphics
- extends Graphics
- implements Cloneable
-{
-
- /**
- * The X Drawable to draw on.
- */
- private Drawable xdrawable;
-
- /**
- * The X graphics context (GC).
- */
- private GC xgc;
-
- /**
- * The current translation.
- */
- private int translateX;
- private int translateY;
-
- /**
- * The current clip. Possibly null.
- */
- private Rectangle clip;
-
- /**
- * The current font, possibly null.
- */
- private Font font;
-
- /**
- * The current foreground color, possibly null.
- */
- private Color foreground;
-
- /**
- * Indicates if this object has been disposed.
- */
- private boolean disposed = false;
-
- // TODO: Workaround for limitation in current Escher.
- private Pixmap.Format pixmapFormat;
- private int imageByteOrder;
- private int pixelByteCount;
-
- /**
- * Creates a new XGraphics on the specified X Drawable.
- *
- * @param d the X Drawable for which we create the Graphics
- */
- XGraphics(Drawable d)
- {
- xdrawable = d;
- xgc = new GC(d);
- translateX = 0;
- translateY = 0;
- clip = new Rectangle(0, 0, d.width, d.height);
-
- Display display = xdrawable.display;
- pixmapFormat = display.default_pixmap_format;
- imageByteOrder = display.image_byte_order;
- pixelByteCount = pixmapFormat.bits_per_pixel () / 8;
- }
-
- /**
- * Creates an exact copy of this graphics context.
- *
- * @return an exact copy of this graphics context
- */
- public Graphics create()
- {
- XGraphics copy = (XGraphics) clone();
- return copy;
- }
-
- /**
- * Translates the origin by (x, y).
- */
- public void translate(int x, int y)
- {
- translateX += x;
- translateY += y;
- if (clip != null)
- {
- clip.x -= x;
- clip.y -= y;
- }
- }
-
- /**
- * Returns the current foreground color, possibly <code>null</code>.
- *
- * @return the current foreground color, possibly <code>null</code>
- */
- public Color getColor()
- {
- return foreground;
- }
-
- /**
- * Sets the current foreground color. A <code>null</code> value doesn't
- * change the current setting.
- *
- * @param c the foreground color to set
- */
- public void setColor(Color c)
- {
- if (c != null)
- {
- XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
- HashMap colorMap = tk.colorMap;
- gnu.x11.Color col = (gnu.x11.Color) colorMap.get(c);
- if (col == null)
- {
- Colormap map = xdrawable.display.default_colormap;
- col = map.alloc_color (c.getRed() * 256,
- c.getGreen() * 256,
- c.getBlue() * 256);
- colorMap.put(c, col);
- }
- xgc.set_foreground(col);
- foreground = c;
- }
- }
-
- public void setPaintMode()
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- public void setXORMode(Color color)
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- /**
- * Returns the current font, possibly <code>null</code>.
- *
- * @return the current font, possibly <code>null</code>
- */
- public Font getFont()
- {
- return font;
- }
-
- /**
- * Sets the font on the graphics context. A <code>null</code> value doesn't
- * change the current setting.
- *
- * @param f the font to set
- */
- public void setFont(Font f)
- {
- if (f != null)
- {
- XFontPeer xFontPeer = (XFontPeer) f.getPeer();
- xgc.set_font(xFontPeer.getXFont());
- font = f;
- }
- }
-
- /**
- * Returns the font metrics for the specified font.
- *
- * @param font the font for which we want the font metrics
- *
- * @return the font metrics for the specified font
- */
- public FontMetrics getFontMetrics(Font font)
- {
- if (font == null)
- {
- if (this.font == null)
- setFont(new Font("Dialog", Font.PLAIN, 12));
- font = this.font;
- }
- XFontPeer xFontPeer = (XFontPeer) font.getPeer();
- return xFontPeer.getFontMetrics(font);
- }
-
- /**
- * Returns the bounds of the current clip.
- *
- * @return the bounds of the current clip
- */
- public Rectangle getClipBounds()
- {
- return clip != null ? clip.getBounds() : null;
- }
-
- /**
- * Clips the current clip with the specified clip.
- */
- public void clipRect(int x, int y, int width, int height)
- {
- if (clip == null)
- {
- clip = new Rectangle(x, y, width, height);
- }
- else
- {
- computeIntersection(x, y, width, height, clip);
- }
- // Update the X clip setting.
- setXClip(clip.x, clip.y, clip.width, clip.height);
- }
-
- /**
- * Returns <code>true</code> when the specified rectangle intersects with
- * the current clip, <code>false</code> otherwise. This is overridden to
- * avoid unnecessary creation of Rectangles via getBounds().
- *
- * @param x the x coordinate of the rectangle
- * @param y the y coordinate of the rectangle
- * @param w the width of the rectangle
- * @param h the height of the rectangle
- *
- * @return <code>true</code> when the specified rectangle intersects with
- * the current clip, <code>false</code> otherwise
- */
- public boolean hitClip(int x, int y, int w, int h)
- {
- boolean hit;
- if (clip == null)
- {
- hit = true;
- }
- else
- {
- // It's easier to determine if the rectangle lies outside the clip,
- // so we determine that and reverse the result (if it's not completely
- // outside, it most likely hits the clip rectangle).
- int x2 = x + w;
- int y2 = y + h;
- int clipX2 = clip.x + clip.width;
- int clipY2 = clip.y + clip.height;
- boolean outside = (x < clip.x && x2 < clip.x) // Left.
- || (x > clipX2 && x2 > clipX2) // Right.
- || (y < clip.y && y2 < clip.y) // Top.
- || (y > clipY2 && y2 > clipY2); // Bottom.
- hit = ! outside;
- }
- return hit;
- }
-
- public void setClip(int x, int y, int width, int height)
- {
- if (clip != null)
- clip.setBounds(x, y, width, height);
- else
- clip = new Rectangle(x, y, width, height);
- setXClip(clip.x, clip.y, clip.width, clip.height);
- }
-
- /**
- * Sets the clip on the X server GC. The coordinates are not yet translated,
- * this will be performed by the X server.
- *
- * @param x the clip, X coordinate
- * @param y the clip, Y coordinate
- * @param w the clip, width
- * @param h the clip, height
- */
- private void setXClip(int x, int y, int w, int h)
- {
- gnu.x11.Rectangle[] clipRects = new gnu.x11.Rectangle[] {
- new gnu.x11.Rectangle(x, y, w, h) };
- xgc.set_clip_rectangles(translateX, translateY, clipRects, GC.YX_BANDED);
- }
-
- public Shape getClip()
- {
- // Return a copy here, so nobody can trash our clip.
- return clip == null ? null : clip.getBounds();
- }
-
- /**
- * Sets the current clip.
- *
- * @param c the clip to set
- */
- public void setClip(Shape c)
- {
- if (c != null)
- {
- Rectangle b;
- if (c instanceof Rectangle)
- {
- b = (Rectangle) c;
- }
- else
- {
- b = c.getBounds();
- }
- clip.setBounds(b);
- setXClip(b.x, b.y, b.width, b.height);
- }
- else
- {
- clip.setBounds(0, 0, xdrawable.width, xdrawable.height);
- setXClip(0, 0, xdrawable.width, xdrawable.height);
- }
- }
-
- public void copyArea(int x, int y, int width, int height, int dx, int dy)
- {
- // Clip and translate src rectangle.
- int srcX = Math.min(Math.max(x, clip.x), clip.x + clip.width)
- + translateX;
- int srcY = Math.min(Math.max(y, clip.y), clip.y + clip.height)
- + translateY;
- int srcWidth = Math.min(Math.max(x + width, clip.x),
- clip.x + clip.width) - x;
- int srcHeight = Math.min(Math.max(y + height, clip.y),
- clip.y + clip.height) - y;
- xdrawable.copy_area(xdrawable, xgc, srcX, srcY, srcWidth, srcHeight,
- srcX + dx, srcY + dy);
- }
-
- /**
- * Draws a line from point (x1, y1) to point (x2, y2).
- */
- public void drawLine(int x1, int y1, int x2, int y2)
- {
- //System.err.println("drawLine: " + (x1 + translateX) + ", " + ( y1 + translateY) + ", " + (x2 + translateX) + ", " + (y2 + translateY) + " on: " + xdrawable);
- xdrawable.line(xgc, x1 + translateX, y1 + translateY,
- x2 + translateX, y2 + translateY);
- }
-
- /**
- * Fills the specified rectangle.
- */
- public void fillRect(int x, int y, int width, int height)
- {
- xdrawable.rectangle(xgc, x + translateX, y + translateY,
- width, height, true);
- }
-
- public void clearRect(int x, int y, int width, int height)
- {
- xgc.set_foreground(Color.WHITE.getRGB());
- xdrawable.rectangle(xgc, x, y, width, height, true);
- if (foreground != null)
- xgc.set_foreground(foreground.getRGB());
- }
-
- public void drawRoundRect(int x, int y, int width, int height, int arcWidth,
- int arcHeight)
- {
- // Draw 4 lines.
- int arcRadiusX = arcWidth / 2;
- int arcRadiusY = arcHeight / 2;
- drawLine(x + arcRadiusX, y, x + width - arcRadiusX, y);
- drawLine(x, y + arcRadiusY, x, y + height - arcRadiusY);
- drawLine(x + arcRadiusX, y + height, x + width - arcRadiusX, y + height);
- drawLine(x + width, y + arcRadiusY, x + width, y + height - arcRadiusY);
-
- // Draw the 4 arcs at the corners.
- // Upper left.
- drawArc(x, y, arcWidth, arcHeight, 90, 90);
- // Lower left.
- drawArc(x, y + height - arcHeight, arcWidth, arcHeight, 180, 90);
- // Upper right.
- drawArc(x + width - arcWidth, y, arcWidth, arcHeight, 0, 90);
- // Lower right.
- drawArc(x + width - arcWidth, y + height - arcHeight, arcWidth, arcHeight,
- 270, 90);
- }
-
- public void fillRoundRect(int x, int y, int width, int height, int arcWidth,
- int arcHeight)
- {
- // Fill the 3 rectangles that make up the inner area.
- int arcRadiusX = arcWidth / 2;
- int arcRadiusY = arcHeight / 2;
- // Left.
- fillRect(x, y + arcRadiusY, arcRadiusX, height - arcHeight);
- // Middle.
- fillRect(x + arcRadiusX, y, width - arcWidth, height);
- // Right.
- fillRect(x + width - arcRadiusX, y + arcRadiusY, arcRadiusX,
- height - arcHeight);
-
- // Fill the 4 arcs in the corners.
- // Upper left.
- fillArc(x, y, arcWidth, arcHeight, 90, 90);
- // Lower left.
- fillArc(x, y + height - arcHeight, arcWidth, arcHeight, 180, 90);
- // Upper right.
- fillArc(x + width - arcWidth, y, arcWidth, arcHeight, 0, 90);
- // Lower right.
- fillArc(x + width - arcWidth, y + height - arcHeight, arcWidth, arcHeight,
- 270, 90);
- }
-
- public void drawOval(int x, int y, int width, int height)
- {
- xdrawable.arc(xgc, x, y, width, height, 0, 360 * 64, false);
- }
-
- public void fillOval(int x, int y, int width, int height)
- {
- xdrawable.arc(xgc, x, y, width, height, 0, 360 * 64, true);
- }
-
- public void drawArc(int x, int y, int width, int height, int arcStart,
- int arcAngle)
- {
- xdrawable.arc(xgc, x, y, width, height, arcStart * 64, arcAngle * 64, false);
- }
-
- public void fillArc(int x, int y, int width, int height, int arcStart,
- int arcAngle)
- {
- xdrawable.arc(xgc, x, y, width, height, arcStart * 64, arcAngle * 64, true);
- }
-
- public void drawPolyline(int[] xPoints, int[] yPoints, int npoints)
- {
- int numPoints = Math.min(xPoints.length, yPoints.length);
- Point[] points = new Point[numPoints];
- // FIXME: Improve Escher API to accept arrays to avoid creation
- // of many Point objects.
- for (int i = 0; i < numPoints; i++)
- points[i] = new Point(xPoints[i], yPoints[i]);
- xdrawable.poly_line(xgc, points, Drawable.ORIGIN);
- }
-
- public void drawPolygon(int[] xPoints, int[] yPoints, int npoints)
- {
- int numPoints = Math.min(xPoints.length, yPoints.length);
- Point[] points = new Point[numPoints];
- // FIXME: Improve Escher API to accept arrays to avoid creation
- // of many Point objects.
- for (int i = 0; i < numPoints; i++)
- points[i] = new Point(xPoints[i], yPoints[i]);
- xdrawable.poly_line(xgc, points, Drawable.ORIGIN);
- }
-
- public void fillPolygon(int[] xPoints, int[] yPoints, int npoints)
- {
- int numPoints = Math.min(xPoints.length, yPoints.length);
- Point[] points = new Point[numPoints];
- // FIXME: Improve Escher API to accept arrays to avoid creation
- // of many Point objects.
- for (int i = 0; i < numPoints; i++)
- points[i] = new Point(xPoints[i], yPoints[i]);
- xdrawable.fill_poly(xgc, points, Drawable.COMPLEX, Drawable.ORIGIN);
- }
-
- /**
- * Draws the specified string at (x, y).
- */
- public void drawString(String string, int x, int y)
- {
- if (disposed)
- throw new AWTError("XGraphics already disposed");
-
- xdrawable.text(xgc, x + translateX, y + translateY, string);
- }
-
- public void drawString(AttributedCharacterIterator ci, int x, int y)
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- /**
- * Draws the specified image on the drawable at position (x,y).
- */
- public boolean drawImage(Image image, int x, int y, ImageObserver observer)
- {
- if (image instanceof XImage)
- {
- XImage xim = (XImage) image;
- Pixmap pm = xim.pixmap;
- xdrawable.copy_area(pm, xgc, 0, 0, pm.width, pm.height,
- x + translateX, y + translateY);
- }
- else if (image instanceof BufferedImage
- && ((BufferedImage) image).getTransparency() != Transparency.OPAQUE)
- {
- BufferedImage bi = (BufferedImage) image;
- int width = bi.getWidth();
- int height = bi.getHeight();
- Data img = xdrawable.image(x + translateX, y + translateY,
- width, height, 0xFFFFFFFF, 2);
-
- // Compute line byte count.
- int lineBitCount = width * pixmapFormat.bits_per_pixel ();
- int rem = lineBitCount % pixmapFormat.scanline_pad ();
- int linePadCount = lineBitCount / pixmapFormat.scanline_pad ()
- + (rem == 0 ? 0 : 1);
- int lineByteCount = linePadCount * pixmapFormat.scanline_pad () / 8;
-
- // Composite source and destination pixel data.
- int[] trgb = new int[3]; // The device rgb pixels.
- for (int yy = 0; yy < height; yy++)
- {
- for (int xx = 0; xx < width; xx++)
- {
- getRGB(xx, yy, img, trgb, lineByteCount);
- int srgb = bi.getRGB(xx, yy);
- float alpha = ((srgb >> 24) & 0xff) / 256F;
- float tAlpha = 1.F - alpha;
- int red = (srgb >> 16) & 0xFF;
- int green = (srgb >> 8) & 0xFF;
- int blue = (srgb) & 0xFF;
- trgb[0] = (int) (trgb[0] * tAlpha + red * alpha);
- trgb[1] = (int) (trgb[1] * tAlpha + green * alpha);
- trgb[2] = (int) (trgb[2] * tAlpha + blue * alpha);
- setRGB(xx, yy, img, trgb, lineByteCount);
- }
- }
-
- // Now we have the transparent image composited onto the target
- // Image, now we only must copy it to the Drawable.
- ZPixmap pm = new ZPixmap(xdrawable.display);
- pm.width = width;
- pm.height = height;
- pm.init();
- System.arraycopy(img.data, 32, pm.data, 0, img.data.length - 32);
- xdrawable.put_image(xgc, pm, x + translateX, y + translateY);
- }
- else
- {
- // Pre-render the image into an XImage.
- ImageProducer source = image.getSource();
- ImageConverter conv = new ImageConverter();
- source.startProduction(conv);
- XImage xim = conv.getXImage();
- Pixmap pm = xim.pixmap;
- xdrawable.copy_area(pm, xgc, 0, 0, pm.width, pm.height,
- x + translateX, y + translateY);
- }
- return true;
- }
-
- /**
- * Helper method to work around limitation in the current Escher impl.
- *
- * @param x the x position
- * @param y the y position
- * @param img the image data
- * @param rgb an 3-size array that holds the rgb values on method exit
- */
- private void getRGB(int x, int y, Data img, int[] rgb, int lineByteCount)
- {
- // TODO: Does this also work on non-RGB devices?
- int i = y * lineByteCount + pixelByteCount * x;
- if (imageByteOrder == gnu.x11.image.Image.LSB_FIRST)
- {//if (i >= 5716-33) System.err.println("lbc: " + lineByteCount + ", " + pixelByteCount);
- rgb[2] = img.data[32 + i];
- rgb[1] = img.data[32 + i + 1];
- rgb[0] = img.data[32 + i + 2];
- }
- else
- { // MSB_FIRST
- rgb[0] = img.data[32 + i];
- rgb[1] = img.data[32 + i + 1];
- rgb[2] = img.data[32 + i + 2];
- }
-
- }
-
- /**
- * Helper method to work around limitation in the current Escher impl.
- *
- * @param x the x position
- * @param y the y position
- * @param img the image data
- * @param rgb an 3-size array that holds the rgb values on method exit
- */
- private void setRGB(int x, int y, Data img, int[] rgb, int lineByteCount)
- {
- // TODO: Does this also work on non-RGB devices?
- int i = y * lineByteCount + pixelByteCount * x;
- if (imageByteOrder == gnu.x11.image.Image.LSB_FIRST)
- {
- img.data[32 + i] = (byte) rgb[2];
- img.data[32 + i + 1] = (byte) rgb[1];
- img.data[32 + i + 2] = (byte) rgb[0];
- }
- else
- { // MSB_FIRST
- img.data[32 + i] = (byte) rgb[0];
- img.data[32 + i + 1] = (byte) rgb[1];
- img.data[32 + i + 2] = (byte) rgb[2];
- }
- }
-
- public boolean drawImage(Image image, int x, int y, int width, int height,
- ImageObserver observer)
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- public boolean drawImage(Image image, int x, int y, Color bgcolor,
- ImageObserver observer)
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- public boolean drawImage(Image image, int x, int y, int width, int height,
- Color bgcolor, ImageObserver observer)
- {
- // FIXME: Implement this.
- throw new UnsupportedOperationException("Not yet implemented");
- }
-
- public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2,
- ImageObserver observer)
- {
- return drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null,
- observer);
- }
-
- public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
- int sx1, int sy1, int sx2, int sy2, Color bgcolor,
- ImageObserver observer)
- {
-
- // FIXME: What to do with bgcolor?
-
- // Scale the image.
- int sw = image.getWidth(observer);
- int sh = image.getHeight(observer);
- double scaleX = Math.abs(dx2 - dx1) / (double) Math.abs(sx2 - sx1);
- double scaleY = Math.abs(dy2 - dy1) / (double) Math.abs(sy2 - sy1);
- Image scaled = image.getScaledInstance((int) (scaleX * sw),
- (int) (scaleY * sh),
- Image.SCALE_FAST);
-
- // Scaled source coordinates.
- int sx1s = (int) (scaleX * Math.min(sx1, sx2));
- int sx2s = (int) (scaleX * Math.max(sx1, sx2));
-
- // Temporarily clip to the target rectangle.
- Rectangle old = clip;
- clipRect(dx1, dy1, dx2 - dx1, dy2 - dy1);
-
- // Draw scaled image.
- boolean res = drawImage(scaled, dx1 - sx1s, dy1 - sx2s, observer);
-
- // Reset clip.
- setClip(old);
-
- return res;
- }
-
- /**
- * Frees any resources associated with this object.
- */
- public void dispose()
- {
- if (! disposed)
- {
- xgc.free();
- xdrawable.display.flush();
- disposed = true;
- }
- }
-
- // Additional helper methods.
-
- /**
- * Creates and returns an exact copy of this XGraphics.
- */
- protected Object clone()
- {
- try
- {
- XGraphics copy = (XGraphics) super.clone();
- copy.xgc = xgc.copy();
- if (clip != null)
- {
- copy.clip = new Rectangle(clip);
- copy.setXClip(clip.x, clip.y, clip.width, clip.height);
- }
- return copy;
- }
- catch (CloneNotSupportedException ex)
- {
- assert false;
- }
- return null;
- }
-
- /**
- * Computes the intersection between two rectangles and stores the result
- * int the second rectangle.
- *
- * This method has been copied from {@link javax.swing.SwingUtilities}.
- *
- * @param x the x coordinate of the rectangle #1
- * @param y the y coordinate of the rectangle #1
- * @param w the width of the rectangle #1
- * @param h the height of the rectangle #1
- * @param rect the rectangle #2 and output rectangle
- */
- private static void computeIntersection(int x, int y, int w, int h,
- Rectangle rect)
- {
- int x2 = (int) rect.x;
- int y2 = (int) rect.y;
- int w2 = (int) rect.width;
- int h2 = (int) rect.height;
-
- int dx = (x > x2) ? x : x2;
- int dy = (y > y2) ? y : y2;
- int dw = (x + w < x2 + w2) ? (x + w - dx) : (x2 + w2 - dx);
- int dh = (y + h < y2 + h2) ? (y + h - dy) : (y2 + h2 - dy);
-
- if (dw >= 0 && dh >= 0)
- rect.setBounds(dx, dy, dw, dh);
- else
- rect.setBounds(0, 0, 0, 0);
- }
-
-
-}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
index 5dc79ff5c2b..73e780cc5a2 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
@@ -37,16 +37,23 @@ exception statement from your version. */
package gnu.java.awt.peer.x;
+import java.awt.Color;
import java.awt.Graphics;
import java.awt.GraphicsConfiguration;
+import java.awt.Image;
+import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.Shape;
import java.awt.Toolkit;
import java.awt.geom.AffineTransform;
import java.awt.image.ColorModel;
+import java.awt.image.ImageObserver;
import java.awt.image.Raster;
+import java.util.HashMap;
import gnu.java.awt.java2d.AbstractGraphics2D;
+import gnu.java.awt.java2d.ScanlineCoverage;
+import gnu.x11.Colormap;
import gnu.x11.Drawable;
import gnu.x11.GC;
import gnu.x11.image.ZPixmap;
@@ -70,6 +77,11 @@ public class XGraphics2D
*/
private boolean disposed;
+ /**
+ * The current foreground color, possibly null.
+ */
+ private Color foreground;
+
XGraphics2D(Drawable d)
{
super();
@@ -80,31 +92,9 @@ public class XGraphics2D
//setClip(new Rectangle(0, 0, xdrawable.width, xdrawable.height));
}
- /**
- * Draws a pixel in the target coordinate space using the specified color.
- *
- * @param x the x coordinate
- * @param y the y coordinate
- */
- protected void rawSetPixel(int x, int y)
- {
- xdrawable.point(xgc, x, y);
- }
-
-// protected void rawFillPolygon(double[] xpoints, double[] ypoints, int npoints)
-// {
-// Point[] points = new Point[npoints];
-// for (int n = 0; n < npoints; n++)
-// {
-// points[n] = new Point((int) xpoints[n], (int) ypoints[n]);
-// }
-// xdrawable.fill_poly(xgc, points, Drawable.COMPLEX, Drawable.ORIGIN);
-// xdrawable.display.flush();
-// }
-
protected void rawDrawLine(int x0, int y0, int x1, int y1)
{
- xdrawable.line(xgc, x0, y0, x1, y1);
+ xdrawable.segment(xgc, x0, y0, x1, y1);
}
protected void rawFillRect(int x, int y, int w, int h)
@@ -112,17 +102,6 @@ public class XGraphics2D
xdrawable.rectangle(xgc, x, y, w, h, true);
}
- protected void rawSetForeground(java.awt.Color c)
- {
- if (c != null)
- xgc.set_foreground(c.getRGB());
- }
-
- protected void rawSetForeground(int r, int g, int b)
- {
- xgc.set_foreground( r << 16 | g << 8 | b );
- }
-
/**
* Returns the color model of this Graphics object.
*
@@ -178,55 +157,6 @@ public class XGraphics2D
return copy;
}
-// /**
-// * Draws the specified image on the drawable at position (x,y).
-// */
-//
-// public boolean drawImage(Image image, int x, int y, ImageObserver observer)
-// {
-// AffineTransform transform = getTransform();
-// int translateX = (int) transform.getTranslateX();
-// int translateY = (int) transform.getTranslateY();
-// if (image instanceof XImage)
-// {
-// XImage xim = (XImage) image;
-// Pixmap pm = xim.pixmap;
-// xdrawable.copy_area(pm, xgc, 0, 0, pm.width, pm.height,
-// x + translateX, y + translateY);
-// }
-// else if (image instanceof BufferedImage)
-// {
-// BufferedImage bufferedImage = (BufferedImage) image;
-// Raster raster = bufferedImage.getData();
-// int w = bufferedImage.getWidth();
-// int h = bufferedImage.getHeight();
-// // Push data to X server.
-// ZPixmap zPixmap = new ZPixmap(xdrawable.display, w, h,
-// xdrawable.display.default_pixmap_format);
-// System.err.println("data buffer length: " + zPixmap.data.length);
-// int[] pixel = new int[4];
-// for (int tx = 0; tx < w; tx++)
-// {
-// for (int ty = 0; ty < h; ty++)
-// {
-// pixel = raster.getPixel(tx, ty, pixel);
-//// System.err.print("r: " + pixel[0]);
-//// System.err.print(", g: " + pixel[1]);
-//// System.err.println(", b: " + pixel[2]);
-// zPixmap.set_red(tx, ty, pixel[0]);
-// zPixmap.set_green(tx, ty, pixel[1]);
-// zPixmap.set_blue(tx, ty, pixel[2]);
-// }
-// }
-// xdrawable.put_image(xgc, zPixmap, x, y);
-// }
-// else
-// {
-// throw new UnsupportedOperationException("Not yet implemented.");
-// }
-// return true;
-// }
-//
public void setClip(Shape c)
{
super.setClip(c);
@@ -287,9 +217,115 @@ public class XGraphics2D
}
}
+ public void renderScanline(int y, ScanlineCoverage c)
+ {
+ ScanlineCoverage.Iterator iter = c.iterate();
+ float coverageAlpha = 0;
+ int maxCoverage = c.getMaxCoverage();
+ Color old = getColor();
+ Color col = getColor();
+ if (col == null)
+ col = Color.BLACK;
+ while (iter.hasNext())
+ {
+ ScanlineCoverage.Range range = iter.next();
+ // TODO: Dumb implementation for testing.
+ coverageAlpha = range.getCoverage();
+ if (coverageAlpha > 0)
+ {
+ int red = col.getRed();
+ int green = col.getGreen();
+ int blue = col.getBlue();
+ if (coverageAlpha < c.getMaxCoverage())
+ {
+ float alpha = coverageAlpha / maxCoverage;
+ red = 255 - (int) ((255 - red) * alpha);
+ green = 255 - (int) ((255 - green) * alpha);
+ blue = 255 - (int) ((255 - blue) * alpha);
+ }
+ xgc.set_foreground(red << 16 | green << 8 | blue);
+ int x0 = range.getXPos();
+ int l = range.getLength();
+ xdrawable.fill_rectangle(xgc, x0, y, l, 1);
+ }
+ }
+ if (old != null)
+ xgc.set_foreground(old.getRGB());
+ }
+
+ protected void fillScanline(int x0, int x1, int y)
+ {
+ xdrawable.segment(xgc, x0, y, x1, y);
+ }
+
+ protected void fillScanlineAA(int x0, int x1, int y, int alpha)
+ {
+ //System.err.println("fillScanlineAA: " + x0 + ", " + x1 + ", " + y + ", " + alpha);
+ // FIXME: This is for testing only.
+ Color c = getColor();
+ setColor(new Color(255-alpha, 255-alpha, 255-alpha));
+ xdrawable.segment(xgc, x0, y, x1, y);
+ setColor(c);
+ }
protected void init()
{
super.init();
}
+
+ public void setPaint(Paint p)
+ {
+ super.setPaint(p);
+ if (p instanceof Color)
+ {
+ Color c = (Color) p;
+ XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
+ HashMap colorMap = tk.colorMap;
+ gnu.x11.Color col = (gnu.x11.Color) colorMap.get(c);
+ if (col == null)
+ {
+ Colormap map = xdrawable.display.default_colormap;
+ col = map.alloc_color (c.getRed() * 256,
+ c.getGreen() * 256,
+ c.getBlue() * 256);
+ colorMap.put(c, col);
+ }
+ xgc.set_foreground(col);
+ foreground = c;
+ }
+ }
+
+ protected void fillShape(Shape s, boolean isFont)
+ {
+ synchronized (xdrawable.display) {
+ super.fillShape(s, isFont);
+ }
+ }
+
+ protected boolean rawDrawImage(Image image, int x, int y, ImageObserver obs)
+ {
+ boolean ret;
+ if (image instanceof XImage)
+ {
+ XImage xImage = (XImage) image;
+ xdrawable.copy_area(xImage.pixmap, xgc, 0, 0, xImage.getWidth(obs),
+ xImage.getHeight(obs), x, y);
+ ret = true;
+ }
+ else if (image instanceof PixmapVolatileImage)
+ {
+ PixmapVolatileImage pvi = (PixmapVolatileImage) image;
+ xdrawable.copy_area(pvi.getPixmap(), xgc, 0, 0, pvi.getWidth(obs),
+ pvi.getHeight(obs), x, y);
+ ret = true;
+ }
+ else
+ {
+ ret = super.rawDrawImage(image, x, y, obs);
+ }
+ return ret;
+ }
+
+
}
+
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
index d6e66cbd202..11a9c9694f1 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
@@ -39,11 +39,20 @@ package gnu.java.awt.peer.x;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
+import java.awt.Point;
import java.awt.Rectangle;
+import java.awt.Transparency;
+import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
+import java.awt.image.ComponentSampleModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.Raster;
+import java.awt.image.SampleModel;
import java.awt.image.VolatileImage;
+import java.awt.image.WritableRaster;
public class XGraphicsConfiguration
extends GraphicsConfiguration
@@ -63,26 +72,60 @@ public class XGraphicsConfiguration
public BufferedImage createCompatibleImage(int w, int h)
{
- return new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
+ return createCompatibleImage(w, h, Transparency.OPAQUE);
}
- public VolatileImage createCompatibleVolatileImage(int w, int h)
+ public BufferedImage createCompatibleImage(int w, int h, int transparency)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ BufferedImage bi;
+ switch (transparency)
+ {
+ case Transparency.OPAQUE:
+ DataBuffer buffer = new ZPixmapDataBuffer(w, h);
+ SampleModel sm = new ComponentSampleModel(DataBuffer.TYPE_BYTE, w, h,
+ 4, w * 4,
+ new int[]{0, 1, 2, 3 });
+ ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB);
+ ColorModel cm = new ComponentColorModel(cs, true, false,
+ Transparency.OPAQUE,
+ DataBuffer.TYPE_BYTE);
+ WritableRaster raster = Raster.createWritableRaster(sm, buffer,
+ new Point(0, 0));
+ bi = new BufferedImage(cm, raster, false, null);
+ break;
+ case Transparency.BITMASK:
+ case Transparency.TRANSLUCENT:
+ bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
+ break;
+ default:
+ throw new IllegalArgumentException("Illegal transparency: "
+ + transparency);
+ }
+ return bi;
}
- public VolatileImage createCompatibleVolatileImage(int width, int height,
- int transparency)
+ public VolatileImage createCompatibleVolatileImage(int w, int h)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ return createCompatibleVolatileImage(w, h, Transparency.OPAQUE);
}
- public BufferedImage createCompatibleImage(int w, int h, int transparency)
+ public VolatileImage createCompatibleVolatileImage(int width, int height,
+ int transparency)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ VolatileImage im;
+ switch (transparency)
+ {
+ case Transparency.OPAQUE:
+ im = new PixmapVolatileImage(width, height);
+ break;
+ case Transparency.BITMASK:
+ case Transparency.TRANSLUCENT:
+ throw new UnsupportedOperationException("Not yet implemented");
+ default:
+ throw new IllegalArgumentException("Unknown transparency type: "
+ + transparency);
+ }
+ return im;
}
public ColorModel getColorModel()
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
index 6a020ec4e7a..eff5902d22e 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
@@ -38,15 +38,12 @@ exception statement from your version. */
package gnu.java.awt.peer.x;
import gnu.classpath.SystemProperties;
-import gnu.java.net.local.LocalSocket;
-import gnu.java.net.local.LocalSocketAddress;
-import gnu.x11.Connection;
import gnu.x11.Display;
-import java.awt.AWTError;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
-import java.net.SocketException;
+import java.lang.reflect.Constructor;
+import java.net.Socket;
/**
* This class represents an X Display. The actual connection is established
@@ -127,33 +124,21 @@ public class XGraphicsDevice
|| displayName.hostname.equals(""))
&& SystemProperties.getProperty("gnu.xawt.no_local_sockets") == null)
{
- // TODO: Is this 100% ok?
- String sockPath = "/tmp/.X11-unix/X" + displayName.display_no;
- LocalSocketAddress addr = new LocalSocketAddress(sockPath);
- try
+ Socket socket = createLocalSocket();
+ if (socket != null)
{
- if (XToolkit.DEBUG)
- System.err.println("connecting to local socket: "
- + sockPath);
- LocalSocket socket = new LocalSocket(addr);
display = new Display(socket, "localhost",
displayName.display_no,
displayName.screen_no);
- display.connection.send_mode = Connection.ASYNCHRONOUS;
- if (XToolkit.DEBUG)
- System.err.println("connected to local socket");
}
- catch (SocketException ex)
- {
- AWTError err = new AWTError("could not connect to X server");
- err.initCause(ex);
- throw err;
- }
- }
- else
- {
- display = new Display(displayName);
}
+
+ // The following happens when we are configured to use plain sockets,
+ // when the connection is probably remote or when we couldn't load
+ // the LocalSocket class stuff.
+ if (display == null)
+ display = new Display(displayName);
+
eventPump = new XEventPump(display);
}
return display;
@@ -163,4 +148,36 @@ public class XGraphicsDevice
{
return eventPump;
}
+
+ /**
+ * Tries to load the LocalSocket class and initiate a connection to the
+ * local X server.
+ */
+ private Socket createLocalSocket()
+ {
+ Socket socket = null;
+ try
+ {
+ // TODO: Is this 100% ok?
+ String sockPath = "/tmp/.X11-unix/X" + displayName.display_no;
+ Class localSocketAddressClass =
+ Class.forName("gnu.java.net.local.LocalSocketAddress");
+ Constructor localSocketAddressConstr =
+ localSocketAddressClass.getConstructor(new Class[]{ String.class });
+ Object addr =
+ localSocketAddressConstr.newInstance(new Object[]{ sockPath });
+ Class localSocketClass =
+ Class.forName("gnu.java.net.local.LocalSocket");
+ Constructor localSocketConstructor =
+ localSocketClass.getConstructor(new Class[]{localSocketAddressClass});
+ Object localSocket =
+ localSocketConstructor.newInstance(new Object[]{ addr });
+ socket = (Socket) localSocket;
+ }
+ catch (Exception ex)
+ {
+ // Whatever goes wrong here, we return null.
+ }
+ return socket;
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XImage.java b/libjava/classpath/gnu/java/awt/peer/x/XImage.java
index b9e993628f5..7d4636b95da 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XImage.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XImage.java
@@ -86,7 +86,7 @@ public class XImage
*/
public Graphics getGraphics()
{
- XGraphics g = new XGraphics(pixmap);
+ XGraphics2D g = new XGraphics2D(pixmap);
return g;
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java b/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
index a286fd6f006..08186326ffa 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
@@ -44,7 +44,6 @@ import java.awt.Canvas;
import java.awt.Checkbox;
import java.awt.CheckboxMenuItem;
import java.awt.Choice;
-import java.awt.Component;
import java.awt.Dialog;
import java.awt.Dimension;
import java.awt.EventQueue;
@@ -69,6 +68,8 @@ import java.awt.TextArea;
import java.awt.TextField;
import java.awt.Transparency;
import java.awt.Window;
+import java.awt.Dialog.ModalExclusionType;
+import java.awt.Dialog.ModalityType;
import java.awt.datatransfer.Clipboard;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.peer.DragSourceContextPeer;
@@ -88,7 +89,6 @@ import java.awt.peer.FileDialogPeer;
import java.awt.peer.FontPeer;
import java.awt.peer.FramePeer;
import java.awt.peer.LabelPeer;
-import java.awt.peer.LightweightPeer;
import java.awt.peer.ListPeer;
import java.awt.peer.MenuBarPeer;
import java.awt.peer.MenuItemPeer;
@@ -179,16 +179,16 @@ public class XToolkit
*/
public ClasspathFontPeer getClasspathFontPeer(String name, Map attrs)
{
- String canonical = XFontPeer.encodeFont(name, attrs);
+ String canonical = XFontPeer2.encodeFont(name, attrs);
ClasspathFontPeer font;
if (!fontCache.containsKey(canonical))
{
String graphics2d =
SystemProperties.getProperty("gnu.xawt.graphics2d");
- if (graphics2d != null && graphics2d.equals("gl"))
+ //if (graphics2d != null && graphics2d.equals("gl"))
font = new XFontPeer2(name, attrs);
- else
- font = new XFontPeer(name, attrs);
+// else
+// font = new XFontPeer(name, attrs);
fontCache.put(canonical, font);
}
else
@@ -601,8 +601,20 @@ public class XToolkit
return (XGraphicsDevice) env.getDefaultScreenDevice();
}
- protected LightweightPeer createComponent(Component c)
+ @Override
+ public boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType)
{
- return new XLightweightPeer(c);
+ // TODO: Implement properly.
+ return false;
}
+
+ @Override
+ public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+ {
+ // TODO: Implement properly.
+ return false;
+ }
+
+
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
index 28cc5a5edf5..10d1e96858a 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
@@ -43,12 +43,16 @@ import java.awt.EventQueue;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.PaintEvent;
import java.awt.event.WindowEvent;
+import java.awt.image.VolatileImage;
import gnu.x11.Window;
import gnu.x11.event.Event;
@@ -135,12 +139,22 @@ public class XWindowPeer
*/
public Graphics getGraphics()
{
- return new XGraphics(xwindow);
+ return new XGraphics2D(xwindow);
}
public Image createImage(int w, int h)
{
- return new XImage(w, h);
+ // FIXME: Should return a buffered image.
+ return createVolatileImage(w, h);
+ }
+
+ @Override
+ public VolatileImage createVolatileImage(int width, int height)
+ {
+ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+ GraphicsDevice gd = ge.getDefaultScreenDevice();
+ GraphicsConfiguration gc = gd.getDefaultConfiguration();
+ return gc.createCompatibleVolatileImage(width, height);
}
/**
@@ -168,6 +182,9 @@ public class XWindowPeer
new Rectangle(0, 0, w.getWidth(),
w.getHeight())));
+ Graphics g = getGraphics();
+ g.clearRect(0, 0, awtComponent.getWidth(), awtComponent.getHeight());
+ g.dispose();
// // Reset input selection.
// atts.set_override_redirect(false);
// xwindow.change_attributes(atts);
@@ -240,7 +257,7 @@ public class XWindowPeer
*/
public FontMetrics getFontMetrics(Font font)
{
- XFontPeer fontPeer = (XFontPeer) font.getPeer();
+ XFontPeer2 fontPeer = (XFontPeer2) font.getPeer();
return fontPeer.getFontMetrics(font);
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java b/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
new file mode 100644
index 00000000000..8043c5b8f46
--- /dev/null
+++ b/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
@@ -0,0 +1,62 @@
+package gnu.java.awt.peer.x;
+
+import gnu.x11.Display;
+import gnu.x11.image.ZPixmap;
+
+import java.awt.GraphicsEnvironment;
+import java.awt.image.DataBuffer;
+
+/**
+ * A DataBuffer implementation that is based on a ZPixmap. This is used
+ * as backing store for BufferedImages.
+ */
+class ZPixmapDataBuffer
+ extends DataBuffer
+{
+
+ /**
+ * The backing ZPixmap.
+ */
+ private ZPixmap zpixmap;
+
+ /**
+ * Creates a new ZPixmapDataBuffer with a specified width and height.
+ *
+ * @param d the X display
+ * @param w the width
+ * @param h the height
+ */
+ ZPixmapDataBuffer(int w, int h)
+ {
+ super(TYPE_BYTE, w * h * 3); // TODO: Support non-24-bit-resolutions.
+ GraphicsEnvironment env =
+ GraphicsEnvironment.getLocalGraphicsEnvironment();
+ XGraphicsDevice dev = (XGraphicsDevice) env.getDefaultScreenDevice();
+ Display d = dev.getDisplay();
+ zpixmap = new ZPixmap(d, w, h, d.default_pixmap_format);
+ }
+
+ /**
+ * Creates a ZPixmapDataBuffer from an existing ZPixmap.
+ *
+ * @param zpixmap the ZPixmap to wrap
+ */
+ ZPixmapDataBuffer(ZPixmap zpixmap)
+ {
+ super(TYPE_BYTE, zpixmap.get_data_length());
+ this.zpixmap = zpixmap;
+ }
+
+ @Override
+ public int getElem(int bank, int i)
+ {
+ return 0xff & zpixmap.get_data_element(i);
+ }
+
+ @Override
+ public void setElem(int bank, int i, int val)
+ {
+ zpixmap.set_data_element(i, (byte) val);
+ }
+
+}
diff --git a/libjava/classpath/gnu/java/math/Fixed.java b/libjava/classpath/gnu/java/math/Fixed.java
index e0284c329b9..ed4150b108c 100644
--- a/libjava/classpath/gnu/java/math/Fixed.java
+++ b/libjava/classpath/gnu/java/math/Fixed.java
@@ -109,6 +109,19 @@ public final class Fixed
}
/**
+ * Truncates the number so that only the digits after the point are left.
+ *
+ * @param n the number of digits
+ * @param a the fixed point value
+ *
+ * @return the truncated value
+ */
+ public static int trunc(int n, int a)
+ {
+ return a & (0xFFFFFFFF >>> 32 - n);
+ }
+
+ /**
* Returns the round value of a fixed point value <code>a</code> with
* the <code>n</code> digits.
*
diff --git a/libjava/classpath/gnu/java/net/loader/URLLoader.java b/libjava/classpath/gnu/java/net/loader/URLLoader.java
index 5228bcac96d..5b9b6748b5b 100644
--- a/libjava/classpath/gnu/java/net/loader/URLLoader.java
+++ b/libjava/classpath/gnu/java/net/loader/URLLoader.java
@@ -42,6 +42,7 @@ import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLStreamHandlerFactory;
import java.security.CodeSource;
+import java.security.cert.Certificate;
import java.util.ArrayList;
import java.util.jar.Manifest;
@@ -95,7 +96,7 @@ public abstract class URLLoader
this.baseURL = baseURL;
this.factory = factory;
this.cache = cache;
- this.noCertCodeSource = new CodeSource(overrideURL, null);
+ this.noCertCodeSource = new CodeSource(overrideURL, (Certificate[]) null);
}
/**
diff --git a/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java b/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java
index 2a3073a32ed..558289583dd 100644
--- a/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java
+++ b/libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java
@@ -71,8 +71,12 @@ final class ISO_8859_1 extends Charset
/* These names are provided by
* http://oss.software.ibm.com/cgi-bin/icu/convexp?s=ALL
*/
- "ISO8859_1", "ISO_8859_1", "ibm-819", "ISO_8859-1:1987",
- "819"
+ "ISO8859_1",
+ "ISO_8859_1",
+ "ibm-819",
+ "ISO_8859-1:1987",
+ "819",
+ "ISO8859-1"
});
}
diff --git a/libjava/classpath/gnu/java/security/Engine.java b/libjava/classpath/gnu/java/security/Engine.java
index 44318af8ec7..85491922f30 100644
--- a/libjava/classpath/gnu/java/security/Engine.java
+++ b/libjava/classpath/gnu/java/security/Engine.java
@@ -146,7 +146,7 @@ public final class Engine
throw new IllegalArgumentException("Constructor's parameters MUST NOT be null");
Enumeration enumer = provider.propertyNames();
- String key;
+ String key = null;
String alias;
int count = 0;
boolean algorithmFound = false;
@@ -193,7 +193,7 @@ public final class Engine
Class clazz = null;
ClassLoader loader = provider.getClass().getClassLoader();
Constructor constructor = null;
- String className = provider.getProperty(service + "." + algorithm);
+ String className = provider.getProperty(key);
sb.append("Class [").append(className).append("] for algorithm [")
.append(algorithm).append("] of type [").append(service)
.append("] from provider [").append(provider).append("] ");
diff --git a/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java b/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java
new file mode 100644
index 00000000000..cd10e510665
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java
@@ -0,0 +1,41 @@
+package gnu.javax.sound;
+
+import javax.sound.sampled.AudioPermission;
+
+public class AudioSecurityManager
+{
+ public static enum Permission
+ {
+ PLAY, RECORD, ALL
+ }
+
+ public static final void checkPermissions()
+ {
+ checkPermissions(Permission.ALL);
+ }
+
+ public static final void checkPermissions(Permission permission)
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if (sm != null)
+ {
+ String perm = null;
+ switch (permission)
+ {
+ case PLAY:
+ perm = "play";
+ break;
+
+ case RECORD:
+ perm = "record";
+ break;
+
+ case ALL: default:
+ perm = "*";
+ break;
+ }
+
+ sm.checkPermission(new AudioPermission(perm));
+ }
+ }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java
new file mode 100644
index 00000000000..b32db0f353c
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java
@@ -0,0 +1,270 @@
+/* GStreamerMixer.java -- Mixer implementation.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer;
+
+import java.awt.AWTPermission;
+
+import gnu.javax.sound.sampled.gstreamer.lines.GstSourceDataLine;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioPermission;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.Control;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.Line;
+import javax.sound.sampled.LineListener;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.Mixer;
+import javax.sound.sampled.SourceDataLine;
+import javax.sound.sampled.Control.Type;
+import javax.sound.sampled.Line.Info;
+
+/**
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class GStreamerMixer
+ implements Mixer
+{
+ public static class GstInfo extends Info
+ {
+ /* Mixer Properties */
+
+ /** Name */
+ private static final String name = "Classpath GStreamer Sound Audio Engine";
+
+ /** Vendor */
+ private static final String vendor = "GNU Classpath";
+
+ /** Description */
+ private static final String desc = "GStreamer-based software mixer";
+
+ /** Version */
+ private static final String vers = "0.0.1";
+
+ protected GstInfo()
+ {
+ super(name, vendor, desc, vers);
+ }
+ }
+
+ public static final String GST_BACKEND = GstInfo.name;
+ public static final String GST_DECODER = "decoder";
+
+ private static AudioFormat[] BASIC_FORMATS =
+ {
+ new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ true),
+
+ new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ AudioSystem.NOT_SPECIFIED,
+ false),
+ };
+
+ /** Mixer Info */
+ private static final Mixer.Info INFO = new GStreamerMixer.GstInfo();
+
+ public Line getLine(Line.Info info)
+ throws LineUnavailableException
+ {
+ // get all the lines formats supported by this mixer and
+ // and see if there is one matching the given line
+ // if the format comes from the gstreamer backend
+ // gstreamer will be able to deal with it
+ Class clazz = info.getLineClass();
+ DataLine.Info _info = (DataLine.Info) info;
+
+ if (clazz == SourceDataLine.class)
+ {
+ for (AudioFormat format : _info.getFormats())
+ {
+ // see if we are a gstreamer child :)
+ if (format.properties().containsKey(GST_BACKEND));
+ {
+ // we got it
+ return new GstSourceDataLine(format);
+ }
+ }
+ }
+
+ // TODO: we also support basic PCM
+
+ throw new LineUnavailableException("Cannot open a line");
+ }
+
+ public int getMaxLines(Line.Info info)
+ {
+ // TODO
+ return 1;
+ }
+
+ public Info getMixerInfo()
+ {
+ return INFO;
+ }
+
+ public javax.sound.sampled.Line.Info[] getSourceLineInfo()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Line.Info[] getSourceLineInfo(Line.Info info)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Line[] getSourceLines()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public javax.sound.sampled.Line.Info[] getTargetLineInfo()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Line.Info[] getTargetLineInfo(Line.Info info)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Line[] getTargetLines()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean isLineSupported(Line.Info info)
+ {
+ // We support any kind of mixer that comes
+ // from our gstreamer backend.
+ // In addition, we support PCM based audio streams for
+ // direct playback.
+ if (info instanceof DataLine.Info)
+ {
+ DataLine.Info _dinfo = (DataLine.Info) info;
+ _dinfo.getFormats();
+ }
+
+ return true;
+ }
+
+ public boolean isSynchronizationSupported(Line[] lines, boolean sync)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void synchronize(Line[] lines, boolean sync)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void unsynchronize(Line[] lines)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void addLineListener(LineListener listener)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void close()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Control getControl(Type what)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Control[] getControls()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public javax.sound.sampled.Line.Info getLineInfo()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean isControlSupported(Type what)
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean isOpen()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void open() throws LineUnavailableException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeLineListener(LineListener listener)
+ {
+ // TODO Auto-generated method stub
+ }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java
new file mode 100644
index 00000000000..61a8940e2da
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java
@@ -0,0 +1,71 @@
+/*GStreamerMixerProvider -- GNU Classpath GStreamer Mixer provider.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer;
+
+import javax.sound.sampled.Mixer;
+import javax.sound.sampled.Mixer.Info;
+import javax.sound.sampled.spi.MixerProvider;
+
+/**
+ * Concrete provider class for GStreamerMixer.
+ *
+ * @author Mario Torre
+ */
+public class GStreamerMixerProvider
+ extends MixerProvider
+{
+ private static final GStreamerMixer mixer = new GStreamerMixer();
+
+ @Override
+ public Mixer getMixer(Info info)
+ {
+ if (info.equals(mixer.getMixerInfo()))
+ return mixer;
+
+ throw new
+ IllegalArgumentException("This provider cannot handle a mixer or type: "
+ + info.getName());
+ }
+
+ @Override
+ public Info[] getMixerInfo()
+ {
+ Info[] info = { mixer.getMixerInfo() };
+ return info;
+ }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
new file mode 100644
index 00000000000..53b2155d8ec
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
@@ -0,0 +1,139 @@
+/*GstAudioFileReader -- GNU Classpath GStreamer AudioFileReader.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer.io;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import javax.sound.sampled.AudioFileFormat;
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import javax.sound.sampled.spi.AudioFileReader;
+
+/**
+ * An implementation of a general AudioFileReader. Uses GStreamer to
+ * parse and retrieve informations about the file passed as input.
+ *
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class GstAudioFileReader
+ extends AudioFileReader
+{
+ @Override
+ public AudioFileFormat getAudioFileFormat(File file)
+ throws UnsupportedAudioFileException, IOException
+ {
+ throw new UnsupportedAudioFileException("Unsupported encoding.");
+ }
+
+ @Override
+ public AudioFileFormat getAudioFileFormat(InputStream is)
+ throws UnsupportedAudioFileException, IOException
+ {
+ throw new UnsupportedAudioFileException("Unsupported encoding.");
+ }
+
+ @Override
+ public AudioFileFormat getAudioFileFormat(URL url)
+ throws UnsupportedAudioFileException, IOException
+ {
+ return getAudioFileFormat(new BufferedInputStream(url.openStream()));
+ }
+
+ @Override
+ public AudioInputStream getAudioInputStream(File file)
+ throws UnsupportedAudioFileException, IOException
+ {
+ InputStream stream = new FileInputStream(file);
+ long length = file.length();
+
+ AudioFormat format = null;
+
+ try
+ {
+ format = GstAudioFileReaderNativePeer.getAudioFormat(file);
+ }
+ catch (Exception e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // get the header size
+ if (format == null)
+ throw new UnsupportedAudioFileException("Unsupported encoding.");
+
+ return new AudioInputStream(stream, format, length);
+ }
+
+ @Override
+ public AudioInputStream getAudioInputStream(InputStream is)
+ throws UnsupportedAudioFileException, IOException
+ {
+ AudioFormat format = null;
+
+ try
+ {
+ format = GstAudioFileReaderNativePeer.getAudioFormat(is);
+ }
+ catch (Exception e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ // get the header size
+ if (format == null)
+ throw new UnsupportedAudioFileException("Unsupported encoding.");
+
+ return new AudioInputStream(is, format, AudioSystem.NOT_SPECIFIED);
+ }
+
+ @Override
+ public AudioInputStream getAudioInputStream(URL url)
+ throws UnsupportedAudioFileException, IOException
+ {
+ return getAudioInputStream(new BufferedInputStream(url.openStream()));
+ }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
new file mode 100644
index 00000000000..45ae4ff8588
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
@@ -0,0 +1,276 @@
+/*GstAudioFileReaderNativePeer -- GNU Classpath GStreamer AudioFileReader
+ native peer class.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer.io;
+
+import gnu.javax.sound.sampled.gstreamer.GStreamerMixer;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.AudioFormat.Encoding;
+
+/**
+ * GStreamer native peer for GstAudioFileReader.
+ *
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+final class GstAudioFileReaderNativePeer
+{
+ private static final String GST_ENCODING = "GStreamer Generic Audio Reader";
+
+ private static class GstHeader
+ {
+ /*
+ * NOTE: these properties are accessed by the native code, be careful
+ * if you change them.
+ * Not all the fields are necessarily set.
+ *
+ */
+ public String file = null;
+
+ public String suffix = null;
+
+ public String name = null;
+
+ public String mimetype = null;
+
+ public String endianness = null;
+
+ public String channels = null;
+
+ public String rate = null;
+
+ public String width = null;
+
+ public String depth = null;
+
+ public String isSigned = null;
+
+ public String layer = null;
+ public String bitrate = null;
+ public String framed = null;
+ public String type = null;
+ }
+
+ public static AudioFormat getAudioFormat(File file) throws Exception
+ {
+ GstHeader header = new GstHeader();
+ header.file = file.getAbsolutePath();
+
+ if (!gstreamer_get_audio_format_file(header))
+ return null;
+
+ return getAudioFormat(header);
+ }
+
+ public static AudioFormat getAudioFormat(InputStream is) throws Exception
+ {
+ GstHeader header = new GstHeader();
+
+ BufferedInputStream stream = new BufferedInputStream(is);
+ if(!stream.markSupported())
+ throw new IOException("Stream must support marking.");
+
+ stream.mark(0);
+
+ if (!gstreamer_get_audio_format_stream(header, stream))
+ return null;
+
+ return getAudioFormat(header);
+ }
+
+ public static AudioFormat getAudioFormat(URL url) throws Exception
+ {
+ GstHeader header = new GstHeader();
+ header.file = url.toExternalForm();
+
+ BufferedInputStream stream = new BufferedInputStream(url.openStream());
+ if(!stream.markSupported())
+ throw new IOException("Stream must support marking.");
+
+ stream.mark(0);
+
+ if (!gstreamer_get_audio_format_stream(header, stream))
+ return null;
+
+ return getAudioFormat(header);
+ }
+
+ private static Encoding getEncoding(GstHeader header)
+ {
+ StringBuilder buffer = new StringBuilder();
+
+ if (header.name == null)
+ {
+ buffer.append(GST_ENCODING);
+ if (header.mimetype != null)
+ {
+ buffer.append(" ");
+ buffer.append(header.mimetype);
+ }
+
+ header.name = buffer.toString();
+ }
+ else
+ {
+ // strip the "decoder" word from the name, if any
+ // this is a bit ugly, the alternative would be to still output the
+ // full name of the decoder/demuxer
+ String lowerCase = header.name.toLowerCase();
+ int index = lowerCase.indexOf("decoder");
+ if (index == -1)
+ {
+ index = lowerCase.indexOf("demuxer");
+ }
+
+ if (index == -1)
+ index = lowerCase.length();
+
+ buffer.append(header.name.substring(0, index));
+
+ }
+
+ return new Encoding(buffer.toString().trim());
+ }
+
+ private static AudioFormat getAudioFormat(GstHeader header)
+ throws Exception
+ {
+ int na = AudioSystem.NOT_SPECIFIED;
+
+ /* we use mimetype as an header, but this could have some side effects */
+ Encoding encoding = getEncoding(header);
+
+ float sampleRate = ((header.rate != null) ?
+ new Float(header.rate).floatValue() : na);
+
+ int sampleSizeInBits = ((header.depth != null) ?
+ new Integer(header.depth).intValue() : na);
+
+ int channels = ((header.channels != null) ?
+ new Integer(header.channels).intValue() : na);
+
+ boolean bigEndian = false;
+ if (header.endianness != null)
+ {
+ if (header.endianness.compareTo("4321") == 0)
+ bigEndian = true;
+ }
+
+ int frameSize = na;
+ float frameRate = na;
+ String lowerCase = header.name.toLowerCase();
+
+ // FIXME: frameRate = sampleRate in these cases under all the tests so far
+ // but I'm not sure if this is always correct...
+ if (lowerCase.contains("law") || lowerCase.contains("au") ||
+ lowerCase.contains("x-au"))
+ {
+ frameSize = (sampleSizeInBits >> 3) * channels;
+ frameRate = sampleRate;
+ }
+ else if (lowerCase.contains("wav"))
+ {
+ frameSize = ((sampleSizeInBits + 7) / 8) * channels;
+ frameRate = sampleRate;
+ }
+ else if (lowerCase.contains("iff"))
+ {
+ frameSize = (sampleSizeInBits * channels) / 8;
+ frameRate = sampleRate;
+ }
+
+ // write all the additional properties we got to identify
+ // the gstreamer plugin actually used to deal with this stream
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(GStreamerMixer.GST_BACKEND, true);
+ properties.put(GStreamerMixer.GST_DECODER, header.name);
+
+ /* now we put in some of the additional properties if we have them */
+ if (header.type != null) properties.put("type", header.type);
+ if (header.framed != null) properties.put("framed", header.framed);
+ if (header.bitrate != null) properties.put("bitrate", header.bitrate);
+ if (header.isSigned != null) properties.put("isSigned", header.isSigned);
+ if (header.depth != null) properties.put("depth", header.depth);
+ if (header.mimetype != null) properties.put("mimetype", header.mimetype);
+
+ AudioFormat format = new AudioFormat(encoding,
+ sampleRate,
+ sampleSizeInBits,
+ channels,
+ frameSize,
+ frameRate,
+ bigEndian,
+ properties);
+ return format;
+ }
+
+ /* ***** native methods ***** */
+
+ /**
+ * Retrieve header information about the file being played.
+ *
+ * @param info
+ * @return
+ */
+ native static final
+ protected boolean gstreamer_get_audio_format_stream(GstHeader info,
+ BufferedInputStream istream);
+
+ /**
+ * Retrieve header information about the file being played.
+ *
+ * @param info
+ * @return
+ */
+ native static final
+ protected boolean gstreamer_get_audio_format_file(GstHeader info);
+
+ static
+ {
+ System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+ }
+}
diff --git a/libjava/classpath/native/jni/classpath/native_state.h b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java
index 641e588827d..9b395dca24a 100644
--- a/libjava/classpath/native/jni/classpath/native_state.h
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java
@@ -1,5 +1,5 @@
-/* Magical NSA API -- Associate a C ptr with an instance of an object
- Copyright (C) 1998 Free Software Foundation, Inc.
+/*GstAudioFileWriter -- GNU Classpath GStreamer AudioFileReader.
+ Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -34,38 +34,47 @@ or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+package gnu.javax.sound.sampled.gstreamer.io;
-#ifndef JCL_NATIVE_STATE
-#define JCL_NATIVE_STATE
-
-#include <jni.h>
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
-struct state_table
-{
- jint size; /* number of slots, should be prime */
- jfieldID hash; /* field containing System.identityHashCode(this) */
- jclass clazz; /* lock aquired for reading/writing nodes */
- struct state_node **head;
-};
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioFileFormat.Type;
+import javax.sound.sampled.spi.AudioFileWriter;
-struct state_node
+public class GstAudioFileWriter
+ extends AudioFileWriter
{
- jint key;
- void *c_state;
- struct state_node *next;
-};
+ @Override
+ public Type[] getAudioFileTypes()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
-struct state_table *cp_gtk_init_state_table_with_size (JNIEnv *, jclass, jint);
-struct state_table *cp_gtk_init_state_table (JNIEnv *, jclass);
+ @Override
+ public Type[] getAudioFileTypes(AudioInputStream ais)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
-/* lowlevel api */
-void cp_gtk_set_state_oid (JNIEnv *, jobject, struct state_table *, jint, void *);
-void *cp_gtk_get_state_oid (JNIEnv *, jobject, struct state_table *, jint);
-void *cp_gtk_remove_state_oid (JNIEnv *, jobject, struct state_table *, jint);
+ @Override
+ public int write(AudioInputStream ais, Type type, File out)
+ throws IOException
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
-/* highlevel api */
-int cp_gtk_set_state (JNIEnv *, jobject, struct state_table *, void *);
-void *cp_gtk_get_state (JNIEnv *, jobject, struct state_table *);
-void *cp_gtk_remove_state_slot (JNIEnv *, jobject, struct state_table *);
+ @Override
+ public int write(AudioInputStream ais, Type type, OutputStream os)
+ throws IOException
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
-#endif
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java
new file mode 100644
index 00000000000..0467c955905
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java
@@ -0,0 +1,145 @@
+/* GstDataLine.java -- Abstract DataLine.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer.lines;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.Control;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.LineListener;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.Control.Type;
+
+public abstract class GstDataLine
+ implements DataLine
+{
+ public static enum State
+ {
+ PLAY, PAUSE, STOP
+ }
+
+ public static final int DEFAULT_BUFFER_SIZE = 1024;
+
+ /** Represents the playing state of this Line. */
+ protected State state = State.STOP;
+
+ /** Represents if this Line is opened or not. */
+ protected Boolean open = false;
+
+ private AudioFormat format = null;
+ private int bufferSize = 0;
+
+ public GstDataLine(AudioFormat format)
+ {
+ this.format = format;
+ this.bufferSize = DEFAULT_BUFFER_SIZE;
+ }
+
+ public GstDataLine(AudioFormat format, int bufferSize)
+ {
+ this.format = format;
+ this.bufferSize = bufferSize;
+ }
+
+ public int getBufferSize()
+ {
+ return this.bufferSize;
+ }
+
+ public AudioFormat getFormat()
+ {
+ return this.format;
+ }
+
+ public float getLevel()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public boolean isRunning()
+ {
+ return (state == State.PLAY || state == State.PAUSE);
+ }
+
+ public void addLineListener(LineListener listener)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public Control getControl(Type what)
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Control[] getControls()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public javax.sound.sampled.Line.Info getLineInfo()
+ {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean isControlSupported(Type what)
+ {
+ return false;
+ }
+
+ public boolean isOpen()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void open() throws LineUnavailableException
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void removeLineListener(LineListener listener)
+ {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XLightweightPeer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java
index 2613d84d80c..2b41a118672 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XLightweightPeer.java
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java
@@ -1,5 +1,5 @@
-/* XLightweightPeer.java -- A lightweight peer for X
- Copyright (C) 2006 Free Software Foundation, Inc.
+/* GstNativeDataLine.java -- SourceDataLine implementation.
+ Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,22 +35,14 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+package gnu.javax.sound.sampled.gstreamer.lines;
-package gnu.java.awt.peer.x;
-
-import java.awt.Component;
-import java.awt.peer.LightweightPeer;
-
-import gnu.java.awt.peer.swing.SwingContainerPeer;
-
-public class XLightweightPeer
- extends SwingContainerPeer
- implements LightweightPeer
+public class GstNativeDataLine
{
-
- XLightweightPeer(Component c)
+
+
+ static
{
- super(c);
- init(c, null);
+ System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
}
}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
new file mode 100644
index 00000000000..d1460e5090f
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
@@ -0,0 +1,57 @@
+/* GstPipeline.java -- Represents a Gstreamer Pipeline.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+package gnu.javax.sound.sampled.gstreamer.lines;
+
+import gnu.classpath.Pointer;
+
+/**
+ *
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class GstPipeline
+{
+ /**
+ * This is the native GStreamer Pipeline.
+ *
+ * This field is used by the native code, so any change to it must be
+ * followed by similar changes in the native peer.
+ */
+ private Pointer pipeline;
+
+ native private void setState();
+
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java
new file mode 100644
index 00000000000..d1a0262e5b5
--- /dev/null
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java
@@ -0,0 +1,134 @@
+/* GstSourceDataLine.java -- SourceDataLine implementation.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer.lines;
+
+import gnu.javax.sound.AudioSecurityManager;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.SourceDataLine;
+
+import static gnu.javax.sound.AudioSecurityManager.Permission;
+
+public class GstSourceDataLine
+ extends GstDataLine implements SourceDataLine
+{
+ public GstSourceDataLine(AudioFormat format)
+ {
+ super(format);
+ }
+
+ public void open(AudioFormat fmt) throws LineUnavailableException
+ {
+ AudioSecurityManager.checkPermissions(Permission.PLAY);
+ throw new LineUnavailableException("Line unavailable");
+ }
+
+ public void open(AudioFormat fmt, int size) throws LineUnavailableException
+ {
+ AudioSecurityManager.checkPermissions(Permission.PLAY);
+ throw new LineUnavailableException("Line unavailable");
+ }
+
+ public int write(byte[] buf, int offset, int length)
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public int available()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public void drain()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void flush()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public int getFramePosition()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public long getLongFramePosition()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public long getMicrosecondPosition()
+ {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public boolean isActive()
+ {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public void start()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void stop()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void close()
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/libjava/classpath/gnu/xml/dom/DomDocument.java b/libjava/classpath/gnu/xml/dom/DomDocument.java
index 5d06a428be4..bcc729335d5 100644
--- a/libjava/classpath/gnu/xml/dom/DomDocument.java
+++ b/libjava/classpath/gnu/xml/dom/DomDocument.java
@@ -87,6 +87,7 @@ public class DomDocument
private final DOMImplementation implementation;
private boolean checkingCharacters = true;
boolean checkingWellformedness = true;
+ private boolean defaultAttributes = true;
boolean building; // if true, skip mutation events in the tree
@@ -155,7 +156,15 @@ public class DomDocument
public void setCheckingCharacters(boolean flag)
{
checkingCharacters = flag;
- }
+ }
+
+ /**
+ * Sets whether to default attributes for new elements.
+ */
+ public void setDefaultAttributes(boolean flag)
+ {
+ defaultAttributes = flag;
+ }
/**
* <b>DOM L1</b>
@@ -607,7 +616,8 @@ public class DomDocument
domElement.localName = null;
element = domElement;
}
- defaultAttributes(element, name);
+ if (defaultAttributes)
+ setDefaultAttributes(element, name);
return element;
}
@@ -652,11 +662,12 @@ public class DomDocument
}
Element element = new DomElement(this, namespaceURI, name);
- defaultAttributes(element, name);
+ if (defaultAttributes)
+ setDefaultAttributes(element, name);
return element;
}
- private void defaultAttributes(Element element, String name)
+ private void setDefaultAttributes(Element element, String name)
{
DomDoctype doctype = (DomDoctype) getDoctype();
if (doctype == null)
@@ -671,9 +682,11 @@ public class DomDocument
for (Iterator i = info.attributes(); i != null && i.hasNext(); )
{
DTDAttributeTypeInfo attr = (DTDAttributeTypeInfo) i.next();
+ String value = attr.value;
+ if ("#IMPLIED".equals(attr.mode) && value == null)
+ continue;
DomAttr node = (DomAttr) createAttribute(attr.name);
- String value = attr.value;
if (value == null)
{
value = "";
diff --git a/libjava/classpath/gnu/xml/dom/DomElement.java b/libjava/classpath/gnu/xml/dom/DomElement.java
index f55b084cc94..9fd81e9705b 100644
--- a/libjava/classpath/gnu/xml/dom/DomElement.java
+++ b/libjava/classpath/gnu/xml/dom/DomElement.java
@@ -124,7 +124,7 @@ public class DomElement
node.attributes = new DomNamedNodeMap(node, Node.ATTRIBUTE_NODE);
for (DomNode ctx = attributes.first; ctx != null; ctx = ctx.next)
{
- node.attributes.setNamedItemNS(ctx.cloneNode(true));
+ node.attributes.setNamedItem(ctx.cloneNode(true), true, true);
}
}
return node;
diff --git a/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java b/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java
index e3f08e4b4b7..e37cc3dceb5 100644
--- a/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java
+++ b/libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java
@@ -148,7 +148,7 @@ public class DomNamedNodeMap
*/
public Node setNamedItem(Node arg)
{
- return setNamedItem(arg, false);
+ return setNamedItem(arg, false, false);
}
/**
@@ -160,10 +160,10 @@ public class DomNamedNodeMap
*/
public Node setNamedItemNS(Node arg)
{
- return setNamedItem(arg, true);
+ return setNamedItem(arg, true, false);
}
- Node setNamedItem(Node arg, boolean ns)
+ Node setNamedItem(Node arg, boolean ns, boolean cloning)
{
if (readonly)
{
@@ -171,7 +171,7 @@ public class DomNamedNodeMap
}
DomNode node = (DomNode) arg;
- if (node.owner != owner.owner)
+ if (!cloning && node.owner != owner.owner)
{
throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR);
}
diff --git a/libjava/classpath/gnu/xml/dom/DomNode.java b/libjava/classpath/gnu/xml/dom/DomNode.java
index 9af3f3e5498..1cbdc2aecc0 100644
--- a/libjava/classpath/gnu/xml/dom/DomNode.java
+++ b/libjava/classpath/gnu/xml/dom/DomNode.java
@@ -1108,26 +1108,47 @@ public abstract class DomNode
*/
public Node cloneNode(boolean deep)
{
- DomNode node = (DomNode) clone();
-
if (deep)
{
- DomDocument doc = (nodeType == DOCUMENT_NODE) ?
- (DomDocument) node : node.owner;
- boolean building = doc.building;
+ return cloneNodeDeepInternal(true, null);
+ }
+
+ DomNode node = (DomNode) clone();
+ if (nodeType == ENTITY_REFERENCE_NODE)
+ {
+ node.makeReadonly();
+ }
+ notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, node);
+ return node;
+ }
+
+ /**
+ * Returns a deep clone of this node.
+ */
+ private DomNode cloneNodeDeepInternal(boolean root, DomDocument doc)
+ {
+ DomNode node = (DomNode) clone();
+ boolean building = false; // Never used unless root is true
+ if (root)
+ {
+ doc = (nodeType == DOCUMENT_NODE) ? (DomDocument) node : node.owner;
+ building = doc.building;
doc.building = true; // Permit certain structural rules
- for (DomNode ctx = first; ctx != null; ctx = ctx.next)
- {
- DomNode newChild = (DomNode) ctx.cloneNode(deep);
- newChild.setOwner(doc);
- node.appendChild(newChild);
- }
- doc.building = building;
+ }
+ node.owner = doc;
+ for (DomNode ctx = first; ctx != null; ctx = ctx.next)
+ {
+ DomNode newChild = ctx.cloneNodeDeepInternal(false, doc);
+ node.appendChild(newChild);
}
if (nodeType == ENTITY_REFERENCE_NODE)
{
node.makeReadonly();
}
+ if (root)
+ {
+ doc.building = building;
+ }
notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, node);
return node;
}
diff --git a/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java b/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
index 364c576d196..0a165aafbad 100644
--- a/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
+++ b/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
@@ -138,6 +138,7 @@ public class SAXEventSink
doc = new DomDocument();
doc.setStrictErrorChecking(false);
doc.setBuilding(true);
+ doc.setDefaultAttributes(false);
ctx = doc;
final String FEATURES = "http://xml.org/sax/features/";
@@ -185,6 +186,7 @@ public class SAXEventSink
{
doc.setStrictErrorChecking(true);
doc.setBuilding(false);
+ doc.setDefaultAttributes(true);
DomDoctype doctype = (DomDoctype) doc.getDoctype();
if (doctype != null)
{
diff --git a/libjava/classpath/gnu/xml/stream/XMLParser.java b/libjava/classpath/gnu/xml/stream/XMLParser.java
index fae4afec808..c1eee946e69 100644
--- a/libjava/classpath/gnu/xml/stream/XMLParser.java
+++ b/libjava/classpath/gnu/xml/stream/XMLParser.java
@@ -4598,6 +4598,28 @@ public class XMLParser
}
return false;
}
+
+ public String toString()
+ {
+ StringBuffer buf = new StringBuffer(getClass().getName());
+ buf.append('[');
+ buf.append("name=");
+ buf.append(name);
+ if (value != null)
+ {
+ buf.append(",value=");
+ buf.append(value);
+ }
+ if (type != null)
+ {
+ buf.append(",type=");
+ buf.append(type);
+ }
+ if (specified)
+ buf.append(",specified");
+ buf.append(']');
+ return buf.toString();
+ }
}
diff --git a/libjava/classpath/gnu/xml/transform/WithParam.java b/libjava/classpath/gnu/xml/transform/WithParam.java
index 0fb09d61eb9..bcfe1e9b7f0 100644
--- a/libjava/classpath/gnu/xml/transform/WithParam.java
+++ b/libjava/classpath/gnu/xml/transform/WithParam.java
@@ -81,6 +81,10 @@ final class WithParam
{
return select.evaluate(context, pos, len);
}
+ else if (content == null)
+ {
+ return "";
+ }
else
{
Document doc = (context instanceof Document) ? (Document) context :
diff --git a/libjava/classpath/include/Makefile.am b/libjava/classpath/include/Makefile.am
index 9cb9a05cfc2..8f53940490a 100644
--- a/libjava/classpath/include/Makefile.am
+++ b/libjava/classpath/include/Makefile.am
@@ -15,12 +15,14 @@ $(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \
$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \
$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h
+GST_PEER_H_FILES = \
+$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
+
XMLJ_H_FILES = \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h \
@@ -76,7 +78,7 @@ $(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \
$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h \
-$(top_srcdir)/include/GtkDragSourceContextPeer.h
+$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
QTPEER_H_FILES = \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \
@@ -102,7 +104,6 @@ $(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h \
@@ -113,7 +114,6 @@ $(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtContainerPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h
GCONF_PREFS_FILES = \
@@ -121,6 +121,7 @@ $(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
H_FILES = \
$(SOUND_H_FILES) \
+$(GST_PEER_H_FILES) \
$(XMLJ_H_FILES) \
$(GTKPEER_H_FILES) \
$(QTPEER_H_FILES) \
@@ -156,30 +157,204 @@ if CREATE_JNI_HEADERS
all-local: $(H_FILES)
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/dom/%.class
- $(JAVAH) -o $@ gnu.xml.libxmlj.dom.$*
-
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/sax/%.class
- $(JAVAH) -o $@ gnu.xml.libxmlj.sax.$*
-
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/transform/%.class
- $(JAVAH) -o $@ gnu.xml.libxmlj.transform.$*
-
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/gtk/%.class
- $(JAVAH) -o $@ gnu.java.awt.peer.gtk.$*
-
-$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/qt/%.class
- $(JAVAH) -o $@ gnu.java.awt.peer.qt.$*
-
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/alsa/%.class
- $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.$*
-
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/dssi/%.class
- $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.$*
-
-$(top_srcdir)/include/gnu_java_util_prefs_gconf_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/util/prefs/gconf/%.class
- $(JAVAH) -o $@ gnu.java.util.prefs.gconf.$*
-
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocument
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentType
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeTypeInfo
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNotation
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeElement
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNode
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNamedNodeMap
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder
+$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeAttr
+$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator
+$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeXMLReader
+$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer
+$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java
+ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformerFactory
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoSurface
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoGraphics2D
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphics
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphicsCopy
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.FreetypeGlyphVector
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphicsEnvironment
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkPixbufDecoder
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkRobotPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkScreenGraphicsDevice
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkEmbeddedWindowPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImage
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuComponentPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkSelection
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer
+$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkVolatileImage
+$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.dnd.peer.gtk.GtkDragSourceContextPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCheckboxPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtToolkit
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtAudioClip
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScreenDevice
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextFieldPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuItemPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtButtonPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtWindowPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtDialogPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtImage
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuBarPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtVolatileImage
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtChoicePeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtGraphics
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtComponentPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextAreaPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPen
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPanelPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPainterPath
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontMetrics
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollPanePeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QMatrix
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtLabelPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPopupMenuPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFramePeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtListPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollbarPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCanvasPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuComponentPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.MainQtThread
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFileDialogPeer
+$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
+ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtEmbeddedWindowPeer
+$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java
+ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaPortDevice
+$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
+ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice
+$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
+ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiDeviceProvider
+$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
+ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSIMidiDeviceProvider
+$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java
+ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSISynthesizer
+$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java
+ $(JAVAH) -o $@ gnu.java.util.prefs.gconf.GConfNativePeer
+$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
+ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReaderNativePeer
$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
$(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
diff --git a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in
index d2f0707de2c..a93e9ce7fe2 100644
--- a/libjava/classpath/include/Makefile.in
+++ b/libjava/classpath/include/Makefile.in
@@ -99,6 +99,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -137,8 +139,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -162,6 +162,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -234,8 +243,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -319,12 +326,14 @@ $(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \
$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \
$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h
+GST_PEER_H_FILES = \
+$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
+
XMLJ_H_FILES = \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h \
$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h \
@@ -380,7 +389,7 @@ $(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \
$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h \
-$(top_srcdir)/include/GtkDragSourceContextPeer.h
+$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
QTPEER_H_FILES = \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \
@@ -406,7 +415,6 @@ $(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h \
@@ -417,7 +425,6 @@ $(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtContainerPeer.h \
$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h
GCONF_PREFS_FILES = \
@@ -425,6 +432,7 @@ $(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
H_FILES = \
$(SOUND_H_FILES) \
+$(GST_PEER_H_FILES) \
$(XMLJ_H_FILES) \
$(GTKPEER_H_FILES) \
$(QTPEER_H_FILES) \
@@ -640,30 +648,204 @@ uninstall-am: uninstall-info-am
@CREATE_JNI_HEADERS_TRUE@all-local: $(H_FILES)
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/dom/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/sax/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/transform/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/gtk/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/qt/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/alsa/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/dssi/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_util_prefs_gconf_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/util/prefs/gconf/%.class
-@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.util.prefs.gconf.$*
-
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocument
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentType
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeTypeInfo
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNotation
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeElement
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNode
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNamedNodeMap
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeAttr
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeXMLReader
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformerFactory
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoSurface
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoGraphics2D
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphics
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphicsCopy
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.FreetypeGlyphVector
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphicsEnvironment
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkPixbufDecoder
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkRobotPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkScreenGraphicsDevice
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkEmbeddedWindowPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImage
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuComponentPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkSelection
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkVolatileImage
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.dnd.peer.gtk.GtkDragSourceContextPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCheckboxPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtToolkit
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtAudioClip
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScreenDevice
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextFieldPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuItemPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtButtonPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtWindowPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtDialogPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtImage
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuBarPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtVolatileImage
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtChoicePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtGraphics
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtComponentPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextAreaPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPen
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPanelPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPainterPath
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontMetrics
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollPanePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QMatrix
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtLabelPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPopupMenuPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFramePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtListPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollbarPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCanvasPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuComponentPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.MainQtThread
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFileDialogPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtEmbeddedWindowPeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaPortDevice
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiDeviceProvider
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSIMidiDeviceProvider
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSISynthesizer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.util.prefs.gconf.GConfNativePeer
+@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReaderNativePeer
@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
diff --git a/libjava/classpath/include/config.h.in b/libjava/classpath/include/config.h.in
index a0e3150c5c9..e52b7eff732 100644
--- a/libjava/classpath/include/config.h.in
+++ b/libjava/classpath/include/config.h.in
@@ -183,6 +183,9 @@
/* Define this symbol if you have MSG_NOSIGNAL */
#undef HAVE_MSG_NOSIGNAL
+/* Define this symbol if you have MSG_WAITALL */
+#undef HAVE_MSG_WAITALL
+
/* Define to 1 if you have the `msync' function. */
#undef HAVE_MSYNC
diff --git a/libjava/classpath/include/GtkDragSourceContextPeer.h b/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
index 87606ec1a1c..f9fca115883 100644
--- a/libjava/classpath/include/GtkDragSourceContextPeer.h
+++ b/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
@@ -1,7 +1,7 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
-#ifndef __GtkDragSourceContextPeer__
-#define __GtkDragSourceContextPeer__
+#ifndef __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__
+#define __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__
#include <jni.h>
@@ -13,11 +13,11 @@ extern "C"
JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag (JNIEnv *env, jobject, jobject, jint, jint, jint, jstring);
JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals (JNIEnv *env, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create (JNIEnv *env, jobject, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor (JNIEnv *env, jobject, jint) ;
+JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor (JNIEnv *env, jobject, jint);
JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget (JNIEnv *env, jobject, jobject);
#ifdef __cplusplus
}
#endif
-#endif /* __GtkDragSourceContextPeer__ */
+#endif /* __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ */
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
index 3ae95a283e5..a24f92d196b 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
@@ -1,10 +1,10 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-
#ifndef __gnu_java_awt_peer_gtk_CairoGraphics2D__
#define __gnu_java_awt_peer_gtk_CairoGraphics2D__
+#include <jni.h>
+
#ifdef __cplusplus
extern "C"
{
@@ -38,7 +38,6 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFill (JNI
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip (JNIEnv *env, jobject, jlong);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip (JNIEnv *env, jobject, jlong);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetAntialias (JNIEnv *env, jobject, jlong, jboolean);
-
#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST
#define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST 0L
#undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h
index 3dd8bb43178..2df12469b42 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h
@@ -1,10 +1,10 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
-#include <jni.h>
-
#ifndef __gnu_java_awt_peer_gtk_ComponentGraphics__
#define __gnu_java_awt_peer_gtk_ComponentGraphics__
+#include <jni.h>
+
#ifdef __cplusplus
extern "C"
{
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
index 6177a6fb939..de83f57a597 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
@@ -1,22 +1,23 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
+#include <jni.h>
+
#ifndef __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__
#define __gnu_java_awt_peer_gtk_GdkGraphicsEnvironment__
-#include <jni.h>
-
#ifdef __cplusplus
extern "C"
{
#endif
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initStaticState (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initIDs (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState (JNIEnv *env, jobject);
JNIEXPORT jobjectArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices (JNIEnv *env, jobject);
JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetNumFontFamilies (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetFontFamilies (JNIEnv *env, jobject, jobjectArray);
JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates (JNIEnv *env, jobject);
+JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse (JNIEnv *env, jobject, jobject);
#ifdef __cplusplus
}
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h
index 8037af0825e..37654e4f48d 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h
@@ -10,7 +10,7 @@ extern "C"
{
#endif
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initStaticState (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initIDs (JNIEnv *env, jclass);
JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode (JNIEnv *env, jobject, jobject);
JNIEXPORT jstring JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetIDString (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeIndex (JNIEnv *env, jobject, jobject);
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h
index fd9b10687b1..1a95d70d339 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h
@@ -10,6 +10,7 @@ extern "C"
{
#endif
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_initIDs (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_gtkWidgetModifyFont (JNIEnv *env, jobject, jstring, jint, jint);
diff --git a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h
index 5bceda7ad7b..ad6eb394453 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h
@@ -13,6 +13,7 @@ extern "C"
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env, jclass, jint, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkQuit (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_beep (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenSizeDimensions (JNIEnv *env, jobject, jintArray);
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution (JNIEnv *env, jobject);
diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h
deleted file mode 100644
index 2993e184141..00000000000
--- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_java_awt_peer_qt_QtContainerPeer__
-#define __gnu_java_awt_peer_qt_QtContainerPeer__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_java_awt_peer_qt_QtContainerPeer__ */
diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h
index 632167a7662..ebc607ed34e 100644
--- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h
+++ b/libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h
@@ -14,7 +14,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_init (JNIEnv *env
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_initGraphics (JNIEnv *env, jobject, jobject, jobject);
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_dispose (JNIEnv *env, jobject);
JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getStringBounds (JNIEnv *env, jobject, jstring);
-JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_canDisplay (JNIEnv *env, jobject, jchar);
+JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_canDisplay (JNIEnv *env, jobject, jint);
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getAscent (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getDescent (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getHeight (JNIEnv *env, jobject);
diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h
deleted file mode 100644
index d964760f306..00000000000
--- a/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_java_awt_peer_qt_QtGraphicsEnvironment__
-#define __gnu_java_awt_peer_qt_QtGraphicsEnvironment__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_java_awt_peer_qt_QtGraphicsEnvironment__ */
diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
new file mode 100644
index 00000000000..509a43cd946
--- /dev/null
+++ b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
+
+#include <jni.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream (JNIEnv *env, jclass, jobject, jobject);
+JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file (JNIEnv *env, jclass, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__ */
diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h
deleted file mode 100644
index 95fa3d839eb..00000000000
--- a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__
-#define __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__ */
diff --git a/libjava/classpath/include/jni.h b/libjava/classpath/include/jni.h
index 3a0d9c31ec3..1c9be9584c0 100644
--- a/libjava/classpath/include/jni.h
+++ b/libjava/classpath/include/jni.h
@@ -1,5 +1,5 @@
/* jni.h
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006 Free Software Foundation
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation
This file is part of GNU Classpath.
@@ -117,8 +117,8 @@ typedef jobject jdoubleArray;
#define JNI_TRUE 1
#define JNI_FALSE 0
-typedef const struct JNINativeInterface *JNIEnv;
-typedef const struct JNIInvokeInterface *JavaVM;
+typedef const struct JNINativeInterface_ *JNIEnv;
+typedef const struct JNIInvokeInterface_ *JavaVM;
# endif /* __cplusplus */
@@ -206,7 +206,7 @@ typedef struct
void *fnPtr; /* Sigh. */
} JNINativeMethod;
-struct JNINativeInterface
+struct JNINativeInterface_
{
void *reserved0;
void *reserved1;
@@ -256,7 +256,7 @@ struct JNINativeInterface
jobject (JNICALL *NewObjectV) (JNIEnv *, jclass,
jmethodID, va_list);
jobject (JNICALL *NewObjectA) (JNIEnv *, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jclass (JNICALL *GetObjectClass) (JNIEnv *, jobject);
jboolean (JNICALL *IsInstanceOf) (JNIEnv *, jobject, jclass);
@@ -267,114 +267,114 @@ struct JNINativeInterface
jobject (JNICALL *CallObjectMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jobject (JNICALL *CallObjectMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jboolean (JNICALL *CallBooleanMethod) (JNIEnv *, jobject, jmethodID,
...);
jboolean (JNICALL *CallBooleanMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jboolean (JNICALL *CallBooleanMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jbyte (JNICALL *CallByteMethod) (JNIEnv *, jobject, jmethodID, ...);
jbyte (JNICALL *CallByteMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jbyte (JNICALL *CallByteMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jchar (JNICALL *CallCharMethod) (JNIEnv *, jobject, jmethodID, ...);
jchar (JNICALL *CallCharMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jchar (JNICALL *CallCharMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jshort (JNICALL *CallShortMethod) (JNIEnv *, jobject, jmethodID, ...);
jshort (JNICALL *CallShortMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jshort (JNICALL *CallShortMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jint (JNICALL *CallIntMethod) (JNIEnv *, jobject, jmethodID, ...);
jint (JNICALL *CallIntMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jint (JNICALL *CallIntMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jlong (JNICALL *CallLongMethod) (JNIEnv *, jobject, jmethodID, ...);
jlong (JNICALL *CallLongMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jlong (JNICALL *CallLongMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jfloat (JNICALL *CallFloatMethod) (JNIEnv *, jobject, jmethodID, ...);
jfloat (JNICALL *CallFloatMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jfloat (JNICALL *CallFloatMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jdouble (JNICALL *CallDoubleMethod) (JNIEnv *, jobject, jmethodID, ...);
jdouble (JNICALL *CallDoubleMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
jdouble (JNICALL *CallDoubleMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
void (JNICALL *CallVoidMethod) (JNIEnv *, jobject, jmethodID, ...);
void (JNICALL *CallVoidMethodV) (JNIEnv *, jobject, jmethodID,
va_list);
void (JNICALL *CallVoidMethodA) (JNIEnv *, jobject, jmethodID,
- jvalue *);
+ const jvalue *);
jobject (JNICALL *CallNonvirtualObjectMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jobject (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jobject (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jboolean (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jboolean (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jboolean (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jbyte (JNICALL *CallNonvirtualByteMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jbyte (JNICALL *CallNonvirtualByteMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jbyte (JNICALL *CallNonvirtualByteMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jchar (JNICALL *CallNonvirtualCharMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jchar (JNICALL *CallNonvirtualCharMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jchar (JNICALL *CallNonvirtualCharMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jshort (JNICALL *CallNonvirtualShortMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jshort (JNICALL *CallNonvirtualShortMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jshort (JNICALL *CallNonvirtualShortMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jint (JNICALL *CallNonvirtualIntMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jint (JNICALL *CallNonvirtualIntMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jint (JNICALL *CallNonvirtualIntMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jlong (JNICALL *CallNonvirtualLongMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jlong (JNICALL *CallNonvirtualLongMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jlong (JNICALL *CallNonvirtualLongMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jfloat (JNICALL *CallNonvirtualFloatMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jfloat (JNICALL *CallNonvirtualFloatMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jfloat (JNICALL *CallNonvirtualFloatMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jdouble (JNICALL *CallNonvirtualDoubleMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
jdouble (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
jdouble (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
void (JNICALL *CallNonvirtualVoidMethod) (JNIEnv *, jobject, jclass,
jmethodID, ...);
void (JNICALL *CallNonvirtualVoidMethodV) (JNIEnv *, jobject, jclass,
jmethodID, va_list);
void (JNICALL *CallNonvirtualVoidMethodA) (JNIEnv *, jobject, jclass,
- jmethodID, jvalue *);
+ jmethodID, const jvalue *);
jfieldID (JNICALL *GetFieldID) (JNIEnv *, jclass, const char *,
const char *);
@@ -416,61 +416,61 @@ struct JNINativeInterface
jobject (JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jobject (JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jboolean (JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
...);
jboolean (JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jboolean (JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jbyte (JNICALL *CallStaticByteMethod) (JNIEnv *, jclass, jmethodID,
...);
jbyte (JNICALL *CallStaticByteMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jbyte (JNICALL *CallStaticByteMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jchar (JNICALL *CallStaticCharMethod) (JNIEnv *, jclass, jmethodID,
...);
jchar (JNICALL *CallStaticCharMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jchar (JNICALL *CallStaticCharMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jshort (JNICALL *CallStaticShortMethod) (JNIEnv *, jclass, jmethodID,
...);
jshort (JNICALL *CallStaticShortMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jshort (JNICALL *CallStaticShortMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jint (JNICALL *CallStaticIntMethod) (JNIEnv *, jclass, jmethodID,
...);
jint (JNICALL *CallStaticIntMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jint (JNICALL *CallStaticIntMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jlong (JNICALL *CallStaticLongMethod) (JNIEnv *, jclass, jmethodID,
...);
jlong (JNICALL *CallStaticLongMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jlong (JNICALL *CallStaticLongMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jfloat (JNICALL *CallStaticFloatMethod) (JNIEnv *, jclass, jmethodID,
...);
jfloat (JNICALL *CallStaticFloatMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jfloat (JNICALL *CallStaticFloatMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jdouble (JNICALL *CallStaticDoubleMethod) (JNIEnv *, jclass, jmethodID,
...);
jdouble (JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
jdouble (JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
void (JNICALL *CallStaticVoidMethod) (JNIEnv *, jclass, jmethodID,
...);
void (JNICALL *CallStaticVoidMethodV) (JNIEnv *, jclass, jmethodID,
va_list);
void (JNICALL *CallStaticVoidMethodA) (JNIEnv *, jclass, jmethodID,
- jvalue *);
+ const jvalue *);
jfieldID (JNICALL *GetStaticFieldID) (JNIEnv *, jclass, const char *,
const char *);
@@ -579,21 +579,29 @@ struct JNINativeInterface
jsize, jsize, jdouble *);
void (JNICALL *SetBooleanArrayRegion) (JNIEnv *, jbooleanArray,
- jsize, jsize, jboolean *);
+ jsize, jsize,
+ const jboolean *);
void (JNICALL *SetByteArrayRegion) (JNIEnv *, jbyteArray,
- jsize, jsize, jbyte *);
+ jsize, jsize,
+ const jbyte *);
void (JNICALL *SetCharArrayRegion) (JNIEnv *, jcharArray,
- jsize, jsize, jchar *);
+ jsize, jsize,
+ const jchar *);
void (JNICALL *SetShortArrayRegion) (JNIEnv *, jshortArray,
- jsize, jsize, jshort *);
+ jsize, jsize,
+ const jshort *);
void (JNICALL *SetIntArrayRegion) (JNIEnv *, jintArray,
- jsize, jsize, jint *);
+ jsize, jsize,
+ const jint *);
void (JNICALL *SetLongArrayRegion) (JNIEnv *, jlongArray,
- jsize, jsize, jlong *);
+ jsize, jsize,
+ const jlong *);
void (JNICALL *SetFloatArrayRegion) (JNIEnv *, jfloatArray,
- jsize, jsize, jfloat *);
+ jsize, jsize,
+ const jfloat *);
void (JNICALL *SetDoubleArrayRegion) (JNIEnv *, jdoubleArray,
- jsize, jsize, jdouble *);
+ jsize, jsize,
+ const jdouble *);
jint (JNICALL *RegisterNatives) (JNIEnv *, jclass,
const JNINativeMethod *,
@@ -636,7 +644,7 @@ class _Jv_JNIEnv
{
public:
/* The method table. */
- struct JNINativeInterface *p;
+ struct JNINativeInterface_ *p;
#ifdef _CLASSPATH_JNIENV_CONTENTS
_CLASSPATH_JNIENV_CONTENTS
@@ -766,7 +774,8 @@ public:
jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallBooleanMethodV (this, obj0, meth1, val2); }
- jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1,
+ const jvalue * val2)
{ return p->CallBooleanMethodA (this, obj0, meth1, val2); }
jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
@@ -781,7 +790,7 @@ public:
jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallByteMethodV (this, obj0, meth1, val2); }
- jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jbyte CallByteMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ return p->CallByteMethodA (this, obj0, meth1, val2); }
jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
@@ -796,7 +805,7 @@ public:
jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallCharMethodV (this, obj0, meth1, val2); }
- jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jchar CallCharMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ return p->CallCharMethodA (this, obj0, meth1, val2); }
jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
@@ -811,7 +820,7 @@ public:
jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallShortMethodV (this, obj0, meth1, val2); }
- jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jshort CallShortMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ return p->CallShortMethodA (this, obj0, meth1, val2); }
jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
@@ -841,7 +850,7 @@ public:
jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallLongMethodV (this, obj0, meth1, val2); }
- jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jlong CallLongMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ return p->CallLongMethodA (this, obj0, meth1, val2); }
jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
@@ -856,7 +865,7 @@ public:
jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallFloatMethodV (this, obj0, meth1, val2); }
- jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ return p->CallFloatMethodA (this, obj0, meth1, val2); }
jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
@@ -871,7 +880,7 @@ public:
jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ return p->CallDoubleMethodV (this, obj0, meth1, val2); }
- jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ return p->CallDoubleMethodA (this, obj0, meth1, val2); }
void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
@@ -885,7 +894,7 @@ public:
void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
{ p->CallVoidMethodV (this, obj0, meth1, val2); }
- void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+ void CallVoidMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
{ p->CallVoidMethodA (this, obj0, meth1, val2); }
jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -900,7 +909,7 @@ public:
jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
- jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -915,7 +924,7 @@ public:
jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
- jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -930,7 +939,7 @@ public:
jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
- jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -945,7 +954,7 @@ public:
jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
- jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -960,7 +969,7 @@ public:
jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
- jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -975,7 +984,7 @@ public:
jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
- jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -990,7 +999,7 @@ public:
jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
- jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -1005,7 +1014,7 @@ public:
jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
- jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -1020,7 +1029,7 @@ public:
jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
- jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -1034,7 +1043,7 @@ public:
void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
{ p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
- void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+ void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
{ p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
@@ -1109,7 +1118,8 @@ public:
jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
- jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1,
+ const jvalue * val2)
{ return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
@@ -1124,7 +1134,8 @@ public:
jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
- jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1,
+ const jvalue * val2)
{ return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
@@ -1139,7 +1150,7 @@ public:
jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
- jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
{ return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
@@ -1154,7 +1165,7 @@ public:
jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
- jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
{ return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
@@ -1169,7 +1180,8 @@ public:
jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
- jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1,
+ const jvalue * val2)
{ return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
@@ -1184,7 +1196,7 @@ public:
jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
- jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
{ return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
@@ -1199,7 +1211,7 @@ public:
jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
- jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
{ return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
@@ -1214,7 +1226,8 @@ public:
jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
- jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1,
+ const jvalue * val2)
{ return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
@@ -1229,7 +1242,8 @@ public:
jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
- jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1,
+ const jvalue * val2)
{ return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
@@ -1243,7 +1257,7 @@ public:
void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
{ p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
- void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+ void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
{ p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
@@ -1517,7 +1531,7 @@ public:
* Invocation API.
*/
-struct JNIInvokeInterface
+struct JNIInvokeInterface_
{
void *reserved0;
void *reserved1;
@@ -1535,7 +1549,7 @@ struct JNIInvokeInterface
class _Jv_JavaVM
{
public:
- const struct JNIInvokeInterface *functions;
+ const struct JNIInvokeInterface_ *functions;
jint DestroyJavaVM ()
{ return functions->DestroyJavaVM (this); }
@@ -1626,13 +1640,15 @@ typedef struct JDK1_1AttachArgs
/* Keep c-font-lock-extra-types in alphabetical order. */
-/* Local Variables: */
-/* c-font-lock-extra-types: ("\\sw+_t"
- "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray"
- "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar" "jcharArray"
- "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray"
- "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"
- "jvalue" "jweak") */
-/* End: */
+/*
+Local Variables:
+c-font-lock-extra-types: ("\\sw+_t" \
+ "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray" \
+ "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar" "jcharArray" \
+ "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray" \
+ "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" \
+ "jstring" "jthrowable" "jvalue" "jweak")
+End:
+*/
#endif /* _CLASSPATH_JNI_H */
diff --git a/libjava/classpath/include/jvmti.h b/libjava/classpath/include/jvmti.h
index b26f7932e54..c455838f126 100644
--- a/libjava/classpath/include/jvmti.h
+++ b/libjava/classpath/include/jvmti.h
@@ -637,7 +637,7 @@ typedef void (JNICALL *jvmtiStartFunction)
/*
* JVM Tool Interface Base Types
*/
-typedef struct JNINativeInterface jniNativeInterface;
+typedef struct JNINativeInterface_ jniNativeInterface;
struct _Jv_jvmtiEnv
{
diff --git a/libjava/classpath/install-sh b/libjava/classpath/install-sh
index 4fbbae7b7ff..4d4a9519eaf 100755
--- a/libjava/classpath/install-sh
+++ b/libjava/classpath/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2006-10-14.15
+scriptversion=2005-05-14.22
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,24 +39,15 @@ scriptversion=2006-10-14.15
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" "" $nl"
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
+# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
@@ -67,13 +58,7 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
-posix_glob=
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chmodcmd=$chmodprog
+chmodcmd="$chmodprog 0755"
chowncmd=
chgrpcmd=
stripcmd=
@@ -110,7 +95,7 @@ Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
"
-while test $# -ne 0; do
+while test -n "$1"; do
case $1 in
-c) shift
continue;;
@@ -126,15 +111,9 @@ while test $# -ne 0; do
--help) echo "$usage"; exit $?;;
- -m) mode=$2
+ -m) chmodcmd="$chmodprog $2"
shift
shift
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
continue;;
-o) chowncmd="$chownprog $2"
@@ -157,33 +136,25 @@ while test $# -ne 0; do
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
+ *) # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dstarg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dstarg"
+ shift # fnord
+ fi
+ shift # arg
+ dstarg=$arg
+ done
break;;
-
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
-
- *) break;;
esac
done
-if test $# -ne 0 && test -z "$dir_arg$dstarg"; then
- # When -d is used, all remaining arguments are directories to create.
- # When -t is used, the destination is already specified.
- # Otherwise, the last argument is the destination. Remove it from $@.
- for arg
- do
- if test -n "$dstarg"; then
- # $@ is not empty: it contains at least $arg.
- set fnord "$@" "$dstarg"
- shift # fnord
- fi
- shift # arg
- dstarg=$arg
- done
-fi
-
-if test $# -eq 0; then
+if test -z "$1"; then
if test -z "$dir_arg"; then
echo "$0: no input file specified." >&2
exit 1
@@ -193,33 +164,6 @@ if test $# -eq 0; then
exit 0
fi
-if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
-
- # Set umask so as not to create temps with too-generous modes.
- # However, 'strip' requires both read and write access to temps.
- case $mode in
- # Optimize common cases.
- *644) cp_umask=133;;
- *755) cp_umask=22;;
-
- *[0-7])
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw='% 200'
- fi
- cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
- *)
- if test -z "$stripcmd"; then
- u_plus_rw=
- else
- u_plus_rw=,u+rw
- fi
- cp_umask=$mode$u_plus_rw;;
- esac
-fi
-
for src
do
# Protect names starting with `-'.
@@ -229,11 +173,15 @@ do
if test -n "$dir_arg"; then
dst=$src
- dstdir=$dst
- test -d "$dstdir"
- dstdir_status=$?
- else
+ src=
+ if test -d "$dst"; then
+ mkdircmd=:
+ chmodcmd=
+ else
+ mkdircmd=$mkdirprog
+ fi
+ else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
@@ -260,188 +208,53 @@ do
echo "$0: $dstarg: Is a directory" >&2
exit 1
fi
- dstdir=$dst
- dst=$dstdir/`basename "$src"`
- dstdir_status=0
- else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
- test -d "$dstdir"
- dstdir_status=$?
+ dst=$dst/`basename "$src"`
fi
fi
- obsolete_mkdir_used=false
-
- if test $dstdir_status != 0; then
- case $posix_mkdir in
- '')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writeable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
- esac
+ # This sed command emulates the dirname command.
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
- if
- $posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
- )
- then :
- else
+ # Make sure that the destination directory exists.
+
+ # Skip lots of stat calls in the usual case.
+ if test ! -d "$dstdir"; then
+ defaultIFS='
+ '
+ IFS="${IFS-$defaultIFS}"
- # The umask is ridiculous, or mkdir does not conform to POSIX,
- # or it failed possibly due to a race condition. Create the
- # directory the slow way, step by step, checking for races as we go.
-
- case $dstdir in
- /*) prefix=/ ;;
- -*) prefix=./ ;;
- *) prefix= ;;
- esac
-
- case $posix_glob in
- '')
- if (set -f) 2>/dev/null; then
- posix_glob=true
- else
- posix_glob=false
- fi ;;
- esac
-
- oIFS=$IFS
- IFS=/
- $posix_glob && set -f
- set fnord $dstdir
+ oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
+ IFS=$oIFS
+
+ pathcomp=
+
+ while test $# -ne 0 ; do
+ pathcomp=$pathcomp$1
shift
- $posix_glob && set +f
- IFS=$oIFS
-
- prefixes=
-
- for d
- do
- test -z "$d" && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
- done
-
- if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ if test ! -d "$pathcomp"; then
+ $mkdirprog "$pathcomp"
+ # mkdir can fail with a `File exist' error in case several
+ # install-sh are creating the directory concurrently. This
+ # is OK.
+ test -d "$pathcomp" || exit
fi
- fi
+ pathcomp=$pathcomp/
+ done
fi
if test -n "$dir_arg"; then
- { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
- { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
- { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
- test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ $doit $mkdircmd "$dst" \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
else
+ dstfile=`basename "$dst"`
# Make a couple of temp file names in the proper directory.
dsttmp=$dstdir/_inst.$$_
@@ -449,9 +262,10 @@ do
# Trap to clean up those temp files at exit.
trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ trap '(exit $?); exit' 1 2 13 15
# Copy the file name to the temp name.
- (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+ $doit $cpprog "$src" "$dsttmp" &&
# and set any options; do chmod last to preserve setuid bits.
#
@@ -462,10 +276,10 @@ do
{ test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
&& { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
&& { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
- && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
# Now rename the file to the real destination.
- { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
|| {
# The rename failed, perhaps because mv can't rename something else
# to itself, or perhaps because mv is so ancient that it does not
@@ -477,12 +291,11 @@ do
# reasons. In this case, the final cleanup might fail but the new
# file should still install successfully.
{
- if test -f "$dst"; then
- $doit $rmcmd -f "$dst" 2>/dev/null \
- || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
- && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
+ if test -f "$dstdir/$dstfile"; then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
|| {
- echo "$0: cannot unlink or rename $dst" >&2
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
(exit 1); exit 1
}
else
@@ -491,14 +304,17 @@ do
} &&
# Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
}
- } || exit 1
-
- trap '' 0
- fi
+ }
+ fi || { (exit 1); exit 1; }
done
+# The final little trick to "correctly" pass the exit status to the exit trap.
+{
+ (exit 0); exit 0
+}
+
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
diff --git a/libjava/classpath/java/awt/AWTKeyStroke.java b/libjava/classpath/java/awt/AWTKeyStroke.java
index e0b34e99238..0fc44287a16 100644
--- a/libjava/classpath/java/awt/AWTKeyStroke.java
+++ b/libjava/classpath/java/awt/AWTKeyStroke.java
@@ -93,7 +93,7 @@ public class AWTKeyStroke implements Serializable
private static final int MAX_CACHE_SIZE = 2048;
/** Prune stale entries. */
- protected boolean removeEldestEntry(Entry<AWTKeyStroke,AWTKeyStroke>
+ protected boolean removeEldestEntry(Map.Entry<AWTKeyStroke,AWTKeyStroke>
eldest)
{
return size() > MAX_CACHE_SIZE;
diff --git a/libjava/classpath/java/awt/AlphaComposite.java b/libjava/classpath/java/awt/AlphaComposite.java
index 90df2e66d8c..addd1e71327 100644
--- a/libjava/classpath/java/awt/AlphaComposite.java
+++ b/libjava/classpath/java/awt/AlphaComposite.java
@@ -61,7 +61,7 @@ public final class AlphaComposite implements Composite
private static final int MAX_CACHE_SIZE = 2048;
/** Prune stale entries. */
- protected boolean removeEldestEntry(Entry eldest)
+ protected boolean removeEldestEntry(Map.Entry eldest)
{
return size() > MAX_CACHE_SIZE;
}
diff --git a/libjava/classpath/java/awt/Component.java b/libjava/classpath/java/awt/Component.java
index f8bed17618e..fe4fb9b8b0d 100644
--- a/libjava/classpath/java/awt/Component.java
+++ b/libjava/classpath/java/awt/Component.java
@@ -5834,6 +5834,62 @@ p * <li>the set of backward traversal keys
}
/**
+ * Returns the mouse pointer position relative to this Component's
+ * top-left corner.
+ *
+ * @return relative mouse pointer position
+ *
+ * @throws HeadlessException if in a headless environment
+ */
+ public Point getMousePosition() throws HeadlessException
+ {
+ return getMousePositionHelper(true);
+ }
+
+ Point getMousePositionHelper(boolean allowChildren) throws HeadlessException
+ {
+ if (GraphicsEnvironment.isHeadless())
+ throw new HeadlessException("can't get mouse position"
+ + " in headless environment");
+ if (!isShowing())
+ return null;
+
+ Component parent = this;
+ int windowRelativeXOffset = 0;
+ int windowRelativeYOffset = 0;
+ while (parent != null && !(parent instanceof Window))
+ {
+ windowRelativeXOffset += parent.getX();
+ windowRelativeYOffset += parent.getY();
+ parent = parent.getParent();
+ }
+ if (parent == null)
+ return null;
+
+ Window window = (Window) parent;
+ if (!Toolkit.getDefaultToolkit()
+ .getMouseInfoPeer().isWindowUnderMouse(window))
+ return null;
+
+ PointerInfo info = MouseInfo.getPointerInfo();
+ Point mouseLocation = info.getLocation();
+ Point windowLocation = window.getLocationOnScreen();
+
+ int x = mouseLocation.x - windowLocation.x;
+ int y = mouseLocation.y - windowLocation.y;
+
+ if (!mouseOverComponent(window.getComponentAt(x, y), allowChildren))
+ return null;
+
+ return new Point(x - windowRelativeXOffset, y - windowRelativeYOffset);
+ }
+
+ boolean mouseOverComponent(Component component, boolean allowChildren)
+ {
+ return component == this;
+ }
+
+ /**
* This method is used to implement transferFocus(). CHILD is the child
* making the request. This is overridden by Container; when called for an
* ordinary component there is no child and so we always return null.
diff --git a/libjava/classpath/java/awt/Container.java b/libjava/classpath/java/awt/Container.java
index 83d9f7b78c5..e7622f2e839 100644
--- a/libjava/classpath/java/awt/Container.java
+++ b/libjava/classpath/java/awt/Container.java
@@ -1098,6 +1098,33 @@ public class Container extends Component
}
/**
+ * Returns the mouse pointer position relative to this Container's
+ * top-left corner. If allowChildren is false, the mouse pointer
+ * must be directly over this container. If allowChildren is true,
+ * the mouse pointer may be over this container or any of its
+ * descendents.
+ *
+ * @param allowChildren true to allow descendents, false if pointer
+ * must be directly over Container.
+ *
+ * @return relative mouse pointer position
+ *
+ * @throws HeadlessException if in a headless environment
+ */
+ public Point getMousePosition(boolean allowChildren) throws HeadlessException
+ {
+ return super.getMousePositionHelper(allowChildren);
+ }
+
+ boolean mouseOverComponent(Component component, boolean allowChildren)
+ {
+ if (allowChildren)
+ return isAncestorOf(component);
+ else
+ return component == this;
+ }
+
+ /**
* Returns the component located at the specified point. This is done
* by checking whether or not a child component claims to contain this
* point. The first child component that does is returned. If no
diff --git a/libjava/classpath/java/awt/Dialog.java b/libjava/classpath/java/awt/Dialog.java
index 7df2f523c86..83fb52d89d7 100644
--- a/libjava/classpath/java/awt/Dialog.java
+++ b/libjava/classpath/java/awt/Dialog.java
@@ -61,6 +61,21 @@ import javax.accessibility.AccessibleStateSet;
*/
public class Dialog extends Window
{
+ public enum ModalExclusionType
+ {
+ APPLICATION_EXCLUDE,
+ NO_EXCLUDE,
+ TOOLKIT_EXCLUDE
+ }
+
+ public enum ModalityType
+ {
+ APPLICATION_MODAL,
+ DOCUMENT_MODAL,
+ MODELESS,
+ TOOLKIT_MODAL
+ }
+
// Serialization constant
private static final long serialVersionUID = 5920926903803293709L;
diff --git a/libjava/classpath/java/awt/Font.java b/libjava/classpath/java/awt/Font.java
index 29b87d6af99..d6892a626dc 100644
--- a/libjava/classpath/java/awt/Font.java
+++ b/libjava/classpath/java/awt/Font.java
@@ -170,6 +170,31 @@ public class Font implements Serializable
public static final int LAYOUT_NO_LIMIT_CONTEXT = 4;
/**
+ * @since 1.6
+ */
+ public static final String DIALOG = "Dialog";
+
+ /**
+ * @since 1.6
+ */
+ public static final String DIALOG_INPUT = "DialogInput";
+
+ /**
+ * @since 1.6
+ */
+ public static final String MONOSPACED = "Monospaced";
+
+ /**
+ * @since 1.6
+ */
+ public static final String SANS_SERIF = "SansSerif";
+
+ /**
+ * @since 1.6
+ */
+ public static final String SERIF = "Serif";
+
+ /**
* The logical name of this font.
*
* @since 1.0
@@ -330,6 +355,11 @@ public class Font implements Serializable
return getFont(propname, (Font) null);
}
+ protected Font(Font font)
+ {
+ this(font.getName(), font.getAttributes());
+ }
+
/**
* Initializes a new instance of <code>Font</code> with the specified
* attributes.
@@ -491,7 +521,12 @@ public class Font implements Serializable
*/
public boolean canDisplay(char c)
{
- return peer.canDisplay(this, c);
+ return canDisplay((int) c);
+ }
+
+ public boolean canDisplay(int codePoint)
+ {
+ return peer.canDisplay(this, codePoint);
}
/**
@@ -1373,6 +1408,12 @@ public class Font implements Serializable
return getLineMetrics(str, 0, str.length() - 1, frc);
}
+ public boolean hasLayoutAttributes()
+ {
+ // TODO: Implement properly.
+ return false;
+ }
+
/**
* Reads the normal fields from the stream and then constructs the
* peer from the style and size through getPeerFromToolkit().
diff --git a/libjava/classpath/java/awt/Toolkit.java b/libjava/classpath/java/awt/Toolkit.java
index 305402e9541..b12e9e10dc0 100644
--- a/libjava/classpath/java/awt/Toolkit.java
+++ b/libjava/classpath/java/awt/Toolkit.java
@@ -1287,6 +1287,12 @@ public abstract class Toolkit
public abstract Map<TextAttribute,?>
mapInputMethodHighlight(InputMethodHighlight highlight);
+ public abstract boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType);
+
+ public abstract boolean isModalityTypeSupported
+ (Dialog.ModalityType modalityType);
+
/**
* Initializes the accessibility framework. In particular, this loads the
* properties javax.accessibility.screen_magnifier_present and
diff --git a/libjava/classpath/java/awt/event/MouseEvent.java b/libjava/classpath/java/awt/event/MouseEvent.java
index f2bcfbcc65f..ad777e8f433 100644
--- a/libjava/classpath/java/awt/event/MouseEvent.java
+++ b/libjava/classpath/java/awt/event/MouseEvent.java
@@ -164,6 +164,16 @@ public class MouseEvent extends InputEvent
private int y;
/**
+ * The screen position of that mouse event, X coordinate.
+ */
+ private int absX;
+
+ /**
+ * The screen position of that mouse event, Y coordinate.
+ */
+ private int absY;
+
+ /**
* The number of clicks that took place. For MOUSE_CLICKED, MOUSE_PRESSED,
* and MOUSE_RELEASED, this will be at least 1; otherwise it is 0.
*
@@ -212,6 +222,7 @@ public class MouseEvent extends InputEvent
int button)
{
super(source, id, when, modifiers);
+
this.x = x;
this.y = y;
this.clickCount = clickCount;
@@ -234,6 +245,13 @@ public class MouseEvent extends InputEvent
this.modifiersEx &= ~(BUTTON1_DOWN_MASK
| BUTTON2_DOWN_MASK
| BUTTON3_DOWN_MASK);
+
+ if (source != null)
+ {
+ Point screenLoc = source.getLocationOnScreen();
+ absX = screenLoc.x + x;
+ absY = screenLoc.y + y;
+ }
}
/**
@@ -258,6 +276,59 @@ public class MouseEvent extends InputEvent
}
/**
+ * Creates a new MouseEvent. This is like the other constructors and adds
+ * specific absolute coordinates.
+ *
+ * @param source the source of the event
+ * @param id the event id
+ * @param when the timestamp of when the event occurred
+ * @param modifiers the modifier keys during the event, in old or new style
+ * @param x the X coordinate of the mouse point
+ * @param y the Y coordinate of the mouse point
+ * @param absX the absolute X screen coordinate of this event
+ * @param absY the absolute Y screen coordinate of this event
+ * @param clickCount the number of mouse clicks for this event
+ * @param popupTrigger true if this event triggers a popup menu
+ * @param button the most recent mouse button to change state
+ *
+ * @throws IllegalArgumentException if source is null or button is invalid
+ *
+ * @since 1.6
+ */
+ public MouseEvent(Component source, int id, long when, int modifiers,
+ int x, int y, int absX, int absY, int clickCount,
+ boolean popupTrigger, int button)
+ {
+ super(source, id, when, modifiers);
+
+ this.x = x;
+ this.y = y;
+ this.clickCount = clickCount;
+ this.popupTrigger = popupTrigger;
+ this.button = button;
+ if (button < NOBUTTON || button > BUTTON3)
+ throw new IllegalArgumentException();
+ if ((modifiers & EventModifier.OLD_MASK) != 0)
+ {
+ if ((modifiers & BUTTON1_MASK) != 0)
+ this.button = BUTTON1;
+ else if ((modifiers & BUTTON2_MASK) != 0)
+ this.button = BUTTON2;
+ else if ((modifiers & BUTTON3_MASK) != 0)
+ this.button = BUTTON3;
+ }
+ // clear the mouse button modifier masks if this is a button
+ // release event.
+ if (id == MOUSE_RELEASED)
+ this.modifiersEx &= ~(BUTTON1_DOWN_MASK
+ | BUTTON2_DOWN_MASK
+ | BUTTON3_DOWN_MASK);
+
+ this.absX = absX;
+ this.absY = absY;
+ }
+
+ /**
* This method returns the X coordinate of the mouse position. This is
* relative to the source component.
*
@@ -280,6 +351,30 @@ public class MouseEvent extends InputEvent
}
/**
+ * @since 1.6
+ */
+ public Point getLocationOnScreen()
+ {
+ return new Point(absX, absY);
+ }
+
+ /**
+ * @since 1.6
+ */
+ public int getXOnScreen()
+ {
+ return absX;
+ }
+
+ /**
+ * @since 1.6
+ */
+ public int getYOnScreen()
+ {
+ return absY;
+ }
+
+ /**
* This method returns a <code>Point</code> for the x,y position of
* the mouse pointer. This is relative to the source component.
*
diff --git a/libjava/classpath/java/awt/peer/ComponentPeer.java b/libjava/classpath/java/awt/peer/ComponentPeer.java
index bc6e3a457f3..b498ddf664e 100644
--- a/libjava/classpath/java/awt/peer/ComponentPeer.java
+++ b/libjava/classpath/java/awt/peer/ComponentPeer.java
@@ -59,6 +59,8 @@ import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.awt.image.VolatileImage;
+import sun.awt.CausedFocusEvent;
+
/**
* Defines the methods that a component peer is required to implement.
*/
@@ -264,7 +266,7 @@ public interface ComponentPeer
/**
* Requests that this component receives the focus. This is called from
* {@link Component#requestFocus()}.
- *
+ *
* @specnote Part of the earlier 1.1 API, apparently replaced by argument
* form of the same method.
*/
@@ -518,4 +520,13 @@ public interface ComponentPeer
* @since 1.5
*/
void layout();
+
+
+ /**
+ * Requests the focus on the component.
+ */
+ boolean requestFocus(Component lightweightChild, boolean temporary,
+ boolean focusedWindowChangeAllowed, long time,
+ CausedFocusEvent.Cause cause);
+
}
diff --git a/libjava/classpath/java/awt/peer/FramePeer.java b/libjava/classpath/java/awt/peer/FramePeer.java
index 13435f8e4c5..929791489ac 100644
--- a/libjava/classpath/java/awt/peer/FramePeer.java
+++ b/libjava/classpath/java/awt/peer/FramePeer.java
@@ -71,5 +71,8 @@ public interface FramePeer extends WindowPeer
* @since 1.5
*/
void setBoundsPrivate(int x, int y, int width, int height);
+
+ Rectangle getBoundsPrivate();
+
} // interface FramePeer
diff --git a/libjava/classpath/java/awt/peer/RobotPeer.java b/libjava/classpath/java/awt/peer/RobotPeer.java
index db81c809d72..a11bfc7343d 100644
--- a/libjava/classpath/java/awt/peer/RobotPeer.java
+++ b/libjava/classpath/java/awt/peer/RobotPeer.java
@@ -50,5 +50,7 @@ public interface RobotPeer
void keyRelease (int keycode);
int getRGBPixel (int x, int y);
int[] getRGBPixels (Rectangle screen);
+ void dispose();
+
} // interface RobotPeer
diff --git a/libjava/classpath/java/awt/peer/WindowPeer.java b/libjava/classpath/java/awt/peer/WindowPeer.java
index 00d1035791a..e8b7d72015b 100644
--- a/libjava/classpath/java/awt/peer/WindowPeer.java
+++ b/libjava/classpath/java/awt/peer/WindowPeer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.peer;
+import java.awt.Dialog;
+
public interface WindowPeer extends ContainerPeer
{
void toBack();
@@ -57,5 +59,12 @@ public interface WindowPeer extends ContainerPeer
* @since 1.5
*/
boolean requestWindowFocus();
+
+ void setAlwaysOnTop(boolean alwaysOnTop);
+ void updateFocusableWindowState();
+ void setModalBlocked(Dialog blocker, boolean blocked);
+ void updateMinimumSize();
+ void updateIconImages();
+
} // interface WindowPeer
diff --git a/libjava/classpath/java/io/ObjectStreamClass.java b/libjava/classpath/java/io/ObjectStreamClass.java
index cc3d0a9e31f..1f3ba73dc99 100644
--- a/libjava/classpath/java/io/ObjectStreamClass.java
+++ b/libjava/classpath/java/io/ObjectStreamClass.java
@@ -799,6 +799,14 @@ outer:
result = cache.longValue();
else
{
+ // Note that we can't use Class.isEnum() here, because that returns
+ // false for java.lang.Enum and enum value sub classes.
+ if (Enum.class.isAssignableFrom(cl) || Proxy.isProxyClass(cl))
+ {
+ // Spec says that enums and dynamic proxies have
+ // a serialVersionUID of 0L.
+ return 0L;
+ }
try
{
result = getClassUIDFromField(cl);
diff --git a/libjava/classpath/java/lang/Float.java b/libjava/classpath/java/lang/Float.java
index 1e85922be72..dc39ec2af20 100644
--- a/libjava/classpath/java/lang/Float.java
+++ b/libjava/classpath/java/lang/Float.java
@@ -181,7 +181,7 @@ public final class Float extends Number implements Comparable<Float>
*/
public static String toString(float f)
{
- return VMDouble.toString(f, true);
+ return VMFloat.toString(f);
}
/**
@@ -331,9 +331,9 @@ public final class Float extends Number implements Comparable<Float>
*
* @param str the <code>String</code> to convert
* @return the <code>float</code> value of <code>s</code>
- * @throws NumberFormatException if <code>s</code> cannot be parsed as a
+ * @throws NumberFormatException if <code>str</code> cannot be parsed as a
* <code>float</code>
- * @throws NullPointerException if <code>s</code> is null
+ * @throws NullPointerException if <code>str</code> is null
* @see #MIN_VALUE
* @see #MAX_VALUE
* @see #POSITIVE_INFINITY
@@ -342,9 +342,7 @@ public final class Float extends Number implements Comparable<Float>
*/
public static float parseFloat(String str)
{
- // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
- // the infinitely precise decimal.
- return (float) Double.parseDouble(str);
+ return VMFloat.parseFloat(str);
}
/**
diff --git a/libjava/classpath/java/lang/Integer.java b/libjava/classpath/java/lang/Integer.java
index e38eb53edd3..62907ff7753 100644
--- a/libjava/classpath/java/lang/Integer.java
+++ b/libjava/classpath/java/lang/Integer.java
@@ -705,10 +705,13 @@ public final class Integer extends Number implements Comparable<Integer>
if (len == 0)
throw new NumberFormatException("string length is null");
int ch = str.charAt(index);
- if (ch == '-')
+ if (ch == '-' || ch == '+')
{
if (len == 1)
- throw new NumberFormatException("pure '-'");
+ if (ch == '-')
+ throw new NumberFormatException("pure '-'");
+ else if (ch == '+')
+ throw new NumberFormatException("pure '+'");
isNeg = true;
ch = str.charAt(++index);
}
diff --git a/libjava/classpath/java/lang/reflect/Array.java b/libjava/classpath/java/lang/reflect/Array.java
index 373bf204c8e..fee9f0172ee 100644
--- a/libjava/classpath/java/lang/reflect/Array.java
+++ b/libjava/classpath/java/lang/reflect/Array.java
@@ -147,8 +147,7 @@ public final class Array
{
if (dimensions.length <= 0)
throw new IllegalArgumentException ("Empty dimensions array.");
- return createMultiArray(componentType, dimensions,
- dimensions.length - 1);
+ return createMultiArray(componentType, dimensions, 0);
}
/**
@@ -638,10 +637,10 @@ public final class Array
private static Object createMultiArray(Class type, int[] dimensions,
int index)
{
- if (index == 0)
- return newInstance(type, dimensions[0]);
+ if (index == dimensions.length - 1)
+ return newInstance(type, dimensions[index]);
- Object toAdd = createMultiArray(type, dimensions, index - 1);
+ Object toAdd = createMultiArray(type, dimensions, index + 1);
Class thisType = toAdd.getClass();
Object[] retval
= (Object[]) VMArray.createObjectArray(thisType, dimensions[index]);
@@ -649,7 +648,7 @@ public final class Array
retval[0] = toAdd;
int i = dimensions[index];
while (--i > 0)
- retval[i] = createMultiArray(type, dimensions, index - 1);
+ retval[i] = createMultiArray(type, dimensions, index + 1);
return retval;
}
diff --git a/libjava/classpath/java/net/URI.java b/libjava/classpath/java/net/URI.java
index 43b10fc4195..4bf4db9856c 100644
--- a/libjava/classpath/java/net/URI.java
+++ b/libjava/classpath/java/net/URI.java
@@ -1,5 +1,5 @@
/* URI.java -- An URI class
- Copyright (C) 2002, 2004, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -968,12 +968,18 @@ public final class URI
return uri;
if (rawAuthority != null && !(rawAuthority.equals(uri.getRawAuthority())))
return uri;
- if (!(uri.getRawPath().startsWith(rawPath)))
- return uri;
+ String basePath = rawPath;
+ if (!(uri.getRawPath().equals(rawPath)))
+ {
+ if (!(basePath.endsWith("/")))
+ basePath = basePath.concat("/");
+ if (!(uri.getRawPath().startsWith(basePath)))
+ return uri;
+ }
try
{
return new URI(null, null,
- uri.getRawPath().substring(rawPath.length()),
+ uri.getRawPath().substring(basePath.length()),
uri.getRawQuery(), uri.getRawFragment());
}
catch (URISyntaxException e)
diff --git a/libjava/classpath/java/net/URLClassLoader.java b/libjava/classpath/java/net/URLClassLoader.java
index 6df2818c5c9..346f51c5dfa 100644
--- a/libjava/classpath/java/net/URLClassLoader.java
+++ b/libjava/classpath/java/net/URLClassLoader.java
@@ -262,10 +262,9 @@ public class URLClassLoader extends SecureClassLoader
super(parent);
this.securityContext = null;
this.factory = factory;
- addURLs(urls);
-
- // If this factory is still not in factoryCache, add it.
+ // If this factory is not yet in factoryCache, add it.
factoryCache.add(factory);
+ addURLs(urls);
}
// Methods
@@ -624,10 +623,7 @@ public class URLClassLoader extends SecureClassLoader
}
catch (IOException ioe)
{
- ClassNotFoundException cnfe;
- cnfe = new ClassNotFoundException(className + " not found in " + this);
- cnfe.initCause(ioe);
- throw cnfe;
+ throw new ClassNotFoundException(className + " not found in " + this, ioe);
}
}
diff --git a/libjava/classpath/java/nio/Buffer.java b/libjava/classpath/java/nio/Buffer.java
index 2c7e00dcb6e..c2569eea975 100644
--- a/libjava/classpath/java/nio/Buffer.java
+++ b/libjava/classpath/java/nio/Buffer.java
@@ -358,4 +358,65 @@ public abstract class Buffer
(arraylength < length + offset))
throw new IndexOutOfBoundsException ();
}
+
+ /**
+ * Returns the backing array of this buffer, if this buffer has one.
+ * Modification to the array are directly visible in this buffer and vice
+ * versa.
+ *
+ * <p>
+ * If this is a read-only buffer, then a {@link ReadOnlyBufferException} is
+ * thrown because exposing the array would allow to circumvent the read-only
+ * property. If this buffer doesn't have an array, then an
+ * {@link UnsupportedOperationException} is thrown. Applications should check
+ * if this buffer supports a backing array by calling {@link #hasArray}
+ * first.</p>
+ *
+ * @return the backing array of this buffer
+ *
+ * @throws ReadOnlyBufferException when this buffer is read only
+ * @throws UnsupportedOperationException when this buffer does not provide
+ * a backing array
+ *
+ * @since 1.6
+ */
+ public abstract Object array();
+
+ /**
+ * Returns <code>true</code> if this buffer can provide a backing array,
+ * <code>false</code> otherwise. When <code>true</code>, application code
+ * can call {@link #array()} to access this backing array.
+ *
+ * @return <code>true</code> if this buffer can provide a backing array,
+ * <code>false</code> otherwise
+ *
+ * @since 1.6
+ */
+ public abstract boolean hasArray();
+
+ /**
+ * For buffers that are backed by a Java array, this returns the offset
+ * into that array at which the buffer content starts.
+ *
+ * @return the offset into the backing array at which the buffer content
+ * starts
+ * @throws ReadOnlyBufferException when this buffer is read only
+ * @throws UnsupportedOperationException when this buffer does not provide
+ * a backing array
+ *
+ * @since 1.6
+ */
+ public abstract int arrayOffset();
+
+ /**
+ * Returns <code>true</code> when this buffer is direct, <code>false</code>
+ * otherwise. A direct buffer is usually backed by a raw memory area instead
+ * of a Java array.
+ *
+ * @return <code>true</code> when this buffer is direct, <code>false</code>
+ * otherwise
+ *
+ * @since 1.6
+ */
+ public abstract boolean isDirect();
}
diff --git a/libjava/classpath/java/nio/CharBuffer.java b/libjava/classpath/java/nio/CharBuffer.java
index 34f429f62f7..2feada4c817 100644
--- a/libjava/classpath/java/nio/CharBuffer.java
+++ b/libjava/classpath/java/nio/CharBuffer.java
@@ -107,20 +107,7 @@ public abstract class CharBuffer extends Buffer
*/
public static final CharBuffer wrap(CharSequence seq, int start, int end)
{
- // FIXME: implement better handling of java.lang.String.
- // Probably share data with String via reflection.
-
- int len = end - start;
-
- if( len < 0 )
- throw new IndexOutOfBoundsException();
-
- char[] buffer = new char[len];
-
- for (int i = 0; i < len; i++)
- buffer[i] = seq.charAt(i + start);
-
- return wrap(buffer, 0, len).asReadOnlyBuffer();
+ return new CharSequenceBuffer(seq, start, end);
}
/**
diff --git a/libjava/classpath/java/nio/CharSequenceBuffer.java b/libjava/classpath/java/nio/CharSequenceBuffer.java
new file mode 100644
index 00000000000..26aad1c38ac
--- /dev/null
+++ b/libjava/classpath/java/nio/CharSequenceBuffer.java
@@ -0,0 +1,208 @@
+/* CharBuffer.java --
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.nio;
+
+/**
+ * A CharBuffer that wraps a {@link CharSequence}.
+ */
+final class CharSequenceBuffer
+ extends CharBuffer
+{
+
+ /**
+ * The wrapped char sequence.
+ */
+ private CharSequence charSequence;
+
+ /**
+ * Creates a new CharSequenceBuffer.
+ *
+ * @param charSeq the CharSequence to wrap
+ * @param capacity the capacity
+ * @param limit the limit
+ * @param position the position
+ * @param mark the mark
+ * @param offs the offset
+ */
+ CharSequenceBuffer(CharSequence charSeq, int capacity, int limit,
+ int position, int mark, int offs)
+ {
+ super(capacity, limit, position, mark);
+ charSequence = charSeq;
+ array_offset = offs;
+ }
+
+ /**
+ * Creates a new instance of CharSequenceBuffer, wrapping the specified
+ * {@link CharSequence}.
+ *
+ * @param charSeq the char sequence to wrap
+ * @param start the start index in the char sequence
+ * @param end the end index in the char sequence
+ */
+ CharSequenceBuffer(CharSequence charSeq, int start, int end)
+ {
+ this(charSeq, charSeq.length(), end, start, -1, 0);
+ }
+
+ /**
+ * Returns a read-only view of this buffer.
+ */
+ public CharBuffer asReadOnlyBuffer()
+ {
+ return duplicate();
+ }
+
+ /**
+ * This buffer class is not writable by definition and thus throws
+ * a ReadOnlyBufferException here.
+ */
+ public CharBuffer compact()
+ {
+ throw new ReadOnlyBufferException();
+ }
+
+ /**
+ * Returns a duplicate of this buffer.
+ *
+ * @return a duplicate of this buffer
+ */
+ public CharBuffer duplicate()
+ {
+ return new CharSequenceBuffer(charSequence, cap, limit, pos, mark, 0);
+ }
+
+ /**
+ * Returns the character at the current position.
+ *
+ * @return the character at the current position
+ */
+ public char get()
+ {
+ if (pos >= limit)
+ throw new BufferUnderflowException();
+
+ return charSequence.charAt(array_offset + pos++);
+ }
+
+ /**
+ * Returns the character at the specified position.
+ *
+ * @return the character at the specified position
+ */
+ public char get(int index)
+ {
+ if (index < 0 || index >= limit)
+ throw new IndexOutOfBoundsException();
+
+ return charSequence.charAt(array_offset + index);
+ }
+
+ /**
+ * Cannot be direct, return <code>false</code> here.
+ *
+ * @return false
+ */
+ public boolean isDirect()
+ {
+ return false;
+ }
+
+ /**
+ * Returns the byte order of this buffer. This is always the native byte
+ * order.
+ *
+ * @return the byte order of this buffer
+ */
+ public ByteOrder order()
+ {
+ return ByteOrder.nativeOrder();
+ }
+
+ /**
+ * This buffer class is not writable by definition and thus throws
+ * a ReadOnlyBufferException here.
+ */
+ public CharBuffer put(char b)
+ {
+ throw new ReadOnlyBufferException();
+ }
+
+ /**
+ * This buffer class is not writable by definition and thus throws
+ * a ReadOnlyBufferException here.
+ */
+ public CharBuffer put(int index, char b)
+ {
+ throw new ReadOnlyBufferException();
+ }
+
+ /**
+ * Returns a slice of this buffer, exposing the current position and limit.
+ */
+ public CharBuffer slice()
+ {
+ int newCapacity = limit - pos;
+ return new CharSequenceBuffer(charSequence, newCapacity, newCapacity, 0,
+ -1, pos);
+ }
+
+ /**
+ * Returns a sub sequence from the specified start index and with the
+ * specified length.
+ *
+ * @param start the start index
+ * @param length the length of the sub sequence
+ */
+ public CharSequence subSequence(int start, int length)
+ {
+ int begin = array_offset + start + pos;
+ return charSequence.subSequence(begin, begin + length);
+ }
+
+ /**
+ * This kind of CharBuffer is read-only, so we return <code>true</code>
+ * here.
+ */
+ public boolean isReadOnly()
+ {
+ return true;
+ }
+
+}
diff --git a/libjava/classpath/java/nio/CharViewBufferImpl.java b/libjava/classpath/java/nio/CharViewBufferImpl.java
index 31983154461..33bbac8b000 100644
--- a/libjava/classpath/java/nio/CharViewBufferImpl.java
+++ b/libjava/classpath/java/nio/CharViewBufferImpl.java
@@ -133,7 +133,7 @@ class CharViewBufferImpl extends CharBuffer
public CharBuffer slice ()
{
// Create a sliced copy of this object that shares its content.
- return new CharViewBufferImpl (bb, (position () >> 1) + offset,
+ return new CharViewBufferImpl (bb, (position () << 1) + offset,
remaining (), remaining (), 0, -1,
isReadOnly (), endian);
}
diff --git a/libjava/classpath/java/nio/DoubleViewBufferImpl.java b/libjava/classpath/java/nio/DoubleViewBufferImpl.java
index e860f2f808d..d1399154a71 100644
--- a/libjava/classpath/java/nio/DoubleViewBufferImpl.java
+++ b/libjava/classpath/java/nio/DoubleViewBufferImpl.java
@@ -130,7 +130,7 @@ final class DoubleViewBufferImpl extends DoubleBuffer
public DoubleBuffer slice ()
{
- return new DoubleViewBufferImpl (bb, (position () >> 3) + offset,
+ return new DoubleViewBufferImpl (bb, (position () << 3) + offset,
remaining(), remaining(), 0, -1,
readOnly, endian);
}
diff --git a/libjava/classpath/java/nio/FloatViewBufferImpl.java b/libjava/classpath/java/nio/FloatViewBufferImpl.java
index 55770d52a29..8bb342d103d 100644
--- a/libjava/classpath/java/nio/FloatViewBufferImpl.java
+++ b/libjava/classpath/java/nio/FloatViewBufferImpl.java
@@ -131,7 +131,7 @@ final class FloatViewBufferImpl extends FloatBuffer
public FloatBuffer slice ()
{
// Create a sliced copy of this object that shares its content.
- return new FloatViewBufferImpl (bb, (position () >> 2) + offset,
+ return new FloatViewBufferImpl (bb, (position () << 2) + offset,
remaining(), remaining(), 0, -1,
readOnly, endian);
}
diff --git a/libjava/classpath/java/nio/IntViewBufferImpl.java b/libjava/classpath/java/nio/IntViewBufferImpl.java
index d0b0057c117..cd8307f3ebd 100644
--- a/libjava/classpath/java/nio/IntViewBufferImpl.java
+++ b/libjava/classpath/java/nio/IntViewBufferImpl.java
@@ -131,7 +131,7 @@ final class IntViewBufferImpl extends IntBuffer
public IntBuffer slice ()
{
// Create a sliced copy of this object that shares its content.
- return new IntViewBufferImpl (bb, (position () >> 2) + offset,
+ return new IntViewBufferImpl (bb, (position () << 2) + offset,
remaining(), remaining(), 0, -1,
readOnly, endian);
}
diff --git a/libjava/classpath/java/nio/LongViewBufferImpl.java b/libjava/classpath/java/nio/LongViewBufferImpl.java
index 9c3452ae809..eefbcbdc8dd 100644
--- a/libjava/classpath/java/nio/LongViewBufferImpl.java
+++ b/libjava/classpath/java/nio/LongViewBufferImpl.java
@@ -131,7 +131,7 @@ final class LongViewBufferImpl extends LongBuffer
public LongBuffer slice ()
{
// Create a sliced copy of this object that shares its content.
- return new LongViewBufferImpl (bb, (position () >> 3) + offset,
+ return new LongViewBufferImpl (bb, (position () << 3) + offset,
remaining(), remaining(), 0, -1,
readOnly, endian);
}
diff --git a/libjava/classpath/java/nio/ShortViewBufferImpl.java b/libjava/classpath/java/nio/ShortViewBufferImpl.java
index cdd559522ff..df7133612d2 100644
--- a/libjava/classpath/java/nio/ShortViewBufferImpl.java
+++ b/libjava/classpath/java/nio/ShortViewBufferImpl.java
@@ -131,7 +131,7 @@ final class ShortViewBufferImpl extends ShortBuffer
public ShortBuffer slice ()
{
// Create a sliced copy of this object that shares its content.
- return new ShortViewBufferImpl (bb, (position () >> 1) + offset,
+ return new ShortViewBufferImpl (bb, (position () << 1) + offset,
remaining(), remaining(), 0, -1,
readOnly, endian);
}
diff --git a/libjava/classpath/java/rmi/MarshalledObject.java b/libjava/classpath/java/rmi/MarshalledObject.java
index e1a30f5f005..180c0a9be29 100644
--- a/libjava/classpath/java/rmi/MarshalledObject.java
+++ b/libjava/classpath/java/rmi/MarshalledObject.java
@@ -58,7 +58,7 @@ import java.io.Serializable;
*
* @author unknown
*/
-public final class MarshalledObject
+public final class MarshalledObject<T>
implements Serializable
{
// The following fields are from Java API Documentation "Serialized form"
@@ -74,7 +74,7 @@ public final class MarshalledObject
* @param obj the object to marshal
* @throws IOException if an I/O error during serialization occurs.
*/
- public MarshalledObject(Object obj) throws IOException
+ public MarshalledObject(T obj) throws IOException
{
ByteArrayOutputStream objStream = new ByteArrayOutputStream();
RMIMarshalledObjectOutputStream stream =
@@ -136,14 +136,14 @@ public final class MarshalledObject
* @throws ClassNotFoundException if the class of the deserialized object
* cannot be found.
*/
- public Object get() throws IOException, ClassNotFoundException
+ public T get() throws IOException, ClassNotFoundException
{
if (objBytes == null)
return null;
RMIMarshalledObjectInputStream stream =
new RMIMarshalledObjectInputStream(objBytes, locBytes);
- return stream.readObject();
+ return (T) stream.readObject();
}
public int hashCode()
diff --git a/libjava/classpath/java/rmi/activation/Activatable.java b/libjava/classpath/java/rmi/activation/Activatable.java
index 472c65c1110..0f201cacf63 100644
--- a/libjava/classpath/java/rmi/activation/Activatable.java
+++ b/libjava/classpath/java/rmi/activation/Activatable.java
@@ -103,7 +103,7 @@ public abstract class Activatable
* @throws ActivationException if the activation failed
* @throws RemoteException if the remote call failed.
*/
- protected Activatable(String codebase, MarshalledObject data,
+ protected Activatable(String codebase, MarshalledObject<?> data,
boolean restart, int port) throws ActivationException,
RemoteException
{
@@ -133,7 +133,7 @@ public abstract class Activatable
* @throws ActivationException if the activation failed
* @throws RemoteException if the remote call failed.
*/
- protected Activatable(String codebase, MarshalledObject data,
+ protected Activatable(String codebase, MarshalledObject<?> data,
boolean restart, int port, RMIClientSocketFactory csf,
RMIServerSocketFactory ssf) throws ActivationException,
RemoteException
@@ -314,7 +314,7 @@ public abstract class Activatable
* @throws RemoteException if the registration or export fails
*/
public static ActivationID exportObject(Remote obj, String location,
- MarshalledObject data,
+ MarshalledObject<?> data,
boolean restart, int port)
throws ActivationException, RemoteException
{
diff --git a/libjava/classpath/java/rmi/activation/ActivationDesc.java b/libjava/classpath/java/rmi/activation/ActivationDesc.java
index b8616562fa5..ae2b78eca8e 100644
--- a/libjava/classpath/java/rmi/activation/ActivationDesc.java
+++ b/libjava/classpath/java/rmi/activation/ActivationDesc.java
@@ -80,7 +80,7 @@ public final class ActivationDesc
/**
* The object specific intitalization data.
*/
- private MarshalledObject data;
+ private MarshalledObject<?> data;
/**
* The start mode.
@@ -95,7 +95,7 @@ public final class ActivationDesc
* @param location the code base URL
* @param data the object initialization data, contained in a marshalled form
*/
- public ActivationDesc(String className, String location, MarshalledObject data)
+ public ActivationDesc(String className, String location, MarshalledObject<?> data)
throws ActivationException
{
this(ActivationGroup.currentGroupID(), className, location, data, false);
@@ -115,7 +115,7 @@ public final class ActivationDesc
* object is normally activated on demand).
*/
public ActivationDesc(String className, String location,
- MarshalledObject data, boolean restart)
+ MarshalledObject<?> data, boolean restart)
throws ActivationException
{
this(ActivationGroup.currentGroupID(), className, location, data, restart);
@@ -131,7 +131,7 @@ public final class ActivationDesc
* @param data the object initialization data, contained in a marshalled form
*/
public ActivationDesc(ActivationGroupID groupID, String className,
- String location, MarshalledObject data)
+ String location, MarshalledObject<?> data)
{
this(groupID, className, location, data, false);
}
@@ -150,7 +150,7 @@ public final class ActivationDesc
* object is normally activated on demand).
*/
public ActivationDesc(ActivationGroupID groupID, String className,
- String location, MarshalledObject data, boolean restart)
+ String location, MarshalledObject<?> data, boolean restart)
{
this.groupid = groupID;
this.classname = className;
@@ -184,7 +184,7 @@ public final class ActivationDesc
return location;
}
- public MarshalledObject getData()
+ public MarshalledObject<?> getData()
{
return data;
}
diff --git a/libjava/classpath/java/rmi/activation/ActivationGroup.java b/libjava/classpath/java/rmi/activation/ActivationGroup.java
index 5e7bbd20998..ad5a05d01a9 100644
--- a/libjava/classpath/java/rmi/activation/ActivationGroup.java
+++ b/libjava/classpath/java/rmi/activation/ActivationGroup.java
@@ -314,7 +314,8 @@ public abstract class ActivationGroup
* @throws UnknownObjectException if such object is not registered
* @throws RemoteException on remote call (to monitor) error
*/
- protected void activeObject(ActivationID id, MarshalledObject mObject)
+ protected void activeObject(ActivationID id,
+ MarshalledObject<? extends Remote> mObject)
throws ActivationException, UnknownObjectException, RemoteException
{
if (monitor!=null)
diff --git a/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java b/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java
index 76ac63b6391..bf7445f17bb 100644
--- a/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java
+++ b/libjava/classpath/java/rmi/activation/ActivationGroupDesc.java
@@ -199,7 +199,7 @@ public final class ActivationGroupDesc
/**
* The group initialization data.
*/
- final MarshalledObject data;
+ final MarshalledObject<?> data;
/**
* The path to the group jre and the parameters of this jre, may be
@@ -252,7 +252,7 @@ public final class ActivationGroupDesc
* options.
*/
public ActivationGroupDesc(String aClassName, String aLocation,
- MarshalledObject aData, Properties aProperties,
+ MarshalledObject<?> aData, Properties aProperties,
ActivationGroupDesc.CommandEnvironment environment)
{
className = aClassName;
@@ -288,7 +288,7 @@ public final class ActivationGroupDesc
*
* @return the group intialization data in the marshalled form.
*/
- public MarshalledObject getData()
+ public MarshalledObject<?> getData()
{
return data;
}
diff --git a/libjava/classpath/java/rmi/activation/ActivationInstantiator.java b/libjava/classpath/java/rmi/activation/ActivationInstantiator.java
index a0f04ed36cd..3f4b557cb91 100644
--- a/libjava/classpath/java/rmi/activation/ActivationInstantiator.java
+++ b/libjava/classpath/java/rmi/activation/ActivationInstantiator.java
@@ -68,6 +68,6 @@ public interface ActivationInstantiator
* @throws ActivationException if the activation fails
* @throws RemoteException if the remote call fails
*/
- MarshalledObject newInstance (ActivationID id, ActivationDesc desc)
+ MarshalledObject<? extends Remote> newInstance (ActivationID id, ActivationDesc desc)
throws ActivationException, RemoteException;
}
diff --git a/libjava/classpath/java/rmi/activation/ActivationMonitor.java b/libjava/classpath/java/rmi/activation/ActivationMonitor.java
index e9f43ae1a94..93def8c441a 100644
--- a/libjava/classpath/java/rmi/activation/ActivationMonitor.java
+++ b/libjava/classpath/java/rmi/activation/ActivationMonitor.java
@@ -59,7 +59,7 @@ public interface ActivationMonitor extends Remote
* @throws UnknownObjectException is such object is not known in this group
* @throws RemoteException if remote call fails
*/
- void activeObject (ActivationID id, MarshalledObject obj)
+ void activeObject (ActivationID id, MarshalledObject<? extends Remote> obj)
throws UnknownObjectException, RemoteException;
/**
diff --git a/libjava/classpath/java/rmi/activation/Activator.java b/libjava/classpath/java/rmi/activation/Activator.java
index 57a4d16a723..d0de12d8c97 100644
--- a/libjava/classpath/java/rmi/activation/Activator.java
+++ b/libjava/classpath/java/rmi/activation/Activator.java
@@ -67,6 +67,6 @@ public interface Activator
* @throws ActivationException if the activation has failed due other reason
* @throws RemoteException if the remote call has failed.
*/
- MarshalledObject activate (ActivationID id, boolean force)
+ MarshalledObject<? extends Remote> activate (ActivationID id, boolean force)
throws ActivationException, UnknownObjectException, RemoteException;
}
diff --git a/libjava/classpath/java/util/Arrays.java b/libjava/classpath/java/util/Arrays.java
index 9443ced5bdd..e5f772778c2 100644
--- a/libjava/classpath/java/util/Arrays.java
+++ b/libjava/classpath/java/util/Arrays.java
@@ -3941,7 +3941,8 @@ public class Arrays
if (from > to)
throw new IllegalArgumentException("The initial index is after " +
"the final index.");
- T[] newArray = (T[]) new Object[to - from];
+ Class elemType = original.getClass().getComponentType();
+ T[] newArray = (T[]) Array.newInstance(elemType, to - from);
if (to > original.length)
{
System.arraycopy(original, from, newArray, 0,
diff --git a/libjava/classpath/java/util/Currency.java b/libjava/classpath/java/util/Currency.java
index a0933eca2f6..b5da13c37f1 100644
--- a/libjava/classpath/java/util/Currency.java
+++ b/libjava/classpath/java/util/Currency.java
@@ -273,6 +273,11 @@ public final class Currency
throw new
NullPointerException("The locale or its country is null.");
}
+
+ /* Check that country of locale given is valid. */
+ if (country.length() != 2)
+ throw new IllegalArgumentException();
+
/* Attempt to get the currency from the cache */
String code = (String) countryMap.get(country);
if (code == null)
diff --git a/libjava/classpath/java/util/EnumMap.java b/libjava/classpath/java/util/EnumMap.java
index 477dff8e0ab..b7187b935f2 100644
--- a/libjava/classpath/java/util/EnumMap.java
+++ b/libjava/classpath/java/util/EnumMap.java
@@ -1,5 +1,5 @@
/* EnumMap.java - Map where keys are enum constants
- Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -140,7 +140,8 @@ public class EnumMap<K extends Enum<K>, V>
Enum<K> e = (Enum<K>) key;
if (e.getDeclaringClass() != enumClass)
return null;
- return store[e.ordinal()];
+ V o = store[e.ordinal()];
+ return o == emptySlot ? null : o;
}
public V put(K key, V value)
@@ -387,8 +388,18 @@ public class EnumMap<K extends Enum<K>, V>
public EnumMap<K, V> clone()
{
- /* This constructor provides this functionality */
- return new EnumMap(this);
+ EnumMap<K, V> result;
+ try
+ {
+ result = (EnumMap<K, V>) super.clone();
+ }
+ catch (CloneNotSupportedException ignore)
+ {
+ // Can't happen.
+ result = null;
+ }
+ result.store = (V[]) store.clone();
+ return result;
}
}
diff --git a/libjava/classpath/java/util/EnumSet.java b/libjava/classpath/java/util/EnumSet.java
index 44ae370ba0b..31b03684ab6 100644
--- a/libjava/classpath/java/util/EnumSet.java
+++ b/libjava/classpath/java/util/EnumSet.java
@@ -41,26 +41,83 @@ package java.util;
import java.io.Serializable;
/**
+ * <p>
+ * Provides an efficient mechanism for recording a set of enumeration
+ * constants. As enumerations have a known set of possible values, certain
+ * assumptions can be made when creating a set of constants. The maximum
+ * size of the set will always be equal to the number of constants, and each
+ * value will always be one of these constants. As a result, the set only needs
+ * to store whether a particular constant is present or not rather than the
+ * values themselves. Each constant can thus be represented by a single bit.
+ * </p>
+ * <p>
+ * This class is designed to provide an alternative to using integer bit flags
+ * by providing a typesafe {@link Collection} interface with an underlying
+ * implementation that utilises the assumptions above to give an equivalent level
+ * of efficiency. The values in a {@link EnumSet} must all be from the same
+ * {@link Enum} type, which allows the contents to be packed into a bit vector.
+ * A containment test is then simply a matter of inspecting the appropriate bit, while
+ * addition involves setting the same. Such basic operations take place in constant
+ * time.
+ * </p>
+ * <p>
+ * The {@link Iterator} implementation traverses the values in the natural order
+ * of the enumeration provided by each constant's {@link Enum#ordinal()}. It is
+ * <emph>weakly consistent</emph> and will not throw a {@link ConcurrentModificationException}.
+ * This means that concurrent changes to the set may or may not be noticeable during
+ * traversal.
+ * </p>
+ * <p>
+ * As is usual with most collections, the set is not synchronized by default. This
+ * can be remedied by using the {@link Collections#synchronizedSet(Set)} method. Null
+ * elements are not supported and attempts to add one will throw a {@link NullPointerException}.
+ * </p>
+ *
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @author Dalibor Topic (robilad@kaffe.org)
* @since 1.5
*/
-// FIXME: serialization is special.
-public class EnumSet<T extends Enum<T>>
+// FIXME: serialization is special, uses SerializationProxy.
+// of(E e) is the 'bottom' method that creates a real EnumSet.
+public abstract class EnumSet<T extends Enum<T>>
extends AbstractSet<T>
implements Cloneable, Serializable
{
private static final long serialVersionUID = 4782406773684236311L;
+ // These fields could go into the anonymous inner class in of(E),
+ // complementOf would need to be refactored then, though.
+ /**
+ * The store which maintains the bits used to represent
+ * the enumeration constants.
+ */
BitSet store;
+
+ /**
+ * The cardinality of the set (the current number
+ * of bits set).
+ */
int cardinality;
+
+ /**
+ * The enumeration used by this set.
+ */
Class<T> enumClass;
+ /**
+ * Empty package-private constructor
+ */
EnumSet()
{
}
+ /**
+ * Returns a clone of the set.
+ *
+ * @return a clone of the set.
+ */
public EnumSet<T> clone()
{
EnumSet<T> r;
@@ -78,288 +135,384 @@ public class EnumSet<T extends Enum<T>>
return r;
}
- public int size()
+ /**
+ * Returns a set for the given enumeration type where
+ * all the constants are present.
+ *
+ * @param eltType the type of enumeration to use for the set.
+ * @return an {@link EnumSet} with all the bits set.
+ * @throws NullPointerException if the element type is <code>null</code>.
+ */
+ public static <T extends Enum<T>> EnumSet<T> allOf(Class<T> eltType)
{
- return cardinality;
+ // create an EnumSet from the list of values of the type
+ return copyOf(Arrays.asList(eltType.getEnumConstants()));
}
- public Iterator<T> iterator()
+ /**
+ * Returns a set for the given enumeration type where
+ * none of the constants are present.
+ *
+ * @param eltType the type of enumeration to use for the set.
+ * @return an {@link EnumSet} with none of the bits set.
+ * @throws NullPointerException if the element type is <code>null</code>.
+ */
+ public static <T extends Enum<T>> EnumSet<T> noneOf(Class<T> eltType)
{
- return new Iterator<T>()
- {
- int next = -1;
- int count = 0;
+ return complementOf(allOf(eltType));
+ }
- public boolean hasNext()
- {
- return count < cardinality;
- }
+ /**
+ * Returns a clone of the given set.
+ *
+ * @param other the set to clone.
+ * @return an {@link EnumSet} that is a clone of the given set.
+ * @throws NullPointerException if <code>other</code> is <code>null</code>.
+ */
+ public static <T extends Enum<T>> EnumSet<T> copyOf(EnumSet<T> other)
+ {
+ return other.clone();
+ }
- public T next()
- {
- next = store.nextSetBit(next + 1);
- ++count;
- return enumClass.getEnumConstants()[next];
- }
+ /**
+ * Creates an {@link EnumSet} using the contents of the given collection.
+ * If the collection is also an {@link EnumSet}, this method works the
+ * same as {@link #copyOf(EnumSet)}. Otherwise, the elements of the collection
+ * are inspected and used to populate the new set.
+ *
+ * @param other the collection to use to populate the new set.
+ * @return an {@link EnumSet} containing elements from the given collection.
+ * @throws NullPointerException if <code>other</code> is <code>null</code>.
+ * @throws IllegalArgumentException if the collection is empty.
+ */
+ public static <T extends Enum<T>> EnumSet<T> copyOf(Collection<T> other)
+ {
+ if (other instanceof EnumSet)
+ return copyOf((EnumSet<T>) other);
+ if (other.isEmpty())
+ throw new IllegalArgumentException("Collection is empty");
- public void remove()
+ EnumSet<T> r = null;
+
+ for (T val : other)
{
- if (! store.get(next))
- {
- store.clear(next);
- --cardinality;
- }
+ if (r == null)
+ r = of(val);
+ else
+ r.add(val);
}
- };
+
+ return r;
}
- public boolean add(T val)
+ /**
+ * Returns a set which is the inverse of the supplied set.
+ * If a constant is present in the current set, it will not be
+ * present in the new set and vice versa.
+ *
+ * @param other the set to provide the complement of.
+ * @return an {@link EnumSet} which is the inverse of the current one.
+ * @throws NullPointerException if <code>other</code> is <code>null</code>.
+ */
+ public static <T extends Enum<T>> EnumSet<T> complementOf(EnumSet<T> other)
{
- if (store.get(val.ordinal()))
- return false;
- store.set(val.ordinal());
- ++cardinality;
- return true;
+ EnumSet<T> r = other.clone();
+ int numConstants = r.enumClass.getEnumConstants().length;
+ r.store.flip(0, numConstants);
+ r.cardinality = numConstants - other.cardinality;
+ return r;
}
- public boolean addAll(Collection<? extends T> c)
+ /**
+ * Creates a new {@link EnumSet} populated with the given element.
+ *
+ * @param first the element to use to populate the new set.
+ * @return an {@link EnumSet} containing the element.
+ * @throws NullPointerException if <code>first</code> is <code>null</code>.
+ */
+ public static <T extends Enum<T>> EnumSet<T> of(T first)
{
- boolean result = false;
- if (c instanceof EnumSet)
+ EnumSet<T> r = new EnumSet<T>()
+ {
+ public boolean add(T val)
{
- EnumSet<T> other = (EnumSet<T>) c;
- if (enumClass == other.enumClass)
+ if (store.get(val.ordinal()))
+ return false;
+
+ store.set(val.ordinal());
+ ++cardinality;
+ return true;
+ }
+
+ public boolean addAll(Collection<? extends T> c)
+ {
+ boolean result = false;
+ if (c instanceof EnumSet)
+ {
+ EnumSet<T> other = (EnumSet<T>) c;
+ if (enumClass == other.enumClass)
{
store.or(other.store);
int save = cardinality;
cardinality = store.cardinality();
result = save != cardinality;
}
- }
- else
- {
- for (T val : c)
+ }
+ else
+ {
+ for (T val : c)
{
if (add (val))
- result = true;
+ result = true;
}
+ }
+ return result;
}
- return result;
- }
- public void clear()
- {
- store.clear();
- cardinality = 0;
- }
-
- public boolean contains(Object o)
- {
- if (! (o instanceof Enum))
- return false;
- Enum<T> e = (Enum<T>) o;
- if (e.getDeclaringClass() != enumClass)
- return false;
- return store.get(e.ordinal());
- }
-
- public boolean containsAll(Collection<?> c)
- {
- if (c instanceof EnumSet)
+ public void clear()
{
- EnumSet<T> other = (EnumSet<T>) c;
- if (enumClass == other.enumClass)
- return store.containsAll(other.store);
- return false;
+ store.clear();
+ cardinality = 0;
}
- return super.containsAll(c);
- }
- public boolean remove(Object o)
- {
- if (! (o instanceof Enum))
- return false;
- Enum<T> e = (Enum<T>) o;
- if (e.getDeclaringClass() != enumClass)
- return false;
- store.clear(e.ordinal());
- --cardinality;
- return true;
- }
-
- public boolean removeAll(Collection<?> c)
- {
- if (c instanceof EnumSet)
+ public boolean contains(Object o)
{
- EnumSet<T> other = (EnumSet<T>) c;
- if (enumClass != other.enumClass)
+ if (! (o instanceof Enum))
return false;
- store.andNot(other.store);
- int save = cardinality;
- cardinality = store.cardinality();
- return save != cardinality;
+
+ Enum<T> e = (Enum<T>) o;
+ if (e.getDeclaringClass() != enumClass)
+ return false;
+
+ return store.get(e.ordinal());
}
- return super.removeAll(c);
- }
- public boolean retainAll(Collection<?> c)
- {
- if (c instanceof EnumSet)
+ public boolean containsAll(Collection<?> c)
{
- EnumSet<T> other = (EnumSet<T>) c;
- if (enumClass != other.enumClass)
+ if (c instanceof EnumSet)
+ {
+ EnumSet<T> other = (EnumSet<T>) c;
+ if (enumClass == other.enumClass)
+ return store.containsAll(other.store);
+
return false;
- store.and(other.store);
- int save = cardinality;
- cardinality = store.cardinality();
- return save != cardinality;
+ }
+ return super.containsAll(c);
}
- return super.retainAll(c);
- }
- public static <T extends Enum<T>> EnumSet<T> allOf(Class<T> eltType)
- {
- EnumSet<T> r = new EnumSet<T>();
- r.store = new BitSet(eltType.getEnumConstants().length);
- r.store.set(0, r.store.size());
- r.cardinality = r.store.size();
- r.enumClass = eltType;
- return r;
- }
+ public Iterator<T> iterator()
+ {
+ return new Iterator<T>()
+ {
+ int next = -1;
+ int count = 0;
- public static <T extends Enum<T>> EnumSet<T> noneOf(Class<T> eltType)
- {
- EnumSet<T> r = new EnumSet<T>();
- r.store = new BitSet(eltType.getEnumConstants().length);
- r.enumClass = eltType;
- return r;
- }
+ public boolean hasNext()
+ {
+ return count < cardinality;
+ }
- public static <T extends Enum<T>> EnumSet<T> copyOf(EnumSet<T> other)
- {
- // We can't just use `other.clone' since we don't want to make a
- // subclass.
- EnumSet<T> r = new EnumSet<T>();
- r.store = (BitSet) other.store.clone();
- r.cardinality = other.cardinality;
- r.enumClass = other.enumClass;
- return r;
- }
+ public T next()
+ {
+ next = store.nextSetBit(next + 1);
+ ++count;
+ return enumClass.getEnumConstants()[next];
+ }
- public static <T extends Enum<T>> EnumSet<T> copyOf(Collection<T> other)
- {
- if (other instanceof EnumSet)
- return copyOf((EnumSet<T>) other);
- EnumSet<T> r = new EnumSet<T>();
- for (T val : other)
- {
- if (r.store == null)
+ public void remove()
{
- r.enumClass = val.getDeclaringClass();
- r.store = new BitSet(r.enumClass.getEnumConstants().length);
+ if (! store.get(next))
+ {
+ store.clear(next);
+ --cardinality;
+ }
}
- r.store.set(val.ordinal());
+ };
}
- // The collection must contain at least one element.
- if (r.store == null)
- throw new IllegalArgumentException();
- r.cardinality = r.store.cardinality();
- return r;
- }
- public static <T extends Enum<T>> EnumSet<T> complementOf(EnumSet<T> other)
- {
- EnumSet<T> r = new EnumSet<T>();
- r.store = (BitSet) other.store.clone();
- r.store.flip(0, r.store.size());
- r.cardinality = r.store.size() - other.cardinality;
- r.enumClass = other.enumClass;
- return r;
- }
+ public boolean remove(Object o)
+ {
+ if (! (o instanceof Enum))
+ return false;
- public static <T extends Enum<T>> EnumSet<T> of(T first)
- {
- EnumSet<T> r = new EnumSet<T>();
+ Enum<T> e = (Enum<T>) o;
+ if (e.getDeclaringClass() != enumClass)
+ return false;
+
+ store.clear(e.ordinal());
+ --cardinality;
+ return true;
+ }
+
+ public boolean removeAll(Collection<?> c)
+ {
+ if (c instanceof EnumSet)
+ {
+ EnumSet<T> other = (EnumSet<T>) c;
+ if (enumClass != other.enumClass)
+ return false;
+
+ store.andNot(other.store);
+ int save = cardinality;
+ cardinality = store.cardinality();
+ return save != cardinality;
+ }
+ return super.removeAll(c);
+ }
+
+ public boolean retainAll(Collection<?> c)
+ {
+ if (c instanceof EnumSet)
+ {
+ EnumSet<T> other = (EnumSet<T>) c;
+ if (enumClass != other.enumClass)
+ return false;
+
+ store.and(other.store);
+ int save = cardinality;
+ cardinality = store.cardinality();
+ return save != cardinality;
+ }
+ return super.retainAll(c);
+ }
+
+ public int size()
+ {
+ return cardinality;
+ }
+ };
+
+ // initialize the class
r.enumClass = first.getDeclaringClass();
r.store = new BitSet(r.enumClass.getEnumConstants().length);
- r.store.set(first.ordinal());
- r.cardinality = 1;
+
+ r.add(first);
return r;
}
+ /**
+ * Creates a new {@link EnumSet} populated with the given two elements.
+ *
+ * @param first the first element to use to populate the new set.
+ * @param second the second element to use.
+ * @return an {@link EnumSet} containing the elements.
+ * @throws NullPointerException if any of the parameters are <code>null</code>.
+ */
public static <T extends Enum<T>> EnumSet<T> of(T first, T second)
{
- EnumSet<T> r = new EnumSet<T>();
- r.enumClass = first.getDeclaringClass();
- r.store = new BitSet(r.enumClass.getEnumConstants().length);
- r.store.set(first.ordinal());
- r.store.set(second.ordinal());
- r.cardinality = r.store.cardinality();
+ EnumSet<T> r = of(first);
+ r.add(second);
return r;
}
+ /**
+ * Creates a new {@link EnumSet} populated with the given three elements.
+ *
+ * @param first the first element to use to populate the new set.
+ * @param second the second element to use.
+ * @param third the third element to use.
+ * @return an {@link EnumSet} containing the elements.
+ * @throws NullPointerException if any of the parameters are <code>null</code>.
+ */
public static <T extends Enum<T>> EnumSet<T> of(T first, T second, T third)
{
- EnumSet<T> r = new EnumSet<T>();
- r.enumClass = first.getDeclaringClass();
- r.store = new BitSet(r.enumClass.getEnumConstants().length);
- r.store.set(first.ordinal());
- r.store.set(second.ordinal());
- r.store.set(third.ordinal());
- r.cardinality = r.store.cardinality();
+ EnumSet<T> r = of(first, second);
+ r.add(third);
return r;
}
+ /**
+ * Creates a new {@link EnumSet} populated with the given four elements.
+ *
+ * @param first the first element to use to populate the new set.
+ * @param second the second element to use.
+ * @param third the third element to use.
+ * @param fourth the fourth element to use.
+ * @return an {@link EnumSet} containing the elements.
+ * @throws NullPointerException if any of the parameters are <code>null</code>.
+ */
public static <T extends Enum<T>> EnumSet<T> of(T first, T second, T third,
T fourth)
{
- EnumSet<T> r = new EnumSet<T>();
- r.enumClass = first.getDeclaringClass();
- r.store = new BitSet(r.enumClass.getEnumConstants().length);
- r.store.set(first.ordinal());
- r.store.set(second.ordinal());
- r.store.set(third.ordinal());
- r.store.set(fourth.ordinal());
- r.cardinality = r.store.cardinality();
+ EnumSet<T> r = of(first, second, third);
+ r.add(fourth);
return r;
}
+ /**
+ * Creates a new {@link EnumSet} populated with the given five elements.
+ *
+ * @param first the first element to use to populate the new set.
+ * @param second the second element to use.
+ * @param third the third element to use.
+ * @param fourth the fourth element to use.
+ * @param fifth the fifth element to use.
+ * @return an {@link EnumSet} containing the elements.
+ * @throws NullPointerException if any of the parameters are <code>null</code>.
+ */
public static <T extends Enum<T>> EnumSet<T> of(T first, T second, T third,
T fourth, T fifth)
{
- EnumSet<T> r = new EnumSet<T>();
- r.enumClass = first.getDeclaringClass();
- r.store = new BitSet(r.enumClass.getEnumConstants().length);
- r.store.set(first.ordinal());
- r.store.set(second.ordinal());
- r.store.set(third.ordinal());
- r.store.set(fourth.ordinal());
- r.store.set(fifth.ordinal());
- r.cardinality = r.store.cardinality();
+ EnumSet<T> r = of(first, second, third, fourth);
+ r.add(fifth);
return r;
}
+ /**
+ * Creates a new {@link EnumSet} populated with the given elements.
+ *
+ * @param first the first element to use to populate the new set.
+ * @param rest the other elements to use.
+ * @return an {@link EnumSet} containing the elements.
+ * @throws NullPointerException if any of the parameters are <code>null</code>.
+ */
public static <T extends Enum<T>> EnumSet<T> of(T first, T... rest)
{
- EnumSet<T> r = new EnumSet<T>();
- r.enumClass = first.getDeclaringClass();
- r.store = new BitSet(r.enumClass.getEnumConstants().length);
- r.store.set(first.ordinal());
+ EnumSet<T> r = noneOf(first.getDeclaringClass());
+ r.add(first);
for (T val : rest)
- r.store.set(val.ordinal());
- r.cardinality = r.store.cardinality();
+ r.add(val);
return r;
}
+ /**
+ * Creates a new {@link EnumSet} using the enumeration constants
+ * starting from {@code from} and ending at {@code to} inclusive.
+ * The two may be the same, but they must be in the correct order.
+ * So giving the first constant twice would give a set with just that
+ * constant set, while supplying the first and second constant will give
+ * a set with those two elements. However, specifying the second as
+ * the {@code from} element followed by an earlier element as the
+ * {@code to} element will result in an error.
+ *
+ * @param from the element to start from.
+ * @param to the element to end at (may be the same as {@code from}.
+ * @return an {@link EnumSet} containing the specified range of elements.
+ * @throws NullPointerException if any of the parameters are <code>null</code>.
+ * @throws IllegalArgumentException if {@code first.compareTo(last) > 0}.
+ */
public static <T extends Enum<T>> EnumSet<T> range(T from, T to)
{
if (from.compareTo(to) > 0)
throw new IllegalArgumentException();
- EnumSet<T> r = new EnumSet<T>();
- r.store = new BitSet(from.getDeclaringClass().getEnumConstants().length);
- r.store.set(from.ordinal(), to.ordinal() + 1);
- r.enumClass = from.getDeclaringClass();
- r.cardinality = to.ordinal() - from.ordinal() + 1;
+ Class<T> type = from.getDeclaringClass();
+ EnumSet<T> r = noneOf(type);
+
+ T[] values = type.getEnumConstants();
+ // skip over values until start of range is found
+ int i = 0;
+ while (from != values[i])
+ i++;
+
+ // add values until end of range is found
+ while (to != values[i]) {
+ r.add(values[i]);
+ i++;
+ }
+
+ // add end of range
+ r.add(to);
+
return r;
}
}
diff --git a/libjava/classpath/java/util/SimpleTimeZone.java b/libjava/classpath/java/util/SimpleTimeZone.java
index 14821ba0274..4f1840173e1 100644
--- a/libjava/classpath/java/util/SimpleTimeZone.java
+++ b/libjava/classpath/java/util/SimpleTimeZone.java
@@ -999,7 +999,7 @@ public class SimpleTimeZone extends TimeZone
/**
* Serializes this object to a stream. @serialdata The object is
* first written in the old JDK 1.1 format, so that it can be read
- * by by the old classes. This means, that the
+ * by the old classes. This means, that the
* <code>start/endDay(OfWeek)</code>-Fields are written in the
* DOW_IN_MONTH_MODE rule, since this was the only supported rule
* in 1.1.
diff --git a/libjava/classpath/javax/management/ObjectName.java b/libjava/classpath/javax/management/ObjectName.java
index a3f30efffb4..4ea21cdc7ae 100644
--- a/libjava/classpath/javax/management/ObjectName.java
+++ b/libjava/classpath/javax/management/ObjectName.java
@@ -71,7 +71,7 @@ import java.io.ObjectOutputStream;
* is separated by commas, and largely consists of unordered key-value
* pairs, separated by an equals sign ('='). At most one element may
* be an asterisk ('*'), which turns the {@link ObjectName} instance
- * into a <emph>property pattern</emph>. In this situation, the pattern
+ * into a <emph>property list pattern</emph>. In this situation, the pattern
* matches a name if the name contains at least those key-value pairs
* given and has the same domain.
* </p>
@@ -89,6 +89,13 @@ import java.io.ObjectOutputStream;
* (after expansion) are considered part of the value.
* </p>
* <p>
+ * Both quoted and unquoted values may contain the wildcard characters
+ * '?' and '*'. A name with at least one value containing a wildcard
+ * character is known as a <emph>property value pattern</emph>. A
+ * name is generally a <emph>property pattern</emph> if it is either
+ * a <emph>property list pattern</emph> or <emph>property value pattern</emph>.
+ * </p>
+ * <p>
* Spaces are maintained within the different parts of the name. Thus,
* '<code>domain: key1 = value1 </code>' has a key ' key1 ' with value
* ' value1 '. Newlines are disallowed, except where escaped in quoted
@@ -127,9 +134,14 @@ public class ObjectName
private transient String propertyListString;
/**
- * True if this object name is a property pattern.
+ * True if this object name is a property list pattern.
*/
- private transient boolean propertyPattern;
+ private transient boolean propertyListPattern;
+
+ /**
+ * True if this object name is a property value pattern.
+ */
+ private transient boolean propertyValuePattern;
/**
* The management server associated with this object name.
@@ -202,10 +214,10 @@ public class ObjectName
{
if (pairs[a].equals("*"))
{
- if (propertyPattern)
+ if (propertyListPattern)
throw new MalformedObjectNameException("Multiple wildcards " +
"in properties.");
- propertyPattern = true;
+ propertyListPattern = true;
continue;
}
int sep = pairs[a].indexOf('=');
@@ -291,16 +303,17 @@ public class ObjectName
if (domain.indexOf('\n') != -1)
throw new MalformedObjectNameException("The domain includes a newline " +
"character.");
- char[] chars = new char[] { '\n', ':', ',', '*', '?', '=' };
+ char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' };
+ char[] valchars = new char[] { '\n', ':', ',', '=' };
Iterator i = properties.entrySet().iterator();
while (i.hasNext())
{
Map.Entry entry = (Map.Entry) i.next();
String key = (String) entry.getKey();
- for (int a = 0; a < chars.length; ++a)
- if (key.indexOf(chars[a]) != -1)
+ for (int a = 0; a < keychars.length; ++a)
+ if (key.indexOf(keychars[a]) != -1)
throw new MalformedObjectNameException("A key contains a '" +
- chars[a] + "' " +
+ keychars[a] + "' " +
"character.");
String value = (String) entry.getValue();
int quote = value.indexOf('"');
@@ -322,12 +335,15 @@ public class ObjectName
"a '\"' character.");
else
{
- for (int a = 0; a < chars.length; ++a)
- if (value.indexOf(chars[a]) != -1)
+ for (int a = 0; a < valchars.length; ++a)
+ if (value.indexOf(valchars[a]) != -1)
throw new MalformedObjectNameException("A value contains " +
- "a '" + chars[a] + "' " +
+ "a '" + valchars[a] + "' " +
"character.");
+
}
+ if (value.indexOf('*') != -1 || value.indexOf('?') != -1)
+ propertyValuePattern = true;
}
}
@@ -690,14 +706,60 @@ public class ObjectName
}
/**
- * Returns true if this object name is a property pattern. This is
- * the case if the list of properties contains an '*'.
+ * Returns true if this object name is a property list
+ * pattern, a property value pattern or both.
*
- * @return true if this is a property pattern.
+ * @return true if the properties of this name contain a pattern.
+ * @see #isPropertyListPattern
+ * @see #isPropertyValuePattern
*/
public boolean isPropertyPattern()
{
- return propertyPattern;
+ return propertyListPattern || propertyValuePattern;
+ }
+
+ /**
+ * Returns true if this object name is a property list pattern. This is
+ * the case if the list of properties contains an '*'.
+ *
+ * @return true if this is a property list pattern.
+ * @since 1.6
+ */
+ public boolean isPropertyListPattern()
+ {
+ return propertyListPattern;
+ }
+
+ /**
+ * Returns true if this object name is a property value pattern. This is
+ * the case if one of the values contains a wildcard character,
+ * '?' or '*'.
+ *
+ * @return true if this is a property value pattern.
+ * @since 1.6
+ */
+ public boolean isPropertyValuePattern()
+ {
+ return propertyValuePattern;
+ }
+
+ /**
+ * Returns true if the value of the given key is a pattern. This is
+ * the case if the value contains a wildcard character, '?' or '*'.
+ *
+ * @param key the key whose value should be checked.
+ * @return true if the value of the given key is a pattern.
+ * @since 1.6
+ * @throws NullPointerException if {@code key} is {@code null}.
+ * @throws IllegalArgumentException if {@code key} is not a valid
+ * property.
+ */
+ public boolean isPropertyValuePattern(String key)
+ {
+ String value = getKeyProperty(key);
+ if (value == null)
+ throw new IllegalArgumentException(key + " is not a valid property.");
+ return value.indexOf('?') != -1 || value.indexOf('*') != -1;
}
/**
diff --git a/libjava/classpath/javax/sound/sampled/AudioFormat.java b/libjava/classpath/javax/sound/sampled/AudioFormat.java
index 6296784426c..7b6ebc4b03b 100644
--- a/libjava/classpath/javax/sound/sampled/AudioFormat.java
+++ b/libjava/classpath/javax/sound/sampled/AudioFormat.java
@@ -330,16 +330,35 @@ public class AudioFormat
public String toString()
{
StringBuffer result = new StringBuffer();
+
+ // usually at least encoding should be somewhat specified
result.append(encoding);
- result.append(" ");
- result.append(sampleRate);
- result.append(" Hz ");
- result.append(sampleSizeInBits);
- result.append(" bits ");
- result.append(channels);
- result.append(" channels");
+
+ if (sampleRate != AudioSystem.NOT_SPECIFIED)
+ {
+ result.append(" ");
+ result.append(sampleRate);
+ result.append(" Hz");
+ }
+
+ if (sampleSizeInBits != AudioSystem.NOT_SPECIFIED)
+ {
+ result.append(" ");
+ result.append(sampleSizeInBits);
+ result.append(" bits");
+ }
+
+ if (channels != AudioSystem.NOT_SPECIFIED)
+ {
+ result.append(" ");
+ result.append(channels);
+ result.append(" channel");
+ if (channels > 1) result.append("s");
+ }
+
if (sampleSizeInBits > 8)
result.append(bigEndian ? " big endian" : " little endian");
+
return result.toString();
}
}
diff --git a/libjava/classpath/javax/sound/sampled/DataLine.java b/libjava/classpath/javax/sound/sampled/DataLine.java
index aa99a046ce4..b7cb70e4931 100644
--- a/libjava/classpath/javax/sound/sampled/DataLine.java
+++ b/libjava/classpath/javax/sound/sampled/DataLine.java
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005-2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,7 +35,6 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
-
package javax.sound.sampled;
/**
@@ -138,10 +137,10 @@ public interface DataLine extends Line
public boolean isFormatSupported(AudioFormat fmt)
{
for (int i = 0; i < formats.length; ++i)
- {
- if (fmt.matches(formats[i]))
- return true;
- }
+ {
+ if (fmt.matches(formats[i]))
+ return true;
+ }
return false;
}
@@ -151,25 +150,28 @@ public interface DataLine extends Line
public boolean matches(Line.Info o)
{
if (! super.matches(o) || ! (o instanceof Info))
- return false;
+ return false;
+
Info other = (Info) o;
- if (minBufferSize < other.minBufferSize
- || maxBufferSize > other.maxBufferSize)
- return false;
+ if (minBufferSize < other.minBufferSize ||
+ maxBufferSize > other.maxBufferSize)
+ return false;
+
for (int i = 0; i < formats.length; ++i)
- {
- boolean ok = false;
- for (int j = 0; j < other.formats.length; ++j)
- {
- if (formats[i].matches(other.formats[j]))
- {
- ok = true;
- break;
- }
- }
- if (! ok)
- return false;
- }
+ {
+ boolean ok = false;
+ for (int j = 0; j < other.formats.length; ++j)
+ {
+ if (formats[i].matches(other.formats[j]))
+ {
+ ok = true;
+ break;
+ }
+ }
+ if (! ok)
+ return false;
+ }
+
return true;
}
@@ -181,18 +183,20 @@ public interface DataLine extends Line
StringBuffer result = new StringBuffer();
result.append("formats: [");
for (int i = 0; i < formats.length; ++i)
- {
- if (i > 0)
- result.append(", ");
- result.append(formats[i].toString());
- }
+ {
+ if (i > 0)
+ result.append(", ");
+ result.append(formats[i].toString());
+ }
+
result.append("]; minBufferSize: ");
result.append(minBufferSize);
result.append("; maxBufferSize: ");
result.append(maxBufferSize);
return result.toString();
}
- }
+
+ } // end class: Info
/**
* Return the number of bytes currently available on this DataLine.
diff --git a/libjava/classpath/javax/sound/sampled/spi/MixerProvider.java b/libjava/classpath/javax/sound/sampled/spi/MixerProvider.java
index 1ae7b3bb7d8..72b972497e1 100644
--- a/libjava/classpath/javax/sound/sampled/spi/MixerProvider.java
+++ b/libjava/classpath/javax/sound/sampled/spi/MixerProvider.java
@@ -78,8 +78,8 @@ public abstract class MixerProvider
Mixer.Info[] infos = getMixerInfo();
for (int i = 0; i < infos.length; ++i)
{
- if (info.equals(infos[i]))
- return true;
+ if (info.equals(infos[i]))
+ return true;
}
return false;
}
diff --git a/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java b/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java
index df4c3aebdfd..12bbe013c5e 100644
--- a/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java
+++ b/libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java
@@ -600,8 +600,13 @@ public class BasicProgressBarUI extends ProgressBarUI
int y, int width, int height)
{
Rectangle tr = new Rectangle();
- Rectangle vr = new Rectangle(x, y, width, height);
+ Rectangle vr = new Rectangle();
Rectangle ir = new Rectangle();
+
+ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL)
+ vr.setBounds(x, y, width, height);
+ else
+ vr.setBounds(y, x, height, width);
Font f = g.getFont();
FontMetrics fm = g.getFontMetrics(f);
@@ -611,7 +616,11 @@ public class BasicProgressBarUI extends ProgressBarUI
SwingConstants.CENTER,
SwingConstants.CENTER,
SwingConstants.CENTER, vr, ir, tr, 0);
- return new Point(tr.x, tr.y);
+
+ if (progressBar.getOrientation() == JProgressBar.HORIZONTAL)
+ return new Point(tr.x, tr.y);
+ else
+ return new Point(tr.y, tr.x);
}
/**
@@ -741,14 +750,19 @@ public class BasicProgressBarUI extends ProgressBarUI
{
AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI / 2);
g.setFont(progressBar.getFont().deriveFont(rotate));
+ placement.x = width - placement.x - fm.getAscent();
+ }
+ else
+ {
+ placement.y += fm.getAscent();
}
g.setColor(getSelectionForeground());
g.setClip(0, 0, full + b.left, height);
- g.drawString(str, placement.x, placement.y + fm.getAscent());
+ g.drawString(str, placement.x, placement.y);
g.setColor(getSelectionBackground());
g.setClip(full + b.left, 0, width - full, height);
- g.drawString(str, placement.x, placement.y + fm.getAscent());
+ g.drawString(str, placement.x, placement.y);
g.setClip(savedClip);
g.setColor(savedColor);
}
diff --git a/libjava/classpath/javax/swing/text/html/parser/AttributeList.java b/libjava/classpath/javax/swing/text/html/parser/AttributeList.java
index d48266d4730..a943f056de1 100644
--- a/libjava/classpath/javax/swing/text/html/parser/AttributeList.java
+++ b/libjava/classpath/javax/swing/text/html/parser/AttributeList.java
@@ -253,7 +253,7 @@ public final class AttributeList
*/
public Enumeration<?> getValues()
{
- return values.elements();
+ return (values != null) ? values.elements() : null;
}
/**
diff --git a/libjava/classpath/jvmti.h b/libjava/classpath/jvmti.h
deleted file mode 100644
index b26f7932e54..00000000000
--- a/libjava/classpath/jvmti.h
+++ /dev/null
@@ -1,1819 +0,0 @@
-/* jvmti.h - Java Virtual Machine Tool Interface
- Copyright (C) 2006 Free Software Foundation
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-
-/* Note: this file must be compilable by the C compiler (for now,
- assuming GNU C is ok). This means you must never use `//'
- comments, and all C++-specific code must be conditional on
- __cplusplus. */
-
-#ifndef _CLASSPATH_JVMTI_H
-#define _CLASSPATH_JVMTI_H
-#include <jni.h>
-
-#include "jvmti_md.h"
-
-/* The VM might define JVMTI base types */
-#ifndef _CLASSPATH_VM_JVMTI_TYPES_DEFINED
-
-typedef jobject jthread;
-typedef jobject jthreadGroup;
-typedef jlong jlocation;
-typedef struct _Jv_rawMonitorID *jrawMonitorID;
-
-#endif /* !_CLASSPATH_VM_JVMTI_TYPES_DEFINED */
-
-/* JVMTI Version */
-#define JVMTI_VERSION_1_0 0x30010000
-#define JVMTI_VERSION (JVMTI_VERSION_1_0 + 38) /* Spec version is 1.0.38 */
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-/* These functions might be defined in libraries which we load; the
- JVMTI implementation calls them at the appropriate times. */
-extern JNIEXPORT jint JNICALL Agent_OnLoad (JavaVM *vm, char *options,
- void *reserved);
-extern JNIEXPORT void JNICALL Agent_OnUnload (JavaVM *vm);
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Forward declarations */
-typedef struct _jvmtiAddrLocationMap jvmtiAddrLocationMap;
-#ifdef __cplusplus
-typedef struct _Jv_JVMTIEnv jvmtiEnv;
-#else
-typedef const struct _Jv_jvmtiEnv *jvmtiEnv;
-#endif
-
-/*
- * Error constants
- */
-
-typedef enum
-{
- /* Universal Errors */
- JVMTI_ERROR_NONE = 0,
- JVMTI_ERROR_NULL_POINTER = 100,
- JVMTI_ERROR_OUT_OF_MEMORY = 110,
- JVMTI_ERROR_ACCESS_DENIED = 111,
- JVMTI_ERROR_WRONG_PHASE = 112,
- JVMTI_ERROR_INTERNAL = 113,
- JVMTI_ERROR_UNATTACHED_THREAD = 115,
- JVMTI_ERROR_INVALID_ENVIRONMENT = 116,
-
- /* Function-specific Required Errors */
- JVMTI_ERROR_INVALID_PRIORITY = 12,
- JVMTI_ERROR_THREAD_NOT_SUSPENDED = 13,
- JVMTI_ERROR_THREAD_SUSPENDED = 14,
- JVMTI_ERROR_THREAD_NOT_ALIVE = 15,
- JVMTI_ERROR_CLASS_NOT_PREPARED = 22,
- JVMTI_ERROR_NO_MORE_FRAMES = 31,
- JVMTI_ERROR_OPAQUE_FRAME = 32,
- JVMTI_ERROR_DUPLICATE = 40,
- JVMTI_ERROR_NOT_FOUND = 41,
- JVMTI_ERROR_NOT_MONITOR_OWNER = 51,
- JVMTI_ERROR_INTERRUPT = 52,
- JVMTI_ERROR_UNMODIFIABLE_CLASS = 79,
- JVMTI_ERROR_NOT_AVAILABLE = 98,
- JVMTI_ERROR_ABSENT_INFORMATION = 101,
- JVMTI_ERROR_INVALID_EVENT_TYPE = 102,
- JVMTI_ERROR_NATIVE_METHOD = 104,
-
- /* Function-specific Agent Errors */
- JVMTI_ERROR_INVALID_THREAD = 10,
- JVMTI_ERROR_INVALID_THREAD_GROUP = 11,
- JVMTI_ERROR_INVALID_OBJECT = 20,
- JVMTI_ERROR_INVALID_CLASS = 21,
- JVMTI_ERROR_INVALID_METHODID = 23,
- JVMTI_ERROR_INVALID_LOCATION = 24,
- JVMTI_ERROR_INVALID_FIELDID = 25,
- JVMTI_ERROR_TYPE_MISMATCH = 34,
- JVMTI_ERROR_INVALID_SLOT = 35,
- JVMTI_ERROR_INVALID_MONITOR = 50,
- JVMTI_ERROR_INVALID_CLASS_FORMAT = 60,
- JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION = 61,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED = 63,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED = 64,
- JVMTI_ERROR_INVALID_TYPESTATE = 65,
- JVMTI_ERROR_FAILS_VERIFICATION = 62,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED = 66,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED = 67,
- JVMTI_ERROR_UNSUPPORTED_VERSION = 68,
- JVMTI_ERROR_NAMES_DONT_MATCH = 69,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED = 70,
- JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED = 71,
- JVMTI_ERROR_MUST_POSSESS_CAPABILITY = 99,
- JVMTI_ERROR_ILLEGAL_ARGUMENT = 103
-} jvmtiError;
-
-/*
- * Enumeration Definitions
- */
-
-typedef enum
-{
- JVMTI_DISABLE = 0,
- JVMTI_ENABLE = 1
-} jvmtiEventMode;
-
-typedef enum
-{
- JVMTI_HEAP_OBJECT_TAGGED = 1,
- JVMTI_HEAP_OBJECT_UNTAGGED = 2,
- JVMTI_HEAP_OBJECT_EITHER = 3
-} jvmtiHeapObjectFilter;
-
-typedef enum
-{
- JVMTI_HEAP_ROOT_JNI_GLOBAL = 1,
- JVMTI_HEAP_ROOT_SYSTEM_CLASS = 2,
- JVMTI_HEAP_ROOT_MONITOR = 3,
- JVMTI_HEAP_ROOT_STACK_LOCAL = 4,
- JVMTI_HEAP_ROOT_JNI_LOCAL = 5,
- JVMTI_HEAP_ROOT_THREAD = 6,
- JVMTI_HEAP_ROOT_OTHER = 7
-} jvmtiHeapRootKind;
-
-typedef enum
-{
- JVMTI_ITERATION_ABORT = 0,
- JVMTI_ITERATION_CONTINUE = 1,
- JVMTI_ITERATION_IGNORE = 2
-} jvmtiIterationControl;
-
-typedef enum
-{
- JVMTI_JLOCATION_OTHER = 0,
- JVMTI_JLOCATION_JVMBCI = 1,
- JVMTI_JLOCATION_MACHINEPC = 2
-} jvmtiJlocationFormat;
-
-typedef enum
-{
- JVMTI_REFERENCE_CLASS = 1,
- JVMTI_REFERENCE_FIELD = 2,
- JVMTI_REFERENCE_ARRAY_ELEMENT = 3,
- JVMTI_REFERENCE_CLASS_LOADER = 4,
- JVMTI_REFERENCE_SIGNERS = 5,
- JVMTI_REFERENCE_PROTECTION_DOMAIN = 6,
- JVMTI_REFERENCE_INTERFACE = 7,
- JVMTI_REFERENCE_STATIC_FIELD = 8,
- JVMTI_REFERENCE_CONSTANT_POOL = 9
-} jvmtiObjectReferenceKind;
-
-typedef enum
-{
- JVMTI_KIND_IN = 91,
- JVMTI_KIND_IN_PTR = 92,
- JVMTI_KIND_IN_BUF = 93,
- JVMTI_KIND_ALLOC_BUF = 94,
- JVMTI_KIND_ALLOC_ALLOC_BUF = 95,
- JVMTI_KIND_OUT = 96,
- JVMTI_KIND_OUT_BUF = 97
-} jvmtiParamKind;
-
-typedef enum
-{
- JVMTI_TYPE_JBYTE = 101,
- JVMTI_TYPE_JCHAR = 102,
- JVMTI_TYPE_JSHORT = 103,
- JVMTI_TYPE_JINT = 104,
- JVMTI_TYPE_JLONG = 105,
- JVMTI_TYPE_JFLOAT = 106,
- JVMTI_TYPE_JDOUBLE = 107,
- JVMTI_TYPE_JBOOLEAN = 108,
- JVMTI_TYPE_JOBJECT = 109,
- JVMTI_TYPE_JTHREAD = 110,
- JVMTI_TYPE_JCLASS = 111,
- JVMTI_TYPE_JVALUE = 112,
- JVMTI_TYPE_JFIELDID = 113,
- JVMTI_TYPE_JMETHODID = 114,
- JVMTI_TYPE_CCHAR = 115,
- JVMTI_TYPE_CVOID = 116,
- JVMTI_TYPE_JNIENV = 117
-} jvmtiParamTypes;
-
-typedef enum
-{
- JVMTI_PHASE_ONLOAD = 1,
- JVMTI_PHASE_PRIMORDIAL = 2,
- JVMTI_PHASE_LIVE = 4,
- JVMTI_PHASE_START = 6,
- JVMTI_PHASE_DEAD = 8
-} jvmtiPhase;
-
-typedef enum
-{
- JVMTI_TIMER_USER_CPU = 30,
- JVMTI_TIMER_TOTAL_CPU = 31,
- JVMTI_TIMER_ELAPSED = 32
-} jvmtiTimerKind;
-
-typedef enum
-{
- JVMTI_VERBOSE_OTHER = 0,
- JVMTI_VERBOSE_GC = 1,
- JVMTI_VERBOSE_CLASS = 2,
- JVMTI_VERBOSE_JNI = 4
-} jvmtiVerboseFlag;
-
-/* Version information */
-#define JVMTI_VERSION_INTERFACE_JNI 0x00000000
-#define JVMTI_VERSION_INTERFACE_JVMTI 0x30000000
-#define JVMTI_VERSION_MASK_INTERFACE_TYPE 0x70000000
-#define JVMTI_VERSION_MASK_MAJOR 0x0FFF0000
-#define JVMTI_VERSION_MASK_MINOR 0x0000FF00
-#define JVMTI_VERSION_MASK_MICRO 0x000000FF
-#define JVMTI_VERSION_SHIFT_MAJOR 16
-#define JVMTI_VERSION_SHIFT_MINOR 8
-#define JVMTI_VERSION_SHIFT_MICRO 0
-
-/*
- * Events and event callbacks
- */
-
-typedef enum
-{
- JVMTI_EVENT_VM_INIT = 50,
- JVMTI_EVENT_VM_DEATH = 51,
- JVMTI_EVENT_THREAD_START = 52,
- JVMTI_EVENT_THREAD_END = 53,
- JVMTI_EVENT_CLASS_FILE_LOAD_HOOK = 54,
- JVMTI_EVENT_CLASS_LOAD = 55,
- JVMTI_EVENT_CLASS_PREPARE = 56,
- JVMTI_EVENT_VM_START = 57,
- JVMTI_EVENT_EXCEPTION = 58,
- JVMTI_EVENT_EXCEPTION_CATCH = 59,
- JVMTI_EVENT_SINGLE_STEP = 60,
- JVMTI_EVENT_FRAME_POP = 61,
- JVMTI_EVENT_BREAKPOINT = 62,
- JVMTI_EVENT_FIELD_ACCESS = 63,
- JVMTI_EVENT_FIELD_MODIFICATION = 64,
- JVMTI_EVENT_METHOD_ENTRY = 65,
- JVMTI_EVENT_METHOD_EXIT = 66,
- JVMTI_EVENT_NATIVE_METHOD_BIND = 67,
- JVMTI_EVENT_COMPILED_METHOD_LOAD = 68,
- JVMTI_EVENT_COMPILED_METHOD_UNLOAD = 69,
- JVMTI_EVENT_DYNAMIC_CODE_GENERATED = 70,
- JVMTI_EVENT_DATA_DUMP_REQUEST = 71,
- JVMTI_EVENT_MONITOR_WAIT = 73,
- JVMTI_EVENT_MONITOR_WAITED = 74,
- JVMTI_EVENT_MONITOR_CONTENDED_ENTER = 75,
- JVMTI_EVENT_MONITOR_CONTENDED_ENTERED = 76,
- JVMTI_EVENT_GARBAGE_COLLECTION_START = 81,
- JVMTI_EVENT_GARBAGE_COLLECTION_FINISH = 82,
- JVMTI_EVENT_OBJECT_FREE = 83,
- JVMTI_EVENT_VM_OBJECT_ALLOC = 84
-} jvmtiEvent;
-
-typedef void *jvmtiEventReserved;
-
-typedef void (JNICALL *jvmtiEventSingleStep)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location);
-
-typedef void (JNICALL *jvmtiEventBreakpoint)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location);
-
-typedef void (JNICALL *jvmtiEventFieldAccess)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location, jclass field_klass, jobject object, jfieldID field);
-
-typedef void (JNICALL *jvmtiEventFieldModification)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location, jclass field_klass, jobject object, jfieldID field,
- char signature_type, jvalue new_value);
-
-typedef void (JNICALL *jvmtiEventFramePop)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jboolean was_popped_by_exception);
-
-typedef void (JNICALL *jvmtiEventMethodEntry)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method);
-
-typedef void (JNICALL *jvmtiEventMethodExit)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jboolean was_popped_by_exception, jvalue return_value);
-
-typedef void (JNICALL *jvmtiEventNativeMethodBind)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- void *address, void **new_address_ptr);
-
-typedef void (JNICALL *jvmtiEventException)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location, jobject exception, jmethodID catch_method,
- jlocation catch_location);
-
-typedef void (JNICALL *jvmtiEventExceptionCatch)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jmethodID method,
- jlocation location, jobject exception);
-
-typedef void (JNICALL *jvmtiEventThreadStart)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread);
-
-typedef void (JNICALL *jvmtiEventThreadEnd)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread);
-
-typedef void (JNICALL *jvmtiEventClassLoad)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jclass klass);
-
-typedef void (JNICALL *jvmtiEventClassPrepare)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thraed, jclass klass);
-
-typedef void (JNICALL *jvmtiEventClassFileLoadHook)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jclass class_being_redefined,
- jobject loader, const char *name, jobject protection_domain,
- jint class_data_len, const unsigned char *class_data,
- jint *new_class_data_len, unsigned char **new_class_data);
-
-typedef void (JNICALL *jvmtiEventVMStart)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env);
-
-typedef void (JNICALL *jvmtiEventVMInit)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread);
-
-typedef void (JNICALL *jvmtiEventVMDeath)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env);
-
-typedef void (JNICALL *jvmtiEventCompiledMethodLoad)
- (jvmtiEnv *jvmti_env, jmethodID method, jint code_size,
- const void *code_addr, jint map_length, const jvmtiAddrLocationMap *map,
- const void *compile_info);
-
-typedef void (JNICALL *jvmtiEventCompiledMethodUnload)
- (jvmtiEnv *jvmti_env, jmethodID method, const void *code_addr);
-
-typedef void (JNICALL *jvmtiEventDynamicCodeGenerated)
- (jvmtiEnv *jvmti_env, const char *name, const void *address, jint length);
-
-typedef void (JNICALL *jvmtiEventDataDumpRequest)
- (jvmtiEnv *jvmti_env);
-
-typedef void (JNICALL *jvmtiEventMonitorContendedEnter)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object);
-
-typedef void (JNICALL *jvmtiEventMonitorContendedEntered)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object);
-
-typedef void (JNICALL *jvmtiEventMonitorWait)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object,
- jlong timeout);
-
-typedef void (JNICALL *jvmtiEventMonitorWaited)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object,
- jboolean timed_out);
-
-typedef void (JNICALL *jvmtiEventVMObjectAlloc)
- (jvmtiEnv *jvmti_env, JNIEnv *jni_env, jthread thread, jobject object,
- jclass object_klass, jlong size);
-
-typedef void (JNICALL *jvmtiEventObjectFree)
- (jvmtiEnv *jvmti_env, jlong tag);
-
-typedef void (JNICALL *jvmtiEventGarbageCollectionStart)
- (jvmtiEnv *jvmti_env);
-
-typedef void (JNICALL *jvmtiEventGarbageCollectionFinish)
- (jvmtiEnv *jvmti_env);
-
-typedef struct
-{
- jvmtiEventVMInit VMInit;
- jvmtiEventVMDeath VMDeath;
- jvmtiEventThreadStart ThreadStart;
- jvmtiEventThreadEnd ThreadEnd;
- jvmtiEventClassFileLoadHook ClassFileLoadHook;
- jvmtiEventClassLoad ClassLoad;
- jvmtiEventClassPrepare ClassPrepare;
- jvmtiEventVMStart VMStart;
- jvmtiEventException Exception;
- jvmtiEventExceptionCatch ExceptionCatch;
- jvmtiEventSingleStep SingleStep;
- jvmtiEventFramePop FramePop;
- jvmtiEventBreakpoint Breakpoint;
- jvmtiEventFieldAccess FieldAccess;
- jvmtiEventFieldModification FieldModification;
- jvmtiEventMethodEntry MethodEntry;
- jvmtiEventMethodExit MethodExit;
- jvmtiEventNativeMethodBind NativeMethodBind;
- jvmtiEventCompiledMethodLoad CompiledMethodLoad;
- jvmtiEventCompiledMethodUnload CompiledMethodUnload;
- jvmtiEventDynamicCodeGenerated DynamicCodeGenerated;
- jvmtiEventDataDumpRequest DataDumpRequest;
- jvmtiEventReserved reserved72;
- jvmtiEventMonitorWait MonitorWait;
- jvmtiEventMonitorWaited MonitorWaited;
- jvmtiEventMonitorContendedEnter MonitorContendedEnter;
- jvmtiEventMonitorContendedEntered MonitorContendedEntered;
- jvmtiEventReserved reserved77;
- jvmtiEventReserved reserved78;
- jvmtiEventReserved reserved79;
- jvmtiEventReserved reserved80;
- jvmtiEventGarbageCollectionStart GarbageCollectionStart;
- jvmtiEventGarbageCollectionFinish GarbageCollectionFinish;
- jvmtiEventObjectFree ObjectFree;
- jvmtiEventVMObjectAlloc VMObjectAlloc;
-} jvmtiEventCallbacks;
-
-/*
- * Function and Structure Type Definitions
- */
-
-struct _jvmtiAddrLocationMap
-{
- const void *start_address;
- jlocation location;
-};
-
-typedef struct
-{
- unsigned int can_tag_objects : 1;
- unsigned int can_generate_field_modification_events : 1;
- unsigned int can_generate_field_access_events : 1;
- unsigned int can_get_bytecodes : 1;
- unsigned int can_get_synthetic_attribute : 1;
- unsigned int can_get_owned_monitor_info : 1;
- unsigned int can_get_current_contended_monitor : 1;
- unsigned int can_get_monitor_info : 1;
- unsigned int can_pop_frame : 1;
- unsigned int can_redefine_classes : 1;
- unsigned int can_signal_thread : 1;
- unsigned int can_get_source_file_name : 1;
- unsigned int can_get_line_numbers : 1;
- unsigned int can_get_source_debug_extension : 1;
- unsigned int can_access_local_variables : 1;
- unsigned int can_maintain_original_method_order : 1;
- unsigned int can_generate_single_step_events : 1;
- unsigned int can_generate_exception_events : 1;
- unsigned int can_generate_frame_pop_events : 1;
- unsigned int can_generate_breakpoint_events : 1;
- unsigned int can_suspend : 1;
- unsigned int can_redefine_any_class : 1;
- unsigned int can_get_current_thread_cpu_time : 1;
- unsigned int can_get_thread_cpu_time : 1;
- unsigned int can_generate_method_entry_events : 1;
- unsigned int can_generate_method_exit_events : 1;
- unsigned int can_generate_all_class_hook_events : 1;
- unsigned int can_generate_compiled_method_load_events : 1;
- unsigned int can_generate_monitor_events : 1;
- unsigned int can_generate_vm_object_alloc_events : 1;
- unsigned int can_generate_native_method_bind_events : 1;
- unsigned int can_generate_garbage_collection_events : 1;
- unsigned int can_generate_object_free_events : 1;
- unsigned int : 15;
- unsigned int : 16;
- unsigned int : 16;
- unsigned int : 16;
- unsigned int : 16;
- unsigned int : 16;
-} jvmtiCapabilities;
-
-typedef struct
-{
- jclass klass;
- jint class_byte_count;
- const unsigned char *class_bytes;
-} jvmtiClassDefinition;
-
-typedef struct
-{
- char *name;
- jvmtiParamKind kind;
- jvmtiParamTypes base_type;
- jboolean null_ok;
-} jvmtiParamInfo;
-
-typedef struct
-{
- jint extension_event_index;
- char *id;
- char *short_description;
- jint param_count;
- jvmtiParamInfo* params;
-} jvmtiExtensionEventInfo;
-
-typedef jvmtiError (JNICALL *jvmtiExtensionFunction)
- (jvmtiEnv *jvmti_enf, ...);
-
-typedef struct
-{
- jvmtiExtensionFunction func;
- char *id;
- char *short_description;
- jint param_count;
- jvmtiParamInfo *params;
- jint error_count;
- jvmtiError *errors;
-} jvmtiExtensionFunctionInfo;
-
-typedef struct
-{
- jmethodID method;
- jlocation location;
-} jvmtiFrameInfo;
-
-typedef struct
-{
- jlocation start_location;
- jint line_number;
-} jvmtiLineNumberEntry;
-
-typedef struct
-{
- jlocation start_location;
- jint length;
- char *name;
- char *signature;
- char *generic_signature;
- jint slot;
-} jvmtiLocalVariableEntry;
-
-typedef struct
-{
- jthread owner;
- jint entry_count;
- jint waiter_count;
- jthread *waiters;
- jint notify_waiter_count;
- jthread *notify_waiters;
-} jvmtiMonitorUsage;
-
-typedef struct
-{
- jthread thread;
- jint state;
- jvmtiFrameInfo *frame_buffer;
- jint frame_count;
-} jvmtiStackInfo;
-
-typedef struct
-{
- jthreadGroup parent;
- char *name;
- jint max_priority;
- jboolean is_daemon;
-} jvmtiThreadGroupInfo;
-
-typedef struct
-{
- char *name;
- jint priority;
- jboolean is_daemon;
- jthreadGroup thread_group;
- jobject context_class_loader;
-} jvmtiThreadInfo;
-
-typedef struct
-{
- jlong max_value;
- jboolean may_skip_forward;
- jboolean may_skip_backward;
- jvmtiTimerKind kind;
- jlong reserved1;
- jlong reserved2;
-} jvmtiTimerInfo;
-
-typedef void (JNICALL *jvmtiExtensionEvent)
- (jvmtiEnv *jvmti_env, ...);
-
-typedef jvmtiIterationControl (JNICALL *jvmtiHeapObjectCallback)
- (jlong class_tag, jlong size, jlong *tag_ptr, void *user_data);
-
-typedef jvmtiIterationControl (JNICALL *jvmtiHeapRootCallback)
- (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong *tag_ptr,
- void *user_data);
-
-typedef jvmtiIterationControl (JNICALL *jvmtiObjectReferenceCallback)
- (jvmtiObjectReferenceKind reference_kind, jlong class_tag, jlong size,
- jlong *tag_ptr, jlong referrer_tag, jint referrer_index, void *user_data);
-
-typedef jvmtiIterationControl (JNICALL *jvmtiStackReferenceCallback)
- (jvmtiHeapRootKind root_kind, jlong class_tag, jlong size, jlong *tag_ptr,
- jlong thread_tag, jint depth, jmethodID method, jint slot, void *user_data);
-
-typedef void (JNICALL *jvmtiStartFunction)
- (jvmtiEnv *env, JNIEnv *jni_env, void *arg);
-
-/*
- * JVM Tool Interface Base Types
- */
-typedef struct JNINativeInterface jniNativeInterface;
-
-struct _Jv_jvmtiEnv
-{
- void *reserved1;
-
- jvmtiError (JNICALL *SetEventNotificationMode) (jvmtiEnv *env,
- jvmtiEventMode mode,
- jvmtiEvent event_type,
- jthread event_thread, ...);
- void *reserved3;
-
- jvmtiError (JNICALL *GetAllThreads) (jvmtiEnv *env,
- jint *threads_count_ptr,
- jthread **threads_ptr);
-
- jvmtiError (JNICALL *SuspendThread) (jvmtiEnv *env,
- jthread thread);
-
- jvmtiError (JNICALL *ResumeThread) (jvmtiEnv *env,
- jthread thread);
-
- jvmtiError (JNICALL *StopThread) (jvmtiEnv *env,
- jthread thread,
- jobject exception);
-
- jvmtiError (JNICALL *InterruptThread) (jvmtiEnv *env,
- jthread thread);
-
- jvmtiError (JNICALL *GetThreadInfo) (jvmtiEnv *env,
- jthread thread,
- jvmtiThreadInfo *info_ptr);
-
- jvmtiError (JNICALL *GetOwnedMonitorInfo) (jvmtiEnv *env,
- jthread thread,
- jint *owned_monitor_count_ptr,
- jobject **owned_monitors_ptr);
-
- jvmtiError (JNICALL *GetCurrentContendedMonitor) (jvmtiEnv *env,
- jthread thread,
- jobject *monitor_ptr);
-
- jvmtiError (JNICALL *RunAgentThread) (jvmtiEnv *env,
- jthread thread,
- jvmtiStartFunction proc,
- const void *arg,
- jint priority);
-
- jvmtiError (JNICALL *GetTopThreadGroups) (jvmtiEnv *env,
- jint *group_count_ptr,
- jthreadGroup **groups_ptr);
-
- jvmtiError (JNICALL *GetThreadGroupInfo) (jvmtiEnv *env,
- jthreadGroup group,
- jvmtiThreadGroupInfo *info_ptr);
-
- jvmtiError (JNICALL *GetThreadGroupChildren) (jvmtiEnv *env,
- jthreadGroup group,
- jint *thread_count_ptr,
- jthread **threads_ptr,
- jint *group_count_ptr,
- jthreadGroup **groups_ptr);
- jvmtiError (JNICALL *GetFrameCount) (jvmtiEnv *env,
- jthread thread,
- jint *count_ptr);
-
- jvmtiError (JNICALL *GetThreadState) (jvmtiEnv *env,
- jthread thread,
- jint *thread_state_ptr);
-
- void *reserved18;
-
- jvmtiError (JNICALL *GetFrameLocation) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jmethodID *method_ptr,
- jlocation *location_ptr);
-
- jvmtiError (JNICALL *NotifyPopFrame) (jvmtiEnv *env,
- jthread thread,
- jint depth);
-
- jvmtiError (JNICALL *GetLocalObject) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jobject *value_ptr);
-
- jvmtiError (JNICALL *GetLocalInt) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jint *value_ptr);
-
- jvmtiError (JNICALL *GetLocalLong) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jlong *value_ptr);
-
- jvmtiError (JNICALL *GetLocalFloat) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jfloat *value_ptr);
-
- jvmtiError (JNICALL *GetLocalDouble) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jdouble *value_ptr);
-
- jvmtiError (JNICALL *SetLocalObject) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jobject value);
-
- jvmtiError (JNICALL *SetLocalInt) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jint value);
-
- jvmtiError (JNICALL *SetLocalLong) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jlong value);
-
- jvmtiError (JNICALL *SetLocalFloat) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jfloat value);
-
- jvmtiError (JNICALL *SetLocalDouble) (jvmtiEnv *env,
- jthread thread,
- jint depth,
- jint slot,
- jdouble value);
-
- jvmtiError (JNICALL *CreateRawMonitor) (jvmtiEnv *env,
- const char *name,
- jrawMonitorID *monitor_ptr);
-
- jvmtiError (JNICALL *DestroyRawMonitor) (jvmtiEnv *env,
- jrawMonitorID monitor);
-
- jvmtiError (JNICALL *RawMonitorEnter) (jvmtiEnv *env,
- jrawMonitorID monitor);
-
- jvmtiError (JNICALL *RawMonitorExit) (jvmtiEnv *env,
- jrawMonitorID monitor);
-
- jvmtiError (JNICALL *RawMonitorWait) (jvmtiEnv *env,
- jrawMonitorID monitor,
- jlong millis);
-
- jvmtiError (JNICALL *RawMonitorNotify) (jvmtiEnv *env,
- jrawMonitorID monitor);
-
- jvmtiError (JNICALL *RawMonitorNotifyAll) (jvmtiEnv *env,
- jrawMonitorID monitor);
-
- jvmtiError (JNICALL *SetBreakpoint) (jvmtiEnv *env,
- jmethodID method,
- jlocation location);
-
- jvmtiError (JNICALL *ClearBreakpoint) (jvmtiEnv *env,
- jmethodID method,
- jlocation location);
-
- void *reserved40;
-
- jvmtiError (JNICALL *SetFieldAccessWatch) (jvmtiEnv *env,
- jclass klass,
- jfieldID field);
-
- jvmtiError (JNICALL *ClearFieldAccessWatch) (jvmtiEnv *env,
- jclass klass,
- jfieldID field);
-
- jvmtiError (JNICALL *SetFieldModificationWatch) (jvmtiEnv *env,
- jclass klass,
- jfieldID field);
-
- jvmtiError (JNICALL *ClearFieldModificationWatch) (jvmtiEnv *env,
- jclass klass,
- jfieldID field);
-
- void *reserved45;
-
- jvmtiError (JNICALL *Allocate) (jvmtiEnv *env,
- jlong size,
- unsigned char **mem_ptr);
-
- jvmtiError (JNICALL *Deallocate) (jvmtiEnv *env,
- unsigned char *mem);
-
- jvmtiError (JNICALL *GetClassSignature) (jvmtiEnv *env,
- jclass klass,
- char **signature_ptr,
- char **generic_ptr);
-
- jvmtiError (JNICALL *GetClassStatus) (jvmtiEnv *env,
- jclass klass,
- jint *status_ptr);
-
- jvmtiError (JNICALL *GetSourceFileName) (jvmtiEnv *env,
- jclass klass,
- char **source_name_ptr);
-
- jvmtiError (JNICALL *GetClassModifiers) (jvmtiEnv *env,
- jclass klass,
- jint *modifiers_ptr);
-
- jvmtiError (JNICALL *GetClassMethods) (jvmtiEnv *env,
- jclass klass,
- jint *method_count_ptr,
- jmethodID **methods_ptr);
-
- jvmtiError (JNICALL *GetClassFields) (jvmtiEnv *env,
- jclass klass,
- jint *field_count_ptr,
- jfieldID **fields_ptr);
-
- jvmtiError (JNICALL *GetImplementedInterfaces) (jvmtiEnv *env,
- jclass klass,
- jint *interface_count_ptr,
- jclass **interfaces_ptr);
-
- jvmtiError (JNICALL *IsInterface) (jvmtiEnv *env,
- jclass klass,
- jboolean *is_interface_ptr);
-
- jvmtiError (JNICALL *IsArrayClass) (jvmtiEnv *env,
- jclass klass,
- jboolean *is_array_class_ptr);
-
- jvmtiError (JNICALL *GetClassLoader) (jvmtiEnv *env,
- jclass klass,
- jobject *classloader_ptr);
-
- jvmtiError (JNICALL *GetObjectHashCode) (jvmtiEnv *env,
- jobject object,
- jint *hash_code_ptr);
-
- jvmtiError (JNICALL *GetObjectMonitorUsage) (jvmtiEnv *env,
- jobject object,
- jvmtiMonitorUsage *info_ptr);
-
- jvmtiError (JNICALL *GetFieldName) (jvmtiEnv *env,
- jclass klass,
- jfieldID field,
- char **name_ptr,
- char **signature_ptr,
- char **generic_ptr);
-
- jvmtiError (JNICALL *GetFieldDeclaringClass) (jvmtiEnv *env,
- jclass klass,
- jfieldID field,
- jclass *declaring_class_ptr);
-
- jvmtiError (JNICALL *GetFieldModifiers) (jvmtiEnv *env,
- jclass klass,
- jfieldID field,
- jint *modifiers_ptr);
-
- jvmtiError (JNICALL *IsFieldSynthetic) (jvmtiEnv *env,
- jclass klass,
- jfieldID field,
- jboolean *is_synthetic_ptr);
-
- jvmtiError (JNICALL *GetMethodName) (jvmtiEnv *env,
- jmethodID method,
- char **name_ptr,
- char **signature_ptr,
- char **generic_ptr);
-
- jvmtiError (JNICALL *GetMethodDeclaringClass) (jvmtiEnv *env,
- jmethodID method,
- jclass *declaring_class_ptr);
-
-
- jvmtiError (JNICALL *GetMethodModifiers) (jvmtiEnv *env,
- jmethodID method,
- jint *modifiers_ptr);
-
- void *reserved67;
-
- jvmtiError (JNICALL *GetMaxLocals) (jvmtiEnv *env,
- jmethodID method,
- jint *max_ptr);
-
- jvmtiError (JNICALL *GetArgumentsSize) (jvmtiEnv *env,
- jmethodID method,
- jint *size_ptr);
-
- jvmtiError (JNICALL *GetLineNumberTable) (jvmtiEnv *env,
- jmethodID method,
- jint *entry_count_ptr,
- jvmtiLineNumberEntry **table_ptr);
-
- jvmtiError (JNICALL *GetMethodLocation) (jvmtiEnv *env,
- jmethodID method,
- jlocation *start_location_ptr,
- jlocation *end_location_ptr);
-
- jvmtiError (JNICALL *GetLocalVariableTable) (jvmtiEnv *env,
- jmethodID method,
- jint *entry_count_ptr,
- jvmtiLocalVariableEntry **table_ptr);
-
- void *reserved73;
-
- void *reserved74;
-
- jvmtiError (JNICALL *GetBytecodes) (jvmtiEnv *env,
- jmethodID method,
- jint *bytecode_count_ptr,
- unsigned char **bytecodes_ptr);
-
- jvmtiError (JNICALL *IsMethodNative) (jvmtiEnv *env,
- jmethodID method,
- jboolean *is_native_ptr);
-
- jvmtiError (JNICALL *IsMethodSynthetic) (jvmtiEnv *env,
- jmethodID method,
- jboolean *is_synthetic_ptr);
-
- jvmtiError (JNICALL *GetLoadedClasses) (jvmtiEnv *env,
- jint *class_count_ptr,
- jclass **classes_ptr);
-
- jvmtiError (JNICALL *GetClassLoaderClasses) (jvmtiEnv *env,
- jobject initiating_loader,
- jint *class_count_ptr,
- jclass **classes_ptr);
-
- jvmtiError (JNICALL *PopFrame) (jvmtiEnv *env,
- jthread thread);
-
- void *reserved81;
-
- void *reserved82;
-
- void *reserved83;
-
- void *reserved84;
-
- void *reserved85;
-
- void *reserved86;
-
- jvmtiError (JNICALL *RedefineClasses) (jvmtiEnv *env,
- jint class_count,
- const jvmtiClassDefinition* class_definitions);
-
- jvmtiError (JNICALL *GetVersionNumber) (jvmtiEnv *env,
- jint *version_ptr);
-
- jvmtiError (JNICALL *GetCapabilities) (jvmtiEnv *env,
- jvmtiCapabilities *capabilities_ptr);
-
- jvmtiError (JNICALL *GetSourceDebugExtension) (jvmtiEnv *env,
- jclass klass,
- char **source_debug_extension_ptr);
-
- jvmtiError (JNICALL *IsMethodObsolete) (jvmtiEnv *env,
- jmethodID method,
- jboolean *is_obsolete_ptr);
-
- jvmtiError (JNICALL *SuspendThreadList) (jvmtiEnv *env,
- jint request_count,
- const jthread *request_list,
- jvmtiError *results);
-
- jvmtiError (JNICALL *ResumeThreadList) (jvmtiEnv *env,
- jint request_count,
- const jthread *request_list,
- jvmtiError *results);
-
- void *reserved94;
-
- void *reserved95;
-
- void *reserved96;
-
- void *reserved97;
-
- void *reserved98;
-
- void *reserved99;
-
- jvmtiError (JNICALL *GetAllStackTraces) (jvmtiEnv *env,
- jint max_frame_count,
- jvmtiStackInfo **stack_info_ptr,
- jint *thread_count_ptr);
-
- jvmtiError (JNICALL *GetThreadListStackTraces) (jvmtiEnv *env,
- jint thread_count,
- const jthread *thread_list,
- jint max_frame_count,
- jvmtiStackInfo **stack_info_ptr);
-
- jvmtiError (JNICALL *GetThreadLocalStorage) (jvmtiEnv *env,
- jthread thread,
- void **data_ptr);
-
- jvmtiError (JNICALL *SetThreadLocalStorage) (jvmtiEnv *env,
- jthread thread,
- const void *data);
-
- jvmtiError (JNICALL *GetStackTrace) (jvmtiEnv *env,
- jthread thread,
- jint start_depth,
- jint max_frame_count,
- jvmtiFrameInfo *frame_buffer,
- jint *count_ptr);
-
- void *reserved105;
-
- jvmtiError (JNICALL *GetTag) (jvmtiEnv *env,
- jobject object,
- jlong *tag_ptr);
-
- jvmtiError (JNICALL *SetTag) (jvmtiEnv *env,
- jobject object,
- jlong tag);
-
- jvmtiError (JNICALL *ForceGarbageCollection) (jvmtiEnv *env);
-
- jvmtiError (JNICALL *IterateOverObjectsReachableFromObject) (jvmtiEnv *env,
- jobject object,
- jvmtiObjectReferenceCallback object_reference_callback,
- void *user_data);
-
- jvmtiError (JNICALL *IterateOverReachableObjects) (jvmtiEnv *env,
- jvmtiHeapRootCallback heap_root_callback,
- jvmtiStackReferenceCallback stack_ref_callback,
- jvmtiObjectReferenceCallback object_ref_callback,
- void *user_data);
-
- jvmtiError (JNICALL *IterateOverHeap) (jvmtiEnv *env,
- jvmtiHeapObjectFilter object_filter,
- jvmtiHeapObjectCallback heap_object_callback,
- void *user_data);
-
- jvmtiError (JNICALL *IterateOverInstanceOfClass) (jvmtiEnv *env,
- jclass klass,
- jvmtiHeapObjectFilter object_filter,
- jvmtiHeapObjectCallback heap_object_callback,
- void *user_data);
-
- void *reserved113;
-
- jvmtiError (JNICALL *GetObjectsWithTags) (jvmtiEnv *env,
- jint tag_count,
- const jlong *tags,
- jint *count_ptr,
- jobject **object_result_ptr,
- jlong **tag_result_ptr);
-
- void *reserved115;
-
- void *reserved116;
-
- void *reserved117;
-
- void *reserved118;
-
- void *reserved119;
-
- jvmtiError (JNICALL *SetJNIFunctionTable) (jvmtiEnv *env,
- const jniNativeInterface *function_table);
-
- jvmtiError (JNICALL *GetJNIFunctionTable) (jvmtiEnv *env,
- jniNativeInterface **function_table_ptr);
-
- jvmtiError (JNICALL *SetEventCallbacks) (jvmtiEnv *env,
- const jvmtiEventCallbacks *callbacks,
- jint size_of_callbacks);
-
- jvmtiError (JNICALL *GenerateEvents) (jvmtiEnv *env,
- jvmtiEvent event_type);
-
- jvmtiError (JNICALL *GetExtensionFunctions) (jvmtiEnv *env,
- jint *extension_count_ptr,
- jvmtiExtensionFunctionInfo **extensions);
-
- jvmtiError (JNICALL *GetExtensionEvents) (jvmtiEnv *env,
- jint *extension_count_ptr,
- jvmtiExtensionEventInfo **extensions);
-
- jvmtiError (JNICALL *SetExtensionEventCallback) (jvmtiEnv *env,
- jint extension_event_index,
- jvmtiExtensionEvent callback);
-
- jvmtiError (JNICALL *DisposeEnvironment) (jvmtiEnv *env);
-
- jvmtiError (JNICALL *GetErrorName) (jvmtiEnv *env,
- jvmtiError error,
- char **name_ptr);
-
- jvmtiError (JNICALL *GetJLocationFormat) (jvmtiEnv *env,
- jvmtiJlocationFormat *format_ptr);
-
- jvmtiError (JNICALL *GetSystemProperties) (jvmtiEnv *env,
- jint *count_ptr,
- char ***property_ptr);
-
- jvmtiError (JNICALL *GetSystemProperty) (jvmtiEnv *env,
- const char *property,
- char **value_ptr);
-
- jvmtiError (JNICALL *SetSystemProperty) (jvmtiEnv *env,
- const char *property,
- const char *value);
-
- jvmtiError (JNICALL *GetPhase) (jvmtiEnv *env,
- jvmtiPhase *phase_ptr);
-
- jvmtiError (JNICALL *GetCurrentThreadCpuTimerInfo) (jvmtiEnv *env,
- jvmtiTimerInfo *info_ptr);
-
- jvmtiError (JNICALL *GetCurrentThreadCpuTime) (jvmtiEnv *env,
- jlong *nanos_ptr);
-
- jvmtiError (JNICALL *GetThreadCpuTimerInfo) (jvmtiEnv *env,
- jvmtiTimerInfo *info_ptr);
-
- jvmtiError (JNICALL *GetThreadCpuTime) (jvmtiEnv *env,
- jthread thread,
- jlong *nanos_ptr);
-
- jvmtiError (JNICALL *GetTimerInfo) (jvmtiEnv *env,
- jvmtiTimerInfo *info_ptr);
-
- jvmtiError (JNICALL *GetTime) (jvmtiEnv *env,
- jlong *nanos_ptr);
-
- jvmtiError (JNICALL *GetPotentialCapabilities) (jvmtiEnv *env,
- jvmtiCapabilities *capabilities_ptr);
-
- void *reserved141;
-
- jvmtiError (JNICALL *AddCapabilities) (jvmtiEnv *env,
- const jvmtiCapabilities *capabilities_ptr);
-
- jvmtiError (JNICALL *RelinquishCapabilities) (jvmtiEnv *env,
- const jvmtiCapabilities *capabilities_ptr);
-
- jvmtiError (JNICALL *GetAvailableProcessors) (jvmtiEnv *env,
- jint *processor_count_ptr);
-
- void *reserved145;
-
- void *reserved146;
-
- jvmtiError (JNICALL *GetEnvironmentLocalStorage) (jvmtiEnv *env,
- void **data_ptr);
-
- jvmtiError (JNICALL *SetEnvironmentLocalStorage) (jvmtiEnv *env,
- const void *data);
-
- jvmtiError (JNICALL *AddToBootstrapClassLoaderSearch) (jvmtiEnv *env,
- const char *segment);
-
- jvmtiError (JNICALL *SetVerboseFlag) (jvmtiEnv *env,
- jvmtiVerboseFlag flag,
- jboolean value);
-
- void *reserved151;
-
- void *reserved152;
-
- void *reserved153;
-
- jvmtiError (JNICALL *GetObjectSize) (jvmtiEnv *env,
- jobject object,
- jlong *size_ptr);
-};
-
-#ifdef __cplusplus
-class _Jv_JVMTIEnv
-{
- public:
- /* Method table */
- struct _Jv_jvmtiEnv *p;
-
-#ifdef _CLASSPATH_JVMTIENV_CONTENTS
- _CLASSPATH_JVMTIENV_CONTENTS
-#endif
-
- jvmtiError SetEventNotificationMode (jvmtiEventMode mode,
- jvmtiEvent event_type,
- jthread event_thread, ...)
- {
- va_list args;
- va_start (args, event_thread);
- jvmtiError result = p->SetEventNotificationMode (this, mode, event_type,
- event_thread, args);
- va_end (args);
- return result;
- }
-
- jvmtiError GetAllThreads (jint *threads_count_ptr, jthread **threads_ptr)
- { return p->GetAllThreads (this, threads_count_ptr, threads_ptr); }
-
- jvmtiError SuspendThread (jthread thread)
- { return p->SuspendThread (this, thread); }
-
- jvmtiError ResumeThread (jthread thread)
- { return p->ResumeThread (this, thread); }
-
- jvmtiError StopThread (jthread thread, jobject exception)
- { return p->StopThread (this, thread, exception); }
-
- jvmtiError InterruptThread (jthread thread)
- { return p->InterruptThread (this, thread); }
-
- jvmtiError GetThreadInfo (jthread thread, jvmtiThreadInfo *info_ptr)
- { return p->GetThreadInfo (this, thread, info_ptr); }
-
- jvmtiError GetOwnedMonitorInfo (jthread thread,
- jint *owned_monitor_count_ptr,
- jobject **owned_monitors_ptr)
- {
- return p->GetOwnedMonitorInfo (this, thread, owned_monitor_count_ptr,
- owned_monitors_ptr);
- }
-
- jvmtiError GetCurrentContendedMonitor (jthread thread, jobject *monitor_ptr)
- { return p->GetCurrentContendedMonitor (this, thread, monitor_ptr); }
-
- jvmtiError RunAgentThread (jthread thread, jvmtiStartFunction proc,
- const void *arg, jint priority)
- { return p->RunAgentThread (this, thread, proc, arg, priority); }
-
- jvmtiError GetTopThreadGroups (jint *group_count_ptr,
- jthreadGroup **groups_ptr)
- { return p->GetTopThreadGroups (this, group_count_ptr, groups_ptr); }
-
- jvmtiError GetThreadGroupInfo (jthreadGroup group,
- jvmtiThreadGroupInfo *info_ptr)
- { return p->GetThreadGroupInfo (this, group, info_ptr); }
-
- jvmtiError GetThreadGroupChildren (jthreadGroup group,
- jint *thread_count_ptr,
- jthread **threads_ptr,
- jint *group_count_ptr,
- jthreadGroup **groups_ptr)
- {
- return p->GetThreadGroupChildren (this, group, thread_count_ptr,
- threads_ptr, group_count_ptr,
- groups_ptr);
- }
-
- jvmtiError GetFrameCount (jthread thread, jint *count_ptr)
- { return p->GetFrameCount (this, thread, count_ptr); }
-
- jvmtiError GetThreadState (jthread thread, jint *thread_state_ptr)
- { return p->GetThreadState (this, thread, thread_state_ptr); }
-
- jvmtiError GetFrameLocation (jthread thread, jint depth,
- jmethodID *method_ptr, jlocation *location_ptr)
- {
- return p->GetFrameLocation (this, thread, depth, method_ptr,
- location_ptr);
- }
-
- jvmtiError NotifyPopFrame (jthread thread, jint depth)
- { return p->NotifyPopFrame (this, thread, depth); }
-
- jvmtiError GetLocalObject (jthread thread, jint depth, jint slot,
- jobject *value_ptr)
- { return p->GetLocalObject (this, thread, depth, slot, value_ptr); }
-
- jvmtiError GetLocalInt (jthread thread, jint depth, jint slot,
- jint *value_ptr)
- { return p->GetLocalInt (this, thread, depth, slot, value_ptr); }
-
- jvmtiError GetLocalLong (jthread thread, jint depth, jint slot,
- jlong *value_ptr)
- { return p->GetLocalLong (this, thread, depth, slot, value_ptr); }
-
- jvmtiError GetLocalFloat (jthread thread, jint depth, jint slot,
- jfloat *value_ptr)
- { return p->GetLocalFloat (this, thread, depth, slot, value_ptr); }
-
- jvmtiError GetLocalDouble (jthread thread, jint depth, jint slot,
- jdouble *value_ptr)
- { return p->GetLocalDouble (this, thread, depth, slot, value_ptr); }
-
- jvmtiError SetLocalObject (jthread thread, jint depth, jint slot,
- jobject value)
- { return p->SetLocalObject (this, thread, depth, slot, value); }
-
- jvmtiError SetLocalInt (jthread thread, jint depth, jint slot,
- jint value)
- { return p->SetLocalInt (this, thread, depth, slot, value); }
-
- jvmtiError SetLocalLong (jthread thread, jint depth, jint slot,
- jlong value)
- { return p->SetLocalLong (this, thread, depth, slot, value); }
-
- jvmtiError SetLocalFloat (jthread thread, jint depth, jint slot,
- jfloat value)
- { return p->SetLocalFloat (this, thread, depth, slot, value); }
-
- jvmtiError SetLocalDouble (jthread thread, jint depth, jint slot,
- jdouble value)
- { return p->SetLocalDouble (this, thread, depth, slot, value); }
-
- jvmtiError CreateRawMonitor (const char *name, jrawMonitorID *monitor_ptr)
- { return p->CreateRawMonitor (this, name, monitor_ptr); }
-
- jvmtiError DestroyRawMonitor (jrawMonitorID monitor)
- { return p->DestroyRawMonitor (this, monitor); }
-
- jvmtiError RawMonitorEnter (jrawMonitorID monitor)
- { return p->RawMonitorEnter (this, monitor); }
-
- jvmtiError RawMonitorExit (jrawMonitorID monitor)
- { return p->RawMonitorExit (this, monitor); }
-
- jvmtiError RawMonitorWait (jrawMonitorID monitor, jlong millis)
- { return p->RawMonitorWait (this, monitor, millis); }
-
- jvmtiError RawMonitorNotify (jrawMonitorID monitor)
- { return p->RawMonitorNotify (this, monitor); }
-
- jvmtiError RawMonitorNotifyAll (jrawMonitorID monitor)
- { return p->RawMonitorNotifyAll (this, monitor); }
-
- jvmtiError SetBreakpoint (jmethodID method, jlocation location)
- { return p->SetBreakpoint (this, method, location); }
-
- jvmtiError ClearBreakpoint (jmethodID method, jlocation location)
- { return p->ClearBreakpoint (this, method, location); }
-
- jvmtiError SetFieldAccessWatch (jclass klass, jfieldID field)
- { return p->SetFieldAccessWatch (this, klass, field); }
-
- jvmtiError ClearFieldAccessWatch (jclass klass, jfieldID field)
- { return p->ClearFieldAccessWatch (this, klass, field); }
-
- jvmtiError SetFieldModificationWatch (jclass klass, jfieldID field)
- { return p->SetFieldModificationWatch (this, klass, field); }
-
- jvmtiError ClearFieldModificationWatch (jclass klass, jfieldID field)
- { return p->ClearFieldModificationWatch (this, klass, field); }
-
- jvmtiError Allocate (jlong size, unsigned char **mem_ptr)
- { return p->Allocate (this, size, mem_ptr); }
-
- jvmtiError Deallocate (unsigned char *mem)
- { return p->Deallocate (this, mem); }
-
- jvmtiError GetClassSignature (jclass klass, char **signature_ptr,
- char **generic_ptr)
- { return p->GetClassSignature (this, klass, signature_ptr, generic_ptr); }
-
- jvmtiError GetClassStatus (jclass klass, jint *status_ptr)
- { return p->GetClassStatus (this, klass, status_ptr); }
-
- jvmtiError GetSourceFileName (jclass klass, char **source_name_ptr)
- { return p->GetSourceFileName (this, klass, source_name_ptr); }
-
- jvmtiError GetClassModifiers (jclass klass, jint *modifiers_ptr)
- { return p->GetClassModifiers (this, klass, modifiers_ptr); }
-
- jvmtiError GetClassMethods (jclass klass, jint *method_count_ptr,
- jmethodID **methods_ptr)
- { return p->GetClassMethods (this, klass, method_count_ptr, methods_ptr); }
-
- jvmtiError GetClassFields (jclass klass, jint *field_count_ptr,
- jfieldID **fields_ptr)
- { return p->GetClassFields (this, klass, field_count_ptr, fields_ptr); }
-
- jvmtiError GetImplementedInterfaces (jclass klass,
- jint *interface_count_ptr,
- jclass **interfaces_ptr)
- {
- return p->GetImplementedInterfaces (this, klass, interface_count_ptr,
- interfaces_ptr);
- }
-
- jvmtiError IsInterface (jclass klass, jboolean *is_interface_ptr)
- { return p->IsInterface (this, klass, is_interface_ptr); }
-
- jvmtiError IsArrayClass (jclass klass, jboolean *is_array_class_ptr)
- { return p->IsArrayClass (this, klass, is_array_class_ptr); }
-
- jvmtiError GetClassLoader (jclass klass, jobject *classloader_ptr)
- { return p->GetClassLoader (this, klass, classloader_ptr); }
-
- jvmtiError GetObjectHashCode (jobject object, jint *hash_code_ptr)
- { return p->GetObjectHashCode (this, object, hash_code_ptr); }
-
- jvmtiError GetObjectMonitorUsage (jobject object,
- jvmtiMonitorUsage *info_ptr)
- { return p->GetObjectMonitorUsage (this, object, info_ptr); }
-
- jvmtiError GetFieldName (jclass klass, jfieldID field, char **name_ptr,
- char **signature_ptr, char **generic_ptr)
- {
- return p->GetFieldName (this, klass, field, name_ptr,
- signature_ptr, generic_ptr);
- }
-
- jvmtiError GetFieldDeclaringClass (jclass klass, jfieldID field,
- jclass *declaring_class_ptr)
- {
- return p->GetFieldDeclaringClass (this, klass, field,
- declaring_class_ptr);
- }
-
- jvmtiError GetFieldModifiers (jclass klass, jfieldID field,
- jint *modifiers_ptr)
- { return p->GetFieldModifiers (this, klass, field, modifiers_ptr); }
-
- jvmtiError IsFieldSynthetic (jclass klass, jfieldID field,
- jboolean *is_synthetic_ptr)
- { return p->IsFieldSynthetic (this, klass, field, is_synthetic_ptr); }
-
- jvmtiError GetMethodName (jmethodID method, char **name_ptr,
- char **signature_ptr, char **generic_ptr)
- {
- return p->GetMethodName (this, method, name_ptr, signature_ptr,
- generic_ptr);
- }
-
- jvmtiError GetMethodDeclaringClass (jmethodID method,
- jclass *declaring_class_ptr)
- { return p->GetMethodDeclaringClass (this, method, declaring_class_ptr); }
-
-
- jvmtiError GetMethodModifiers (jmethodID method, jint *modifiers_ptr)
- { return p->GetMethodModifiers (this, method, modifiers_ptr); }
-
- jvmtiError GetMaxLocals (jmethodID method, jint *max_ptr)
- { return p->GetMaxLocals (this, method, max_ptr); }
-
- jvmtiError GetArgumentsSize (jmethodID method, jint *size_ptr)
- { return p->GetArgumentsSize (this, method, size_ptr); }
-
- jvmtiError GetLineNumberTable (jmethodID method, jint *entry_count_ptr,
- jvmtiLineNumberEntry **table_ptr)
- { return p->GetLineNumberTable (this, method, entry_count_ptr, table_ptr); }
-
- jvmtiError GetMethodLocation (jmethodID method,
- jlocation *start_location_ptr,
- jlocation *end_location_ptr)
- {
- return p->GetMethodLocation (this, method, start_location_ptr,
- end_location_ptr);
- }
-
- jvmtiError GetLocalVariableTable (jmethodID method, jint *entry_count_ptr,
- jvmtiLocalVariableEntry **table_ptr)
- {
- return p->GetLocalVariableTable (this, method, entry_count_ptr,
- table_ptr);
- }
-
- jvmtiError GetBytecodes (jmethodID method, jint *bytecode_count_ptr,
- unsigned char **bytecodes_ptr)
- {
- return p->GetBytecodes (this, method, bytecode_count_ptr,
- bytecodes_ptr);
- }
-
- jvmtiError IsMethodNative (jmethodID method, jboolean *is_native_ptr)
- { return p->IsMethodNative (this, method, is_native_ptr); }
-
- jvmtiError IsMethodSynthetic (jmethodID method, jboolean *is_synthetic_ptr)
- { return p->IsMethodSynthetic (this, method, is_synthetic_ptr); }
-
- jvmtiError GetLoadedClasses (jint *class_count_ptr, jclass **classes_ptr)
- { return p->GetLoadedClasses (this, class_count_ptr, classes_ptr); }
-
- jvmtiError GetClassLoaderClasses (jobject initiating_loader,
- jint *class_count_ptr,
- jclass **classes_ptr)
- {
- return p->GetClassLoaderClasses (this, initiating_loader,
- class_count_ptr, classes_ptr);
- }
-
- jvmtiError PopFrame (jthread thread)
- { return p->PopFrame (this, thread); }
-
- jvmtiError RedefineClasses (jint class_count,
- const jvmtiClassDefinition* class_definitions)
- { return p->RedefineClasses (this, class_count, class_definitions); }
-
- jvmtiError GetVersionNumber (jint *version_ptr)
- { return p->GetVersionNumber (this, version_ptr); }
-
- jvmtiError GetCapabilities (jvmtiCapabilities *capabilities_ptr)
- { return p->GetCapabilities (this, capabilities_ptr); }
-
- jvmtiError GetSourceDebugExtension (jclass klass,
- char **source_debug_extension_ptr)
- {
- return p->GetSourceDebugExtension (this, klass,
- source_debug_extension_ptr);
- }
-
- jvmtiError IsMethodObsolete (jmethodID method, jboolean *is_obsolete_ptr)
- { return p->IsMethodObsolete (this, method, is_obsolete_ptr); }
-
-
- jvmtiError SuspendThreadList (jint request_count,
- const jthread *request_list,
- jvmtiError *results)
- { return p->SuspendThreadList (this, request_count, request_list, results); }
-
- jvmtiError ResumeThreadList (jint request_count,
- const jthread *request_list,
- jvmtiError *results)
- { return p->ResumeThreadList (this, request_count, request_list, results); }
-
- jvmtiError GetAllStackTraces (jint max_frame_count,
- jvmtiStackInfo **stack_info_ptr,
- jint *thread_count_ptr)
- {
- return p->GetAllStackTraces (this, max_frame_count, stack_info_ptr,
- thread_count_ptr);
- }
-
- jvmtiError GetThreadListStackTraces (jint thread_count,
- const jthread *thread_list,
- jint max_frame_count,
- jvmtiStackInfo **stack_info_ptr)
- {
- return p->GetThreadListStackTraces (this, thread_count, thread_list,
- max_frame_count, stack_info_ptr);
- }
-
- jvmtiError GetThreadLocalStorage (jthread thread, void **data_ptr)
- { return p->GetThreadLocalStorage (this, thread, data_ptr); }
-
- jvmtiError SetThreadLocalStorage (jthread thread, const void *data)
- { return p->SetThreadLocalStorage (this, thread, data); }
-
- jvmtiError GetStackTrace (jthread thread, jint start_depth,
- jint max_frame_count,
- jvmtiFrameInfo *frame_buffer, jint *count_ptr)
- {
- return p->GetStackTrace (this, thread, start_depth, max_frame_count,
- frame_buffer, count_ptr);
- }
-
- jvmtiError GetTag (jobject object, jlong *tag_ptr)
- { return p->GetTag (this, object, tag_ptr); }
-
- jvmtiError SetTag (jobject object, jlong tag)
- { return p->SetTag (this, object, tag); }
-
- jvmtiError ForceGarbageCollection (void)
- { return p->ForceGarbageCollection (this); }
-
- jvmtiError IterateOverObjectsReachableFromObject (jobject object,
- jvmtiObjectReferenceCallback object_reference_callback,
- void *user_data)
- {
- return p->IterateOverObjectsReachableFromObject (this, object,
- object_reference_callback,
- user_data);
- }
-
- jvmtiError IterateOverReachableObjects (jvmtiHeapRootCallback heap_root_callback,
- jvmtiStackReferenceCallback stack_ref_callback,
- jvmtiObjectReferenceCallback object_ref_callback,
- void *user_data)
- {
- return p->IterateOverReachableObjects (this, heap_root_callback,
- stack_ref_callback,
- object_ref_callback,
- user_data);
- }
-
- jvmtiError IterateOverHeap (jvmtiHeapObjectFilter object_filter,
- jvmtiHeapObjectCallback heap_object_callback,
- void *user_data)
- {
- return p->IterateOverHeap (this, object_filter, heap_object_callback,
- user_data);
- }
-
- jvmtiError IterateOverInstanceOfClass (jclass klass,
- jvmtiHeapObjectFilter object_filter,
- jvmtiHeapObjectCallback heap_object_callback,
- void *user_data)
- {
- return p->IterateOverInstanceOfClass (this, klass, object_filter,
- heap_object_callback, user_data);
- }
-
- jvmtiError GetObjectsWithTags (jint tag_count, const jlong *tags,
- jint *count_ptr, jobject **object_result_ptr,
- jlong **tag_result_ptr)
- {
- return p->GetObjectsWithTags (this, tag_count, tags, count_ptr,
- object_result_ptr, tag_result_ptr);
- }
-
- jvmtiError SetJNIFunctionTable (const jniNativeInterface *function_table)
- { return p->SetJNIFunctionTable (this, function_table); }
-
- jvmtiError GetJNIFunctionTable (jniNativeInterface **function_table_ptr)
- { return p->GetJNIFunctionTable (this, function_table_ptr); }
-
- jvmtiError SetEventCallbacks (const jvmtiEventCallbacks *callbacks,
- jint size_of_callbacks)
- { return p->SetEventCallbacks (this, callbacks, size_of_callbacks); }
-
- jvmtiError GenerateEvents (jvmtiEvent event_type)
- { return p->GenerateEvents (this, event_type); }
-
- jvmtiError GetExtensionFunctions (jint *extension_count_ptr,
- jvmtiExtensionFunctionInfo **extensions)
- { return p->GetExtensionFunctions (this, extension_count_ptr, extensions); }
-
- jvmtiError GetExtensionEvents (jint *extension_count_ptr,
- jvmtiExtensionEventInfo **extensions)
- { return p->GetExtensionEvents (this, extension_count_ptr, extensions); }
-
- jvmtiError SetExtensionEventCallback (jint extension_event_index,
- jvmtiExtensionEvent callback)
- {
- return p->SetExtensionEventCallback (this, extension_event_index,
- callback);
- }
-
- jvmtiError DisposeEnvironment (void)
- { return p->DisposeEnvironment (this); }
-
- jvmtiError GetErrorName (jvmtiError error, char **name_ptr)
- { return p->GetErrorName (this, error, name_ptr); }
-
- jvmtiError GetJLocationFormat (jvmtiJlocationFormat *format_ptr)
- { return p->GetJLocationFormat (this, format_ptr); }
-
- jvmtiError GetSystemProperties (jint *count_ptr, char ***property_ptr)
- { return p->GetSystemProperties (this, count_ptr, property_ptr); }
-
- jvmtiError GetSystemProperty (const char *property, char **value_ptr)
- { return p->GetSystemProperty (this, property, value_ptr); }
-
- jvmtiError SetSystemProperty (const char *property, const char *value)
- { return p->SetSystemProperty (this, property, value); }
-
- jvmtiError GetPhase (jvmtiPhase *phase_ptr)
- { return p->GetPhase (this, phase_ptr); }
-
- jvmtiError GetCurrentThreadCpuTimerInfo (jvmtiTimerInfo *info_ptr)
- { return p->GetCurrentThreadCpuTimerInfo (this, info_ptr); }
-
- jvmtiError GetCurrentThreadCpuTime (jlong *nanos_ptr)
- { return p->GetCurrentThreadCpuTime (this, nanos_ptr); }
-
- jvmtiError GetThreadCpuTimerInfo (jvmtiTimerInfo *info_ptr)
- { return p->GetThreadCpuTimerInfo (this, info_ptr); }
-
- jvmtiError GetThreadCpuTime (jthread thread, jlong *nanos_ptr)
- { return p->GetThreadCpuTime (this, thread, nanos_ptr); }
-
- jvmtiError GetTimerInfo (jvmtiTimerInfo *info_ptr)
- { return p->GetTimerInfo (this, info_ptr); }
-
- jvmtiError GetTime (jlong *nanos_ptr)
- {return p->GetTime (this, nanos_ptr); }
-
- jvmtiError GetPotentialCapabilities (jvmtiCapabilities *capabilities_ptr)
- { return p->GetPotentialCapabilities (this, capabilities_ptr); }
-
- jvmtiError AddCapabilities (const jvmtiCapabilities *capabilities_ptr)
- { return p->AddCapabilities (this, capabilities_ptr); }
-
- jvmtiError RelinquishCapabilities (const jvmtiCapabilities *capabilities_ptr)
- { return p->RelinquishCapabilities (this, capabilities_ptr); }
-
- jvmtiError GetAvailableProcessors (jint *processor_count_ptr)
- { return p->GetAvailableProcessors (this, processor_count_ptr); }
-
- jvmtiError GetEnvironmentLocalStorage (void **data_ptr)
- { return p->GetEnvironmentLocalStorage (this, data_ptr); }
-
- jvmtiError SetEnvironmentLocalStorage (const void *data)
- { return p->SetEnvironmentLocalStorage (this, data); }
-
- jvmtiError AddToBootstrapClassLoaderSearch (const char *segment)
- { return p->AddToBootstrapClassLoaderSearch (this, segment); }
-
- jvmtiError SetVerboseFlag (jvmtiVerboseFlag flag, jboolean value)
- { return p->SetVerboseFlag (this, flag, value); }
-
- jvmtiError GetObjectSize (jobject object, jlong *size_ptr)
- { return p->GetObjectSize (this, object, size_ptr); }
-};
-#endif /* __cplusplus */
-
-/*
- * Miscellaneous flags, constants, etc
- */
-
-/* Class status flags */
-#define JVMTI_CLASS_STATUS_VERIFIED 1
-#define JVMTI_CLASS_STATUS_PREPARED 2
-#define JVMTI_CLASS_STATUS_INITIALIZED 4
-#define JVMTI_CLASS_STATUS_ERROR 8
-#define JVMTI_CLASS_STATUS_ARRAY 16
-#define JVMTI_CLASS_STATUS_PRIMITIVE 32
-
-/* Thread state flags */
-#define JVMTI_THREAD_STATE_ALIVE 0x0001
-#define JVMTI_THREAD_STATE_TERMINATED 0x0002
-#define JVMTI_THREAD_STATE_RUNNABLE 0x0004
-#define JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER 0x0400
-#define JVMTI_THREAD_STATE_WAITING 0x0080
-#define JVMTI_THREAD_STATE_WAITING_INDEFINITELY 0x0010
-#define JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT 0x0020
-#define JVMTI_THREAD_STATE_SLEEPING 0x0040
-#define JVMTI_THREAD_STATE_IN_OBJECT_WAIT 0x0100
-#define JVMTI_THREAD_STATE_PARKED 0x0200
-#define JVMTI_THREAD_STATE_SUSPENDED 0x100000
-#define JVMTI_THREAD_STATE_INTERRUPTED 0x200000
-#define JVMTI_THREAD_STATE_IN_NATIVE 0x400000
-#define JVMTI_THREAD_STATE_VENDOR_1 0x10000000
-#define JVMTI_THREAD_STATE_VENDOR_2 0x20000000
-#define JVMTI_THREAD_STATE_VENDOR_3 0x40000000
-
-/* java.lang.Thread.State conversion masks */
-#define JVMTI_JAVA_LANG_THREAD_STATE_MASK \
- (JVMTI_THREAD_STATE_TERMINATED \
- | JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_RUNNABLE \
- | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER \
- | JVMTI_THREAD_STATE_WAITING \
- | JVMTI_THREAD_STATE_WAITING_INDEFINITELY \
- | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT)
-#define JVMTI_JAVA_LANG_THREAD_STATE_NEW 0
-#define JVMTI_JAVA_LANG_THREAD_STATE_TERMINATED JVMTI_THREAD_STATE_TERMINATED
-#define JVMTI_JAVA_LANG_THREAD_STATE_RUNNABLE \
- (JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_RUNNABLE)
-#define JVMTI_JAVA_LANG_THREAD_STATE_BLOCKED \
- (JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_BLOCKED_ON_MONITOR_ENTER)
-#define JVMTI_JAVA_LANG_THREAD_STATE_WAITING \
- (JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_WAITING \
- | JVMTI_THREAD_STATE_WAITING_INDEFINITELY)
-#define JVMTI_JAVA_LANG_THREAD_STATE_TIMED_WAITING \
- (JVMTI_THREAD_STATE_ALIVE \
- | JVMTI_THREAD_STATE_WAITING \
- | JVMTI_THREAD_STATE_WAITING_WITH_TIMEOUT)
-
-/* Thread priorities */
-#define JVMTI_THREAD_MIN_PRIORITY 1
-#define JVMTI_THREAD_NORM_PRIORITY 5
-#define JVMTI_THREAD_MAX_PRIORITY 10
-
-/* Keep c-font-lock-extra-types in order: JNI followed by JVMTI,
- all in alphabetical order */
-/* Local Variables: */
-/* c-font-lock-extra-types: ("\\sw+_t"
- "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray"
- "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar" "jcharArray"
- "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray"
- "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"
- "jvalue" "jweak"
- "jvmtiEnv" "jvmtiError"
- "jthread" "jthreadGroup" "jlocation" "jrawMonitorID") */
-/* End: */
-#endif /* !_CLASSPATH_JVMTI_H */
diff --git a/libjava/classpath/lib/Makefile.am b/libjava/classpath/lib/Makefile.am
index 3f2de4187c8..f2089f243d6 100644
--- a/libjava/classpath/lib/Makefile.am
+++ b/libjava/classpath/lib/Makefile.am
@@ -5,13 +5,6 @@ JAVA_DEPEND = java.dep
## this file and restart the make process again
sinclude $(JAVA_DEPEND)
-propertyfiles := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print)
-cssfiles := $(shell cd $(top_srcdir) && $(FIND) gnu java javax org -name \*\.css -print)
-## GCJ LOCAL: prune .svn directories
-metafiles := $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print | fgrep -v .svn)
-## END GCJ LOCAL
-iconfiles := $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
-
compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
# handling source to bytecode compiler programs like gcj, jikes and kjc
@@ -35,8 +28,6 @@ endif # FOUND_KJC
endif # FOUND_GCJ
endif # FOUND_JIKES
-JAVAH = $(USER_JAVAH) -jni -classpath .:$(USER_CLASSLIB)
-
if CREATE_COLLECTIONS
COLLECTIONS = collections.jar
@@ -100,23 +91,18 @@ glibj.zip: classes compile-classes resources
endif # USE_PREBUILT_GLIBJ_ZIP
resources: copy-vmresources.sh
- @list='$(propertyfiles)'; for p in $$list; do \
+ @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
dirname=`dirname $$p`; \
if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
- @list='$(cssfiles)'; for p in $$list; do \
- dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
- cp $(top_srcdir)/$$p $$p; \
- done
- @list='$(metafiles)'; for p in $$list; do \
+ @list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
@$(SHELL) ./copy-vmresources.sh
- @list='$(iconfiles)'; for p in $$list; do \
+ @list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
cp $(top_srcdir)/$$p $$p; \
diff --git a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in
index eef968cacc2..bb2dac45e55 100644
--- a/libjava/classpath/lib/Makefile.in
+++ b/libjava/classpath/lib/Makefile.in
@@ -103,6 +103,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -141,8 +143,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -166,6 +166,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -238,8 +247,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -312,10 +319,6 @@ target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
vm_classes = @vm_classes@
JAVA_DEPEND = java.dep
-propertyfiles := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print)
-cssfiles := $(shell cd $(top_srcdir) && $(FIND) gnu java javax org -name \*\.css -print)
-metafiles := $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print | fgrep -v .svn)
-iconfiles := $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
@FOUND_ECJ_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JCOMPILER = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_TRUE@JCOMPILER = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes
@@ -323,7 +326,6 @@ compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$
# handling source to bytecode compiler programs like gcj, jikes and kjc
@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
-JAVAH = $(USER_JAVAH) -jni -classpath .:$(USER_CLASSLIB)
@CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar
@BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources
# endif
@@ -548,23 +550,18 @@ sinclude $(JAVA_DEPEND)
@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org sun META-INF; fi
resources: copy-vmresources.sh
- @list='$(propertyfiles)'; for p in $$list; do \
+ @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
dirname=`dirname $$p`; \
if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
- @list='$(cssfiles)'; for p in $$list; do \
- dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
- cp $(top_srcdir)/$$p $$p; \
- done
- @list='$(metafiles)'; for p in $$list; do \
+ @list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
@$(SHELL) ./copy-vmresources.sh
- @list='$(iconfiles)'; for p in $$list; do \
+ @list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
cp $(top_srcdir)/$$p $$p; \
diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class
index 76603214d10..0ba05cff02e 100644
--- a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class
+++ b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_2/RequestHeader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class b/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class
index 85e366de381..07a969a8199 100644
--- a/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class
+++ b/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class b/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class
index 5bd9bfd44b5..1cf8cd7bf85 100644
--- a/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class
+++ b/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class b/libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class
index 49be95c4984..9a5b14fb4f5 100644
--- a/libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class
+++ b/libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class b/libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class
index 43e9b4bcb84..8cb02341140 100644
--- a/libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class
+++ b/libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/awt/xlib/XToolkit.class b/libjava/classpath/lib/gnu/awt/xlib/XToolkit.class
index cbbe2a92bdd..7d28074f248 100644
--- a/libjava/classpath/lib/gnu/awt/xlib/XToolkit.class
+++ b/libjava/classpath/lib/gnu/awt/xlib/XToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class b/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class
index dbfaf4b1f18..9123146a2c1 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class
index 14a8ff0b17f..37fce044ea6 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
index 16e2c489783..cbbf6fd7b8c 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.class b/libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.class
new file mode 100644
index 00000000000..b0a86658905
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
index b27aa84eb6e..d4615e82315 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.class
new file mode 100644
index 00000000000..c5da4d87005
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class
new file mode 100644
index 00000000000..dd2dc43ea6b
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class
new file mode 100644
index 00000000000..17636a75b43
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class
new file mode 100644
index 00000000000..3d774a32384
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class
index d82213949e5..4cc1fd2ee24 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class
index 9dd1dfffb08..ac6edad202d 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class
index 679f4e73473..db76d831f43 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
index 9ff901c2ed7..49ee40561eb 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
index 284bb0d6fd3..e1b64636ebc 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
index 64d47db6b38..2df0587b70c 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
index 0807a240c95..a20978bc996 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
index a8c30b26e3d..e4dfec577ef 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
index 074b1b539e1..6e3a11a3cf1 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class
index 293db87d449..5806dc2f5a8 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class
index 0b18f33487d..a4105ea03a9 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class
index cbfa62c192e..3eb57b1611f 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class
index 0e6abdf8be1..84223c8a55b 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class
index d831c638eaa..53fcf3bbbcb 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
index 2968b39e893..118b4d80866 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class
index a3330885a21..07ffa91a18c 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class
index 0494728ecb6..a13f74232bb 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
index 69b4f870ccc..97fe84a8ec8 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class
index 097713c014a..abf76c0d9ee 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
index d7021880c85..45f9c47f8c6 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class
index e6de1c3eafa..613e0748ef7 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class
index 956a5e1c989..1553852658d 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class
index 35c5677f5b8..fc028c27fbb 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class
index cf0105ceeb2..8e9d88427b3 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
index 131cdf7a93c..15180e0769b 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
index 53be22ad284..a348cf02d4a 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
index 4a2fa1c1956..a5df713903f 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class
index 609c79cf092..7c2e901d4cf 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class
index 6593dd64f4d..482da2d3350 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class
index f70900ce602..d7bf8638989 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class
index dfdfde005b1..607696c42c9 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class
index d658fe22eda..58d280c1356 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class
index d44cb314658..caa0257f736 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class
index ae9fa720e73..4e50a77f6c9 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class
index 602b48fb91b..95f32f011ac 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class
index 24adbb8af3c..f23519fdecf 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class
index 8c8a09afeeb..0ea9f7ebffa 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class
new file mode 100644
index 00000000000..a290ef3135c
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class
new file mode 100644
index 00000000000..7259ec2e1a3
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
new file mode 100644
index 00000000000..fce29a616f2
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class
index 75a9113d86e..43fa6cee965 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class
index d5df2074a36..697a7aaa8a3 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class
index edf0a7d0b7b..0f014bc33fa 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class
index 2334fe73c75..48eb45d715a 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class
index 7d34f8504f2..343c3ed5925 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class
index 6351297a9d0..9b08f566c6f 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class
index 094a417f432..86290a837d0 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class
new file mode 100644
index 00000000000..63400301f79
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class
new file mode 100644
index 00000000000..394a3acf5be
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class
index 59edb75bbe0..cb80579e17f 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
index e8836be2637..643ba7a05cc 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class
index fe242f791dc..db2bf26d071 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
index 0250fba193b..55eaafca06d 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class
index f44acac3806..0dc260bbea4 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class
index f3f2f6fb9a0..6c90744c2e0 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/math/Fixed.class b/libjava/classpath/lib/gnu/java/math/Fixed.class
index 276a3c914f6..5aed8debfb4 100644
--- a/libjava/classpath/lib/gnu/java/math/Fixed.class
+++ b/libjava/classpath/lib/gnu/java/math/Fixed.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class b/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class
index ca359339eb7..e2d328afe5a 100644
--- a/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class
+++ b/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class
index d4bb421d738..64e6768b895 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class
index 0262718eb66..6fe13059542 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class
index 8447ee37479..28c62ca33ce 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/Engine.class b/libjava/classpath/lib/gnu/java/security/Engine.class
index b9b5a3f916d..cf92b967519 100644
--- a/libjava/classpath/lib/gnu/java/security/Engine.class
+++ b/libjava/classpath/lib/gnu/java/security/Engine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
new file mode 100644
index 00000000000..3eae4f238da
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
new file mode 100644
index 00000000000..1b2798c8b6c
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class
new file mode 100644
index 00000000000..2921e8f68a0
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class
new file mode 100644
index 00000000000..5fedce0c998
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.class
new file mode 100644
index 00000000000..9a5fb40138a
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
new file mode 100644
index 00000000000..ee09fb9caec
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class
new file mode 100644
index 00000000000..3adbce40d12
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class
new file mode 100644
index 00000000000..337c1182b11
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.class
new file mode 100644
index 00000000000..c94267ddcc1
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class
new file mode 100644
index 00000000000..0facc0d2666
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class
new file mode 100644
index 00000000000..a03af0675fb
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class
new file mode 100644
index 00000000000..b3843f0afd2
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class
new file mode 100644
index 00000000000..775dd741998
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class
new file mode 100644
index 00000000000..627ba8d936e
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
index e513ecf6fec..07a45dedd84 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomElement.class b/libjava/classpath/lib/gnu/xml/dom/DomElement.class
index 76a244e798d..4c7d97f5afc 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomElement.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomElement.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class b/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class
index 5ff3c7a8dbe..3f8a7fd3eaf 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
index e2c1a29b51f..ef4159ec9f5 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
index 71bf96f4167..a01897c9416 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
index 6be5e27c404..9c50f2b1af7 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
index be87f5c76bb..aef279fcbc8 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode.class b/libjava/classpath/lib/gnu/xml/dom/DomNode.class
index f673df8bbf9..cf1ae634f87 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
index 5ba9dfac935..34ee47d5329 100644
--- a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
+++ b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
index ebaf1ecf0e5..517fa692f8b 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
index 0931e756818..099ec4ac773 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
index f6008703068..af7ce248395 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
index bf985d77cf9..f5f1f536159 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
index 7c6c30ca9ea..c5289181000 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
index 547386eba68..9b457cbe0c0 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
index 243ba76c828..b3c4eed3bb3 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
index 4abfa1d6507..6a3ba1e8256 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
index 59189736fac..dcb88dd2685 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
index db3548b3592..7fb33b06247 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
index 4d38e3e3eb5..70cd47ed8c4 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/WithParam.class b/libjava/classpath/lib/gnu/xml/transform/WithParam.class
index 788a08467bb..6af01d29757 100644
--- a/libjava/classpath/lib/gnu/xml/transform/WithParam.class
+++ b/libjava/classpath/lib/gnu/xml/transform/WithParam.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
index f48c922ff79..6c5bdeb7565 100644
--- a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
+++ b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
index 029692cc4f0..e2e3e879254 100644
--- a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
+++ b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
index 010706e95d8..22532323a23 100644
--- a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
+++ b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
index 74be60b2956..e796a03a7f4 100644
--- a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
+++ b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
index 16b024509d2..f0857dc8ea3 100644
--- a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
+++ b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
index 5ab9670bde1..60503e61e1d 100644
--- a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
+++ b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component.class b/libjava/classpath/lib/java/awt/Component.class
index 6adbf61ac0a..90b546ccd3a 100644
--- a/libjava/classpath/lib/java/awt/Component.class
+++ b/libjava/classpath/lib/java/awt/Component.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
index a07e427861d..5f045ab2123 100644
--- a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
+++ b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
index 18f79012eb3..167660a70ba 100644
--- a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
+++ b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
index fea586bd9fd..cd7fd4c6493 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
index e5a54f8ffdc..791d8579f0f 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
index 3c741e98426..087631893fb 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
index fe7b3267f6e..c8557e99c45 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
index f9f85ae5215..9fd2811aad9 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container.class b/libjava/classpath/lib/java/awt/Container.class
index 1154af9697a..f6b029ec258 100644
--- a/libjava/classpath/lib/java/awt/Container.class
+++ b/libjava/classpath/lib/java/awt/Container.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class b/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class
index 5c29aba6a4e..c10c5bb3d87 100644
--- a/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class
+++ b/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class b/libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class
new file mode 100644
index 00000000000..3bad6d3df60
--- /dev/null
+++ b/libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Dialog$ModalityType.class b/libjava/classpath/lib/java/awt/Dialog$ModalityType.class
new file mode 100644
index 00000000000..cfbe00ed721
--- /dev/null
+++ b/libjava/classpath/lib/java/awt/Dialog$ModalityType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Dialog.class b/libjava/classpath/lib/java/awt/Dialog.class
index dd13eb4bab9..92ca1360727 100644
--- a/libjava/classpath/lib/java/awt/Dialog.class
+++ b/libjava/classpath/lib/java/awt/Dialog.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Font.class b/libjava/classpath/lib/java/awt/Font.class
index 4676333992c..d0df448d21b 100644
--- a/libjava/classpath/lib/java/awt/Font.class
+++ b/libjava/classpath/lib/java/awt/Font.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Toolkit$2.class b/libjava/classpath/lib/java/awt/Toolkit$2.class
index ec337be1494..aa49f06a31e 100644
--- a/libjava/classpath/lib/java/awt/Toolkit$2.class
+++ b/libjava/classpath/lib/java/awt/Toolkit$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Toolkit.class b/libjava/classpath/lib/java/awt/Toolkit.class
index 89a853a3d56..66d4ae6d63b 100644
--- a/libjava/classpath/lib/java/awt/Toolkit.class
+++ b/libjava/classpath/lib/java/awt/Toolkit.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/MouseEvent.class b/libjava/classpath/lib/java/awt/event/MouseEvent.class
index 9bd3051178e..0a7888a3cf0 100644
--- a/libjava/classpath/lib/java/awt/event/MouseEvent.class
+++ b/libjava/classpath/lib/java/awt/event/MouseEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/peer/ComponentPeer.class b/libjava/classpath/lib/java/awt/peer/ComponentPeer.class
index db106ffae06..de354b52e30 100644
--- a/libjava/classpath/lib/java/awt/peer/ComponentPeer.class
+++ b/libjava/classpath/lib/java/awt/peer/ComponentPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/peer/FramePeer.class b/libjava/classpath/lib/java/awt/peer/FramePeer.class
index b8bc7585d5f..9deaff99ab0 100644
--- a/libjava/classpath/lib/java/awt/peer/FramePeer.class
+++ b/libjava/classpath/lib/java/awt/peer/FramePeer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/peer/RobotPeer.class b/libjava/classpath/lib/java/awt/peer/RobotPeer.class
index 983c6d5114f..a49e946dc21 100644
--- a/libjava/classpath/lib/java/awt/peer/RobotPeer.class
+++ b/libjava/classpath/lib/java/awt/peer/RobotPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/peer/WindowPeer.class b/libjava/classpath/lib/java/awt/peer/WindowPeer.class
index 09f9d3415e5..a1c4df15af5 100644
--- a/libjava/classpath/lib/java/awt/peer/WindowPeer.class
+++ b/libjava/classpath/lib/java/awt/peer/WindowPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/File.class b/libjava/classpath/lib/java/io/File.class
index 746da883bc8..8bcfe7989f9 100644
--- a/libjava/classpath/lib/java/io/File.class
+++ b/libjava/classpath/lib/java/io/File.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$2.class b/libjava/classpath/lib/java/io/ObjectStreamClass$2.class
index d1c8dcc79d1..8c29f2e1286 100644
--- a/libjava/classpath/lib/java/io/ObjectStreamClass$2.class
+++ b/libjava/classpath/lib/java/io/ObjectStreamClass$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class b/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class
index babf58570de..ef83afe0c2c 100644
--- a/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class
+++ b/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class b/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class
index 527fd88ab9f..6454fa88e74 100644
--- a/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class
+++ b/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/ObjectStreamClass.class b/libjava/classpath/lib/java/io/ObjectStreamClass.class
index 66dc650d804..9767f9fc6cf 100644
--- a/libjava/classpath/lib/java/io/ObjectStreamClass.class
+++ b/libjava/classpath/lib/java/io/ObjectStreamClass.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Class.class b/libjava/classpath/lib/java/lang/Class.class
index 78741b27412..ffe072f5337 100644
--- a/libjava/classpath/lib/java/lang/Class.class
+++ b/libjava/classpath/lib/java/lang/Class.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Float.class b/libjava/classpath/lib/java/lang/Float.class
index 42732a6f381..7565a07d535 100644
--- a/libjava/classpath/lib/java/lang/Float.class
+++ b/libjava/classpath/lib/java/lang/Float.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Integer.class b/libjava/classpath/lib/java/lang/Integer.class
index 3fc97252e29..291b0d03f8c 100644
--- a/libjava/classpath/lib/java/lang/Integer.class
+++ b/libjava/classpath/lib/java/lang/Integer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/VMFloat.class b/libjava/classpath/lib/java/lang/VMFloat.class
index f2c252ea865..563357d3839 100644
--- a/libjava/classpath/lib/java/lang/VMFloat.class
+++ b/libjava/classpath/lib/java/lang/VMFloat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URI.class b/libjava/classpath/lib/java/net/URI.class
index 760c952f192..be72cf438de 100644
--- a/libjava/classpath/lib/java/net/URI.class
+++ b/libjava/classpath/lib/java/net/URI.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader$1.class b/libjava/classpath/lib/java/net/URLClassLoader$1.class
index 19d6d969cfa..6209502f8b5 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader$1.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader$2.class b/libjava/classpath/lib/java/net/URLClassLoader$2.class
index d1192b5b507..7f046b870a3 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader$2.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader.class b/libjava/classpath/lib/java/net/URLClassLoader.class
index fe9324f198d..8ec9a2d572a 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharBuffer.class b/libjava/classpath/lib/java/nio/CharBuffer.class
index 2da715f4a4b..5f4bc4e168c 100644
--- a/libjava/classpath/lib/java/nio/CharBuffer.class
+++ b/libjava/classpath/lib/java/nio/CharBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharSequenceBuffer.class b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class
new file mode 100644
index 00000000000..dbd8f15dc84
--- /dev/null
+++ b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
index 25e84f01cd4..2e5c5e82909 100644
--- a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
index 1e50947b6d3..85c1c4da4b3 100644
--- a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
index 09fa18e1caa..e5e22a3d6eb 100644
--- a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
index 116807e8b22..ec0607c8208 100644
--- a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
index 381a3419b36..5dd6cd4483e 100644
--- a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
index 5570a67d3e9..5171ca63386 100644
--- a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/MarshalledObject.class b/libjava/classpath/lib/java/rmi/MarshalledObject.class
index f09c1a6156a..d48c8153174 100644
--- a/libjava/classpath/lib/java/rmi/MarshalledObject.class
+++ b/libjava/classpath/lib/java/rmi/MarshalledObject.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/Activatable.class b/libjava/classpath/lib/java/rmi/activation/Activatable.class
index 09eee6b76e9..fd96c1aa834 100644
--- a/libjava/classpath/lib/java/rmi/activation/Activatable.class
+++ b/libjava/classpath/lib/java/rmi/activation/Activatable.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class b/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class
index c1c90dcc2dd..fa8ecbf9127 100644
--- a/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class
+++ b/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class
index f07ac428422..e1c86e6786d 100644
--- a/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class
+++ b/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class b/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class
index 7800656e70a..1380bc04d3f 100644
--- a/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class
+++ b/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class b/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class
index d3e9f4dc9cd..37e2dbccaf4 100644
--- a/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class
+++ b/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class b/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class
index 28e35559397..eb3662e5f58 100644
--- a/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class
+++ b/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/Activator.class b/libjava/classpath/lib/java/rmi/activation/Activator.class
index 1610b115818..8d4bcc90b58 100644
--- a/libjava/classpath/lib/java/rmi/activation/Activator.class
+++ b/libjava/classpath/lib/java/rmi/activation/Activator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Arrays.class b/libjava/classpath/lib/java/util/Arrays.class
index 0aabd2c532e..be0021123e8 100644
--- a/libjava/classpath/lib/java/util/Arrays.class
+++ b/libjava/classpath/lib/java/util/Arrays.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$1.class b/libjava/classpath/lib/java/util/EnumMap$1.class
index 35221f848ea..4f03a7d44b4 100644
--- a/libjava/classpath/lib/java/util/EnumMap$1.class
+++ b/libjava/classpath/lib/java/util/EnumMap$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$2.class b/libjava/classpath/lib/java/util/EnumMap$2.class
index c241a888857..ab4c751de91 100644
--- a/libjava/classpath/lib/java/util/EnumMap$2.class
+++ b/libjava/classpath/lib/java/util/EnumMap$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$3.class b/libjava/classpath/lib/java/util/EnumMap$3.class
index 0727486a69c..0e884685fdb 100644
--- a/libjava/classpath/lib/java/util/EnumMap$3.class
+++ b/libjava/classpath/lib/java/util/EnumMap$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$4.class b/libjava/classpath/lib/java/util/EnumMap$4.class
index 047c3174956..932a4363866 100644
--- a/libjava/classpath/lib/java/util/EnumMap$4.class
+++ b/libjava/classpath/lib/java/util/EnumMap$4.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$5.class b/libjava/classpath/lib/java/util/EnumMap$5.class
index 2d2c5f12d0d..93b6b8dc55d 100644
--- a/libjava/classpath/lib/java/util/EnumMap$5.class
+++ b/libjava/classpath/lib/java/util/EnumMap$5.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$6.class b/libjava/classpath/lib/java/util/EnumMap$6.class
index f91d2ffdbb0..904cf125e9f 100644
--- a/libjava/classpath/lib/java/util/EnumMap$6.class
+++ b/libjava/classpath/lib/java/util/EnumMap$6.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap$7.class b/libjava/classpath/lib/java/util/EnumMap$7.class
index e04db4e6950..cb383d0cfd8 100644
--- a/libjava/classpath/lib/java/util/EnumMap$7.class
+++ b/libjava/classpath/lib/java/util/EnumMap$7.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumMap.class b/libjava/classpath/lib/java/util/EnumMap.class
index 994696b720e..b7d97575a92 100644
--- a/libjava/classpath/lib/java/util/EnumMap.class
+++ b/libjava/classpath/lib/java/util/EnumMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumSet$1.class b/libjava/classpath/lib/java/util/EnumSet$1.class
index fcf636207d5..4569d79ad5f 100644
--- a/libjava/classpath/lib/java/util/EnumSet$1.class
+++ b/libjava/classpath/lib/java/util/EnumSet$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumSet$2.class b/libjava/classpath/lib/java/util/EnumSet$2.class
new file mode 100644
index 00000000000..3430e8cdcbe
--- /dev/null
+++ b/libjava/classpath/lib/java/util/EnumSet$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/EnumSet.class b/libjava/classpath/lib/java/util/EnumSet.class
index 75d30d93014..103c004eb27 100644
--- a/libjava/classpath/lib/java/util/EnumSet.class
+++ b/libjava/classpath/lib/java/util/EnumSet.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/ObjectName.class b/libjava/classpath/lib/javax/management/ObjectName.class
index fc2ed913d2e..99df669d32d 100644
--- a/libjava/classpath/lib/javax/management/ObjectName.class
+++ b/libjava/classpath/lib/javax/management/ObjectName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
index e2d846dc58b..c9d2849a17c 100644
--- a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
+++ b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
index 7d626c0b316..81c8b23a776 100644
--- a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
+++ b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class
index 34b6cf6c505..80783b1ed49 100644
--- a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class
+++ b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class b/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class
index ecfd94af194..32c3dbc1dd0 100644
--- a/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class
+++ b/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class
Binary files differ
diff --git a/libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class b/libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class
new file mode 100644
index 00000000000..66646664773
--- /dev/null
+++ b/libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class
Binary files differ
diff --git a/libjava/classpath/lib/sun/awt/CausedFocusEvent.class b/libjava/classpath/lib/sun/awt/CausedFocusEvent.class
new file mode 100644
index 00000000000..417a4fcf41f
--- /dev/null
+++ b/libjava/classpath/lib/sun/awt/CausedFocusEvent.class
Binary files differ
diff --git a/libjava/classpath/m4/acinclude.m4 b/libjava/classpath/m4/acinclude.m4
index 35daa03a190..e61ddd8038c 100644
--- a/libjava/classpath/m4/acinclude.m4
+++ b/libjava/classpath/m4/acinclude.m4
@@ -203,7 +203,6 @@ AC_DEFUN([CLASSPATH_WITH_JAVAH],
[
CLASSPATH_CHECK_JAVAH
])
- AM_CONDITIONAL(USER_SPECIFIED_JAVAH, test "x${USER_JAVAH}" != x)
AC_SUBST(USER_JAVAH)
])
@@ -219,18 +218,12 @@ AC_DEFUN([CLASSPATH_CHECK_JAVAH],
AC_PATH_PROG(USER_JAVAH, "$1")
fi
else
- for javah_name in gcjh javah; do
- AC_PATH_PROG(USER_JAVAH, "$javah_name")
- if test "x${USER_JAVAH}" != x; then
- break
- fi
- done
+ AC_PATH_PROGS([USER_JAVAH],[gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah])
fi
-# if test "x${USER_JAVAH}" = x; then
-# echo "configure: cannot find javah" 1>&2
-# exit 1
-# fi
+ if test "x${USER_JAVAH}" = x; then
+ AC_MSG_ERROR([can not find javah])
+ fi
])
dnl -----------------------------------------------------------
@@ -467,11 +460,7 @@ dnl -----------------------------------------------------------
AC_DEFUN([CLASSPATH_CHECK_JAVAC],
[
if test "x$1" != x; then
- if test -f "$1"; then
- JAVAC="$1"
- else
- AC_PATH_PROG(JAVAC, "$1")
- fi
+ JAVAC="$1"
else
AC_PATH_PROG(JAVAC, "javac")
fi
diff --git a/libjava/classpath/missing b/libjava/classpath/missing
index 1c8ff7049d8..894e786e16c 100755
--- a/libjava/classpath/missing
+++ b/libjava/classpath/missing
@@ -1,9 +1,9 @@
#! /bin/sh
# Common stub for a few missing GNU programs while installing.
-scriptversion=2006-05-10.23
+scriptversion=2005-06-08.21
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
# Free Software Foundation, Inc.
# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
@@ -33,8 +33,6 @@ if test $# -eq 0; then
fi
run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
# In the cases where this matters, `missing' is being run in the
# srcdir already.
@@ -46,7 +44,7 @@ fi
msg="missing on your system"
-case $1 in
+case "$1" in
--run)
# Try to run requested program, and just exit if it succeeds.
run=
@@ -79,7 +77,6 @@ Supported PROGRAM values:
aclocal touch file \`aclocal.m4'
autoconf touch file \`configure'
autoheader touch file \`config.h.in'
- autom4te touch the output file, or create a stub one
automake touch all \`Makefile.in' files
bison create \`y.tab.[ch]', if possible, from existing .[ch]
flex create \`lex.yy.c', if possible, from existing .c
@@ -109,7 +106,7 @@ esac
# Now exit if we have it, but it failed. Also exit now if we
# don't have it and --version was passed (most likely to detect
# the program).
-case $1 in
+case "$1" in
lex|yacc)
# Not GNU programs, they don't have --version.
;;
@@ -138,7 +135,7 @@ esac
# If it does not exist, or fails to run (possibly an outdated version),
# try to emulate it.
-case $1 in
+case "$1" in
aclocal*)
echo 1>&2 "\
WARNING: \`$1' is $msg. You should only need it if
@@ -167,7 +164,7 @@ WARNING: \`$1' is $msg. You should only need it if
test -z "$files" && files="config.h"
touch_files=
for f in $files; do
- case $f in
+ case "$f" in
*:*) touch_files="$touch_files "`echo "$f" |
sed -e 's/^[^:]*://' -e 's/:.*//'`;;
*) touch_files="$touch_files $f.in";;
@@ -195,8 +192,8 @@ WARNING: \`$1' is needed, but is $msg.
You can get \`$1' as part of \`Autoconf' from any GNU
archive site."
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
if test -f "$file"; then
touch $file
else
@@ -217,25 +214,25 @@ WARNING: \`$1' $msg. You should only need it if
in order for those modifications to take effect. You can get
\`Bison' from any GNU archive site."
rm -f y.tab.c y.tab.h
- if test $# -ne 1; then
+ if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
- case $LASTARG in
+ case "$LASTARG" in
*.y)
SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
+ if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.c
fi
SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
+ if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" y.tab.h
fi
;;
esac
fi
- if test ! -f y.tab.h; then
+ if [ ! -f y.tab.h ]; then
echo >y.tab.h
fi
- if test ! -f y.tab.c; then
+ if [ ! -f y.tab.c ]; then
echo 'main() { return 0; }' >y.tab.c
fi
;;
@@ -247,18 +244,18 @@ WARNING: \`$1' is $msg. You should only need it if
in order for those modifications to take effect. You can get
\`Flex' from any GNU archive site."
rm -f lex.yy.c
- if test $# -ne 1; then
+ if [ $# -ne 1 ]; then
eval LASTARG="\${$#}"
- case $LASTARG in
+ case "$LASTARG" in
*.l)
SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
+ if [ -f "$SRCFILE" ]; then
cp "$SRCFILE" lex.yy.c
fi
;;
esac
fi
- if test ! -f lex.yy.c; then
+ if [ ! -f lex.yy.c ]; then
echo 'main() { return 0; }' >lex.yy.c
fi
;;
@@ -270,9 +267,11 @@ WARNING: \`$1' is $msg. You should only need it if
\`Help2man' package in order for those modifications to take
effect. You can get \`Help2man' from any GNU archive site."
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+ fi
+ if [ -f "$file" ]; then
touch $file
else
test -z "$file" || exec >$file
@@ -290,17 +289,11 @@ WARNING: \`$1' is $msg. You should only need it if
DU, IRIX). You might want to install the \`Texinfo' package or
the \`GNU make' package. Grab either from any GNU archive site."
# The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
if test -z "$file"; then
# ... or it is the one specified with @setfilename ...
infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
# ... or it is derived from the source name (dir/f.texi becomes f.info)
test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
fi
@@ -324,13 +317,13 @@ WARNING: \`$1' is $msg. You should only need it if
fi
firstarg="$1"
if shift; then
- case $firstarg in
+ case "$firstarg" in
*o*)
firstarg=`echo "$firstarg" | sed s/o//`
tar "$firstarg" "$@" && exit 0
;;
esac
- case $firstarg in
+ case "$firstarg" in
*h*)
firstarg=`echo "$firstarg" | sed s/h//`
tar "$firstarg" "$@" && exit 0
diff --git a/libjava/classpath/native/Makefile.in b/libjava/classpath/native/Makefile.in
index 75ab244a551..de59a595ff3 100644
--- a/libjava/classpath/native/Makefile.in
+++ b/libjava/classpath/native/Makefile.in
@@ -106,6 +106,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -144,8 +146,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -169,6 +169,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -241,8 +250,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/fdlibm/Makefile.in b/libjava/classpath/native/fdlibm/Makefile.in
index ffbb7bca585..2b1bd1f4b00 100644
--- a/libjava/classpath/native/fdlibm/Makefile.in
+++ b/libjava/classpath/native/fdlibm/Makefile.in
@@ -125,6 +125,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -163,8 +165,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -188,6 +188,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -260,8 +269,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jawt/Makefile.in b/libjava/classpath/native/jawt/Makefile.in
index 2fb6bb40320..2361b92d189 100644
--- a/libjava/classpath/native/jawt/Makefile.in
+++ b/libjava/classpath/native/jawt/Makefile.in
@@ -125,6 +125,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -163,8 +165,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -188,6 +188,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -260,8 +269,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/Makefile.am b/libjava/classpath/native/jni/Makefile.am
index 1105407993f..b820fe745d2 100644
--- a/libjava/classpath/native/jni/Makefile.am
+++ b/libjava/classpath/native/jni/Makefile.am
@@ -24,16 +24,20 @@ if CREATE_GCONF_PEER_LIBRARIES
CLASSPATH_GCONF_PEER_DIR = gconf-peer
endif
+if CREATE_GSTREAMER_PEER_LIBRARIES
+ CLASSPATH_GSTREAMER_PEER_DIR = gstreamer-peer
+endif
+
if CREATE_XMLJ_LIBRARY
XMLJDIR = xmlj
endif
SUBDIRS = classpath $(JNIDIRS) \
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
- $(CLASSPATH_GCONF_PEER_DIR)
+ $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
- gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi \
- native-lib
+ gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
+ midi-dssi native-lib
all-local:
cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh
diff --git a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in
index d4ad33bca5d..00e6c51df77 100644
--- a/libjava/classpath/native/jni/Makefile.in
+++ b/libjava/classpath/native/jni/Makefile.in
@@ -106,6 +106,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -144,8 +146,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -169,6 +169,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -241,8 +250,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -320,14 +327,15 @@ vm_classes = @vm_classes@
@CREATE_GTK_PEER_LIBRARIES_TRUE@GTKDIR = gtk-peer
@CREATE_QT_PEER_LIBRARIES_TRUE@CLASSPATH_QT_PEER_DIR = qt-peer
@CREATE_GCONF_PEER_LIBRARIES_TRUE@CLASSPATH_GCONF_PEER_DIR = gconf-peer
+@CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@CLASSPATH_GSTREAMER_PEER_DIR = gstreamer-peer
@CREATE_XMLJ_LIBRARY_TRUE@XMLJDIR = xmlj
SUBDIRS = classpath $(JNIDIRS) \
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
- $(CLASSPATH_GCONF_PEER_DIR)
+ $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
- gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi \
- native-lib
+ gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
+ midi-dssi native-lib
all: all-recursive
diff --git a/libjava/classpath/native/jni/classpath/Makefile.am b/libjava/classpath/native/jni/classpath/Makefile.am
index d996df63640..5436c42beec 100644
--- a/libjava/classpath/native/jni/classpath/Makefile.am
+++ b/libjava/classpath/native/jni/classpath/Makefile.am
@@ -4,8 +4,7 @@ EXTRA_DIST = classpath_jawt.h
noinst_LTLIBRARIES = libclasspath.la
libclasspath_la_SOURCES = jcl.c jcl.h \
- jnilink.c jnilink.h \
- native_state.c native_state.h
+ jnilink.c jnilink.h
AM_LDFLAGS = @CLASSPATH_CONVENIENCE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
diff --git a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in
index f9428576663..aff43aa76c9 100644
--- a/libjava/classpath/native/jni/classpath/Makefile.in
+++ b/libjava/classpath/native/jni/classpath/Makefile.in
@@ -63,7 +63,7 @@ CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(noinst_LTLIBRARIES)
libclasspath_la_LIBADD =
-am_libclasspath_la_OBJECTS = jcl.lo jnilink.lo native_state.lo
+am_libclasspath_la_OBJECTS = jcl.lo jnilink.lo
libclasspath_la_OBJECTS = $(am_libclasspath_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/../../depcomp
@@ -116,6 +116,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -154,8 +156,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -179,6 +179,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -251,8 +260,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -329,8 +336,7 @@ vm_classes = @vm_classes@
EXTRA_DIST = classpath_jawt.h
noinst_LTLIBRARIES = libclasspath.la
libclasspath_la_SOURCES = jcl.c jcl.h \
- jnilink.c jnilink.h \
- native_state.c native_state.h
+ jnilink.c jnilink.h
AM_LDFLAGS = @CLASSPATH_CONVENIENCE@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
@@ -388,7 +394,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jcl.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jnilink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/native_state.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/libjava/classpath/native/jni/classpath/native_state.c b/libjava/classpath/native/jni/classpath/native_state.c
deleted file mode 100644
index 2cb43d614cc..00000000000
--- a/libjava/classpath/native/jni/classpath/native_state.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Magical NSA API -- Associate a C ptr with an instance of an object
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library. Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
-or based on this library. If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so. If you do not wish to do so, delete this
-exception statement from your version. */
-
-#include <stdlib.h>
-#include <assert.h>
-#include <jni.h>
-#include "native_state.h"
-
-#define DEFAULT_TABLE_SIZE 97
-
-struct state_table *
-cp_gtk_init_state_table_with_size (JNIEnv * env, jclass clazz, jint size)
-{
- struct state_table *table;
- jfieldID hash;
- jclass clazz_g;
-
- hash = (*env)->GetFieldID (env, clazz, "native_state", "I");
- if (hash == NULL)
- return NULL;
-
- clazz_g = (*env)->NewGlobalRef (env, clazz);
- if (clazz_g == NULL)
- return NULL;
-
- table = (struct state_table *) malloc (sizeof (struct state_table));
- table->size = size;
- table->head = (struct state_node **) calloc (sizeof (struct state_node *),
- table->size);
- table->hash = hash;
- table->clazz = clazz_g;
-
- return table;
-}
-
-struct state_table *
-cp_gtk_init_state_table (JNIEnv * env, jclass clazz)
-{
- return cp_gtk_init_state_table_with_size (env, clazz, DEFAULT_TABLE_SIZE);
-}
-
-static void *
-remove_node (struct state_node **head, jint obj_id)
-{
- struct state_node *back_ptr = NULL;
- struct state_node *node = *head;
-
- while (node != NULL)
- {
- if (node->key == obj_id)
- {
- void *return_value;
- if (back_ptr == NULL)
- *head = node->next;
- else
- back_ptr->next = node->next;
- return_value = node->c_state;
- free (node);
- return return_value;
- }
- back_ptr = node;
- node = node->next;
- }
-
- return NULL;
-}
-
-static void *
-get_node (struct state_node **head, jint obj_id)
-{
- struct state_node *back_ptr = NULL;
- struct state_node *node = *head;
-
- while (node != NULL)
- {
- if (node->key == obj_id)
- {
- /* Move the node we found to the front of the list. */
- if (back_ptr != NULL)
- {
- back_ptr->next = node->next;
- node->next = *head;
- *head = node;
- }
-
- /* Return the match. */
- return node->c_state;
- }
-
- back_ptr = node;
- node = node->next;
- }
-
- return NULL;
-}
-
-static void
-add_node (struct state_node **head, jint obj_id, void *state)
-{
- struct state_node *node = *head;
- struct state_node *back_ptr = NULL;
-
- struct state_node *new_node;
-
- if (node != NULL)
- {
- while (node->next != NULL && obj_id != node->key)
- {
- back_ptr = node;
- node = node->next;
- }
-
- if (node->key == obj_id)
- {
- /* If we're updating a node, move it to the front of the
- list. */
- if (back_ptr != NULL)
- {
- back_ptr->next = node->next;
- node->next = *head;
- *head = node;
- }
- node->c_state = state;
- return;
- }
- }
-
- new_node = (struct state_node *) malloc (sizeof (struct state_node));
- new_node->key = obj_id;
- new_node->c_state = state;
- new_node->next = *head;
- *head = new_node;
-}
-
-#ifndef NDEBUG
-static void
-cp_gtk_check_compat (JNIEnv * env, jobject obj, struct state_table *table)
-{
- jclass objclazz;
-
- objclazz = (*env)->GetObjectClass(env, obj);
- assert ((*env)->IsAssignableFrom(env, objclazz, table->clazz));
- (*env)->DeleteLocalRef(env, objclazz);
-}
-#endif
-
-void
-cp_gtk_set_state_oid (JNIEnv * env, jobject lock, struct state_table *table,
- jint obj_id, void *state)
-{
- jint hash;
-
- hash = obj_id % table->size;
-
- (*env)->MonitorEnter (env, lock);
- add_node (&table->head[hash], obj_id, state);
- (*env)->MonitorExit (env, lock);
-}
-
-void *
-cp_gtk_get_state_oid (JNIEnv * env, jobject lock, struct state_table *table,
- jint obj_id)
-{
- jint hash;
- void *return_value;
-
- hash = obj_id % table->size;
-
- (*env)->MonitorEnter (env, lock);
- return_value = get_node (&table->head[hash], obj_id);
- (*env)->MonitorExit (env, lock);
-
- return return_value;
-}
-
-void *
-cp_gtk_remove_state_oid (JNIEnv * env, jobject lock, struct state_table *table,
- jint obj_id)
-{
- jint hash;
- void *return_value;
-
- hash = obj_id % table->size;
-
- (*env)->MonitorEnter (env, lock);
- return_value = remove_node (&table->head[hash], obj_id);
- (*env)->MonitorExit (env, lock);
-
- return return_value;
-}
-
-int
-cp_gtk_set_state (JNIEnv * env, jobject obj, struct state_table *table, void *state)
-{
- jint obj_id;
-
-#ifndef NDEBUG
- cp_gtk_check_compat(env, obj, table);
-#endif
-
- obj_id = (*env)->GetIntField (env, obj, table->hash);
-
- if ((*env)->ExceptionOccurred (env) != NULL)
- return -1;
-
- cp_gtk_set_state_oid (env, table->clazz, table, obj_id, state);
- return 0;
-}
-
-void *
-cp_gtk_get_state (JNIEnv * env, jobject obj, struct state_table *table)
-{
- jint obj_id;
-
-#ifndef NDEBUG
- cp_gtk_check_compat(env, obj, table);
-#endif
-
- obj_id = (*env)->GetIntField (env, obj, table->hash);
-
- if ((*env)->ExceptionOccurred (env) != NULL)
- return NULL;
-
- return cp_gtk_get_state_oid (env, table->clazz, table, obj_id);
-}
-
-void *
-cp_gtk_remove_state_slot (JNIEnv * env, jobject obj, struct state_table *table)
-{
- jint obj_id;
-
-#ifndef NDEBUG
- cp_gtk_check_compat(env, obj, table);
-#endif
-
- obj_id = (*env)->GetIntField (env, obj, table->hash);
-
- if ((*env)->ExceptionOccurred (env) != NULL)
- return NULL;
-
- return cp_gtk_remove_state_oid (env, table->clazz, table, obj_id);
-}
diff --git a/libjava/classpath/native/jni/gconf-peer/Makefile.am b/libjava/classpath/native/jni/gconf-peer/Makefile.am
index 3008b3d7acd..56789462d23 100644
--- a/libjava/classpath/native/jni/gconf-peer/Makefile.am
+++ b/libjava/classpath/native/jni/gconf-peer/Makefile.am
@@ -2,8 +2,7 @@ nativeexeclib_LTLIBRARIES = libgconfpeer.la
libgconfpeer_la_SOURCES = GConfNativePeer.c
-libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
- $(top_builddir)/native/jni/classpath/jcl.lo
+libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
libgconfpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
diff --git a/libjava/classpath/native/jni/gconf-peer/Makefile.in b/libjava/classpath/native/jni/gconf-peer/Makefile.in
index 109df48959a..9c459465c82 100644
--- a/libjava/classpath/native/jni/gconf-peer/Makefile.in
+++ b/libjava/classpath/native/jni/gconf-peer/Makefile.in
@@ -71,7 +71,6 @@ am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
libgconfpeer_la_DEPENDENCIES = \
- $(top_builddir)/native/jni/classpath/native_state.lo \
$(top_builddir)/native/jni/classpath/jcl.lo
am_libgconfpeer_la_OBJECTS = GConfNativePeer.lo
libgconfpeer_la_OBJECTS = $(am_libgconfpeer_la_OBJECTS)
@@ -126,6 +125,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -164,8 +165,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -189,6 +188,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -261,8 +269,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -336,9 +342,7 @@ toolexeclibdir = @toolexeclibdir@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgconfpeer.la
libgconfpeer_la_SOURCES = GConfNativePeer.c
-libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
- $(top_builddir)/native/jni/classpath/jcl.lo
-
+libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
libgconfpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
AM_LDFLAGS = @CLASSPATH_MODULE@ @GCONF_LIBS@ @GDK_LIBS@
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
diff --git a/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c b/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c
new file mode 100644
index 00000000000..f5d52e8a4b4
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c
@@ -0,0 +1,772 @@
+/* GStreamerIOPeer.c -- Implements native methods for class GStreamerNativePeer
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA.
+
+ Linking this library statically or dynamically with other modules is
+ making a combined work based on this library. Thus, the terms and
+ conditions of the GNU General Public License cover the whole
+ combination.
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent
+ modules, and to copy and distribute the resulting executable under
+ terms of your choice, provided that you also meet, for each linked
+ independent module, the terms and conditions of the license of that
+ module. An independent module is a module which is not derived from
+ or based on this library. If you modify this library, you may extend
+ this exception to your version of the library, but you are not
+ obligated to do so. If you do not wish to do so, delete this
+ exception statement from your version. */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <jni.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include <gdk/gdk.h>
+
+#include <gst/gst.h>
+
+#include "jcl.h"
+
+#include "gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h"
+
+#include "gstclasspathsrc.h"
+#include "gstinputstream.h"
+
+#define _GST_MALLOC_SIZE_ 256
+
+typedef struct _AudioProperties AudioProperties;
+struct _AudioProperties
+{
+ /*
+ * NOTE: descriptions of the properties are taken from:
+ * http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-types-definitions.html#table-audio-types
+ */
+
+ /* decoder name */
+ const char *name;
+
+ /* audio endiannes */
+ const char *endianness;
+
+ /* header size */
+ const char *header_size;
+
+ /* mime */
+ const char *mimetype;
+
+ /* The sample rate of the data, in samples (per channel) per second */
+ const char *samplerate;
+
+ /* The number of channels of audio data */
+ const char *channels;
+
+ const char *layer;
+
+ const char *bitrate;
+
+ const char *framed;
+
+ /*
+ * Defines if the values of the integer samples are signed or not.
+ * Signed samples use one bit to indicate sign (negative or positive)
+ * of the value. Unsigned samples are always positive.
+ */
+ const char *signess;
+
+ /* */
+ const char *rate;
+
+ /* Number of bits allocated per sample. */
+ const char *width;
+
+ /*
+ * The number of bits used per sample.
+ * If the depth is less than the width, the low bits are assumed to be the
+ * ones used. For example, a width of 32 and a depth of 24 means that
+ * each sample is stored in a 32 bit word, but only the low
+ * 24 bits are actually used.
+ */
+ const char *depth;
+
+ /*
+ * This is set in the case of the mpeg files.
+ */
+ const char *type;
+
+ gboolean done;
+
+};
+
+/* ***** PRIVATE FUNCTIONS DECLARATION ***** */
+
+static gboolean
+set_strings (JNIEnv *env, const jclass GstHeader,
+ const AudioProperties *properties, jobject header);
+
+static gboolean
+typefind_callback(GstElement *typefind, guint probability, const GstCaps *caps,
+ gpointer data);
+
+static void
+element_added (GstBin *bin, GstElement *element, gpointer data);
+
+static void
+new_decoded_pad (GstElement *decoder, GstPad *pad,
+ gboolean last, GstElement *pipeline);
+
+static gboolean
+fill_info (GstElement *decoder, AudioProperties *properties);
+
+static gchar *
+get_string_property (const GstStructure *structure, const gchar *property);
+
+static gchar *
+get_boolean_property (const GstStructure *structure, const gchar *property);
+
+static gboolean
+set_string (JNIEnv *env, const jclass GstHeader, jobject header,
+ const char *field, const gchar *property);
+
+static void
+free_properties (AudioProperties *properties);
+
+static void
+reset_properties (AudioProperties *properties);
+
+/* ***** END: PRIVATE FUNCTIONS DECLARATION ***** */
+
+/* ***** NATIVE FUNCTIONS ***** */
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream
+ (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header __attribute__ ((unused)),
+ jobject jstream __attribute__ ((unused)))
+{
+ GstInputStream *istream = NULL;
+ JavaVM *vm = NULL;
+ jclass GstHeader = NULL;
+
+ GstElement *pipeline = NULL;
+
+ GstElement *typefind = NULL;
+ GstElement *decodebin = NULL;
+ GstElement *source = NULL;
+
+ AudioProperties *properties = NULL;
+
+ jboolean result = JNI_FALSE;
+
+ GstHeader = (*env)->GetObjectClass(env, header);
+
+ gst_init (NULL, NULL);
+
+ properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties));
+ if (properties == NULL)
+ {
+ g_warning ("unable to allocate memory for properties");
+ return JNI_FALSE;
+ }
+
+ /* create the GstInputStream object */
+ istream = g_object_new (GST_TYPE_INPUT_STREAM, NULL);
+ if (istream == NULL)
+ {
+ free_properties (properties);
+
+ g_warning ("unable to create an istream");
+ return JNI_FALSE;
+ }
+
+ source = gst_element_factory_make ("classpathsrc", "source");
+ if (source == NULL)
+ {
+ free_properties (properties);
+ g_free ((gpointer) istream);
+
+ g_warning ("unable to create a source");
+ return JNI_FALSE;
+ }
+
+ /* store the vm and the input stream in the gstinputstream class */
+ (*env)->GetJavaVM(env, &vm);
+ g_object_set (G_OBJECT (istream), GST_ISTREAM_JVM, vm,
+ GST_ISTREAM_READER, jstream,
+ NULL);
+ g_object_set (G_OBJECT (source), GST_CLASSPATH_SRC_ISTREAM, istream, NULL);
+
+ pipeline = gst_pipeline_new ("pipe");
+ if (pipeline == NULL)
+ {
+ gst_object_unref (GST_OBJECT (source));
+ g_free ((gpointer) istream);
+ free_properties (properties);
+
+ g_warning ("unable to create the pipeline");
+ return JNI_FALSE;
+ }
+
+ decodebin = gst_element_factory_make ("decodebin", "decodebin");
+ if (decodebin == NULL)
+ {
+ gst_object_unref (GST_OBJECT (source));
+
+ g_free ((gpointer) istream);
+ free_properties(properties);
+
+ gst_object_unref(GST_OBJECT(pipeline));
+
+ g_warning ("unable to create decodebin");
+ return JNI_FALSE;
+ }
+
+ g_signal_connect (decodebin, "new-decoded-pad", G_CALLBACK (new_decoded_pad),
+ pipeline);
+
+ gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL);
+ gst_element_link (source, decodebin);
+
+ typefind = gst_bin_get_by_name (GST_BIN (decodebin), "typefind");
+ if (typefind == NULL)
+ {
+ g_free ((gpointer) istream);
+ free_properties(properties);
+
+ gst_object_unref(GST_OBJECT(pipeline));
+
+ g_warning ("unable to create decodebin");
+ return JNI_FALSE;
+ }
+
+ g_signal_connect (G_OBJECT (typefind), "have-type",
+ G_CALLBACK (typefind_callback), properties);
+
+ gst_element_set_state (GST_ELEMENT(pipeline), GST_STATE_PLAYING);
+ if (gst_element_get_state (pipeline, NULL, NULL, 100000) ==
+ GST_STATE_CHANGE_FAILURE)
+ {
+ g_free ((gpointer) istream);
+ free_properties(properties);
+ gst_object_unref(GST_OBJECT(pipeline));
+
+ g_warning ("Failed to go into PLAYING state");
+ return JNI_FALSE;
+ }
+
+ result = JNI_FALSE;
+ if (fill_info (decodebin, properties))
+ {
+ result = set_strings (env, GstHeader, properties, header);
+ }
+
+ gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
+
+ gst_object_unref (GST_OBJECT(pipeline));
+ free_properties (properties);
+
+ return result;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file
+ (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header)
+{
+ /* will contain the properties we need to put into the given GstHeader */
+ AudioProperties *properties = NULL;
+
+ /* source file */
+ const char *file = NULL;
+
+ /* GStreamer elements */
+ GstElement *pipeline = NULL;
+ GstElement *source = NULL;
+ GstElement *decoder = NULL;
+
+ GstElement *typefind = NULL;
+
+ GstStateChangeReturn res;
+
+ jboolean result = JNI_FALSE;
+
+ /* java fields */
+ jfieldID _fid = NULL;
+ jclass GstHeader = NULL;
+ jstring _file = NULL;
+
+ GstHeader = (*env)->GetObjectClass(env, header);
+ _fid = (*env)->GetFieldID(env, GstHeader, "file", "Ljava/lang/String;");
+ if (_fid == NULL)
+ {
+ return JNI_FALSE; /* failed to find the field */
+ }
+
+ _file = (*env)->GetObjectField(env, header, _fid);
+ file = JCL_jstring_to_cstring (env, _file);
+ if (file == NULL)
+ {
+ return JNI_FALSE;
+ }
+
+ gst_init (NULL, NULL);
+
+ properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties));
+ if (properties == NULL)
+ {
+ free_properties (properties);
+ JCL_free_cstring (env, _file, file);
+ return JNI_FALSE;
+ }
+
+ /* this is not really needed */
+ reset_properties(properties);
+
+ /* create the source element, will be used to read the file */
+ source = gst_element_factory_make ("filesrc", "source");
+ if (source == NULL)
+ {
+ free_properties (properties);
+ JCL_free_cstring (env, _file, file);
+ return JNI_FALSE;
+ }
+
+ /* set the file name */
+ g_object_set (G_OBJECT (source), "location", file, NULL);
+
+ /*
+ * create the decoder element, this will decode the stream and retrieve
+ * its properties.
+ * We connect a signal to this element, to be informed when it is done
+ * in decoding the stream and to get the needed informations about the
+ * audio file.
+ */
+ decoder = gst_element_factory_make ("decodebin", "decoder");
+ if (decoder == NULL)
+ {
+ gst_object_unref (GST_OBJECT (source));
+ free_properties(properties);
+
+ JCL_free_cstring (env, _file, file);
+ return JNI_FALSE;
+ }
+
+ g_signal_connect (decoder, "new-decoded-pad", G_CALLBACK (new_decoded_pad),
+ pipeline);
+ g_signal_connect (G_OBJECT (decoder), "element-added",
+ G_CALLBACK (element_added), properties);
+
+ /* now, we create a pipeline and fill it with the other elements */
+ pipeline = gst_pipeline_new ("pipeline");
+ if (pipeline == NULL)
+ {
+ gst_object_unref (GST_OBJECT (source));
+ gst_object_unref (GST_OBJECT (decoder));
+
+ free_properties(properties);
+
+ JCL_free_cstring (env, _file, file);
+ return JNI_FALSE;
+ }
+
+ /*
+ * we get the typefind from the decodebin to catch the additional properties
+ * that the decodebin does not expose to us
+ */
+ typefind = gst_bin_get_by_name (GST_BIN (decoder), "typefind");
+ if (typefind != NULL)
+ {
+ /*
+ * NOTE: the above is not a typo, we can live without the typefind,
+ * just, our stream detection will not be as accurate as we would.
+ * Anyway, if this fails, there is some problem, probabily a memory
+ * error.
+ */
+ g_signal_connect (G_OBJECT (typefind), "have-type",
+ G_CALLBACK (typefind_callback), properties);
+ }
+
+ gst_bin_add_many (GST_BIN (pipeline), source, decoder, NULL);
+ gst_element_link (source, decoder);
+
+ /*
+ * now, we set the pipeline playing state to pause and traverse it
+ * to get the info we need.
+ */
+
+ res = gst_element_set_state (pipeline, GST_STATE_PAUSED);
+ if (res == GST_STATE_CHANGE_FAILURE)
+ {
+ JCL_free_cstring (env, _file, file);
+ gst_element_set_state (pipeline, GST_STATE_NULL);
+ gst_object_unref (GST_OBJECT (pipeline));
+
+ free_properties(properties);
+
+ return JNI_FALSE;
+ }
+
+ /* (GstClockTime) 300000000 ? */
+ res = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
+ if (res != GST_STATE_CHANGE_SUCCESS)
+ {
+ JCL_free_cstring (env, _file, file);
+ gst_element_set_state (pipeline, GST_STATE_NULL);
+ gst_object_unref (GST_OBJECT (pipeline));
+
+ free_properties(properties);
+
+ return JNI_FALSE;
+ }
+
+ result = JNI_FALSE;
+ if (fill_info (decoder, properties))
+ {
+ result = set_strings (env, GstHeader, properties, header);
+ }
+
+ /* free stuff */
+ JCL_free_cstring (env, _file, file);
+ gst_element_set_state (pipeline, GST_STATE_NULL);
+
+ gst_object_unref (GST_OBJECT (pipeline));
+
+ free_properties (properties);
+
+ return result;
+}
+
+/* ***** END: NATIVE FUNCTIONS ***** */
+
+/* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */
+static gboolean typefind_callback(GstElement *typefind __attribute__ ((unused)),
+ guint probability __attribute__ ((unused)),
+ const GstCaps *caps,
+ gpointer data)
+{
+ GstStructure *structure = NULL;
+ AudioProperties *properties = NULL;
+
+ const char *mpeg = NULL;
+
+ properties = (AudioProperties *) data;
+
+ structure = gst_caps_get_structure (caps, 0);
+
+ /* MIMETYPE */
+ properties->mimetype = gst_structure_get_name (structure);
+ mpeg = get_string_property(structure, "mpegversion");
+
+ if (mpeg != NULL)
+ {
+ properties->layer = get_string_property(structure, "layer");
+ properties->type = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
+ g_snprintf ((gpointer) properties->type, _GST_MALLOC_SIZE_,
+ "MPEG%sV%s", mpeg,
+ properties->layer);
+
+ g_free ((gpointer) mpeg);
+ }
+
+ return TRUE;
+}
+
+static void
+new_decoded_pad (GstElement *decoder __attribute__ ((unused)),
+ GstPad *pad,
+ gboolean last __attribute__ ((unused)),
+ GstElement *pipeline)
+{
+ GstElement *fakesink = NULL;
+ GstPad *sinkpad = NULL;
+
+ fakesink = gst_element_factory_make ("fakesink", NULL);
+ gst_bin_add (GST_BIN (pipeline), fakesink);
+
+ sinkpad = gst_element_get_pad (fakesink, "sink");
+ if (GST_PAD_LINK_FAILED (gst_pad_link (pad, sinkpad)))
+ {
+ gst_bin_remove (GST_BIN (pipeline), fakesink);
+ }
+ else
+ {
+ gst_element_set_state (fakesink, GST_STATE_PAUSED);
+ }
+}
+
+static gboolean
+set_strings (JNIEnv *env, const jclass GstHeader,
+ const AudioProperties *properties, jobject header)
+{
+ gboolean result = FALSE;
+
+ /*
+ * we only need at least one of them to be sure we can handle this
+ * kind of audio data.
+ */
+
+ /* now, map our properties to the java class */
+ set_string (env, GstHeader, header, "mimetype", properties->mimetype);
+
+ if (set_string (env, GstHeader, header, "endianness",
+ properties->endianness)) result = JNI_TRUE;
+
+ if (set_string (env, GstHeader, header, "channels",
+ properties->channels)) result = JNI_TRUE;
+
+ if (set_string (env, GstHeader, header, "rate",
+ properties->rate)) result = JNI_TRUE;
+
+ if (set_string (env, GstHeader, header, "width",
+ properties->width)) result = JNI_TRUE;
+
+ if (set_string (env, GstHeader, header, "depth",
+ properties->depth)) result = JNI_TRUE;
+
+ if (set_string (env, GstHeader, header, "isSigned",
+ properties->signess)) result = JNI_TRUE;
+
+ if (set_string (env, GstHeader, header, "name",
+ properties->name)) result = JNI_TRUE;
+
+ /* non primary properties */
+ set_string (env, GstHeader, header, "layer", properties->layer);
+ set_string (env, GstHeader, header, "bitrate", properties->bitrate);
+ set_string (env, GstHeader, header, "framed", properties->framed);
+ set_string (env, GstHeader, header, "type", properties->type);
+
+ return result;
+}
+
+static gboolean fill_info (GstElement *decoder, AudioProperties *properties)
+{
+ GstIterator *it = NULL;
+ gpointer data = NULL;
+ gboolean result = FALSE;
+
+ it = gst_element_iterate_src_pads (decoder);
+ while (gst_iterator_next (it, &data) == GST_ITERATOR_OK)
+ {
+ GstPad *pad = GST_PAD (data);
+ GstCaps *caps;
+
+ GstStructure *structure;
+
+ const gchar *caps_string = NULL;
+
+ caps = gst_pad_get_caps (pad);
+ caps_string = gst_caps_to_string (caps);
+
+ if (g_str_has_prefix (caps_string, "video"))
+ {
+ /* no video support, this is an audio library */
+
+ g_free ((gpointer) caps_string);
+ gst_caps_unref (caps);
+ gst_object_unref (pad);
+
+ continue;
+ }
+
+ g_free ((gpointer) caps_string);
+
+ structure = gst_caps_get_structure (GST_CAPS (caps), 0);
+
+ /* fill the properties we need */
+
+ /* SIGNESS */
+ properties->signess = get_boolean_property(structure, "signed");
+ if (properties->signess != NULL)
+ {
+ result = TRUE;
+ }
+
+ /* ENDIANNESS */
+ properties->endianness = get_string_property(structure, "endianness");
+ if (properties->endianness != NULL)
+ {
+ result = TRUE;
+ }
+
+ /* CHANNELS */
+ properties->channels = get_string_property(structure, "channels");
+ if (properties->channels != NULL)
+ {
+ result = TRUE;
+ }
+
+ /* RATE */
+ properties->rate = get_string_property(structure, "rate");
+ if (properties->rate != NULL)
+ {
+ result = TRUE;
+ }
+
+ /* WIDTH */
+ properties->width = get_string_property(structure, "width");
+ if (properties->width != NULL)
+ {
+ result = TRUE;
+ }
+
+ /* DEPTH */
+ properties->depth = get_string_property(structure, "depth");
+ if (properties->depth != NULL)
+ {
+ result = TRUE;
+ }
+
+ gst_caps_unref (caps);
+ gst_object_unref (pad);
+ }
+
+ return result;
+}
+
+static void free_properties (AudioProperties *properties)
+{
+ if (properties->name != NULL) g_free((gpointer) properties->name);
+ if (properties->endianness != NULL) g_free((gpointer) properties->endianness);
+ if (properties->channels != NULL) g_free((gpointer) properties->channels);
+ if (properties->rate != NULL) g_free((gpointer) properties->rate);
+ if (properties->width != NULL) g_free((gpointer) properties->width);
+ if (properties->depth != NULL) g_free((gpointer) properties->depth);
+ if (properties->layer != NULL) g_free((gpointer) properties->layer);
+ if (properties->bitrate != NULL) g_free((gpointer) properties->bitrate);
+ if (properties->framed != NULL) g_free((gpointer) properties->framed);
+
+ if (properties != NULL) g_free ((gpointer) properties);
+}
+
+static void reset_properties (AudioProperties *properties)
+{
+ properties->done = FALSE;
+ properties->signess = FALSE;
+ properties->name = NULL;
+ properties->endianness = NULL;
+ properties->channels = NULL;
+ properties->rate = NULL;
+ properties->width = NULL;
+ properties->depth = NULL;
+ properties->layer = NULL;
+ properties->bitrate = NULL;
+ properties->framed = NULL;
+}
+
+static gchar *get_string_property (const GstStructure *structure,
+ const gchar *property)
+{
+ int props = 0;
+ gchar *result = NULL;
+
+ if (property == NULL)
+ {
+ return NULL;
+ }
+
+ /* we don't need more */
+ result = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
+ if (result == NULL)
+ {
+ /* huston, we have a problem here... */
+ return NULL;
+ }
+
+ if (gst_structure_get_int (structure, property, &props))
+ {
+ g_snprintf (result, _GST_MALLOC_SIZE_, "%d", props);
+ }
+ else
+ {
+ g_free ((gpointer) result);
+ return NULL;
+ }
+
+ return result;
+}
+
+static gchar *get_boolean_property (const GstStructure *structure,
+ const gchar *property)
+{
+ gchar *result = NULL;
+ gboolean props = FALSE;
+
+ result = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
+ if (result == NULL)
+ {
+ /* huston, we have a problem here... */
+ return NULL;
+ }
+
+ if (gst_structure_get_boolean (structure, property, &props))
+ {
+ g_snprintf (result, _GST_MALLOC_SIZE_, "%s", (props ? "true" : "false" ));
+ }
+ else
+ {
+ g_free ((gpointer) result);
+ return NULL;
+ }
+
+ return result;
+}
+
+static gboolean set_string (JNIEnv *env, const jclass GstHeader,
+ jobject header,
+ const char *field,
+ const gchar *property)
+{
+ jfieldID _fid = NULL;
+ jstring property_string_field = NULL;
+
+ if (property == NULL || field == NULL || header == NULL || GstHeader == NULL)
+ {
+ return JNI_FALSE;
+ }
+
+ _fid = (*env)->GetFieldID(env, GstHeader, field, "Ljava/lang/String;");
+ if (_fid == NULL)
+ {
+ return JNI_FALSE; /* failed to find the field */
+ }
+
+ property_string_field = (*env)->NewStringUTF(env, property);
+ if (property_string_field == NULL)
+ {
+ return JNI_FALSE;
+ }
+
+ (*env)->SetObjectField(env, header, _fid, property_string_field);
+
+ return JNI_TRUE;
+}
+
+static void
+element_added (GstBin *bin, GstElement *element, gpointer data)
+{
+ GstElementFactory *factory;
+
+ factory = gst_element_get_factory (element);
+ ((AudioProperties *) data)->name = gst_element_factory_get_longname (factory);
+}
+
+/* ***** END: PRIVATE FUNCTIONS IMPLEMENTATION ***** */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.am b/libjava/classpath/native/jni/gstreamer-peer/Makefile.am
new file mode 100644
index 00000000000..c40170fc3d3
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.am
@@ -0,0 +1,22 @@
+nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
+
+libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \
+ gstinputstream.c \
+ gstclasspathsrc.c \
+ gstclasspathsrc.h \
+ gstinputstream.h
+
+libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+
+libgstreamerpeer_la_LDFLAGS = $(AM_LDFLAGS) @GST_PLUGIN_LDFLAGS@ -avoid-version
+
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GSTREAMER_LIBS@ @GSTREAMER_BASE_LIBS@ \
+ @GSTREAMER_PLUGINS_BASE_LIBS@ @GDK_LIBS@
+
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+
+# We cannot use -Wwrite-strings and the strict flags since
+# gstreamer contain broken prototypes (by design).
+AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings -Wno-missing-field-initializers \
+ @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \
+ @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@
diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
new file mode 100644
index 00000000000..7d752f91f11
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
@@ -0,0 +1,640 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = native/jni/gstreamer-peer
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+ $(top_srcdir)/../../config/lead-dot.m4 \
+ $(top_srcdir)/../../config/multi.m4 \
+ $(top_srcdir)/../../config/no-executables.m4 \
+ $(top_srcdir)/../../libtool.m4 \
+ $(top_srcdir)/../../ltoptions.m4 \
+ $(top_srcdir)/../../ltsugar.m4 \
+ $(top_srcdir)/../../ltversion.m4 \
+ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
+ $(top_srcdir)/m4/acinclude.m4 \
+ $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
+ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
+nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
+libgstreamerpeer_la_DEPENDENCIES = \
+ $(top_builddir)/native/jni/classpath/jcl.lo
+am_libgstreamerpeer_la_OBJECTS = GStreamerIOPeer.lo gstinputstream.lo \
+ gstclasspathsrc.lo
+libgstreamerpeer_la_OBJECTS = $(am_libgstreamerpeer_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+depcomp = $(SHELL) $(top_srcdir)/../../depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libgstreamerpeer_la_SOURCES)
+DIST_SOURCES = $(libgstreamerpeer_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
+BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@
+CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
+CLASSPATH_MODULE = @CLASSPATH_MODULE@
+COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
+CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
+CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
+CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
+CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@
+CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@
+CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
+CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
+CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
+CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
+CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
+CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
+CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
+CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
+CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
+CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
+CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
+CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
+CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@
+CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@
+CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
+CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
+CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@
+CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@
+CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
+CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATE = @DATE@
+DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ = @ECJ@
+ECJ_JAR = @ECJ_JAR@
+EGREP = @EGREP@
+ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
+ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+EXAMPLESDIR = @EXAMPLESDIR@
+EXEEXT = @EXEEXT@
+FASTJAR = @FASTJAR@
+FGREP = @FGREP@
+FIND = @FIND@
+FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
+FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
+FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
+FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
+FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
+FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
+FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
+FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
+FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
+FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
+FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
+FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ = @GCJ@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GENINSRC_FALSE = @GENINSRC_FALSE@
+GENINSRC_TRUE = @GENINSRC_TRUE@
+GJDOC = @GJDOC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
+INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
+INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
+INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAVAC = @JAVAC@
+JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
+JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
+JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
+JAY = @JAY@
+JAY_SKELETON = @JAY_SKELETON@
+JIKES = @JIKES@
+JIKESENCODING = @JIKESENCODING@
+JIKESWARNINGS = @JIKESWARNINGS@
+KJC = @KJC@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDEBUG = @LIBDEBUG@
+LIBICONV = @LIBICONV@
+LIBMAGIC = @LIBMAGIC@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVERSION = @LIBVERSION@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MOC = @MOC@
+MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
+MOZILLA_LIBS = @MOZILLA_LIBS@
+NM = @NM@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
+PANGOFT2_LIBS = @PANGOFT2_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PATH_TO_ESCHER = @PATH_TO_ESCHER@
+PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGIN_DIR = @PLUGIN_DIR@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
+REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
+REMOVE = @REMOVE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
+STRIP = @STRIP@
+USER_CLASSLIB = @USER_CLASSLIB@
+USER_JAVAH = @USER_JAVAH@
+USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
+USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
+USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
+USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
+USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
+USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
+VERSION = @VERSION@
+VM_BINARY = @VM_BINARY@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+XML_CFLAGS = @XML_CFLAGS@
+XML_LIBS = @XML_LIBS@
+XSLT_CFLAGS = @XSLT_CFLAGS@
+XSLT_LIBS = @XSLT_LIBS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZIP = @ZIP@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+default_toolkit = @default_toolkit@
+exec_prefix = @exec_prefix@
+glibjdir = @glibjdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+nativeexeclibdir = @nativeexeclibdir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+toolexeclibdir = @toolexeclibdir@
+vm_classes = @vm_classes@
+nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
+libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \
+ gstinputstream.c \
+ gstclasspathsrc.c \
+ gstclasspathsrc.h \
+ gstinputstream.h
+
+libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+libgstreamerpeer_la_LDFLAGS = $(AM_LDFLAGS) @GST_PLUGIN_LDFLAGS@ -avoid-version
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GSTREAMER_LIBS@ @GSTREAMER_BASE_LIBS@ \
+ @GSTREAMER_PLUGINS_BASE_LIBS@ @GDK_LIBS@
+
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+
+# We cannot use -Wwrite-strings and the strict flags since
+# gstreamer contain broken prototypes (by design).
+AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings -Wno-missing-field-initializers \
+ @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \
+ @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/gstreamer-peer/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu native/jni/gstreamer-peer/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)"
+ @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-nativeexeclibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \
+ done
+
+clean-nativeexeclibLTLIBRARIES:
+ -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES)
+ @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" != "$$p" || dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+libgstreamerpeer.la: $(libgstreamerpeer_la_OBJECTS) $(libgstreamerpeer_la_DEPENDENCIES)
+ $(LINK) -rpath $(nativeexeclibdir) $(libgstreamerpeer_la_LDFLAGS) $(libgstreamerpeer_la_OBJECTS) $(libgstreamerpeer_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GStreamerIOPeer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstclasspathsrc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstinputstream.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-nativeexeclibLTLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-nativeexeclibLTLIBRARIES install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-nativeexeclibLTLIBRARIES
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c
new file mode 100644
index 00000000000..afce1f1d4c2
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c
@@ -0,0 +1,332 @@
+/*gstclasspathsrc.c - Class file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/*
+ * We don't really use version numbering here, we give it the same version
+ * number of classpath, so that gstreamer is happy.
+ * TODO: Maybe this should be moved in config.h instead?
+ */
+#define CLASSPATH_GST_PLUGIN_VERSION PACKAGE_VERSION
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gst/gst.h>
+#include <gst/base/gstbasesrc.h>
+#include <gst/base/gstpushsrc.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include <gdk/gdk.h>
+
+#include "gstclasspathsrc.h"
+#include "gstinputstream.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_classpath_src_debug);
+#define GST_CAT_DEFAULT gst_classpath_src_debug
+
+enum
+{
+ ARG_0,
+ ARG_INPUTSTREAM
+};
+
+static const GstElementDetails gst_classpath_src_details =
+GST_ELEMENT_DETAILS ("ClasspathSrc",
+ "Source/Network",
+ "Read from a java input stream",
+ "Mario Torre <neugens@limasoftware.net>");
+
+static GstStaticPadTemplate _template =
+GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS_ANY);
+
+/* ***** plugin init ***** */
+
+static void
+_do_init (GType filesrc_type __attribute__ ((unused)))
+{
+ GST_DEBUG_CATEGORY_INIT (gst_classpath_src_debug, "classpathsrc",
+ 0, "classpathsrc");
+}
+
+GST_BOILERPLATE_FULL (GstClasspathSrc, gst_classpath_src, GstPushSrc,
+ GST_TYPE_PUSH_SRC, _do_init);
+
+static gboolean
+plugin_init (GstPlugin *plugin)
+{
+ return gst_element_register (plugin, "classpathsrc",
+ GST_RANK_NONE, GST_TYPE_CLASSPATH_SRC);
+}
+
+GST_PLUGIN_DEFINE_STATIC (GST_VERSION_MAJOR,
+ GST_VERSION_MINOR,
+ "classpathsrc",
+ "Java InputStream Reader",
+ plugin_init, CLASSPATH_GST_PLUGIN_VERSION,
+ GST_LICENSE_UNKNOWN,
+ "Classpath", "http://www.classpath.org/")
+
+/* ***** public class methods ***** */
+
+static void gst_classpath_src_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec);
+
+static void gst_classpath_src_get_property (GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec);
+
+static void gst_classpath_src_finalize (GObject *object);
+
+static gboolean gst_classpath_src_start (GstBaseSrc *basesrc);
+
+static gboolean gst_classpath_src_stop (GstBaseSrc *basesrc);
+
+static GstFlowReturn gst_classpath_src_create (GstPushSrc *src,
+ GstBuffer **buffer);
+
+/* ***** public class methods: end ***** */
+
+static void
+gst_classpath_src_base_init (gpointer gclass)
+{
+ GstElementClass *gstelement_class = GST_ELEMENT_CLASS (gclass);
+
+ gst_element_class_add_pad_template (gstelement_class,
+ gst_static_pad_template_get (&_template));
+
+ gst_element_class_set_details (gstelement_class, &gst_classpath_src_details);
+}
+
+static void
+gst_classpath_src_class_init (GstClasspathSrcClass *klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+ GstBaseSrcClass *gstbasesrc_class;
+ GstPushSrcClass *gstpushsrc_class;
+
+ GParamSpec *pspec;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gstelement_class = GST_ELEMENT_CLASS (klass);
+ gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
+ gstpushsrc_class = GST_PUSH_SRC_CLASS (klass);
+
+ /* getter and setters */
+
+ gobject_class->set_property = gst_classpath_src_set_property;
+ gobject_class->get_property = gst_classpath_src_get_property;
+
+ /* register properties */
+ pspec = g_param_spec_pointer (GST_CLASSPATH_SRC_ISTREAM,
+ "GstInputStream instance",
+ "GstInputStream instance",
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class, ARG_INPUTSTREAM, pspec);
+
+ /* register callbacks */
+ gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_classpath_src_finalize);
+
+ gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_classpath_src_start);
+ gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_classpath_src_stop);
+
+ gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_classpath_src_create);
+}
+
+/* ***** */
+
+static void
+gst_classpath_src_init (GstClasspathSrc *src,
+ GstClasspathSrcClass * g_class __attribute__ ((unused)))
+{
+ src->istream = NULL;
+ src->read_position = 0;
+}
+
+static void
+gst_classpath_src_finalize (GObject *object)
+{
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* ************************************************************************** */
+
+static void
+gst_classpath_src_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GstClasspathSrc *src;
+
+ g_return_if_fail (GST_IS_CLASSPATH_SRC (object));
+
+ src = GST_CLASSPATH_SRC (object);
+
+ GST_OBJECT_LOCK (src);
+ switch (prop_id)
+ {
+ case ARG_INPUTSTREAM:
+ {
+ GST_STATE_LOCK (src);
+ {
+ GstState state;
+ state = GST_STATE (src);
+
+ if (state != GST_STATE_READY && state != GST_STATE_NULL)
+ {
+ GST_DEBUG_OBJECT (src, "setting location in wrong state");
+ GST_STATE_UNLOCK (src);
+ break;
+ }
+ }
+ GST_STATE_UNLOCK (src);
+
+ if (GST_IS_INPUT_STREAM (g_value_get_pointer (value)))
+ {
+ src->istream = g_value_get_pointer (value);
+ }
+ else
+ {
+ GST_INFO_OBJECT (src, "invalid instance of GstInputStream");
+ }
+ }
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+ GST_OBJECT_UNLOCK (src);
+}
+
+static void
+gst_classpath_src_get_property (GObject *object,
+ guint prop_id __attribute__ ((unused)),
+ GValue *value __attribute__ ((unused)),
+ GParamSpec *pspec __attribute__ ((unused)))
+{
+ /* TODO */
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* ************************************************************************** */
+
+static GstFlowReturn
+gst_classpath_src_create (GstPushSrc *basesrc,
+ GstBuffer **buffer)
+{
+ GstClasspathSrc *src;
+ int read = -1;
+
+ src = GST_CLASSPATH_SRC (basesrc);
+
+ /* create the buffer */
+ *buffer = gst_buffer_new_and_alloc (2048);
+ if (*buffer == NULL)
+ {
+ return GST_FLOW_ERROR;
+ }
+
+ GST_BUFFER_SIZE (*buffer) = 0;
+
+ GST_OBJECT_LOCK (src);
+ read = gst_input_stream_read (src->istream, (int *) GST_BUFFER_DATA (*buffer), 0,
+ 2048);
+ GST_OBJECT_UNLOCK (src);
+
+ if (G_UNLIKELY (read < 0))
+ {
+ gst_buffer_unref (*buffer);
+ return GST_FLOW_UNEXPECTED;
+ }
+
+ GST_OBJECT_LOCK (src);
+
+ GST_BUFFER_SIZE (*buffer) = read;
+ GST_BUFFER_OFFSET (*buffer) = src->read_position;
+ GST_BUFFER_OFFSET_END (*buffer) = src->read_position + read;
+
+ src->read_position += read;
+
+ GST_OBJECT_UNLOCK (src);
+
+ gst_buffer_set_caps (*buffer, GST_PAD_CAPS (GST_BASE_SRC_PAD (src)));
+
+ return GST_FLOW_OK;
+}
+
+static gboolean
+gst_classpath_src_start (GstBaseSrc *basesrc)
+{
+ GstClasspathSrc *src;
+
+ src = GST_CLASSPATH_SRC (basesrc);
+
+ if (src->istream == NULL)
+ {
+ GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL),
+ ("GstInputStream is still null. you need to pass a valid InputStream"));
+
+ return FALSE;
+ }
+ GST_OBJECT_LOCK (src);
+ src->read_position = 0;
+ GST_OBJECT_UNLOCK (src);
+
+ return TRUE;
+}
+
+static gboolean
+gst_classpath_src_stop (GstBaseSrc *basesrc __attribute__ ((unused)))
+{
+ /* nothing to do */
+ return TRUE;
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h
new file mode 100644
index 00000000000..f5fa6c83d4f
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h
@@ -0,0 +1,88 @@
+/*gstclasspathsrc.h - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifndef __GST_CLASSPATH_SRC_H__
+#define __GST_CLASSPATH_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstpushsrc.h>
+
+#include "gstinputstream.h"
+
+G_BEGIN_DECLS
+
+/* #defines don't like whitespacey bits */
+#define GST_TYPE_CLASSPATH_SRC (gst_classpath_src_get_type())
+
+#define GST_CLASSPATH_SRC(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CLASSPATH_SRC,GstClasspathSrc))
+
+#define GST_CLASSPATH_SRC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CLASSPATH_SRC,GstClasspathSrcClass))
+
+#define GST_IS_CLASSPATH_SRC(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CLASSPATH_SRC))
+
+#define GST_IS_CLASSPATH_SRC_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CLASSPATH_SRC))
+
+typedef struct _GstClasspathSrc GstClasspathSrc;
+typedef struct _GstClasspathSrcClass GstClasspathSrcClass;
+
+struct _GstClasspathSrc
+{
+ GstPushSrc element;
+
+ /* TODO: move in a private structure */
+ GstInputStream *istream;
+ int read_position;
+};
+
+struct _GstClasspathSrcClass
+{
+ GstPushSrcClass parent_class;
+};
+
+GType gst_classpath_src_get_type (void);
+
+/* exported properties */
+
+#define GST_CLASSPATH_SRC_ISTREAM "input-stream"
+
+G_END_DECLS
+
+#endif /* __GST_CLASSPATH_SRC_H__ */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c
new file mode 100644
index 00000000000..eb4969682f8
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c
@@ -0,0 +1,494 @@
+/*gstinputstream.c - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <jni.h>
+#include <jcl.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <gdk/gdk.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include "gstinputstream.h"
+
+struct _GstInputStreamPrivate
+{
+ JavaVM *vm;
+ jobject *reader;
+
+ gboolean eof;
+ guint8 *buffer;
+ long size;
+ long length;
+
+ gboolean disposed;
+};
+
+#define INPUT_STREAM_GET_PRIVATE(o) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((o), GST_TYPE_INPUT_STREAM, GstInputStreamPrivate))
+
+/* properties */
+
+enum
+{
+ ARG_0,
+ ARG_JVM,
+ ARG_READER
+};
+
+/* ***** */
+
+static JNIEnv *gst_input_stream_get_jenv(GstInputStream *self);
+
+static void gst_input_stream_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec);
+
+static void gst_input_stream_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec);
+
+static void gst_input_stream_instance_init (GTypeInstance *instance,
+ gpointer g_class);
+
+static void gst_input_stream_class_init (gpointer g_class,
+ gpointer g_class_data);
+
+static GObject *
+gst_input_stream_constructor (GType type, guint n_construct_properties,
+ GObjectConstructParam *construct_properties);
+
+static void
+gst_input_stream_dispose (GObject *obj);
+
+static void
+gst_input_stream_finalize (GObject *obj);
+
+/* ************************************************************************** */
+
+/* class methods */
+
+int
+gst_input_stream_read (GstInputStream *self, int *data, int offset,
+ int length)
+{
+ /* TODO: cache */
+ jmethodID _readID = NULL;
+ jclass InputStream = NULL;
+
+ JNIEnv *env = NULL;
+
+ int ret = -1;
+ jbyteArray buffer;
+ jbyte *bytes = NULL;
+
+ if (self->priv->disposed || self->priv->vm == NULL ||
+ self->priv->reader == NULL)
+ {
+ return -1;
+ }
+
+ env = gst_input_stream_get_jenv (self);
+ if (env == NULL)
+ {
+ g_warning("GstInputStream::gst_input_stream_read failed to get java env");
+ return -1;
+ }
+
+ buffer = (*env)->NewByteArray (env, length);
+ if (buffer == NULL)
+ {
+ g_warning ("GstInputStream::gst_input_stream_read called, failed");
+ return -1;
+ }
+
+ InputStream = (*env)->GetObjectClass(env, self->priv->reader);
+ _readID = (*env)->GetMethodID(env, InputStream, "read", "([BII)I");
+ if (_readID == NULL)
+ {
+ (*env)->DeleteLocalRef(env, buffer);
+ return -1;
+ }
+
+ ret = (*env)->CallIntMethod (env, self->priv->reader, _readID, buffer, 0,
+ length);
+ if (ret == -1)
+ {
+ (*env)->DeleteLocalRef(env, buffer);
+ return ret;
+ }
+
+ bytes = (*env)->GetByteArrayElements (env, buffer, NULL);
+
+ /* copy bytes and release */
+ memcpy (data + offset, bytes, ret);
+
+ (*env)->ReleaseByteArrayElements (env, buffer, bytes, 0);
+ (*env)->DeleteLocalRef (env, buffer);
+
+ return ret;
+}
+
+gboolean
+gst_input_stream_available (GstInputStream *self, guint64 *size)
+{
+ /* TODO: caching */
+
+ jmethodID _availableID = NULL;
+ jclass InputStream = NULL;
+ JNIEnv *env = NULL;
+
+ if (self->priv->disposed || self->priv->vm == NULL ||
+ self->priv->reader == NULL)
+ {
+ return FALSE;
+ }
+
+ env = gst_input_stream_get_jenv(self);
+ if (env == NULL)
+ {
+ g_warning("GstInputStream::gst_input_stream_available failed to get java env");
+ return FALSE;
+ }
+
+ InputStream = (*env)->GetObjectClass(env, self->priv->reader);
+ _availableID = (*env)->GetMethodID(env, InputStream, "available", "()I");
+ if (_availableID == NULL)
+ {
+ return FALSE;
+ }
+
+ *size = (*env)->CallIntMethod (env, self->priv->reader, _availableID);
+
+ return TRUE;
+}
+
+void gst_input_stream_reset (GstInputStream *self)
+{
+ jmethodID _resetID = NULL;
+ jclass InputStream = NULL;
+ JNIEnv *env = NULL;
+
+ if (self->priv->disposed || self->priv->vm == NULL ||
+ self->priv->reader == NULL)
+ {
+ return;
+ }
+
+ env = gst_input_stream_get_jenv(self);
+ if (env == NULL)
+ {
+ g_warning("GstInputStream::gst_input_stream_reset failed to get java env");
+ return;
+ }
+
+ InputStream = (*env)->GetObjectClass(env, self->priv->reader);
+ _resetID = (*env)->GetMethodID(env, InputStream, "reset", "()V");
+ if (_resetID == NULL)
+ {
+ return;
+ }
+
+ (*env)->CallVoidMethod (env, self->priv->reader, _resetID);
+}
+
+long gst_input_stream_skip (GstInputStream *self, long size)
+{
+ jmethodID _seekID = NULL;
+ jclass InputStream = NULL;
+ JNIEnv *env = NULL;
+
+ long skipped = -1;
+
+ if (self->priv->disposed || self->priv->vm == NULL ||
+ self->priv->reader == NULL)
+ {
+ return skipped;
+ }
+
+ env = gst_input_stream_get_jenv(self);
+ if (env == NULL)
+ {
+ g_warning("GstInputStream::gst_input_stream_skip failed to get java env");
+ return size;
+ }
+
+ InputStream = (*env)->GetObjectClass(env, self->priv->reader);
+ _seekID = (*env)->GetMethodID(env, InputStream, "skip", "(J)J");
+ if (_seekID == NULL)
+ {
+ return skipped;
+ }
+
+ size = (*env)->CallIntMethod (env, self->priv->reader, _seekID, size);
+ if (size != 0)
+ {
+ return skipped;
+ }
+
+ return skipped;
+}
+
+gboolean gst_input_stream_can_seek (GstInputStream *self)
+{
+ if (gst_input_stream_skip(self, 0) != 0)
+ {
+ g_warning ("GstInputStream::gst_input_stream_can_seek CANNOT seek");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+/* ************************************************************************** */
+
+/* getter and setter */
+
+static void
+gst_input_stream_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GstInputStream *self = GST_INPUT_STREAM (object);
+
+ switch (property_id)
+ {
+ case ARG_JVM:
+ {
+ self->priv->vm = g_value_get_pointer(value);
+ }
+ break;
+
+ case ARG_READER:
+ {
+ self->priv->reader = g_value_get_pointer(value);
+ }
+ break;
+
+ default:
+ /* We don't have any other property... */
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object,property_id,pspec);
+ break;
+ } /* switch */
+}
+
+static void
+gst_input_stream_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GstInputStream *self = GST_INPUT_STREAM (object);
+
+ switch (property_id)
+ {
+ case ARG_JVM:
+ {
+ g_value_set_pointer (value, self->priv->vm);
+ }
+ break;
+
+ case ARG_READER:
+ {
+ g_value_set_pointer (value, self->priv->reader);
+ }
+ break;
+
+ default:
+ /* We don't have any other property... */
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object,property_id,pspec);
+ break;
+ } /* switch */
+}
+
+/* ************************************************************************** */
+
+static void
+gst_input_stream_instance_init (GTypeInstance *instance,
+ gpointer g_class __attribute__ ((unused)))
+{
+ GstInputStream *self = GST_INPUT_STREAM (instance);
+
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_INPUT_STREAM,
+ GstInputStreamPrivate);
+
+ self->priv->vm = NULL;
+ self->priv->reader = NULL;
+ self->priv->disposed = FALSE;
+ self->priv->eof = FALSE;
+ self->priv->buffer = NULL;
+ self->priv->size = 0;
+ self->priv->length = 0;
+}
+
+static void
+gst_input_stream_class_init (gpointer g_class,
+ gpointer g_class_data __attribute__ ((unused)))
+{
+ GObjectClass *gobject_class;
+ GstInputStreamClass *klass;
+ GObjectClass *parent_class;
+
+ GParamSpec *pspec;
+
+ gobject_class = G_OBJECT_CLASS (g_class);
+ klass = GST_INPUT_STREAM_CLASS (g_class);
+ gobject_class = G_OBJECT_CLASS (g_class);
+
+ g_type_class_add_private (klass, sizeof (GstInputStreamPrivate));
+
+ gobject_class->set_property = gst_input_stream_set_property;
+ gobject_class->get_property = gst_input_stream_get_property;
+ gobject_class->dispose = gst_input_stream_dispose;
+ gobject_class->finalize = gst_input_stream_finalize;
+ gobject_class->constructor = gst_input_stream_constructor;
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ /* register properties */
+ pspec = g_param_spec_pointer (GST_ISTREAM_JVM,
+ "Set the java environment property",
+ "Set the java environment property",
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class, ARG_JVM, pspec);
+
+ pspec = g_param_spec_pointer (GST_ISTREAM_READER,
+ "Set the java reader property",
+ "Set the java reader property",
+ G_PARAM_READWRITE);
+ g_object_class_install_property (gobject_class, ARG_READER, pspec);
+
+}
+
+/* class constructors */
+
+static GObject *
+gst_input_stream_constructor (GType type, guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
+{
+ GObject *obj;
+ GObjectClass *parent_class;
+
+ /* parent */
+ GstInputStreamClass *klass;
+ klass = GST_INPUT_STREAM_CLASS (g_type_class_peek (GST_TYPE_INPUT_STREAM));
+ parent_class = g_type_class_peek_parent (klass);
+ obj = parent_class->constructor (type, n_construct_properties,
+ construct_properties);
+ return obj;
+}
+
+static void
+gst_input_stream_dispose (GObject *obj)
+{
+ GObjectClass *parent_class;
+ GstInputStream *self = GST_INPUT_STREAM (obj);
+ if (self->priv->disposed)
+ {
+ /* If dispose did already run, return. */
+ return;
+ }
+
+ /* Make sure dispose does not run twice. */
+ self->priv->disposed = TRUE;
+
+ if (self->priv->buffer != NULL)
+ g_free(self->priv->buffer);
+
+ /* Chain up to the parent class */
+ parent_class = g_type_class_peek_parent (GST_INPUT_STREAM_CLASS (obj));
+ G_OBJECT_CLASS (parent_class)->dispose (obj);
+}
+
+static void
+gst_input_stream_finalize (GObject *obj)
+{
+ /* nothing else to do */
+ GObjectClass *parent_class =
+ g_type_class_peek_parent (GST_INPUT_STREAM_CLASS (obj));
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
+}
+
+static JNIEnv *
+gst_input_stream_get_jenv(GstInputStream *self)
+{
+ void *env = NULL;
+
+ if ((*self->priv->vm)->GetEnv(self->priv->vm, &env, JNI_VERSION_1_2) != JNI_OK)
+ {
+ if ((*self->priv->vm)->AttachCurrentThreadAsDaemon(self->priv->vm,
+ &env, NULL) < 0)
+ {
+ g_warning ("GstInputStream:- env not attached");
+ return NULL;
+ }
+ }
+
+ return (JNIEnv *) env;
+}
+
+GType gst_input_stream_get_type (void)
+{
+ static GType type = 0;
+
+ if (type == 0)
+ {
+ static const GTypeInfo info = {
+ sizeof (GstInputStreamClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ gst_input_stream_class_init, /* class_init */
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (GstInputStream),
+ 0, /* n_preallocs */
+ gst_input_stream_instance_init /* instance_init */
+ };
+
+ type = g_type_register_static (G_TYPE_OBJECT,
+ "GstInputStreamType",
+ &info, 0);
+ }
+
+ return type;
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h
new file mode 100644
index 00000000000..1930412fe16
--- /dev/null
+++ b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h
@@ -0,0 +1,99 @@
+/*gstinputstream.h - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifndef __GST_INPUT_STREAM_H__
+#define __GST_INPUT_STREAM_H__
+
+#include <glib-object.h>
+
+/* TODO: is a gobject overkill for that? */
+
+G_BEGIN_DECLS
+
+/* #defines don't like whitespacey bits */
+#define GST_TYPE_INPUT_STREAM (gst_input_stream_get_type())
+
+#define GST_INPUT_STREAM(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INPUT_STREAM,GstInputStream))
+
+#define GST_INPUT_STREAM_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INPUT_STREAM,GstInputStreamClass))
+
+#define GST_IS_INPUT_STREAM(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INPUT_STREAM))
+
+#define GST_IS_INPUT_STREAM_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INPUT_STREAM))
+
+typedef struct _GstInputStream GstInputStream;
+typedef struct _GstInputStreamClass GstInputStreamClass;
+typedef struct _GstInputStreamPrivate GstInputStreamPrivate;
+
+struct _GstInputStream
+{
+ GObject parent;
+
+ /* instance members */
+ GstInputStreamPrivate *priv;
+};
+
+struct _GstInputStreamClass
+{
+ GObjectClass parent_class;
+};
+
+GType gst_input_stream_get_type (void);
+
+int gst_input_stream_read (GstInputStream *self, int *data, int offset,
+ int length);
+
+gboolean gst_input_stream_available (GstInputStream *self, guint64 *size);
+
+gboolean gst_input_stream_can_seek (GstInputStream *self);
+
+long gst_input_stream_skip (GstInputStream *self, long size);
+
+void gst_input_stream_reset (GstInputStream *self);
+
+/* exported properties */
+
+#define GST_ISTREAM_JVM "vm"
+#define GST_ISTREAM_READER "reader"
+
+G_END_DECLS
+
+#endif /* __GST_INPUT_STREAM_H__ */
diff --git a/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c b/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c
index 62ffa1395ea..aee61bd08f6 100644
--- a/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c
@@ -36,7 +36,7 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include "gtkpeer.h"
-#include "GtkDragSourceContextPeer.h"
+#include "gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h"
#include <jni.h>
#include <gtk/gtk.h>
@@ -78,7 +78,7 @@ static jmethodID dropCompleteID;
GtkWidget *widget;
GtkWidget *tgt;
-jobject *gref;
+jobject gref;
jobject javaObj;
JNIEXPORT void JNICALL
@@ -88,10 +88,10 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create
gdk_threads_enter ();
javaObj = obj;
- NSA_SET_GLOBAL_REF (env, obj);
- NSA_SET_GLOBAL_REF (env, comp);
+ gtkpeer_set_global_ref (env, obj);
+ gtkpeer_set_global_ref (env, comp);
- gref = NSA_GET_PTR (env, comp);
+ gref = gtkpeer_get_widget (env, comp);
widget = get_widget (GTK_WIDGET (gref));
gdk_threads_leave ();
@@ -109,7 +109,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor
gdk_threads_enter ();
javaObj = obj;
- ptr = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_global_ref (env, obj);
switch (type)
{
@@ -180,7 +180,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals
gdk_threads_enter ();
javaObj = obj;
- gref = NSA_GET_GLOBAL_REF (env, comp);
+ gref = gtkpeer_get_global_ref (env, comp);
connect_signals_for_widget (widget);
@@ -245,7 +245,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget
gdk_threads_enter ();
javaObj = obj;
- ptr = NSA_GET_PTR (env, target);
+ ptr = gtkpeer_get_widget (env, target);
tgt = get_widget (GTK_WIDGET (ptr));
connect_signals_for_widget (tgt);
@@ -268,7 +268,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag
gdk_threads_enter ();
javaObj = obj;
- ptr = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_global_ref (env, obj);
data = (*env)->GetStringUTFChars (env, target, NULL);
tar[0].target = (gchar *) data;
diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.am b/libjava/classpath/native/jni/gtk-peer/Makefile.am
index 15f865d4fee..b6438ff6fea 100644
--- a/libjava/classpath/native/jni/gtk-peer/Makefile.am
+++ b/libjava/classpath/native/jni/gtk-peer/Makefile.am
@@ -44,10 +44,10 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
gdkdisplay.h \
gdkfont.h \
gtk_jawt.c \
+ gtkpeer.c \
gtkpeer.h
-libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
- $(top_builddir)/native/jni/classpath/jcl.lo
+libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
libgtkpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \
diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in
index c12ee60603d..1b76b7fb13d 100644
--- a/libjava/classpath/native/jni/gtk-peer/Makefile.in
+++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in
@@ -71,7 +71,6 @@ am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
libgtkpeer_la_DEPENDENCIES = \
- $(top_builddir)/native/jni/classpath/native_state.lo \
$(top_builddir)/native/jni/classpath/jcl.lo
am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
gnu_java_awt_peer_gtk_CairoGraphics2D.lo \
@@ -111,7 +110,7 @@ am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
gnu_java_awt_peer_gtk_GtkToolkit.lo \
gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
gnu_java_awt_peer_gtk_GtkVolatileImage.lo \
- GtkDragSourceContextPeer.lo gtk_jawt.lo
+ GtkDragSourceContextPeer.lo gtk_jawt.lo gtkpeer.lo
libgtkpeer_la_OBJECTS = $(am_libgtkpeer_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
depcomp = $(SHELL) $(top_srcdir)/../../depcomp
@@ -164,6 +163,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -202,8 +203,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -227,6 +226,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -299,8 +307,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -418,11 +424,10 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
gdkdisplay.h \
gdkfont.h \
gtk_jawt.c \
+ gtkpeer.c \
gtkpeer.h
-libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
- $(top_builddir)/native/jni/classpath/jcl.lo
-
+libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
libgtkpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \
@PANGOFT2_LIBS@ @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @XTEST_LIBS@
@@ -544,6 +549,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkVolatileImage.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkWindowPeer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_jawt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkpeer.Plo@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/libjava/classpath/native/jni/gtk-peer/cairographics2d.h b/libjava/classpath/native/jni/gtk-peer/cairographics2d.h
index fc564a86a99..d5611bff6d0 100644
--- a/libjava/classpath/native/jni/gtk-peer/cairographics2d.h
+++ b/libjava/classpath/native/jni/gtk-peer/cairographics2d.h
@@ -45,7 +45,6 @@ exception statement from your version. */
#include <stdlib.h>
#include <string.h>
#include <config.h>
-#include "native_state.h"
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <jni.h>
diff --git a/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h b/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h
index 238ff9e2613..e15f08e6906 100644
--- a/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h
+++ b/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h
@@ -40,28 +40,4 @@
#include "gtkpeer.h"
-/* Allows storing GdkDisplay pointers in GdkGraphicsEnvironment instances. */
-extern struct state_table *cp_gtk_native_display_state_table;
-
-/* Allows storing GdkScreen pointers in GdkScreenGraphicsDevice instances. */
-extern struct state_table *cp_gtk_native_screen_state_table;
-
-#define NSA_DISPLAY_INIT(env, clazz) \
- cp_gtk_native_display_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_DISPLAY_PTR(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_display_state_table)
-
-#define NSA_SET_DISPLAY_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, cp_gtk_native_display_state_table, (void *)ptr)
-
-#define NSA_SCREEN_INIT(env, clazz) \
- cp_gtk_native_screen_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_SCREEN_PTR(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_screen_state_table)
-
-#define NSA_SET_SCREEN_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, cp_gtk_native_screen_state_table, (void *)ptr)
-
#endif /* __GDKDISPLAY_H__ */
diff --git a/libjava/classpath/native/jni/gtk-peer/gdkfont.h b/libjava/classpath/native/jni/gtk-peer/gdkfont.h
index 20b8e424d84..241a05f7d5f 100644
--- a/libjava/classpath/native/jni/gtk-peer/gdkfont.h
+++ b/libjava/classpath/native/jni/gtk-peer/gdkfont.h
@@ -46,48 +46,6 @@
#include <pango/pango-fontmap.h>
#include <pango/pangoft2.h>
-extern struct state_table *cp_gtk_native_font_state_table;
-extern struct state_table *native_glyphvector_state_table;
-extern struct state_table *cp_gtk_native_text_layout_state_table;
-
-#define NSA_FONT_INIT(env, clazz) \
- cp_gtk_native_font_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_FONT_PTR(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_font_state_table)
-
-#define NSA_SET_FONT_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, cp_gtk_native_font_state_table, (void *)ptr)
-
-#define NSA_DEL_FONT_PTR(env, obj) \
- cp_gtk_remove_state_slot (env, obj, cp_gtk_native_font_state_table)
-
-
-#define NSA_GV_INIT(env, clazz) \
- native_glyphvector_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_GV_PTR(env, obj) \
- cp_gtk_get_state (env, obj, native_glyphvector_state_table)
-
-#define NSA_SET_GV_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, native_glyphvector_state_table, (void *)ptr)
-
-#define NSA_DEL_GV_PTR(env, obj) \
- cp_gtk_remove_state_slot (env, obj, native_glyphvector_state_table)
-
-
-#define NSA_TEXT_LAYOUT_INIT(env, clazz) \
- cp_gtk_native_text_layout_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_TEXT_LAYOUT_PTR(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_text_layout_state_table)
-
-#define NSA_SET_TEXT_LAYOUT_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, cp_gtk_native_text_layout_state_table, (void *)ptr)
-
-#define NSA_DEL_TEXT_LAYOUT_PTR(env, obj) \
- cp_gtk_remove_state_slot (env, obj, cp_gtk_native_text_layout_state_table)
-
#define FONT_METRICS_ASCENT 0
#define FONT_METRICS_MAX_ASCENT 1
#define FONT_METRICS_DESCENT 2
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
index 40ddeedf8a1..141e83792d2 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
@@ -327,7 +327,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector
gr = JLONG_TO_PTR(struct cairographics2d, pointer);
g_assert (gr != NULL);
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
+ pfont = (struct peerfont *) gtkpeer_get_font(env, font);
g_assert (pfont != NULL);
glyphs = g_malloc( sizeof(cairo_glyph_t) * n);
@@ -392,7 +392,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
gr = JLONG_TO_PTR(struct cairographics2d, pointer);
g_assert (gr != NULL);
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
+ pfont = (struct peerfont *) gtkpeer_get_font(env, font);
g_assert (pfont != NULL);
gdk_threads_enter();
@@ -508,7 +508,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFillRule
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetLine
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble width, int cap, int join, double miterLimit)
+ jlong pointer, jdouble width, jint cap, jint join, jdouble miterLimit)
{
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
g_assert (gr != NULL);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
index ed9cf3d6ddc..9de0d7b95f1 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
@@ -125,13 +125,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
cairo_surface_t *surface;
GdkWindow *win;
GtkWidget *widget = NULL;
- void *ptr = NULL;
int width, height;
cairo_t *cr;
+ void *ptr;
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
@@ -232,7 +232,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
@@ -260,10 +260,10 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_nativeGrab
gint w,h;
GtkWidget *widget = NULL;
void *ptr = NULL;
-
+
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
@@ -293,12 +293,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_drawVolatile
{
GdkPixmap *pixmap;
GtkWidget *widget = NULL;
- void *ptr = NULL;
GdkGC *gc;
GdkRectangle clip;
+ void *ptr;
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, peer);
+
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
index 76caa5d0c00..7ce93b0a7a5 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
@@ -67,7 +67,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
@@ -95,8 +95,8 @@ JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf
(JNIEnv *env, jobject obj __attribute__((unused)),
jobject peer, jobject image,
- int x __attribute__((unused)), int y __attribute__((unused)),
- int width __attribute__((unused)), int height __attribute__((unused)))
+ jint x __attribute__((unused)), jint y __attribute__((unused)),
+ jint width __attribute__((unused)), jint height __attribute__((unused)))
{
gint pwidth, pheight;
GdkPixbuf *pixbuf;
@@ -107,7 +107,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
index 1a2d2a07430..cea06f52d51 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
@@ -45,7 +45,6 @@ exception statement from your version. */
#include <freetype/ftglyph.h>
#include <freetype/ftoutln.h>
#include "jcl.h"
-#include "native_state.h"
#include "gdkfont.h"
#include "gnu_java_awt_peer_gtk_FreetypeGlyphVector.h"
#include "cairographics2d.h"
@@ -76,7 +75,7 @@ getFont(JNIEnv *env, jobject obj)
data = (*env)->GetObjectField (env, obj, fid);
g_assert (data != NULL);
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, data);
+ pfont = (struct peerfont *) gtkpeer_get_font(env, data);
g_assert (pfont != NULL);
g_assert (pfont->font != NULL);
@@ -99,7 +98,7 @@ getFontSet(JNIEnv *env, jobject obj)
data = (*env)->GetObjectField (env, obj, fid);
g_assert (data != NULL);
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, data);
+ pfont = (struct peerfont *) gtkpeer_get_font (env, data);
g_assert (pfont != NULL);
g_assert (pfont->font != NULL);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
index 022edeeaffd..a5e59f7e4fd 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
@@ -44,10 +44,9 @@
#include <freetype/fttypes.h>
#include <freetype/tttables.h>
#include "gdkfont.h"
+#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GdkFontPeer.h"
-struct state_table *cp_gtk_native_font_state_table;
-
enum java_awt_font_style {
java_awt_font_PLAIN = 0,
java_awt_font_BOLD = 1,
@@ -60,11 +59,14 @@ enum java_awt_font_baseline {
java_awt_font_HANGING_BASELINE = 2
};
+static PangoFT2FontMap *ft2_map = NULL;
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState
- (JNIEnv *env, jclass clazz)
+ (JNIEnv *env, jclass clazz __attribute__((unused)))
{
- NSA_FONT_INIT (env, clazz);
+ gtkpeer_init_font_IDs(env);
+ ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_new());
}
JNIEXPORT void JNICALL
@@ -78,7 +80,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_initState
g_assert (self != NULL);
pfont = (struct peerfont *) g_malloc0 (sizeof (struct peerfont));
g_assert (pfont != NULL);
- NSA_SET_FONT_PTR (env, self, pfont);
+ gtkpeer_set_font (env, self, pfont);
gdk_threads_leave ();
}
@@ -92,7 +94,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose
gdk_threads_enter ();
- pfont = (struct peerfont *)NSA_DEL_FONT_PTR (env, self);
+ pfont = (struct peerfont *) gtkpeer_get_font (env, self);
g_assert (pfont != NULL);
if (pfont->layout != NULL)
g_object_unref (pfont->layout);
@@ -118,7 +120,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource
gdk_threads_enter();
- pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
+ pfont = (struct peerfont *) gtkpeer_get_font (env, java_font);
g_assert (pfont != NULL);
if (pfont->graphics_resource != NULL)
{
@@ -145,7 +147,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics
gdk_threads_enter();
- pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
+ pfont = (struct peerfont *) gtkpeer_get_font (env, java_font);
g_assert (pfont != NULL);
face = pango_fc_font_lock_face ((PangoFcFont *)pfont->font);
@@ -194,7 +196,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
gdk_threads_enter();
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
+ pfont = (struct peerfont *) gtkpeer_get_font(env, java_font);
g_assert (pfont != NULL);
cstr = (*env)->GetStringUTFChars (env, str, NULL);
@@ -248,14 +250,13 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
struct peerfont *pfont = NULL;
char const *family_name = NULL;
enum java_awt_font_style style;
- PangoFT2FontMap *ft2_map = NULL;
gdk_threads_enter ();
style = (enum java_awt_font_style) style_int;
g_assert (self != NULL);
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self);
+ pfont = (struct peerfont *) gtkpeer_get_font(env, self);
g_assert (pfont != NULL);
/* Clear old font information */
@@ -286,9 +287,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
pango_font_description_set_size (pfont->desc, size * PANGO_SCALE);
/* Create new context */
- ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_new());
pfont->ctx = pango_ft2_font_map_create_context (ft2_map);
- g_object_unref(ft2_map);
g_assert (pfont->ctx != NULL);
pango_context_set_font_description (pfont->ctx, pfont->desc);
@@ -321,7 +320,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable
jbyteArray result_array;
jbyte *rbuf;
- pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self);
+ pfont = (struct peerfont *) gtkpeer_get_font(env, self);
if(pfont == NULL)
return NULL;
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
index 6528ad43a2e..6066a6bb271 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
@@ -42,18 +42,13 @@
#include "gdkdisplay.h"
#include "gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h"
-struct state_table *cp_gtk_native_display_state_table;
-
jclass gdkGraphicsEnvironment_class;
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initStaticState
+Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initIDs
(JNIEnv *env, jclass klazz __attribute__((unused)))
{
- gdkGraphicsEnvironment_class = (*env)->NewGlobalRef
- (env, klazz);
-
- NSA_DISPLAY_INIT(env, gdkGraphicsEnvironment_class);
+ gtkpeer_init_display_IDs(env);
}
JNIEXPORT void JNICALL
@@ -70,7 +65,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState
gdk_threads_leave();
/* Store display pointer in GdkGraphicsEnvironment instance. */
- NSA_SET_DISPLAY_PTR(env, obj, (void *) defaultDisplay);
+ gtkpeer_set_display(env, obj, (void *) defaultDisplay);
}
static gint
@@ -157,7 +152,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices
gdkScreenGraphicsDevice_init = (*env)->GetMethodID
(env, gdkScreenGraphicsDevice_class, "init", "()V");
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, obj);
+ display = (GdkDisplay *) gtkpeer_get_display(env, obj);
gdk_threads_enter();
@@ -181,9 +176,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices
gdkScreenGraphicsDevice_ctor,
obj);
- NSA_SET_SCREEN_PTR(env,
- instance,
- gdk_display_get_screen(display, i));
+ gtkpeer_set_screen(env, instance, gdk_display_get_screen(display, i));
gdk_threads_leave();
(*env)->CallVoidMethod(env,
@@ -214,15 +207,12 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice
gdkScreenGraphicsDevice_ctor = (*env)->GetMethodID
(env, gdkScreenGraphicsDevice_class, "<init>",
"(Lgnu/java/awt/peer/gtk/GdkGraphicsEnvironment;)V");
-
gdkScreenGraphicsDevice_init = (*env)->GetMethodID
(env, gdkScreenGraphicsDevice_class, "init", "()V");
/* Create the GdkScreenGraphicsDevice instance. */
- defaultDevice = (*env)->NewObject (env,
- gdkScreenGraphicsDevice_class,
- gdkScreenGraphicsDevice_ctor,
- obj);
+ defaultDevice = (*env)->NewObject(env, gdkScreenGraphicsDevice_class,
+ gdkScreenGraphicsDevice_ctor, obj);
gdk_threads_enter();
@@ -233,7 +223,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice
/* Class initialization will have set up the native_state storage
* mechanism for GdkScreenGraphicsDevice.
*/
- NSA_SET_SCREEN_PTR(env, defaultDevice, defaultScreen);
+ gtkpeer_set_screen(env, defaultDevice, defaultScreen);
(*env)->CallVoidMethod(env,
defaultDevice,
@@ -252,7 +242,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates
gint x, y, screenIndex;
GdkScreen *screen;
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, obj);
+ display = (GdkDisplay *) gtkpeer_get_display(env, obj);
g_assert (display != NULL);
gdk_threads_enter ();
@@ -273,3 +263,37 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates
return retArray;
}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse
+(JNIEnv *env, jobject obj, jobject windowPeer)
+{
+ GdkDisplay *display = NULL;
+ gint x = 0;
+ gint y = 0;
+ GtkWidget *windowToTest = NULL;
+ GdkWindow *windowAtPointer = NULL;
+ jboolean retVal = JNI_FALSE;
+
+ display = (GdkDisplay *) gtkpeer_get_display (env, obj);
+ g_assert (display != NULL);
+
+ windowToTest = (GtkWidget *) gtkpeer_get_widget (env, windowPeer);
+
+ gdk_threads_enter ();
+
+ windowAtPointer = gdk_display_get_window_at_pointer (display, &x, &y);
+
+ while (windowAtPointer
+ && windowAtPointer != windowToTest->window)
+ windowAtPointer = gdk_window_get_parent (windowAtPointer);
+
+ gdk_threads_leave ();
+
+ if (windowAtPointer)
+ retVal = JNI_TRUE;
+ else
+ retVal = JNI_FALSE;
+
+ return retVal;
+}
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
index b92d017a5d4..5ed39521aca 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
@@ -42,26 +42,11 @@
#include <jni.h>
#include <jcl.h>
-#include "native_state.h"
#include "gnu_java_awt_peer_gtk_GdkPixbufDecoder.h"
#include <string.h>
#include <stdlib.h>
-static struct state_table *native_pixbufdecoder_state_table;
-
-#define NSA_PB_INIT(env, clazz) \
- native_pixbufdecoder_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_PB_PTR(env, obj) \
- cp_gtk_get_state (env, obj, native_pixbufdecoder_state_table)
-
-#define NSA_SET_PB_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, native_pixbufdecoder_state_table, (void *)ptr)
-
-#define NSA_DEL_PB_PTR(env, obj) \
- cp_gtk_remove_state_slot (env, obj, native_pixbufdecoder_state_table)
-
/* Union used for type punning. */
union env_union
{
@@ -201,7 +186,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState
g_signal_connect (loader, "area-updated", G_CALLBACK (area_updated_cb), decoder);
g_signal_connect (loader, "closed", G_CALLBACK (closed_cb), decoder);
- NSA_SET_PB_PTR (env, obj, loader);
+ gtkpeer_set_pixbuf_loader (env, obj, loader);
}
static void
@@ -310,7 +295,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState
query_formats (env, clazz);
- NSA_PB_INIT (env, clazz);
+ gtkpeer_init_pixbuf_IDs (env);
}
@@ -320,7 +305,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish
{
GdkPixbufLoader *loader = NULL;
- loader = (GdkPixbufLoader *)NSA_DEL_PB_PTR (env, obj);
+ loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader(env, obj);
if (loader == NULL)
return;
@@ -336,7 +321,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone
GError *err = NULL;
GdkPixbufLoader *loader = NULL;
- loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj);
+ loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader (env, obj);
g_assert (loader != NULL);
gdk_pixbuf_loader_close (loader, &err);
@@ -470,7 +455,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes
bytes = (*env)->GetByteArrayElements (env, jarr, NULL);
g_assert (bytes != NULL);
- loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj);
+ loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader (env, obj);
g_assert (loader != NULL);
gdk_pixbuf_loader_write (loader, (const guchar *) bytes, len, &err);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
index 4053ad8b6f2..14ba2a123d6 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
@@ -54,13 +54,10 @@ struct state_table *cp_gtk_native_screen_state_table;
jclass gdkScreenGraphicsDevice_class;
JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initStaticState
-(JNIEnv *env, jclass klazz)
+Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initIDs
+(JNIEnv *env, jclass klazz __attribute__((unused)))
{
- gdkScreenGraphicsDevice_class = (*env)->NewGlobalRef
- (env, klazz);
-
- NSA_SCREEN_INIT(env, gdkScreenGraphicsDevice_class);
+ gtkpeer_init_screen_IDs(env);
}
JNIEXPORT jobject JNICALL
@@ -75,7 +72,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
int temp1, temp2;
GdkDisplay *display;
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+ display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
gdk_threads_enter();
@@ -87,7 +84,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
"<init>",
"(IIII)V");
- screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+ screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
fixedDisplayMode = (*env)->NewObject(env,
displayMode_class,
@@ -108,7 +105,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
"<init>",
"(IIII)V");
- screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+ screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
fixedDisplayMode = (*env)->NewObject(env,
displayMode_class,
@@ -130,7 +127,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetIDString
gchar* displayName;
jstring string;
- screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+ screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
gdk_threads_enter();
@@ -155,7 +152,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeRate
XRRScreenConfiguration *config;
int rate;
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+ display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
gdk_threads_enter();
@@ -188,7 +185,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeIndex
SizeID index;
Rotation rotation;
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+ display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
gdk_threads_enter();
@@ -229,7 +226,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModes
short *rates;
jshortArray shortArray;
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+ display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
gdk_threads_enter();
@@ -289,7 +286,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeSetDisplayMode
XRRScreenConfiguration *config;
Rotation rotation;
- display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+ display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
gdk_threads_enter();
@@ -335,7 +332,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetBounds
rectangle_ctor = (*env)->GetMethodID
(env, rectangle_class, "<init>", "(IIII)V");
- screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+ screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
gdk_threads_enter();
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
index 1099287e2ff..3e39b0ee29f 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
@@ -42,16 +42,15 @@ exception statement from your version. */
static jmethodID postActionEventID;
void
-cp_gtk_button_init_jni (void)
+cp_gtk_button_init_jni (JNIEnv* env)
{
jclass gtkbuttonpeer;
- gtkbuttonpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkButtonPeer");
+ gtkbuttonpeer = (*env)->FindClass (env,
+ "gnu/java/awt/peer/gtk/GtkButtonPeer");
- postActionEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkbuttonpeer,
- "postActionEvent", "(I)V");
+ postActionEventID = (*env)->GetMethodID (cp_gtk_gdk_env(), gtkbuttonpeer,
+ "postActionEvent", "(I)V");
}
static void clicked_cb (GtkButton *button,
@@ -67,7 +66,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
c_label = (*env)->GetStringUTFChars (env, label, NULL);
@@ -77,7 +76,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
gtk_widget_show (button);
(*env)->ReleaseStringUTFChars (env, label, c_label);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -96,7 +95,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetGetPreferredDimensions
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
button = gtk_bin_get_child (GTK_BIN (ptr));
label = gtk_bin_get_child (GTK_BIN (button));
@@ -136,20 +135,20 @@ JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals
(JNIEnv *env, jobject obj)
{
- void *ptr;
- jobject *gref;
+ GtkWidget *widget;
+ jobject gref;
GtkWidget *button;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ widget = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
- button = gtk_bin_get_child (GTK_BIN (ptr));
+ button = gtk_bin_get_child (GTK_BIN (widget));
/* Button signals */
g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (clicked_cb), *gref);
+ G_CALLBACK (clicked_cb), gref);
/* Component signals */
cp_gtk_component_connect_signals (G_OBJECT (button), gref);
@@ -168,7 +167,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = (*env)->GetStringUTFChars (env, jtext, NULL);
@@ -193,7 +192,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetModifyFont
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
font_name = (*env)->GetStringUTFChars (env, name, NULL);
@@ -234,7 +233,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetBackground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
normal_color.red = (red / 255.0) * 65535;
normal_color.green = (green / 255.0) * 65535;
@@ -275,7 +274,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetForeground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
color.red = (red / 255.0) * 65535;
color.green = (green / 255.0) * 65535;
@@ -300,7 +299,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkActivate
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
button = gtk_bin_get_child (GTK_BIN (ptr));
gtk_widget_activate (GTK_WIDGET (button));
@@ -317,7 +316,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetRequestFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
button = gtk_bin_get_child (GTK_BIN (ptr));
gtk_widget_grab_focus (button);
@@ -334,7 +333,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
widget = GTK_WIDGET (ptr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
index ef9ac12076a..600b61a3332 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
@@ -48,11 +48,11 @@ Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create
gdk_threads_enter ();
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
widget = gtk_drawing_area_new ();
- NSA_SET_PTR (env, obj, widget);
+ gtkpeer_set_widget (env, obj, widget);
gdk_threads_leave ();
}
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
index 77836cedd1e..a30eba4498e 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
@@ -48,7 +48,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
str = (*env)->GetStringUTFChars (env, label, NULL);
@@ -57,7 +57,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create
(*env)->ReleaseStringUTFChars (env, label, str);
- NSA_SET_PTR (env, obj, widget);
+ gtkpeer_set_widget (env, obj, widget);
gdk_threads_leave ();
}
@@ -70,7 +70,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_setState
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (ptr), state);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
index 9a6f713ba8a..96230aadf07 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
@@ -69,18 +69,18 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
GtkWidget *bin;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
bin = checkbox_get_widget (GTK_WIDGET (ptr));
/* Checkbox signals */
g_signal_connect (G_OBJECT (bin), "toggled",
- G_CALLBACK (item_toggled_cb), *gref);
+ G_CALLBACK (item_toggled_cb), gref);
/* Component signals */
cp_gtk_component_connect_signals (G_OBJECT (bin), gref);
@@ -97,7 +97,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = checkbox_get_widget (GTK_WIDGET (ptr));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bin), is_active);
@@ -117,7 +117,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
button = checkbox_get_widget (GTK_WIDGET (ptr));
label = gtk_bin_get_child (GTK_BIN(button));
@@ -156,7 +156,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
c_label = (*env)->GetStringUTFChars (env, label, NULL);
@@ -182,14 +182,14 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createCheckButton
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
eventbox = gtk_event_box_new ();
button = gtk_check_button_new_with_label ("");
gtk_container_add (GTK_CONTAINER (eventbox), button);
gtk_widget_show (button);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -210,7 +210,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
eventbox = gtk_event_box_new ();
if (groupPointer != 0)
@@ -231,7 +231,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton
gtk_container_add (GTK_CONTAINER (eventbox), button);
gtk_widget_show (button);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj,
addToGroupMapID,
@@ -258,7 +258,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addToGroup
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
container = GTK_WIDGET (ptr);
check_button = checkbox_get_widget (container);
label = gtk_label_get_text (GTK_LABEL (gtk_bin_get_child
@@ -312,7 +312,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
container = GTK_WIDGET (ptr);
radio_button = checkbox_get_widget (container);
label = gtk_label_get_text (GTK_LABEL (gtk_bin_get_child
@@ -357,7 +357,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
radio_button = checkbox_get_widget (GTK_WIDGET (ptr));
native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_button));
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
index ac4df69f457..6f3d9c0e19b 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
@@ -63,19 +63,17 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create
{
GtkWidget *combobox;
GtkWidget *eventbox;
- jobject *gref;
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
eventbox = gtk_event_box_new ();
combobox = gtk_combo_box_new_text ();
gtk_container_add (GTK_CONTAINER (eventbox), combobox);
gtk_widget_show (combobox);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -85,19 +83,19 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr = NULL;
- jobject *gref = NULL;
+ jobject gref;
GtkWidget *bin;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
bin = choice_get_widget (GTK_WIDGET (ptr));
/* Choice signals */
g_signal_connect (G_OBJECT (bin), "changed",
- G_CALLBACK (selection_changed_cb), *gref);
+ G_CALLBACK (selection_changed_cb), gref);
/* Component signals */
cp_gtk_component_connect_signals (G_OBJECT (bin), gref);
@@ -115,7 +113,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = choice_get_widget (GTK_WIDGET (ptr));
label = (*env)->GetStringUTFChars (env, item, 0);
@@ -136,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = choice_get_widget (GTK_WIDGET (ptr));
/* First, unselect everything, to avoid problems when removing items. */
@@ -157,7 +155,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = choice_get_widget (GTK_WIDGET (ptr));
model = gtk_combo_box_get_model (GTK_COMBO_BOX (bin));
@@ -192,7 +190,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked
void *ptr;
GtkWidget *bin;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = choice_get_widget (GTK_WIDGET (ptr));
gtk_combo_box_set_active (GTK_COMBO_BOX (bin), (gint)index);
}
@@ -207,7 +205,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = choice_get_widget (GTK_WIDGET (ptr));
index = gtk_combo_box_get_active (GTK_COMBO_BOX (bin));
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
index 7ce1185a46d..0b076f864e3 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
@@ -193,6 +193,7 @@ clipboard_get_func (GtkClipboard *clipboard,
gtk_clipboard_instance,
provideContentID,
target_string);
+ (*env)->DeleteLocalRef(env, target_string);
if (bytes == NULL)
return;
len = (*env)->GetArrayLength(env, bytes);
@@ -273,9 +274,13 @@ clipboard_get_func (GtkClipboard *clipboard,
break;
text = (*env)->GetStringUTFChars (env, uri, NULL);
if (text == NULL)
- break;
+ {
+ (*env)->DeleteLocalRef(env, uri);
+ break;
+ }
list[i] = strdup (text);
(*env)->ReleaseStringUTFChars (env, uri, text);
+ (*env)->DeleteLocalRef(env, uri);
}
if (i == count)
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
index d2025bb701f..8dbf25a5ae7 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
@@ -208,7 +208,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
GdkCursorType gdk_cursor_type;
GdkCursor *gdk_cursor;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
switch (type)
{
@@ -287,8 +287,8 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- parent_ptr = NSA_GET_PTR (env, parent);
+ ptr = gtkpeer_get_widget (env, obj);
+ parent_ptr = gtkpeer_get_widget (env, parent);
widget = GTK_WIDGET (ptr);
parent_widget = get_widget(GTK_WIDGET (parent_ptr));
@@ -332,7 +332,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_widget_set_sensitive (get_widget(GTK_WIDGET (ptr)), sensitive);
@@ -348,7 +348,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetHasFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
retval = GTK_WIDGET_HAS_FOCUS((GTK_WIDGET (ptr)));
@@ -366,7 +366,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetCanFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
retval = GTK_WIDGET_CAN_FOCUS((GTK_WIDGET (ptr)));
@@ -383,7 +383,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_widget_grab_focus (get_widget(GTK_WIDGET (ptr)));
@@ -407,7 +407,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (id == AWT_KEY_PRESSED)
event = gdk_event_new (GDK_KEY_PRESS);
@@ -522,7 +522,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
point = (*env)->GetIntArrayElements (env, jpoint, 0);
gdk_window_get_root_origin (get_widget(GTK_WIDGET (ptr))->window, point, point+1);
@@ -545,7 +545,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
point = (*env)->GetIntArrayElements (env, jpoint, 0);
widget = get_widget(GTK_WIDGET (ptr));
@@ -574,7 +574,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
dims = (*env)->GetIntArrayElements (env, jdims, 0);
dims[0] = dims[1] = 0;
@@ -603,7 +603,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
dims = (*env)->GetIntArrayElements (env, jdims, 0);
dims[0] = dims[1] = 0;
@@ -650,7 +650,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
widget = GTK_WIDGET (ptr);
@@ -685,7 +685,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetBackground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bg = GTK_WIDGET (ptr)->style->bg[GTK_STATE_NORMAL];
@@ -714,7 +714,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetForeground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
fg = get_widget(GTK_WIDGET (ptr))->style->fg[GTK_STATE_NORMAL];
@@ -743,7 +743,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
normal_color.red = (red / 255.0) * 65535;
normal_color.green = (green / 255.0) * 65535;
@@ -774,7 +774,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
color.red = (red / 255.0) * 65535;
color.green = (green / 255.0) * 65535;
@@ -796,7 +796,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_realize (JNIEnv *env, jobject obj)
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_widget_realize (GTK_WIDGET (ptr));
@@ -821,7 +821,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked
{
void *ptr;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (visible)
gtk_widget_show (GTK_WIDGET (ptr));
@@ -838,7 +838,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
ret_val = GTK_WIDGET_IS_SENSITIVE (get_widget(GTK_WIDGET (ptr)));
@@ -869,12 +869,12 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
cp_gtk_component_connect_signals (ptr, gref);
@@ -889,7 +889,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeEventMask
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_widget_add_events (get_widget(GTK_WIDGET (ptr)),
GDK_POINTER_MOTION_MASK
@@ -948,46 +948,46 @@ find_bg_color_widget (GtkWidget *widget)
}
void
-cp_gtk_component_connect_expose_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_expose_signals (GObject *ptr, jobject gref)
{
g_signal_connect (G_OBJECT (ptr), "expose-event",
- G_CALLBACK (component_expose_cb), *gref);
+ G_CALLBACK (component_expose_cb), gref);
}
void
-cp_gtk_component_connect_focus_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_focus_signals (GObject *ptr, jobject gref)
{
g_signal_connect (G_OBJECT (ptr), "focus-in-event",
- G_CALLBACK (component_focus_in_cb), *gref);
+ G_CALLBACK (component_focus_in_cb), gref);
g_signal_connect (G_OBJECT (ptr), "focus-out-event",
- G_CALLBACK (component_focus_out_cb), *gref);
+ G_CALLBACK (component_focus_out_cb), gref);
}
void
-cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject gref)
{
g_signal_connect (G_OBJECT (ptr), "button-press-event",
- G_CALLBACK (component_button_press_cb), *gref);
+ G_CALLBACK (component_button_press_cb), gref);
g_signal_connect (G_OBJECT (ptr), "button-release-event",
- G_CALLBACK (component_button_release_cb), *gref);
+ G_CALLBACK (component_button_release_cb), gref);
g_signal_connect (G_OBJECT (ptr), "enter-notify-event",
- G_CALLBACK (component_enter_notify_cb), *gref);
+ G_CALLBACK (component_enter_notify_cb), gref);
g_signal_connect (G_OBJECT (ptr), "leave-notify-event",
- G_CALLBACK (component_leave_notify_cb), *gref);
+ G_CALLBACK (component_leave_notify_cb), gref);
g_signal_connect (G_OBJECT (ptr), "motion-notify-event",
- G_CALLBACK (component_motion_notify_cb), *gref);
+ G_CALLBACK (component_motion_notify_cb), gref);
g_signal_connect (G_OBJECT (ptr), "scroll-event",
- G_CALLBACK (component_scroll_cb), *gref);
+ G_CALLBACK (component_scroll_cb), gref);
}
void
-cp_gtk_component_connect_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_signals (GObject *ptr, jobject gref)
{
cp_gtk_component_connect_expose_signals (ptr, gref);
cp_gtk_component_connect_focus_signals (ptr, gref);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
index ca765c15c7b..fabadc8ca1c 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
@@ -49,7 +49,7 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
window = gtk_plug_new ((GdkNativeWindow) socket_id);
@@ -60,7 +60,7 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create
gtk_widget_show (fixed);
- NSA_SET_PTR (env, obj, window);
+ gtkpeer_set_widget (env, obj, window);
gdk_threads_leave ();
}
@@ -73,7 +73,7 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_construct
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (GTK_WIDGET_REALIZED (GTK_WIDGET (ptr)))
g_printerr ("ERROR: GtkPlug is already realized\n");
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
index b9fd54abbcd..10f512f298b 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
@@ -90,7 +90,7 @@ cp_gtk_filedialog_init_jni (void)
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
- (JNIEnv *env, jobject obj, jobject parent, int mode)
+ (JNIEnv *env, jobject obj, jobject parent, jint mode)
{
void *parentp;
gpointer widget;
@@ -98,9 +98,9 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
gdk_threads_enter ();
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
- parentp = NSA_GET_PTR(env, parent);
+ parentp = gtkpeer_get_widget(env, parent);
if (mode == AWT_FILEDIALOG_LOAD)
widget = gtk_file_chooser_dialog_new
@@ -134,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
gtk_window_group_add_window (cp_gtk_global_window_group,
GTK_WINDOW (widget));
- NSA_SET_PTR (env, obj, widget);
+ gtkpeer_set_widget (env, obj, widget);
gdk_threads_leave ();
}
@@ -144,16 +144,16 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr = NULL;
- jobject *gref = NULL;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
/* FileDialog signals */
g_signal_connect (G_OBJECT (ptr), "response",
- G_CALLBACK (handle_response_cb), *gref);
+ G_CALLBACK (handle_response_cb), gref);
/* Component signals */
cp_gtk_component_connect_signals (G_OBJECT (ptr), gref);
@@ -170,7 +170,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeGetDirectory
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(ptr));
@@ -208,7 +208,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
filter = gtk_file_filter_new();
gtk_file_filter_add_custom(filter, GTK_FILE_FILTER_FILENAME,
@@ -228,7 +228,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetDirectory
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, directory, 0);
@@ -248,7 +248,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, filename, 0);
@@ -275,7 +275,7 @@ handle_response_cb (GtkDialog *dialog __attribute__((unused)),
&& responseId != GTK_RESPONSE_CANCEL)
return;
- ptr = NSA_GET_PTR (cp_gtk_gdk_env(), peer_obj);
+ ptr = gtkpeer_get_widget (cp_gtk_gdk_env(), peer_obj);
if (responseId == GTK_RESPONSE_DELETE_EVENT)
{
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
index 144ca0e8a95..ef7df0f0342 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
@@ -49,7 +49,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_removeMenuBarPeer
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
children = gtk_container_get_children (GTK_CONTAINER (fixed));
@@ -84,11 +84,11 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (menubar)
{
- mptr = NSA_GET_PTR (env, menubar);
+ mptr = gtkpeer_get_widget (env, menubar);
fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
gtk_fixed_put (GTK_FIXED (fixed), mptr, 0, 0);
@@ -107,7 +107,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, menubar);
+ ptr = gtkpeer_get_widget (env, menubar);
gtk_widget_size_request (ptr, &requisition);
@@ -137,7 +137,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarWidthUnlocked
if (menubar)
{
- ptr = NSA_GET_PTR (env, menubar);
+ ptr = gtkpeer_get_widget (env, menubar);
/* Get the menubar's natural size request. */
gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1);
@@ -158,7 +158,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_gtkFixedSetVisible
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
@@ -182,7 +182,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImage
pixbuf = cp_gtk_image_get_pixbuf (env, gtkimage);
g_assert (pixbuf != NULL);
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_set_icon (GTK_WINDOW (ptr), pixbuf);
@@ -195,7 +195,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_maximize
{
void *ptr;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_maximize (GTK_WINDOW (ptr));
gdk_threads_leave ();
}
@@ -206,7 +206,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_unmaximize
{
void *ptr;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_unmaximize (GTK_WINDOW (ptr));
gdk_threads_leave ();
}
@@ -217,7 +217,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_iconify
{
void *ptr;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_iconify (GTK_WINDOW (ptr));
gdk_threads_leave ();
}
@@ -228,7 +228,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_deiconify
{
void *ptr;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_deiconify (GTK_WINDOW (ptr));
gdk_threads_leave ();
}
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
index c8fb53040e8..e0ba508499b 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
@@ -40,6 +40,13 @@ exception statement from your version. */
#include "gnu_java_awt_peer_gtk_GtkGenericPeer.h"
JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkGenericPeer_initIDs
+(JNIEnv *env, jclass clz __attribute__((unused)))
+{
+ gtkpeer_init_widget_IDs(env);
+}
+
+JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
(JNIEnv *env, jobject obj)
{
@@ -47,15 +54,14 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
/* For now the native state for any object must be a widget.
However, a subclass could override dispose() if required. */
gtk_widget_destroy (GTK_WIDGET (ptr));
- /* Remove entries from state tables */
- NSA_DEL_GLOBAL_REF (env, obj);
- NSA_DEL_PTR (env, obj);
+ /* Delete global reference. */
+ gtkpeer_del_global_ref(env, obj);
gdk_threads_leave ();
}
@@ -70,7 +76,7 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_gtkWidgetModifyFont
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
font_name = (*env)->GetStringUTFChars (env, name, NULL);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
index 13473a9a8db..3703858fe00 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
@@ -49,7 +49,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
str = (*env)->GetStringUTFChars (env, text, 0);
@@ -61,7 +61,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
(*env)->ReleaseStringUTFChars (env, text, str);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -78,7 +78,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetGetPreferredDimensions
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
label = gtk_bin_get_child (GTK_BIN (ptr));
@@ -115,7 +115,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetModifyFont
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
font_name = (*env)->GetStringUTFChars (env, name, NULL);
@@ -156,7 +156,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, text, 0);
@@ -178,7 +178,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_nativeSetAlignment
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
label = gtk_bin_get_child (GTK_BIN(ptr));
@@ -196,7 +196,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeBounds
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
widget = GTK_WIDGET (ptr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
index 54ef31a4fed..4b7b63e6df8 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
@@ -84,7 +84,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create
gdk_threads_enter ();
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING);
/* Add the number of rows so that we can calculate the tree view's
@@ -127,7 +127,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create
gtk_widget_show (list);
gtk_widget_show (sw);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -137,20 +137,20 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
GtkWidget *list;
GtkTreeSelection *selection;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
gtk_tree_selection_set_select_function (selection, item_highlighted_cb,
- *gref, NULL);
+ gref, NULL);
cp_gtk_component_connect_signals (G_OBJECT (list), gref);
@@ -168,7 +168,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetModifyFont
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
@@ -202,7 +202,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetRequestFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
gtk_widget_grab_focus (list);
@@ -223,7 +223,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_append
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
count = (*env)->GetArrayLength (env, items);
@@ -261,7 +261,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_add
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, text, NULL);
list = list_get_widget (GTK_WIDGET (ptr));
@@ -294,7 +294,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
@@ -327,7 +327,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_select
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
path = gtk_tree_path_new_from_indices (index, -1);
@@ -347,7 +347,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_deselect
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
@@ -372,7 +372,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize
dims = (*env)->GetIntArrayElements (env, jdims, NULL);
dims[0] = dims[1] = 0;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = list_get_widget (GTK_WIDGET (ptr));
/* Save the widget's current size request. */
@@ -421,7 +421,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSelectedIndexes
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
@@ -467,7 +467,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_makeVisible
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
path = gtk_tree_path_new_from_indices (index, -1);
@@ -487,7 +487,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = list_get_widget (GTK_WIDGET (ptr));
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
index 1a21126a81a..ac3fab78be0 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
@@ -47,12 +47,12 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
widget = gtk_menu_bar_new ();
gtk_widget_show (widget);
- NSA_SET_PTR (env, obj, widget);
+ gtkpeer_set_widget (env, obj, widget);
gdk_threads_leave ();
}
@@ -65,8 +65,8 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_addMenu
gdk_threads_enter ();
- mbar = NSA_GET_PTR (env, obj);
- menu = NSA_GET_PTR (env, menupeer);
+ mbar = gtkpeer_get_widget (env, obj);
+ menu = gtkpeer_get_widget (env, menupeer);
gtk_menu_shell_append (GTK_MENU_SHELL (mbar), GTK_WIDGET (menu));
@@ -82,7 +82,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
list = gtk_container_get_children (GTK_CONTAINER (ptr));
list = g_list_nth (list, index);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
index 01b74e46c57..6da949488be 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
@@ -51,6 +51,5 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose
/* However, references to the Java objects still exist in the
state tables, so we still have to remove those. */
- NSA_DEL_GLOBAL_REF (env, obj);
- NSA_DEL_PTR (env, obj);
+ gtkpeer_del_global_ref (env, obj);
}
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
index d2ae148a9a4..96543554580 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
@@ -68,7 +68,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
str = (*env)->GetStringUTFChars (env, label, NULL);
@@ -82,7 +82,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create
(*env)->ReleaseStringUTFChars (env, label, str);
- NSA_SET_PTR (env, obj, widget);
+ gtkpeer_set_widget (env, obj, widget);
gdk_threads_leave ();
}
@@ -92,15 +92,15 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
g_signal_connect (G_OBJECT (ptr), "activate",
- G_CALLBACK (item_activate_cb), *gref);
+ G_CALLBACK (item_activate_cb), gref);
gdk_threads_leave ();
}
@@ -116,7 +116,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_gtkWidgetModifyFont
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
font_name = (*env)->GetStringUTFChars (env, name, NULL);
@@ -152,7 +152,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled);
@@ -169,7 +169,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, label, NULL);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
index c23fc5bd6a4..1081de2530f 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
@@ -47,7 +47,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup
gdk_threads_enter ();
- ptr1 = NSA_GET_PTR (env, obj);
+ ptr1 = gtkpeer_get_widget (env, obj);
if (!parent)
{
@@ -58,7 +58,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup
{
GtkAccelGroup *parent_accel;
- ptr2 = NSA_GET_PTR (env, parent);
+ ptr2 = gtkpeer_get_widget (env, parent);
parent_accel = gtk_menu_get_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr2)->submenu));
gtk_menu_set_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu),
@@ -78,7 +78,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
str = (*env)->GetStringUTFChars (env, label, NULL);
@@ -101,7 +101,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create
gtk_widget_show (menu_title);
- NSA_SET_PTR (env, obj, menu_title);
+ gtkpeer_set_widget (env, obj, menu_title);
(*env)->ReleaseStringUTFChars (env, label, str);
@@ -117,7 +117,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addTearOff
gdk_threads_enter ();
- ptr1 = NSA_GET_PTR (env, obj);
+ ptr1 = gtkpeer_get_widget (env, obj);
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (ptr1));
item = gtk_tearoff_menu_item_new ();
@@ -136,8 +136,8 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem
gdk_threads_enter ();
- ptr1 = NSA_GET_PTR (env, obj);
- ptr2 = NSA_GET_PTR (env, menuitempeer);
+ ptr1 = gtkpeer_get_widget (env, obj);
+ ptr2 = gtkpeer_get_widget (env, menuitempeer);
menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr1));
gtk_menu_shell_append (GTK_MENU_SHELL(menu), GTK_WIDGET (ptr2));
@@ -164,7 +164,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr));
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
index 8a130e1a4b3..e52e6de5133 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
@@ -55,7 +55,7 @@ Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
widget = gtk_fixed_new ();
@@ -63,7 +63,7 @@ Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create
GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
- NSA_SET_PTR (env, obj, widget);
+ gtkpeer_set_widget (env, obj, widget);
gdk_threads_leave ();
}
@@ -73,20 +73,20 @@ Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
/* Panel signals. These callbacks prevent expose events being
delivered to the panel when it is focused. */
g_signal_connect (G_OBJECT (ptr), "focus-in-event",
- G_CALLBACK (panel_focus_in_cb), *gref);
+ G_CALLBACK (panel_focus_in_cb), gref);
g_signal_connect (G_OBJECT (ptr), "focus-out-event",
- G_CALLBACK (panel_focus_out_cb), *gref);
+ G_CALLBACK (panel_focus_out_cb), gref);
/* Component signals. Exclude focus signals. */
cp_gtk_component_connect_expose_signals (ptr, gref);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
index e684a090f8f..b7b1c3322d1 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
@@ -67,7 +67,7 @@ Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
p = g_malloc (sizeof (struct pos));
p->x = x;
@@ -90,8 +90,8 @@ Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup
gdk_threads_enter ();
- ptr1 = NSA_GET_PTR (env, obj);
- ptr2 = NSA_GET_PTR (env, parent);
+ ptr1 = gtkpeer_get_widget (env, obj);
+ ptr2 = gtkpeer_get_widget (env, parent);
menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu);
gtk_menu_set_accel_group (menu, gtk_accel_group_new ());
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
index a4690deeda3..0d67b0b787e 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
@@ -55,7 +55,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create
gdk_threads_enter ();
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_set_size_request (sw, width, height);
@@ -63,7 +63,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create
gtk_container_add (GTK_CONTAINER (eventbox), sw);
gtk_widget_show (sw);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -78,7 +78,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setScrollPosition
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
@@ -101,7 +101,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetHScrollIncremen
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
@@ -121,7 +121,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetVScrollIncremen
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
@@ -143,7 +143,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getHScrollbarHeight
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
@@ -168,7 +168,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getVScrollbarWidth
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
@@ -190,7 +190,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
switch (policy)
{
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
index a90501968b6..64d91d2b276 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
@@ -84,7 +84,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create
GtkObject *adj;
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
gdk_threads_enter ();
@@ -119,16 +119,16 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create
gdk_threads_leave ();
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals
(JNIEnv *env, jobject obj)
{
- void *ptr = NSA_GET_PTR (env, obj);
+ void *ptr = gtkpeer_get_widget (env, obj);
GtkWidget *wid = scrollbar_get_widget (GTK_WIDGET (ptr));
- jobject *gref = NSA_GET_GLOBAL_REF (env, obj);
+ jobject gref = gtkpeer_get_global_ref (env, obj);
g_assert (gref);
gdk_threads_enter ();
@@ -136,10 +136,10 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals
/* Scrollbar signals */
#if GTK_MINOR_VERSION > 4
g_signal_connect (G_OBJECT (wid), "change-value",
- G_CALLBACK (slider_moved_cb), *gref);
+ G_CALLBACK (slider_moved_cb), gref);
#else
g_signal_connect (G_OBJECT (wid), "value-changed",
- G_CALLBACK (post_change_event_cb), *gref);
+ G_CALLBACK (post_change_event_cb), gref);
#endif
/* Component signals */
@@ -156,7 +156,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setLineIncrement
GtkAdjustment *adj;
GtkWidget *wid;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
wid = scrollbar_get_widget (GTK_WIDGET (ptr));
gdk_threads_enter ();
@@ -176,7 +176,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setPageIncrement
GtkAdjustment *adj;
GtkWidget *wid;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
wid = scrollbar_get_widget (GTK_WIDGET (ptr));
gdk_threads_enter ();
@@ -196,7 +196,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValues
GtkAdjustment *adj;
GtkWidget *wid;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
wid = scrollbar_get_widget (GTK_WIDGET (ptr));
gdk_threads_enter ();
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
index be03c45254e..e5ba4c7b114 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
@@ -105,6 +105,8 @@ clipboard_targets_received (GtkClipboard *clipboard
stringClass = (*env)->FindClass (env, "java/lang/String");
strings = (*env)->NewObjectArray (env, strings_len, stringClass,
NULL);
+ (*env)->DeleteLocalRef(env, stringClass);
+
if (strings != NULL)
{
if (include_text)
@@ -133,6 +135,8 @@ clipboard_targets_received (GtkClipboard *clipboard
(*env)->DeleteLocalRef (env, string);
}
}
+
+ (*env)->DeleteLocalRef(env, strings);
}
for (i = 0; i < targets_len; i++)
@@ -341,6 +345,8 @@ clipboard_uris_received (GtkClipboard *clipboard
len++;
strings = (*env)->NewObjectArray (env, len, stringClass, NULL);
+ (*env)->DeleteLocalRef(env, stringClass);
+
if (strings != NULL)
{
for (i = 0; i < len; i++)
@@ -351,6 +357,8 @@ clipboard_uris_received (GtkClipboard *clipboard
(*env)->SetObjectArrayElement (env, strings, i, string);
(*env)->DeleteLocalRef (env, string);
}
+
+ (*env)->DeleteLocalRef(env, strings);
}
g_strfreev (uris);
}
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
index bd6e14d7650..4d768fa3302 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
@@ -57,7 +57,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
gdk_threads_enter ();
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
text = gtk_text_view_new ();
gtk_widget_set_size_request (text, textview_width, textview_height);
@@ -86,7 +86,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
|| scroll == AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY)
? GTK_WRAP_NONE : GTK_WRAP_WORD);
- NSA_SET_PTR (env, obj, eventbox);
+ gtkpeer_set_widget (env, obj, eventbox);
gdk_threads_leave ();
}
@@ -98,12 +98,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_connectSignals
GtkWidget *text = NULL;
GtkTextBuffer *buf;
void *ptr;
- jobject *gref;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
/* Unwrap the text view from the scrolled window */
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -131,7 +131,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -159,7 +159,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -189,7 +189,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetModifyFont
gdk_threads_enter();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -223,7 +223,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetRequestFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -245,7 +245,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = gtk_bin_get_child (GTK_BIN (ptr));
sw = GTK_SCROLLED_WINDOW (bin);
@@ -275,7 +275,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
bin = gtk_bin_get_child (GTK_BIN (ptr));
sw = GTK_SCROLLED_WINDOW (bin);
@@ -305,7 +305,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getCaretPosition
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -333,7 +333,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setCaretPosition
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -375,7 +375,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionStart
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -412,7 +412,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionEnd
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -445,7 +445,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_select
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -469,7 +469,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setEditable
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -491,7 +491,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getText
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -519,7 +519,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setText
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
text = textarea_get_widget (GTK_WIDGET (ptr));
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
index 30b4a0fdac1..df82ff091b5 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
@@ -73,13 +73,13 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create
gdk_threads_enter ();
/* Create global reference and save it for future use */
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
entry = gtk_entry_new ();
gtk_widget_set_size_request (entry,
text_width + 2 * get_border_width (entry), -1);
- NSA_SET_PTR (env, obj, entry);
+ gtkpeer_set_widget (env, obj, entry);
gdk_threads_leave ();
}
@@ -89,12 +89,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = gtkpeer_get_global_ref (env, obj);
/* TextComponent signals */
cp_gtk_textcomponent_connect_signals (G_OBJECT (ptr), gref);
@@ -114,7 +114,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetBackground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
color.red = (red / 255.0) * 65535;
color.green = (green / 255.0) * 65535;
@@ -134,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetForeground
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
color.red = (red / 255.0) * 65535;
color.green = (green / 255.0) * 65535;
@@ -162,7 +162,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetBorderWidth
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
border_width = get_border_width (GTK_WIDGET (ptr));
@@ -207,7 +207,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
entry = GTK_ENTRY (ptr);
@@ -233,7 +233,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getCaretPosition
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
pos = gtk_editable_get_position (GTK_EDITABLE (ptr));
@@ -250,7 +250,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setCaretPosition
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_editable_set_position (GTK_EDITABLE (ptr), pos);
@@ -267,7 +267,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getSelectionStart
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (gtk_editable_get_selection_bounds (GTK_EDITABLE (ptr), &starti, &endi))
pos = starti;
@@ -289,7 +289,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getSelectionEnd
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (gtk_editable_get_selection_bounds (GTK_EDITABLE (ptr), &starti, &endi))
pos = endi;
@@ -309,7 +309,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_select
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_editable_select_region (GTK_EDITABLE (ptr), start, end);
@@ -324,7 +324,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEditable
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_editable_set_editable (GTK_EDITABLE (ptr), state);
@@ -341,7 +341,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getText
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
contents = gtk_editable_get_chars (GTK_EDITABLE (ptr), 0, -1);
@@ -363,7 +363,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setText
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
gtk_entry_set_text (GTK_ENTRY (ptr), str);
@@ -374,10 +374,10 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setText
}
void
-cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject *gref)
+cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject gref)
{
g_signal_connect (G_OBJECT(ptr), "changed",
- G_CALLBACK (textcomponent_changed_cb), *gref);
+ G_CALLBACK (textcomponent_changed_cb), gref);
}
static void
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
index d2a4b0e4222..1186f659c15 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
@@ -79,9 +79,6 @@ exception statement from your version. */
#define VK_CAPS_LOCK 20
#define VK_META 157
-struct state_table *cp_gtk_native_state_table;
-struct state_table *cp_gtk_native_global_ref_table;
-
static jclass gtkgenericpeer;
static jclass gtktoolkit;
static JavaVM *java_vm;
@@ -129,6 +126,13 @@ static void glog_func (const gchar *log_domain,
gpointer user_data);
#endif
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs
+(JNIEnv *env, jclass cls __attribute__((unused)))
+{
+ gtkpeer_init_pointer_IDs(env);
+}
+
/*
* Call gtk_init. It is very important that this happen before any other
* gtk calls.
@@ -158,8 +162,6 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
printCurrentThreadID = (*env)->GetStaticMethodID (env, gtkgenericpeer,
"printCurrentThread", "()V");
- NSA_INIT (env, gtkgenericpeer);
-
g_assert((*env)->GetJavaVM(env, &java_vm) == 0);
/* GTK requires a program's argc and argv variables, and requires that they
@@ -203,7 +205,7 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
old_glog_func = g_log_set_default_handler (&glog_func, NULL);
#endif
- cp_gtk_button_init_jni ();
+ cp_gtk_button_init_jni (env);
cp_gtk_checkbox_init_jni ();
cp_gtk_choice_init_jni ();
cp_gtk_component_init_jni ();
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
index 3fb5331a23e..e3edf1fb542 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
@@ -65,7 +65,7 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_init (JNIEnv *env,
if( peer != NULL )
{
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
g_assert (ptr != NULL);
widget = GTK_WIDGET (ptr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
index aa70b9d2dca..6ba8d476758 100644
--- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
@@ -1167,7 +1167,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
gdk_threads_enter ();
- NSA_SET_GLOBAL_REF (env, obj);
+ gtkpeer_set_global_ref (env, obj);
window_widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
window = GTK_WINDOW (window_widget);
@@ -1175,7 +1175,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
/* Keep this window in front of its parent, if it has one. */
if (parent)
{
- window_parent = NSA_GET_PTR (env, parent);
+ window_parent = gtkpeer_get_widget (env, parent);
gtk_window_set_transient_for (window, GTK_WINDOW(window_parent));
}
@@ -1191,7 +1191,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
gtk_widget_show (fixed);
- NSA_SET_PTR (env, obj, window_widget);
+ gtkpeer_set_widget (env, obj, window_widget);
gdk_threads_leave ();
}
@@ -1205,7 +1205,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
c_title = (*env)->GetStringUTFChars (env, title, NULL);
@@ -1224,7 +1224,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_set_resizable (GTK_WINDOW (ptr), resizable);
g_object_set (G_OBJECT (ptr), "allow-shrink", resizable, NULL);
@@ -1239,7 +1239,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_set_modal (GTK_WINDOW (ptr), modal);
@@ -1254,7 +1254,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetAlwaysOnTop
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_set_keep_above (GTK_WINDOW (ptr), alwaysOnTop);
@@ -1270,7 +1270,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowHasFocus
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
retval = gtk_window_has_toplevel_focus (GTK_WINDOW (ptr));
@@ -1298,7 +1298,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
{
void *ptr;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
if (visible)
gtk_widget_show (GTK_WIDGET (ptr));
@@ -1311,48 +1311,48 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals
(JNIEnv *env, jobject obj)
{
void *ptr;
- jobject *gref;
+ jobject gref;
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
- gref = NSA_GET_GLOBAL_REF (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
+ gref = (jobject) gtkpeer_get_global_ref (env, obj);
g_signal_connect (G_OBJECT (ptr), "delete-event",
- G_CALLBACK (window_delete_cb), *gref);
+ G_CALLBACK (window_delete_cb), gref);
g_signal_connect (G_OBJECT (ptr), "destroy-event",
- G_CALLBACK (window_destroy_cb), *gref);
+ G_CALLBACK (window_destroy_cb), gref);
g_signal_connect (G_OBJECT (ptr), "notify::has-toplevel-focus",
- G_CALLBACK (window_focus_state_change_cb), *gref);
+ G_CALLBACK (window_focus_state_change_cb), gref);
g_signal_connect (G_OBJECT (ptr), "focus-in-event",
- G_CALLBACK (window_focus_in_cb), *gref);
+ G_CALLBACK (window_focus_in_cb), gref);
g_signal_connect (G_OBJECT (ptr), "focus-out-event",
- G_CALLBACK (window_focus_out_cb), *gref);
+ G_CALLBACK (window_focus_out_cb), gref);
g_signal_connect (G_OBJECT (ptr), "window-state-event",
- G_CALLBACK (window_window_state_cb), *gref);
+ G_CALLBACK (window_window_state_cb), gref);
g_signal_connect (G_OBJECT (ptr), "property-notify-event",
- G_CALLBACK (window_property_changed_cb), *gref);
+ G_CALLBACK (window_property_changed_cb), gref);
g_signal_connect_after (G_OBJECT (ptr), "realize",
- G_CALLBACK (realize_cb), *gref);
+ G_CALLBACK (realize_cb), gref);
g_signal_connect (G_OBJECT (ptr), "key-press-event",
- G_CALLBACK (key_press_cb), *gref);
+ G_CALLBACK (key_press_cb), gref);
g_signal_connect (G_OBJECT (ptr), "key-release-event",
- G_CALLBACK (key_release_cb), *gref);
+ G_CALLBACK (key_release_cb), gref);
g_signal_connect_after (G_OBJECT (ptr), "window-state-event",
- G_CALLBACK (window_window_state_cb), *gref);
+ G_CALLBACK (window_window_state_cb), gref);
g_signal_connect (G_OBJECT (ptr), "configure-event",
- G_CALLBACK (window_configure_cb), *gref);
+ G_CALLBACK (window_configure_cb), gref);
cp_gtk_component_connect_expose_signals (ptr, gref);
cp_gtk_component_connect_mouse_signals (ptr, gref);
@@ -1372,7 +1372,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_realize (JNIEnv *env, jobject obj)
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_widget_realize (GTK_WIDGET (ptr));
@@ -1387,7 +1387,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toBack (JNIEnv *env,
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gdk_window_lower (GTK_WIDGET (ptr)->window);
gdk_flush ();
@@ -1403,7 +1403,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront (JNIEnv *env,
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gdk_window_raise (GTK_WIDGET (ptr)->window);
gdk_flush ();
@@ -1419,7 +1419,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize
gdk_threads_enter ();
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
/* Avoid GTK runtime assertion failures. */
width = (width < 1) ? 1 : width;
@@ -1448,7 +1448,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked
{
void *ptr;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
gtk_window_move (GTK_WINDOW(ptr), x, y);
@@ -1476,7 +1476,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked
gint current_width;
gint current_height;
- ptr = NSA_GET_PTR (env, obj);
+ ptr = gtkpeer_get_widget (env, obj);
/* Avoid GTK runtime assertion failures. */
width = (width < 1) ? 1 : width;
diff --git a/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c b/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c
index 2348a63fb04..72130376f15 100644
--- a/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c
+++ b/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c
@@ -69,7 +69,7 @@ classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)
peer = (*env)->CallObjectMethod (env, canvas, method_id);
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
widget = GTK_WIDGET (ptr);
@@ -105,7 +105,7 @@ classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)
peer = (*env)->CallObjectMethod (env, canvas, method_id);
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
widget = GTK_WIDGET (ptr);
@@ -140,7 +140,7 @@ classpath_jawt_get_depth (JNIEnv* env, jobject canvas)
peer = (*env)->CallObjectMethod (env, canvas, method_id);
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
widget = GTK_WIDGET (ptr);
@@ -175,7 +175,7 @@ classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
peer = (*env)->CallObjectMethod (env, canvas, method_id);
- ptr = NSA_GET_PTR (env, peer);
+ ptr = gtkpeer_get_widget (env, peer);
widget = GTK_WIDGET (ptr);
diff --git a/libjava/classpath/native/jni/gtk-peer/gtkpeer.c b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
new file mode 100644
index 00000000000..c99fc48f90f
--- /dev/null
+++ b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
@@ -0,0 +1,584 @@
+/* gtkpeer.c -- Some GTK peer specific helper functions
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include "gtkpeer.h"
+#include "jni.h"
+
+/**
+ * The Pointer class.
+ */
+static jclass pointerClass;
+
+/**
+ * The Pointer constructor.
+ */
+static jmethodID pointerConstructorMID;
+
+/**
+ * The field ID of the data field in the Pointer class.
+ */
+static jfieldID pointerDataFID;
+
+/**
+ * The field ID of the widget field in the GtkGenericPeer class.
+ */
+static jfieldID widgetFID;
+
+/**
+ * The field ID of the globalRef field in the GtkGenericPeer class.
+ */
+static jfieldID globalRefFID;
+
+/**
+ * The field ID of the display field in the GdkGraphicsEnvironment class.
+ */
+static jfieldID displayFID;
+
+/**
+ * The field ID of the screen field in the GdkScreenGraphicsDevice class.
+ */
+static jfieldID screenFID;
+
+/**
+ * The field ID of the nativeFont field in GdkFontPeer.
+ */
+static jfieldID fontFID;
+
+/**
+ * The field ID of the nativeDecoder field in GdkPixbufDecoder.
+ */
+static jfieldID pixbufLoaderFID;
+
+/**
+ * Initializes the IDs of the Pointer* classes.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pointer_IDs(JNIEnv* env)
+{
+#if SIZEOF_VOID_P == 8
+ pointerClass = (*env)->FindClass (env, "gnu/classpath/Pointer64");
+ if (pointerClass != NULL)
+ {
+ pointerClass = (*env)->NewGlobalRef (env, pointerClass);
+ pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "J");
+ pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>",
+ "(J)V");
+ }
+#else
+#if SIZEOF_VOID_P == 4
+ pointerClass = (*env)->FindClass(env, "gnu/classpath/Pointer32");
+ pointerDataFID = (*env)->GetFieldID(env, pointerClass, "data", "I");
+
+ /* Find the Pointer32 constructor. */
+ pointerConstructorMID = (*env)->GetMethodID(env, pointerClass, "<init>",
+ "(I)V");
+#else
+#error "Pointer size is not supported."
+#endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+}
+
+/**
+ * Initializes the field IDs for the widget reference.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_widget_IDs(JNIEnv *env)
+{
+ jclass cls;
+
+ /* Find the widget field ID in GtkGenericPeer. */
+ cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkGenericPeer");
+ widgetFID = (*env)->GetFieldID(env, cls, "widget",
+ "Lgnu/classpath/Pointer;");
+
+ /* Find the globalRef field in GtkGenericPeer. */
+ globalRefFID = (*env)->GetFieldID(env, cls, "globalRef",
+ "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Stores the GTK widget reference in the GtkGenericPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ * @param widget the widget reference to store
+ */
+void gtkpeer_set_widget(JNIEnv *env, jobject peer, void *widget)
+{
+ jobject obj;
+
+ /* Fetch the widget field object. */
+ obj = (*env)->GetObjectField(env, peer, widgetFID);
+ if (obj == NULL)
+ {
+ /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jlong) widget);
+#else
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jint) widget);
+#endif
+ (*env)->SetObjectField(env, peer, widgetFID, obj);
+ }
+ else
+ {
+#if SIZEOF_VOID_P == 8
+ (*env)->SetLongField(env, obj, pointerDataFID, (jlong) widget);
+#else
+ (*env)->SetIntField(env, obj, pointerDataFID, (jint) widget);
+#endif
+ }
+}
+
+/**
+ * Retrieves the GTK widget reference from a GtkGenericPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ *
+ * @return the widget reference
+ */
+void* gtkpeer_get_widget(JNIEnv *env, jobject peer)
+{
+ jobject obj;
+ void *widget;
+
+ /* Fetch the widget field from the peer object. */
+ obj = (*env)->GetObjectField(env, peer, widgetFID);
+
+ /* Fetch actual widget pointer. */
+#if SIZEOF_VOID_P == 8
+ widget = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ widget = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ return widget;
+}
+
+
+/**
+ * Stores the global JNI reference of a peer inside the peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ */
+void gtkpeer_set_global_ref(JNIEnv *env, jobject peer)
+{
+ jobject obj;
+ void* globalRef;
+
+ /* Create global reference. */
+ globalRef = (*env)->NewGlobalRef(env, peer);
+
+ /* Fetch the globalRef field object. */
+ obj = (*env)->GetObjectField(env, peer, globalRefFID);
+ if (obj == NULL)
+ {
+ /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jlong) globalRef);
+#else
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jint) globalRef);
+#endif
+ (*env)->SetObjectField(env, peer, globalRefFID, obj);
+ }
+ else
+ {
+#if SIZEOF_VOID_P == 8
+ (*env)->SetLongField(env, obj, pointerDataFID, (jlong) globalRef);
+#else
+ (*env)->SetIntField(env, obj, pointerDataFID, (jint) globalRef);
+#endif
+ }
+}
+
+/**
+ * Retrieves the global reference from a peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ *
+ * @return the global reference
+ */
+void* gtkpeer_get_global_ref(JNIEnv *env, jobject peer)
+{
+ jobject obj;
+ void *globalRef;
+
+ /* Fetch the globalRef field from the peer object. */
+ obj = (*env)->GetObjectField(env, peer, globalRefFID);
+
+ /* Fetch actual globalRef pointer. */
+#if SIZEOF_VOID_P == 8
+ globalRef = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ globalRef = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ return globalRef;
+}
+
+/**
+ * Deletes the global reference of a peer. This is necessary in order to
+ * allow the peer to be garbage collected.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object.
+ */
+void gtkpeer_del_global_ref(JNIEnv* env, jobject peer)
+{
+ jobject obj;
+ void *globalRef;
+
+ /* Fetch the globalRef field from the peer object. */
+ obj = (*env)->GetObjectField(env, peer, globalRefFID);
+
+ /* Fetch actual globalRef pointer. */
+#if SIZEOF_VOID_P == 8
+ globalRef = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ globalRef = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ (*env)->DeleteGlobalRef(env, globalRef);
+}
+
+/**
+ * Initializes the fieldIDs for the display and screen fields.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_display_IDs(JNIEnv* env)
+{
+ jclass cls;
+
+ /* Find the display field ID in GdkGraphicsEnvironment. */
+ cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkGraphicsEnvironment");
+ displayFID = (*env)->GetFieldID(env, cls, "display",
+ "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native display pointer in the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ * @param display the native display pointer
+ */
+void gtkpeer_set_display(JNIEnv* env, jobject graphicsenv, void* display)
+{
+ jobject obj;
+
+ /* Fetch the display field object. */
+ obj = (*env)->GetObjectField(env, graphicsenv, displayFID);
+ if (obj == NULL)
+ {
+ /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jlong) display);
+#else
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jint) display);
+#endif
+ (*env)->SetObjectField(env, graphicsenv, displayFID, obj);
+ }
+ else
+ {
+#if SIZEOF_VOID_P == 8
+ (*env)->SetLongField(env, obj, pointerDataFID, (jlong) display);
+#else
+ (*env)->SetIntField(env, obj, pointerDataFID, (jint) display);
+#endif
+ }
+}
+
+/**
+ * Fetches the native display pointer from the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ *
+ * @return the native display pointer
+ */
+void* gtkpeer_get_display(JNIEnv* env, jobject graphicsenv)
+{
+ jobject obj;
+ void *display;
+
+ /* Fetch the display field from the peer object. */
+ obj = (*env)->GetObjectField(env, graphicsenv, displayFID);
+
+ /* Fetch actual display pointer. */
+#if SIZEOF_VOID_P == 8
+ display = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ display = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ return display;
+}
+
+/**
+ * Initializes the fieldIDs for the screen field.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_screen_IDs(JNIEnv* env)
+{
+ jclass cls;
+
+ /* Find the display field ID in GdkScreenGraphicsDevice. */
+ cls = (*env)->FindClass(env,
+ "gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice");
+ screenFID = (*env)->GetFieldID(env, cls, "screen",
+ "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native screen in the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ * @param ptr the native screen pointer
+ */
+void gtkpeer_set_screen(JNIEnv* env, jobject screen_graphics_device,
+ void* ptr)
+{
+ jobject obj;
+
+ /* Fetch the screen field object. */
+ obj = (*env)->GetObjectField(env, screen_graphics_device, screenFID);
+ if (obj == NULL)
+ {
+ /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jlong) ptr);
+#else
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jint) ptr);
+#endif
+ (*env)->SetObjectField(env, screen_graphics_device, screenFID, obj);
+ }
+ else
+ {
+#if SIZEOF_VOID_P == 8
+ (*env)->SetLongField(env, obj, pointerDataFID, (jlong) ptr);
+#else
+ (*env)->SetIntField(env, obj, pointerDataFID, (jint) ptr);
+#endif
+ }
+}
+
+/**
+ * Fetches the native screen pointer from the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ *
+ * @return the native screen pointer
+ */
+void* gtkpeer_get_screen(JNIEnv* env, jobject screen_graphics_device)
+{
+ jobject obj;
+ void *screen;
+
+ /* Fetch the display field from the peer object. */
+ obj = (*env)->GetObjectField(env, screen_graphics_device, screenFID);
+
+ /* Fetch actual display pointer. */
+#if SIZEOF_VOID_P == 8
+ screen = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ screen = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ return screen;
+}
+
+/**
+ * Initializes the field IDs for fonts.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_font_IDs(JNIEnv* env)
+{
+ jclass cls;
+
+ /* Find the nativeFont field ID in GdkFontPeer. */
+ cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkFontPeer");
+ fontFID = (*env)->GetFieldID(env, cls, "nativeFont",
+ "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ * @param font the actual native font reference
+ */
+void gtkpeer_set_font(JNIEnv* env, jobject font_peer, void* font)
+{
+ jobject obj;
+
+ /* Fetch the nativeFont field object. */
+ obj = (*env)->GetObjectField(env, font_peer, fontFID);
+ if (obj == NULL)
+ {
+ /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jlong) font);
+#else
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jint) font);
+#endif
+ (*env)->SetObjectField(env, font_peer, fontFID, obj);
+ }
+ else
+ {
+#if SIZEOF_VOID_P == 8
+ (*env)->SetLongField(env, obj, pointerDataFID, (jlong) font);
+#else
+ (*env)->SetIntField(env, obj, pointerDataFID, (jint) font);
+#endif
+ }
+}
+
+/**
+ * Fetches the native font reference from the GdkFontPeer object.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ *
+ * @return the native font structure
+ */
+void* gtkpeer_get_font(JNIEnv* env, jobject font_peer)
+{
+ jobject obj;
+ void *font;
+
+ /* Fetch the nativeFont field from the peer object. */
+ obj = (*env)->GetObjectField(env, font_peer, fontFID);
+
+ /* Fetch actual font pointer. */
+#if SIZEOF_VOID_P == 8
+ font = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ font = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ return font;
+}
+
+/**
+ * Initializes the field IDs for pixbuf decoder.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pixbuf_IDs(JNIEnv* env)
+{
+ jclass cls;
+
+ /* Find the nativeFont field ID in GdkFontPeer. */
+ cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder");
+ pixbufLoaderFID = (*env)->GetFieldID(env, cls, "nativeDecoder",
+ "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ * @param pixbuf_loader the native pixbuf loader
+ */
+void gtkpeer_set_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec,
+ void* pixbuf_loader)
+{
+ jobject obj;
+
+ /* Fetch the nativeDecoder field object. */
+ obj = (*env)->GetObjectField(env, pixbuf_dec, pixbufLoaderFID);
+ if (obj == NULL)
+ {
+ /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jlong) pixbuf_loader);
+#else
+ obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+ (jint) pixbuf_loader);
+#endif
+ (*env)->SetObjectField(env, pixbuf_dec, pixbufLoaderFID, obj);
+ }
+ else
+ {
+#if SIZEOF_VOID_P == 8
+ (*env)->SetLongField(env, obj, pointerDataFID, (jlong) pixbuf_loader);
+#else
+ (*env)->SetIntField(env, obj, pointerDataFID, (jint) pixbuf_loader);
+#endif
+ }
+}
+
+/**
+ * Fetches the native pixbuf loader reference from the GdkPixbufDecoder object.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ *
+ * @return the native pixbuf loader
+ */
+void* gtkpeer_get_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec)
+{
+ jobject obj;
+ void *loader;
+
+ /* Fetch the nativeFont field from the peer object. */
+ obj = (*env)->GetObjectField(env, pixbuf_dec, pixbufLoaderFID);
+
+ /* Fetch actual font pointer. */
+#if SIZEOF_VOID_P == 8
+ loader = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+ loader = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+ return loader;
+}
diff --git a/libjava/classpath/native/jni/gtk-peer/gtkpeer.h b/libjava/classpath/native/jni/gtk-peer/gtkpeer.h
index 065d20608f5..8b677aff7fd 100644
--- a/libjava/classpath/native/jni/gtk-peer/gtkpeer.h
+++ b/libjava/classpath/native/jni/gtk-peer/gtkpeer.h
@@ -42,7 +42,6 @@ exception statement from your version. */
#include <stdlib.h>
#include <string.h>
#include <config.h>
-#include "native_state.h"
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <jni.h>
@@ -54,49 +53,173 @@ exception statement from your version. */
#define __attribute__(x) /* nothing */
#endif
-extern struct state_table *cp_gtk_native_state_table;
-extern struct state_table *cp_gtk_native_global_ref_table;
-extern struct state_table *cp_gtk_native_graphics2d_state_table;
+/**
+ * Initializes the IDs of the Pointer* classes.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pointer_IDs(JNIEnv* env);
+
+/**
+ * Initializes the field IDs for the widget reference.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_widget_IDs(JNIEnv *env);
+
+/**
+ * Stores the GTK widget reference in the GtkComponentPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ * @param widget the widget reference to store
+ */
+void gtkpeer_set_widget(JNIEnv *env, jobject peer, void *widget);
+
+/**
+ * Retrieves the GTK widget reference from a GtkComponentPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ *
+ * @return the widget reference
+ */
+void* gtkpeer_get_widget(JNIEnv *env, jobject peer);
+
+/**
+ * Stores the global JNI reference of a peer inside the peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ */
+void gtkpeer_set_global_ref(JNIEnv *env, jobject peer);
+
+/**
+ * Retrieves the global reference from a peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ *
+ * @return the global reference
+ */
+void* gtkpeer_get_global_ref(JNIEnv *env, jobject peer);
+
+/**
+ * Deletes the global reference of a peer. This is necessary in order to
+ * allow the peer to be garbage collected.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object.
+ */
+void gtkpeer_del_global_ref(JNIEnv* env, jobject peer);
+
+
+/**
+ * Initializes the fieldIDs for the display and screen fields.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_display_IDs(JNIEnv* env);
+
+/**
+ * Sets the native display pointer in the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ * @param display the native display pointer
+ */
+void gtkpeer_set_display(JNIEnv* env, jobject graphicsenv, void* display);
+
+/**
+ * Fetches the native display pointer from the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ *
+ * @return the native display pointer
+ */
+void* gtkpeer_get_display(JNIEnv* env, jobject graphicsenv);
+
+/**
+ * Initializes the fieldIDs for the screen field.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_screen_IDs(JNIEnv* env);
+
+/**
+ * Sets the native screen in the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ * @param ptr the native screen pointer
+ */
+void gtkpeer_set_screen(JNIEnv* env, jobject screen_graphics_device,
+ void* ptr);
+
+/**
+ * Fetches the native screen pointer from the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ *
+ * @return the native screen pointer
+ */
+void* gtkpeer_get_screen(JNIEnv* env, jobject screen_graphics_device);
+
+/**
+ * Initializes the field IDs for fonts.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_font_IDs(JNIEnv* env);
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ * @param font the actual native font reference
+ */
+void gtkpeer_set_font(JNIEnv* env, jobject font_peer, void* font);
+
+/**
+ * Fetches the native font reference from the GdkFontPeer object.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ *
+ * @return the native font structure
+ */
+void* gtkpeer_get_font(JNIEnv* env, jobject font_peer);
+
+/**
+ * Initializes the field IDs for pixbuf decoder.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pixbuf_IDs(JNIEnv* env);
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ * @param pixbuf_loader the native pixbuf loader
+ */
+void gtkpeer_set_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec,
+ void* pixbuf_loader);
+
+/**
+ * Fetches the native pixbuf loader reference from the GdkPixbufDecoder object.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ *
+ * @return the native pixbuf loader
+ */
+void* gtkpeer_get_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec);
-#define NSA_INIT(env, clazz) \
- do {cp_gtk_native_state_table = cp_gtk_init_state_table (env, clazz); \
- cp_gtk_native_global_ref_table = cp_gtk_init_state_table (env, clazz);} while (0)
-
-#define NSA_GET_PTR(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_state_table)
-
-#define NSA_SET_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, cp_gtk_native_state_table, (void *)ptr)
-
-#define NSA_DEL_PTR(env, obj) \
- cp_gtk_remove_state_slot (env, obj, cp_gtk_native_state_table)
-
-#define NSA_GET_GLOBAL_REF(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_global_ref_table)
-
-#define NSA_SET_GLOBAL_REF(env, obj) \
- do {jobject *globRefPtr; \
- globRefPtr = (jobject *) malloc (sizeof (jobject)); \
- *globRefPtr = (*env)->NewGlobalRef (env, obj); \
- cp_gtk_set_state (env, obj, cp_gtk_native_global_ref_table, (void *)globRefPtr);} while (0)
-
-#define NSA_DEL_GLOBAL_REF(env, obj) \
- do {jobject *globRefPtr = cp_gtk_get_state (env, obj, cp_gtk_native_global_ref_table); \
- cp_gtk_remove_state_slot (env, obj, cp_gtk_native_global_ref_table); \
- (*env)->DeleteGlobalRef (env, *globRefPtr); \
- free (globRefPtr);} while (0)
-
-#define NSA_G2D_INIT(env, clazz) \
- cp_gtk_native_graphics2d_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_G2D_PTR(env, obj) \
- cp_gtk_get_state (env, obj, cp_gtk_native_graphics2d_state_table)
-
-#define NSA_SET_G2D_PTR(env, obj, ptr) \
- cp_gtk_set_state (env, obj, cp_gtk_native_graphics2d_state_table, (void *)ptr)
-
-#define NSA_DEL_G2D_PTR(env, obj) \
- cp_gtk_remove_state_slot (env, obj, cp_gtk_native_graphics2d_state_table)
#define SWAPU32(w) \
(((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24))
@@ -188,7 +311,7 @@ void cp_gtk_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw,
GdkWindow **win);
/* JNI initialization functions */
-void cp_gtk_button_init_jni (void);
+void cp_gtk_button_init_jni (JNIEnv*);
void cp_gtk_checkbox_init_jni (void);
void cp_gtk_choice_init_jni (void);
void cp_gtk_component_init_jni (void);
@@ -200,11 +323,11 @@ void cp_gtk_textcomponent_init_jni (void);
void cp_gtk_window_init_jni (void);
/* Signal connection convience functions */
-void cp_gtk_component_connect_expose_signals (GObject *ptr, jobject *gref);
-void cp_gtk_component_connect_focus_signals (GObject *ptr, jobject *gref);
-void cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject *gref);
-void cp_gtk_component_connect_signals (GObject *ptr, jobject *gref);
-void cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject *gref);
+void cp_gtk_component_connect_expose_signals (GObject *ptr, jobject gref);
+void cp_gtk_component_connect_focus_signals (GObject *ptr, jobject gref);
+void cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject gref);
+void cp_gtk_component_connect_signals (GObject *ptr, jobject gref);
+void cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject gref);
/* Debugging */
void cp_gtk_print_current_thread (void);
diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in
index a3c39829e6b..42bb7cd4a37 100644
--- a/libjava/classpath/native/jni/java-io/Makefile.in
+++ b/libjava/classpath/native/jni/java-io/Makefile.in
@@ -127,6 +127,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -165,8 +167,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -190,6 +190,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -262,8 +271,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in
index 3c8780471e1..a7b436b5e49 100644
--- a/libjava/classpath/native/jni/java-lang/Makefile.in
+++ b/libjava/classpath/native/jni/java-lang/Makefile.in
@@ -141,6 +141,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -179,8 +181,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -204,6 +204,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -276,8 +285,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in
index b2f7efced6e..3fdf64d3d2c 100644
--- a/libjava/classpath/native/jni/java-net/Makefile.in
+++ b/libjava/classpath/native/jni/java-net/Makefile.in
@@ -137,6 +137,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -175,8 +177,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -200,6 +200,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -272,8 +281,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
index cdfbe739789..a59604c04af 100644
--- a/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
+++ b/libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
@@ -69,6 +69,7 @@ exception statement from your version. */
#include "gnu_java_net_VMPlainSocketImpl.h"
#define THROW_NO_NETWORK(env) JCL_ThrowException (env, "java/lang/InternalError", "this platform not configured for network support")
+#define THROW_NO_IPV6(env) JCL_ThrowException (env, "java/lang/InternalError", "IPv6 support not available")
/*
* Class: gnu_java_net_VMPlainSocketImpl
@@ -120,7 +121,7 @@ Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env,
jclass c __attribute__((unused)),
jint fd, jbyteArray addr, jint port)
{
- /* FIXME! Add check if we have IPv6! */
+#ifdef HAVE_INET6
struct sockaddr_in6 sockaddr;
jbyte *elems;
int ret;
@@ -141,6 +142,9 @@ Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env,
if (-1 == ret)
JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+#else
+ THROW_NO_IPV6(env);
+#endif
}
@@ -442,8 +446,7 @@ Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env,
#endif /* HAVE_INET6 */
#else
(void) fd;
- JCL_ThrowException (env, "java/lang/InternalError",
- "socket options not supported");
+ THROW_NO_IPV6(env);
#endif /* HAVE_SETSOCKOPT */
}
@@ -582,8 +585,7 @@ Java_gnu_java_net_VMPlainSocketImpl_join6 (JNIEnv *env,
#else
(void) fd;
(void) addr;
- JCL_ThrowException (env, "java/lang/InternalError",
- "IPv6 support not available");
+ THROW_NO_IPV6(env);
#endif /* HAVE_INET6 */
#else
(void) fd;
@@ -657,8 +659,7 @@ Java_gnu_java_net_VMPlainSocketImpl_leave6 (JNIEnv *env,
#else
(void) fd;
(void) addr;
- JCL_ThrowException (env, "java/lang/InternalError",
- "IPv6 support not available");
+ THROW_NO_IPV6(env);
#endif /* HAVE_INET6 */
#else
(void) fd;
@@ -763,8 +764,7 @@ Java_gnu_java_net_VMPlainSocketImpl_joinGroup6 (JNIEnv *env,
#else
(void) fd;
(void) addr;
- JCL_ThrowException (env, "java/lang/InternalError",
- "IPv6 support not available");
+ THROW_NO_IPV6(env);
#endif /* HAVE_INET6 */
#else
(void) fd;
@@ -865,8 +865,7 @@ Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *env,
#else
(void) fd;
(void) addr;
- JCL_ThrowException (env, "java/lang/InternalError",
- "IPv6 support not available");
+ THROW_NO_IPV6(env);
#endif /* HAVE_INET6 */
#else
(void) fd;
diff --git a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c
index fc921ecef1f..43f2d9146dd 100644
--- a/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c
+++ b/libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c
@@ -163,10 +163,12 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env,
addr = cpnet_newIPV4Address(env);
cpnet_bytesToIPV4Address (addr, octets);
break;
+#ifdef HAVE_INET6
case 16:
addr = cpnet_newIPV6Address(env);
cpnet_bytesToIPV6Address (addr, octets);
break;
+#endif
default:
JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Bad IP Address");
return (jstring) NULL;
@@ -245,9 +247,9 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
/* Now loop and copy in each address */
for (i = 0; i < addresses_count; i++)
{
- if (cpnet_isIPV6Address (addresses[i]))
+ if (cpnet_isIPV4Address (addresses[i]))
{
- ret_octets = (*env)->NewByteArray (env, 16);
+ ret_octets = (*env)->NewByteArray (env, 4);
if (!ret_octets)
{
@@ -258,15 +260,16 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
- cpnet_IPV6AddressToBytes (addresses[i], octets);
+ cpnet_IPV4AddressToBytes (addresses[i], octets);
(*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
(*env)->SetObjectArrayElement (env, addrs, i, ret_octets);
}
- else if (cpnet_isIPV4Address (addresses[i]))
+#ifdef HAVE_INET6
+ else if (cpnet_isIPV6Address (addresses[i]))
{
- ret_octets = (*env)->NewByteArray (env, 4);
+ ret_octets = (*env)->NewByteArray (env, 16);
if (!ret_octets)
{
@@ -277,12 +280,13 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
- cpnet_IPV4AddressToBytes (addresses[i], octets);
+ cpnet_IPV6AddressToBytes (addresses[i], octets);
(*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
(*env)->SetObjectArrayElement (env, addrs, i, ret_octets);
}
+#endif
else
{
JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error");
@@ -336,9 +340,9 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env,
if (!address)
return (jbyteArray) NULL;
- if (cpnet_isIPV6Address (address))
+ if (cpnet_isIPV4Address (address))
{
- ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16);
+ ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4);
if (!ret_octets)
{
@@ -349,13 +353,14 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env,
octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
- cpnet_IPV6AddressToBytes (address, octets);
+ cpnet_IPV4AddressToBytes (address, octets);
(*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
}
- else if (cpnet_isIPV4Address (address))
+#ifdef HAVE_INET6
+ else if (cpnet_isIPV6Address (address))
{
- ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4);
+ ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16);
if (!ret_octets)
{
@@ -366,10 +371,11 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env,
octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
- cpnet_IPV4AddressToBytes (address, octets);
+ cpnet_IPV6AddressToBytes (address, octets);
(*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
}
+#endif
else
{
JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error");
diff --git a/libjava/classpath/native/jni/java-net/javanet.c b/libjava/classpath/native/jni/java-net/javanet.c
index 1d2f7202a17..1f093f4aa72 100644
--- a/libjava/classpath/native/jni/java-net/javanet.c
+++ b/libjava/classpath/native/jni/java-net/javanet.c
@@ -395,10 +395,12 @@ _javanet_get_ip_netaddr (JNIEnv * env, jobject addr)
netaddr = cpnet_newIPV4Address(env);
cpnet_bytesToIPV4Address(netaddr, octets);
break;
+#ifdef HAVE_INET6
case 16:
netaddr = cpnet_newIPV6Address(env);
cpnet_bytesToIPV6Address(netaddr, octets);
break;
+#endif
default:
/* This should not happen as we have checked before.
* But that way we shut the compiler warnings */
diff --git a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in
index bf6243ed4be..390a278da60 100644
--- a/libjava/classpath/native/jni/java-nio/Makefile.in
+++ b/libjava/classpath/native/jni/java-nio/Makefile.in
@@ -135,6 +135,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -173,8 +175,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -198,6 +198,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -270,8 +279,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c
index c8df841a1d6..a5bbd71262c 100644
--- a/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c
+++ b/libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c
@@ -771,6 +771,10 @@ Java_gnu_java_nio_VMChannel_receive (JNIEnv *env,
if (JCL_init_buffer (env, &buf, dst) == -1)
JCL_ThrowException (env, IO_EXCEPTION, "loading buffer failed");
+#ifndef HAVE_MSG_WAITALL
+#define MSG_WAITALL 0
+#endif
+
ret = cpnio_recvfrom (fd, &(buf.ptr[buf.position + buf.offset]),
buf.limit - buf.position, MSG_WAITALL,
sockaddr, &slen);
@@ -1582,14 +1586,84 @@ Java_gnu_java_nio_VMChannel_available (JNIEnv *env,
jclass c __attribute__((unused)),
jint fd)
{
+#if defined (FIONREAD)
+
jint avail = 0;
+#if defined(ENOTTY) && defined(HAVE_FSTAT)
+ struct stat statBuffer;
+ off_t n;
+#endif
+
/* NIODBG("fd: %d", fd); */
if (ioctl (fd, FIONREAD, &avail) == -1)
- JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+ {
+#if defined(ENOTTY) && defined(HAVE_FSTAT)
+ if (errno == ENOTTY)
+ {
+ if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode))
+ {
+ n = lseek (fd, 0, SEEK_CUR);
+ if (n != -1)
+ {
+ avail = statBuffer.st_size - n;
+ return avail;
+ }
+ }
+ }
+#endif
+ JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+ }
/* NIODBG("avail: %d", avail); */
return avail;
+
+#elif defined(HAVE_FSTAT)
+
+ jint avail = 0;
+
+ struct stat statBuffer;
+ off_t n;
+
+ if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode))
+ {
+ n = lseek (fd, 0, SEEK_CUR);
+ if (n != -1)
+ {
+ avail = statBuffer.st_size - n;
+ return avail;
+ }
+ }
+ JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+
+#elif defined(HAVE_SELECT)
+
+ jint avail = 0;
+ fd_set filedescriptset;
+ struct timeval tv;
+
+ FD_ZERO (&filedescriptset);
+ FD_SET (fd,&filedescriptset);
+ memset (&tv, 0, sizeof(tv));
+
+ switch (select (fd+1, &filedescriptset, NULL, NULL, &tv))
+ {
+ case -1:
+ break;
+ case 0:
+ avail = 0;
+ return avail;
+ default:
+ avail = 1;
+ return avail;
+ }
+ JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+
+#else
+
+ JCL_ThrowException (env, IO_EXCEPTION, "No native method for available");
+
+#endif
}
@@ -1627,7 +1701,7 @@ Java_gnu_java_nio_VMChannel_open (JNIEnv *env,
nmode = (nmode
| ((nmode == O_RDWR || nmode == O_WRONLY) ? O_CREAT : 0)
| ((mode & CPNIO_APPEND) ? O_APPEND :
- ((nmode == O_RDWR || nmode == O_WRONLY) ? O_TRUNC : 0))
+ ((nmode == O_WRONLY) ? O_TRUNC : 0))
| ((mode & CPNIO_EXCL) ? O_EXCL : 0)
| ((mode & CPNIO_SYNC) ? O_SYNC : 0));
diff --git a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in
index 389de4e1686..af44e11b43e 100644
--- a/libjava/classpath/native/jni/java-util/Makefile.in
+++ b/libjava/classpath/native/jni/java-util/Makefile.in
@@ -124,6 +124,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -162,8 +164,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -187,6 +187,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -259,8 +268,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in
index 6028c58b8ae..80187067de8 100644
--- a/libjava/classpath/native/jni/midi-alsa/Makefile.in
+++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in
@@ -127,6 +127,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -165,8 +167,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -190,6 +190,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -262,8 +271,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in
index 711eba8edaa..9eacf1c2d66 100644
--- a/libjava/classpath/native/jni/midi-dssi/Makefile.in
+++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in
@@ -127,6 +127,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -165,8 +167,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -190,6 +190,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -262,8 +271,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/native-lib/Makefile.in b/libjava/classpath/native/jni/native-lib/Makefile.in
index bc87d788213..558750eab7a 100644
--- a/libjava/classpath/native/jni/native-lib/Makefile.in
+++ b/libjava/classpath/native/jni/native-lib/Makefile.in
@@ -116,6 +116,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -154,8 +156,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -179,6 +179,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -251,8 +260,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/native-lib/cpio.c b/libjava/classpath/native/jni/native-lib/cpio.c
index ac3c0b5e79c..743968bd36c 100644
--- a/libjava/classpath/native/jni/native-lib/cpio.c
+++ b/libjava/classpath/native/jni/native-lib/cpio.c
@@ -158,14 +158,14 @@ JNIEXPORT int cpio_availableBytes (int fd, jlong *bytes_available)
off_t n;
int result;
- *bytes_available = 0
+ *bytes_available = 0;
if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode))
{
n = lseek (fd, 0, SEEK_CUR);
if (n != -1)
{
*bytes_available = statBuffer.st_size - n;
- result = 0;
+ result = CPNATIVE_OK;
}
else
{
@@ -189,7 +189,7 @@ JNIEXPORT int cpio_availableBytes (int fd, jlong *bytes_available)
FD_SET (fd,&filedescriptset);
memset (&tv, 0, sizeof(tv));
- switch (select (fd+1, &filedescriptset, NULL, NULL, &timeval)) \
+ switch (select (fd+1, &filedescriptset, NULL, NULL, &tv))
{
case -1:
result=errno;
diff --git a/libjava/classpath/native/jni/native-lib/cpnet.c b/libjava/classpath/native/jni/native-lib/cpnet.c
index 22ce69e2797..0444981131b 100644
--- a/libjava/classpath/native/jni/native-lib/cpnet.c
+++ b/libjava/classpath/native/jni/native-lib/cpnet.c
@@ -693,6 +693,7 @@ jint cpnet_getHostByName (JNIEnv *env, const char *hostname, cpnet_address ***ad
cpnet_bytesToIPV4Address(addr_arr[i], (jbyte *)hret.h_addr_list[i]);
}
break;
+#ifdef HAVE_INET6
case AF_INET6:
for (i = 0; i < counter; i++)
{
@@ -700,6 +701,7 @@ jint cpnet_getHostByName (JNIEnv *env, const char *hostname, cpnet_address ***ad
cpnet_bytesToIPV6Address(addr_arr[i], (jbyte *)hret.h_addr_list[i]);
}
break;
+#endif
default:
*addresses_count = 0;
JCL_free(env, addr_arr);
@@ -732,12 +734,14 @@ jint cpnet_getHostByAddr (JNIEnv *env UNUSED, cpnet_address *addr, char *hostnam
addr_len = sizeof(haddr.addr_v4->sin_addr);
addr_type = AF_INET;
}
+#ifdef HAVE_INET6
else if (haddr.addr_v6->sin6_family == AF_INET6)
{
raw_addr = &haddr.addr_v6->sin6_addr;
addr_type = AF_INET6;
addr_len = sizeof(haddr.addr_v6->sin6_addr);
}
+#endif
else
return EINVAL;
@@ -762,7 +766,8 @@ jint cpnet_getHostByAddr (JNIEnv *env UNUSED, cpnet_address *addr, char *hostnam
jint cpnet_aton (JNIEnv *env, const char *hostname, cpnet_address **addr)
{
jbyte *bytes = NULL;
-#ifdef HAVE_INET_PTON
+
+#if defined(HAVE_INET_PTON) && defined(HAVE_INET6)
jbyte inet6_addr[16];
#endif
@@ -789,7 +794,7 @@ jint cpnet_aton (JNIEnv *env, const char *hostname, cpnet_address **addr)
return 0;
}
-#ifdef HAVE_INET_PTON
+#if defined(HAVE_INET_PTON) && defined(HAVE_INET6)
if (inet_pton (AF_INET6, hostname, inet6_addr) > 0)
{
*addr = cpnet_newIPV6Address(env);
diff --git a/libjava/classpath/native/jni/native-lib/cpnet.h b/libjava/classpath/native/jni/native-lib/cpnet.h
index 10963262731..72850b4c8c6 100644
--- a/libjava/classpath/native/jni/native-lib/cpnet.h
+++ b/libjava/classpath/native/jni/native-lib/cpnet.h
@@ -117,6 +117,7 @@ static inline void cpnet_setIPV4Any(cpnet_address *addr)
netaddr->sin_addr.s_addr = INADDR_ANY;
}
+#ifdef HAVE_INET6
static inline cpnet_address *cpnet_newIPV6Address(JNIEnv * env)
{
cpnet_address * addr = (cpnet_address *)JCL_malloc(env, sizeof(cpnet_address) + sizeof(struct sockaddr_in6));
@@ -128,6 +129,7 @@ static inline cpnet_address *cpnet_newIPV6Address(JNIEnv * env)
return addr;
}
+#endif
static inline void cpnet_freeAddress(JNIEnv * env, cpnet_address *addr)
{
@@ -156,12 +158,14 @@ static inline jboolean cpnet_isAddressEqual(cpnet_address *addr1, cpnet_address
return memcmp(addr1->data, addr2->data, addr1->len) == 0;
}
+#ifdef HAVE_INET6
static inline jboolean cpnet_isIPV6Address(cpnet_address *addr)
{
struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]);
return ipaddr->sin_family == AF_INET6;
}
+#endif
static inline jboolean cpnet_isIPV4Address(cpnet_address *addr)
{
@@ -194,6 +198,7 @@ static inline void cpnet_bytesToIPV4Address(cpnet_address *netaddr, jbyte *octet
ipaddr->sin_addr.s_addr = htonl(sysaddr);
}
+#ifdef HAVE_INET6
static inline void cpnet_IPV6AddressToBytes(cpnet_address *netaddr, jbyte *octets)
{
struct sockaddr_in6 *ipaddr = (struct sockaddr_in6 *)&(netaddr->data[0]);
@@ -207,5 +212,6 @@ static inline void cpnet_bytesToIPV6Address(cpnet_address *netaddr, jbyte *octet
memcpy(&ipaddr->sin6_addr, octets, 16);
}
+#endif
#endif
diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in
index 8d268163b86..ad19aa739ba 100644
--- a/libjava/classpath/native/jni/qt-peer/Makefile.in
+++ b/libjava/classpath/native/jni/qt-peer/Makefile.in
@@ -142,6 +142,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -180,8 +182,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -205,6 +205,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -277,8 +286,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/qt-peer/qtfontmetrics.cpp b/libjava/classpath/native/jni/qt-peer/qtfontmetrics.cpp
index fd56b287856..f2f61822d3f 100644
--- a/libjava/classpath/native/jni/qt-peer/qtfontmetrics.cpp
+++ b/libjava/classpath/native/jni/qt-peer/qtfontmetrics.cpp
@@ -127,11 +127,11 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_dispose
* Returns JNI_TRUE if a character is displayable.
*/
JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_canDisplay
-(JNIEnv *env, jobject obj, jchar c)
+(JNIEnv *env, jobject obj, jint c)
{
QFontMetrics *fm = getFontMetrics( env, obj );
assert( fm );
- bool result = fm->inFont( QChar( (unsigned short)c ) );
+ bool result = fm->inFont( QChar( (unsigned int) c ) );
return (result ? JNI_TRUE : JNI_FALSE);
}
diff --git a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in
index 079f7f4df05..016f97f7eca 100644
--- a/libjava/classpath/native/jni/xmlj/Makefile.in
+++ b/libjava/classpath/native/jni/xmlj/Makefile.in
@@ -126,6 +126,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -164,8 +166,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -189,6 +189,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -261,8 +270,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/xmlj/xmlj_xpath.c b/libjava/classpath/native/jni/xmlj/xmlj_xpath.c
index 6d014cefc91..6aabaad23ef 100644
--- a/libjava/classpath/native/jni/xmlj/xmlj_xpath.c
+++ b/libjava/classpath/native/jni/xmlj/xmlj_xpath.c
@@ -39,7 +39,6 @@ exception statement from your version. */
#include "gnu_xml_libxmlj_dom_GnomeElement.h"
#include "gnu_xml_libxmlj_dom_GnomeXPathExpression.h"
#include "gnu_xml_libxmlj_dom_GnomeXPathNodeList.h"
-#include "gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h"
#include "gnu_xml_libxmlj_dom_GnomeXPathResult.h"
#include "xmlj_node.h"
#include "xmlj_util.h"
diff --git a/libjava/classpath/native/plugin/Makefile.in b/libjava/classpath/native/plugin/Makefile.in
index c57aa773c6d..62bcde56b47 100644
--- a/libjava/classpath/native/plugin/Makefile.in
+++ b/libjava/classpath/native/plugin/Makefile.in
@@ -124,6 +124,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -162,8 +164,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -187,6 +187,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -259,8 +268,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
index 4fd59badb78..2cf66d7fab3 100644
--- a/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
+++ b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
@@ -1,2 +1,3 @@
+
gnu.javax.sound.sampled.WAV.WAVReader
gnu.javax.sound.sampled.AU.AUReader
diff --git a/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in
new file mode 100644
index 00000000000..7fd2721725b
--- /dev/null
+++ b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in
@@ -0,0 +1,3 @@
+@GSTREAMER_FILE_READER@
+gnu.javax.sound.sampled.WAV.WAVReader
+gnu.javax.sound.sampled.AU.AUReader
diff --git a/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in
new file mode 100644
index 00000000000..03d1b5cd223
--- /dev/null
+++ b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in
@@ -0,0 +1 @@
+@GSTREAMER_MIXER_PROVIDER@
diff --git a/libjava/classpath/resource/Makefile.in b/libjava/classpath/resource/Makefile.in
index af9b55a8dd6..bfceca81e6d 100644
--- a/libjava/classpath/resource/Makefile.in
+++ b/libjava/classpath/resource/Makefile.in
@@ -109,6 +109,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -147,8 +149,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -172,6 +172,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -244,8 +253,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties
index ab860c8d292..fe2d10ae3f5 100644
--- a/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties
+++ b/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties
@@ -1,5 +1,5 @@
# messages.properties -- English language messages
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
#
# This file is part of GNU Classpath.
#
@@ -41,3 +41,4 @@ Native2ASCII.EncodingHelp=encoding to use
Native2ASCII.EncodingArgName=NAME
Native2ASCII.EncodingSpecified=encoding already specified
Native2ASCII.ReversedHelp=convert from encoding to native
+Native2ASCII.ReversedHelpCompat=alias for -reverse (deprecated)
diff --git a/libjava/classpath/scripts/Makefile.in b/libjava/classpath/scripts/Makefile.in
index 9e4377096c1..a6f6e01a457 100644
--- a/libjava/classpath/scripts/Makefile.in
+++ b/libjava/classpath/scripts/Makefile.in
@@ -99,6 +99,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -137,8 +139,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -162,6 +162,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -234,8 +243,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/scripts/check_jni_methods.sh b/libjava/classpath/scripts/check_jni_methods.sh
index b46e378214e..90a7735baf8 100755
--- a/libjava/classpath/scripts/check_jni_methods.sh
+++ b/libjava/classpath/scripts/check_jni_methods.sh
@@ -16,16 +16,16 @@ grep -h '^JNIEXPORT .* Java_' include/*.h | \
# Find all methods in the JNI C source files.
find native/jni -name \*.c | \
xargs grep -h '^Java_' | \
- LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\) *(.*$,\1,' > $TMPFILE2
+ LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE2
# Or in the the C++ files. (Note that cpp doesn't follow gnu conventions atm)
# So we try to match both GNU style and some other style.
find native/jni -name \*.cpp | \
xargs grep -h '^Java_' | \
- LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\) *(.*$,\1,' >> $TMPFILE2
+ LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
find native/jni -name \*.cpp | \
xargs egrep -h '^(JNIEXPORT .* JNICALL )?Java_' | \
cut -f4 -d\ | \
- LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\) *(.*$,\1,' >> $TMPFILE2
+ LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
mv $TMPFILE2 $TMPFILE3
sort $TMPFILE3 | uniq > $TMPFILE2
rm $TMPFILE3
@@ -40,7 +40,7 @@ EOF
# Compare again silently.
# Use fgrep and direct the output to /dev/null for compatibility with older
# grep instead of using the non portable -q.
-if diff -b -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | \
+if diff -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | \
fgrep -v -f $TMPFILE3 > /dev/null;
then
PROBLEM=1
@@ -48,7 +48,7 @@ then
echo "(-) missing in implementation, (+) missing in header files"
# Compare the found method lists.
- diff -b -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | fgrep -v -f $TMPFILE3
+ diff -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | fgrep -v -f $TMPFILE3
fi
# Cleanup.
diff --git a/libjava/classpath/sun/awt/CausedFocusEvent.java b/libjava/classpath/sun/awt/CausedFocusEvent.java
new file mode 100644
index 00000000000..6e0feb9a74d
--- /dev/null
+++ b/libjava/classpath/sun/awt/CausedFocusEvent.java
@@ -0,0 +1,89 @@
+/* CausedFocusEvent.java -- A special focus event for peers.
+ Copyright (C) 2007 Free Software Foundation
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package sun.awt;
+
+import java.awt.Component;
+import java.awt.event.FocusEvent;
+
+/**
+ * Special FocusEvent for peers. This has additional knowledge about the
+ * cause of the focus change.
+ */
+public class CausedFocusEvent
+extends FocusEvent
+{
+
+ public enum Cause
+ {
+ UNKNOWN,
+ MOUSE_EVENT,
+ TRAVERSAL,
+ TRAVERSAL_UP,
+ TRAVERSAL_DOWN,
+ TRAVERSAL_FORWARD,
+ TRAVERSAL_BACKWARD,
+ MANUAL_REQUEST,
+ AUTOMATIC_TRAVERSE,
+ ROLLBACK,
+ NATIVE_SYSTEM,
+ ACTIVATION,
+ CLEAR_GLOBAL_FOCUS_OWNER,
+ RETARGETED
+ }
+
+ /**
+ * The cause of the focus change.
+ */
+ private Cause cause;
+
+ public CausedFocusEvent(Component c, int id, boolean temporary,
+ Component opposite, Cause cause)
+ {
+ super(c, id, temporary, opposite);
+ if (cause == null)
+ {
+ cause = Cause.UNKNOWN;
+ }
+ this.cause = cause;
+ }
+
+ public Cause getCause()
+ {
+ return cause;
+ }
+}
diff --git a/libjava/classpath/tools/Makefile.am b/libjava/classpath/tools/Makefile.am
index f9f9dbd6e3d..22a6e3874b3 100755
--- a/libjava/classpath/tools/Makefile.am
+++ b/libjava/classpath/tools/Makefile.am
@@ -110,6 +110,7 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
$(srcdir)/com/sun/javadoc/*.java \
$(srcdir)/com/sun/tools/doclets/*.java \
$(srcdir)/com/sun/tools/javac/*.java \
+ $(srcdir)/com/sun/tools/javah/*.java \
$(srcdir)/sun/rmi/rmic/*.java \
$(srcdir)/external/asm/org/objectweb/asm/*.java \
$(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -168,6 +169,7 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
$(srcdir)/com/sun/javadoc \
$(srcdir)/com/sun/tools/doclets \
$(srcdir)/com/sun/tools/javac \
+ $(srcdir)/com/sun/tools/javah \
$(srcdir)/sun/rmi/rmic \
-name '*.java' -print > classes.lst
if [ -f $(top_builddir)/../vm-tools-packages ]; then \
@@ -184,6 +186,7 @@ if JAVA_MAINTAINER_MODE
AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
$$AC -g -w -d $(srcdir)/asm @asm.lst
$(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
+endif
## Copy over tools resource files.
@list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \
com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \
@@ -194,7 +197,14 @@ if JAVA_MAINTAINER_MODE
echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \
cp $(top_srcdir)/resource/$$p classes/$$p; \
done
-endif
+## Copy over rmic template files.
+ @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
+ for p in $$list; do \
+ dirname=classes/`dirname $$p`; \
+ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ echo " cp $(srcdir)/$$p classes/$$p"; \
+ cp $(srcdir)/$$p classes/$$p; \
+ done
cp -pR $(srcdir)/asm .
cp -pR $(srcdir)/classes .
## END GCJ LOCAL
diff --git a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in
index c9e74861623..a2d2ed7d44e 100644
--- a/libjava/classpath/tools/Makefile.in
+++ b/libjava/classpath/tools/Makefile.in
@@ -201,6 +201,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -239,8 +241,6 @@ EXEEXT = @EXEEXT@
FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -264,6 +264,15 @@ GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -336,8 +345,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
USER_JAVAH = @USER_JAVAH@
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -498,6 +505,7 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
$(srcdir)/com/sun/javadoc/*.java \
$(srcdir)/com/sun/tools/doclets/*.java \
$(srcdir)/com/sun/tools/javac/*.java \
+ $(srcdir)/com/sun/tools/javah/*.java \
$(srcdir)/sun/rmi/rmic/*.java \
$(srcdir)/external/asm/org/objectweb/asm/*.java \
$(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -1109,6 +1117,7 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
$(srcdir)/com/sun/javadoc \
$(srcdir)/com/sun/tools/doclets \
$(srcdir)/com/sun/tools/javac \
+ $(srcdir)/com/sun/tools/javah \
$(srcdir)/sun/rmi/rmic \
-name '*.java' -print > classes.lst
if [ -f $(top_builddir)/../vm-tools-packages ]; then \
@@ -1123,15 +1132,22 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
@JAVA_MAINTAINER_MODE_TRUE@ AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
@JAVA_MAINTAINER_MODE_TRUE@ $$AC -g -w -d $(srcdir)/asm @asm.lst
@JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
-@JAVA_MAINTAINER_MODE_TRUE@ @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \
-@JAVA_MAINTAINER_MODE_TRUE@ com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \
-@JAVA_MAINTAINER_MODE_TRUE@ sun/rmi/rmic -name \*.properties -print`; \
-@JAVA_MAINTAINER_MODE_TRUE@ for p in $$list; do \
-@JAVA_MAINTAINER_MODE_TRUE@ dirname=classes/`dirname $$p`; \
-@JAVA_MAINTAINER_MODE_TRUE@ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-@JAVA_MAINTAINER_MODE_TRUE@ echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \
-@JAVA_MAINTAINER_MODE_TRUE@ cp $(top_srcdir)/resource/$$p classes/$$p; \
-@JAVA_MAINTAINER_MODE_TRUE@ done
+ @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \
+ com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \
+ sun/rmi/rmic -name \*.properties -print`; \
+ for p in $$list; do \
+ dirname=classes/`dirname $$p`; \
+ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ echo " cp $(top_srcdir)/resource/$$p classes/$$p"; \
+ cp $(top_srcdir)/resource/$$p classes/$$p; \
+ done
+ @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
+ for p in $$list; do \
+ dirname=classes/`dirname $$p`; \
+ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ echo " cp $(srcdir)/$$p classes/$$p"; \
+ cp $(srcdir)/$$p classes/$$p; \
+ done
cp -pR $(srcdir)/asm .
cp -pR $(srcdir)/classes .
(cd classes; \
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class
new file mode 100644
index 00000000000..b1f830df2d1
--- /dev/null
+++ b/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class
new file mode 100644
index 00000000000..8b7c3643624
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
index 7f8ac5100be..f85d91fb7cf 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
Binary files differ
diff --git a/libjava/classpath/tools/com/sun/tools/javah/Main.java b/libjava/classpath/tools/com/sun/tools/javah/Main.java
new file mode 100644
index 00000000000..7eb0f37a85c
--- /dev/null
+++ b/libjava/classpath/tools/com/sun/tools/javah/Main.java
@@ -0,0 +1,58 @@
+/* Main.java -- implement com.sun.tools.javah.Main
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package com.sun.tools.javah;
+
+import java.io.IOException;
+
+public class Main
+{
+
+ public static void main(String[] args)
+ {
+ try
+ {
+ gnu.classpath.tools.javah.Main.main(args);
+ }
+ catch (IOException e)
+ {
+ throw new IllegalArgumentException("An I/O error occurred " +
+ "in executing javah", e);
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gappletviewer.in b/libjava/classpath/tools/gappletviewer.in
index 1057aba9733..721078bb79c 100644
--- a/libjava/classpath/tools/gappletviewer.in
+++ b/libjava/classpath/tools/gappletviewer.in
@@ -40,6 +40,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gjar.in b/libjava/classpath/tools/gjar.in
index df2da926c0c..da7581167e0 100644
--- a/libjava/classpath/tools/gjar.in
+++ b/libjava/classpath/tools/gjar.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gjarsigner.in b/libjava/classpath/tools/gjarsigner.in
index 071b8a6477d..e3abc6ce674 100644
--- a/libjava/classpath/tools/gjarsigner.in
+++ b/libjava/classpath/tools/gjarsigner.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gjavah.in b/libjava/classpath/tools/gjavah.in
index 3140e21e4b6..797721b9550 100644
--- a/libjava/classpath/tools/gjavah.in
+++ b/libjava/classpath/tools/gjavah.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gkeytool.in b/libjava/classpath/tools/gkeytool.in
index d35f08df7df..59516efe803 100644
--- a/libjava/classpath/tools/gkeytool.in
+++ b/libjava/classpath/tools/gkeytool.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gnative2ascii.in b/libjava/classpath/tools/gnative2ascii.in
index f886074b7b8..17d7cd7e006 100644
--- a/libjava/classpath/tools/gnative2ascii.in
+++ b/libjava/classpath/tools/gnative2ascii.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
index 35e9f481f94..0667befc6c5 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
@@ -1,5 +1,5 @@
/* Native2ASCII.java - native2ascii program
- Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2007, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -101,7 +101,17 @@ public class Native2ASCII
encoding = argument;
}
});
- result.add(new Option("reversed", Messages.getString("Native2ASCII.ReversedHelp")) //$NON-NLS-1$ //$NON-NLS-2$
+ result.add(new Option("reverse", Messages.getString("Native2ASCII.ReversedHelp")) //$NON-NLS-1$ //$NON-NLS-2$
+ {
+ public void parsed(String argument) throws OptionException
+ {
+ reversed = true;
+ }
+ });
+
+ // We mistakenly added the extra "d" in "reversed"; now we don't
+ // want to remove it, for backward compatibility.
+ result.add(new Option("reversed", Messages.getString("Native2ASCII.ReversedHelpCompat")) //$NON-NLS-1$ //$NON-NLS-2$
{
public void parsed(String argument) throws OptionException
{
diff --git a/libjava/classpath/tools/gorbd.in b/libjava/classpath/tools/gorbd.in
index ab1a19a8602..40d01eee2a1 100644
--- a/libjava/classpath/tools/gorbd.in
+++ b/libjava/classpath/tools/gorbd.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/grmic.in b/libjava/classpath/tools/grmic.in
index eabce0e498c..9b7314429c1 100644
--- a/libjava/classpath/tools/grmic.in
+++ b/libjava/classpath/tools/grmic.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/grmid.in b/libjava/classpath/tools/grmid.in
index aa4e1432ad1..7eefb769d65 100644
--- a/libjava/classpath/tools/grmid.in
+++ b/libjava/classpath/tools/grmid.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/grmiregistry.in b/libjava/classpath/tools/grmiregistry.in
index 5e2798fd3ad..d08120af922 100644
--- a/libjava/classpath/tools/grmiregistry.in
+++ b/libjava/classpath/tools/grmiregistry.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gserialver.in b/libjava/classpath/tools/gserialver.in
index dbc80f268ad..85aeea62d51 100644
--- a/libjava/classpath/tools/gserialver.in
+++ b/libjava/classpath/tools/gserialver.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/tools/gtnameserv.in b/libjava/classpath/tools/gtnameserv.in
index c8e7484f6ff..4fbcf371313 100644
--- a/libjava/classpath/tools/gtnameserv.in
+++ b/libjava/classpath/tools/gtnameserv.in
@@ -41,6 +41,7 @@
##
prefix=@prefix@
+datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java
index eec7b63d67b..767a902ff1c 100644
--- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java
+++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java
@@ -73,12 +73,15 @@ public class VMFrame
* @param thr a Thread, the thread this frame is in
* @param frame_id a long, the jframeID of this frame
* @param frame_loc a Location, the location of this frame
+ * @param frame_obj the "this" object of this frame
*/
- public VMFrame(Thread thr, long frame_id, Location frame_loc)
+ public VMFrame(Thread thr, long frame_id, Location frame_loc,
+ Object frame_obj)
{
thread = thr;
id = frame_id;
loc = frame_loc;
+ obj = frame_obj;
}
/**
diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java
index d345bc1b515..6a2b04ecf97 100644
--- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java
+++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java
@@ -1,5 +1,5 @@
/* VMMethod.java -- a method in a virtual machine
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -175,4 +175,15 @@ public class VMMethod
{
return VMVirtualMachine.getClassMethod(klass, bb.getLong());
}
+
+ public boolean equals(Object obj)
+ {
+ if (obj instanceof VMMethod)
+ {
+ VMMethod m = (VMMethod) obj;
+ return (getId() == m.getId());
+ }
+
+ return false;
+ }
}
diff --git a/libjava/classpath/vm/reference/java/lang/VMFloat.java b/libjava/classpath/vm/reference/java/lang/VMFloat.java
index 2e7f439a443..15348130f10 100644
--- a/libjava/classpath/vm/reference/java/lang/VMFloat.java
+++ b/libjava/classpath/vm/reference/java/lang/VMFloat.java
@@ -108,4 +108,26 @@ final class VMFloat
*/
static native float intBitsToFloat(int bits);
+ /**
+ * @param f the <code>float</code> to convert
+ * @return the <code>String</code> representing the <code>float</code>
+ */
+ static String toString(float f)
+ {
+ return VMDouble.toString(f, true);
+ }
+
+ /**
+ * @param str the <code>String</code> to convert
+ * @return the <code>float</code> value of <code>s</code>
+ * @throws NumberFormatException if <code>str</code> cannot be parsed as a
+ * <code>float</code>
+ * @throws NullPointerException if <code>str</code> is null
+ */
+ static float parseFloat(String str)
+ {
+ // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
+ // the infinitely precise decimal.
+ return (float) Double.parseDouble(str);
+ }
} // class VMFloat
diff --git a/libjava/classpath/vm/reference/sun/misc/Unsafe.java b/libjava/classpath/vm/reference/sun/misc/Unsafe.java
index fa199f83e0a..5dee8cfefd7 100644
--- a/libjava/classpath/vm/reference/sun/misc/Unsafe.java
+++ b/libjava/classpath/vm/reference/sun/misc/Unsafe.java
@@ -305,7 +305,7 @@ public class Unsafe
*
* @param thread the thread to unblock.
*/
- public native void unpark(Thread thread);
+ public native void unpark(Object thread);
/**
* Blocks the thread until a matching
diff --git a/libjava/configure b/libjava/configure
index 861c522d89b..69dec24f817 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -459,7 +459,7 @@ ac_includes_default="\
#endif"
ac_subdirs_all="$ac_subdirs_all classpath libltdl"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM lt_ECHO CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME INTERPRETER LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC LIBGCJTESTSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir dbexecdir GCJVERSION gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM lt_ECHO CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -1035,6 +1035,8 @@ Optional Features:
don't set system properties from GCJ_PROPERTIES
--enable-hash-synchronization
use global hash table for monitor locks
+ --enable-libgcj-bc enable(default) or disable BC ABI for portions of
+ libgcj
--enable-gc-debug include full support for pointer backtracing etc.
--enable-interpreter enable interpreter
--enable-sjlj-exceptions
@@ -4608,7 +4610,7 @@ aix3*)
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
@@ -5949,13 +5951,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5952: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:5954: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5955: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:5957: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5958: output\"" >&5)
+ (eval echo "\"\$as_me:5960: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6210,7 +6212,7 @@ lt_cv_deplibs_check_method='unknown'
# whether `pass_all' will *always* work, you probably want this one.
case $host_os in
-aix4* | aix5*)
+aix[4-9]*)
lt_cv_deplibs_check_method=pass_all
;;
@@ -6999,7 +7001,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 7002 "configure"' > conftest.$ac_ext
+ echo '#line 7004 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -8696,11 +8698,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:8699: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8701: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8703: \$? = $ac_status" >&5
+ echo "$as_me:8705: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -9018,11 +9020,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9021: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9023: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:9025: \$? = $ac_status" >&5
+ echo "$as_me:9027: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -9123,11 +9125,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9126: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9128: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9130: \$? = $ac_status" >&5
+ echo "$as_me:9132: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -9178,11 +9180,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:9181: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9183: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9185: \$? = $ac_status" >&5
+ echo "$as_me:9187: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -9326,7 +9328,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# See if GNU ld supports shared libraries.
case $host_os in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
@@ -9560,7 +9562,7 @@ _LT_EOF
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
@@ -9580,7 +9582,7 @@ _LT_EOF
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
@@ -10655,7 +10657,7 @@ aix3*)
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
@@ -12030,7 +12032,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12033 "configure"
+#line 12035 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12130,7 +12132,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12133 "configure"
+#line 12135 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12313,7 +12315,7 @@ echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
test "$enable_shared" = yes && enable_static=no
fi
@@ -12630,7 +12632,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
@@ -12643,7 +12645,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
case $ld_flag in
*-brtl*)
@@ -13910,7 +13912,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
esac
else
case $host_os in
- aix4* | aix5*)
+ aix[4-9]*)
# All AIX code is PIC.
if test "$host_cpu" = ia64; then
# AIX 5 now supports IA64 processor
@@ -14168,11 +14170,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14171: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14173: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14175: \$? = $ac_status" >&5
+ echo "$as_me:14177: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -14267,11 +14269,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14270: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14272: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14274: \$? = $ac_status" >&5
+ echo "$as_me:14276: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14319,11 +14321,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14322: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14324: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14326: \$? = $ac_status" >&5
+ echo "$as_me:14328: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14380,7 +14382,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
case $host_os in
- aix4* | aix5*)
+ aix[4-9]*)
# If we're using GNU nm, then we don't want the "-C" option.
# -C means demangle to AIX nm, but means don't demangle with GNU nm
if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
@@ -14570,7 +14572,7 @@ aix3*)
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
@@ -15707,11 +15709,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15710: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15712: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15714: \$? = $ac_status" >&5
+ echo "$as_me:15716: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15775,7 +15777,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
# built for inclusion in a dll (and should export symbols for example).
# Although the cygwin gcc ignores -fPIC, still need this for old-style
# (--disable-auto-import) libraries
- lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
;;
darwin* | rhapsody*)
@@ -15851,7 +15853,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
;;
hpux9* | hpux10* | hpux11*)
@@ -16023,11 +16025,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16026: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16028: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16030: \$? = $ac_status" >&5
+ echo "$as_me:16032: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16122,11 +16124,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16125: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16127: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16129: \$? = $ac_status" >&5
+ echo "$as_me:16131: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -16174,11 +16176,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16177: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16179: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16181: \$? = $ac_status" >&5
+ echo "$as_me:16183: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -16319,7 +16321,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# See if GNU ld supports shared libraries.
case $host_os in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs_GCJ=no
@@ -16553,7 +16555,7 @@ _LT_EOF
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
@@ -16573,7 +16575,7 @@ _LT_EOF
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
@@ -17495,7 +17497,7 @@ aix3*)
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
@@ -18415,6 +18417,25 @@ fi
+suppress_libgcj_bc=no
+# Check whether --enable-libgcj-bc or --disable-libgcj-bc was given.
+if test "${enable_libgcj_bc+set}" = set; then
+ enableval="$enable_libgcj_bc"
+ if test "$enable_libgcj_bc" = "no"; then
+ suppress_libgcj_bc=yes
+ fi
+fi;
+
+
+if test "$suppress_libgcj_bc" = "yes"; then
+ SUPPRESS_LIBGCJ_BC_TRUE=
+ SUPPRESS_LIBGCJ_BC_FALSE='#'
+else
+ SUPPRESS_LIBGCJ_BC_TRUE='#'
+ SUPPRESS_LIBGCJ_BC_FALSE=
+fi
+
+
# What is the native OS API for MinGW?
# Check whether --with-win32-nlsapi or --without-win32-nlsapi was given.
@@ -18487,6 +18508,16 @@ fi
INTERPRETER="$libgcj_interpreter"
+
+if test "$libgcj_interpreter" = yes; then
+ INTERPRETER_TRUE=
+ INTERPRETER_FALSE='#'
+else
+ INTERPRETER_TRUE='#'
+ INTERPRETER_FALSE=
+fi
+
+
echo "$as_me:$LINENO: checking for exception model to use" >&5
echo $ECHO_N "checking for exception model to use... $ECHO_C" >&6
ac_ext=cc
@@ -18501,7 +18532,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 18504 "configure"
+#line 18535 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -18876,9 +18907,6 @@ case "${host}" in
esac
-LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
-
-
# Check whether --with-system-zlib or --without-system-zlib was given.
if test "${with_system_zlib+set}" = set; then
@@ -18985,7 +19013,7 @@ ac_x_header_dirs='
/usr/openwin/share/include'
if test "$ac_x_includes" = no; then
- # Guess where to find include files, by looking for Intrinsic.h.
+ # Guess where to find include files, by looking for Xlib.h.
# First, try using that file with no special directory specified.
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
@@ -18993,7 +19021,7 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <X11/Intrinsic.h>
+#include <X11/Xlib.h>
_ACEOF
if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -19020,7 +19048,7 @@ else
sed 's/^/| /' conftest.$ac_ext >&5
for ac_dir in $ac_x_header_dirs; do
- if test -r "$ac_dir/X11/Intrinsic.h"; then
+ if test -r "$ac_dir/X11/Xlib.h"; then
ac_x_includes=$ac_dir
break
fi
@@ -19034,7 +19062,7 @@ if test "$ac_x_libraries" = no; then
# See if we find them without any special options.
# Don't add to $LIBS permanently.
ac_save_LIBS=$LIBS
- LIBS="-lXt $LIBS"
+ LIBS="-lX11 $LIBS"
if test x$gcc_no_link = xyes; then
{ { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
@@ -19046,11 +19074,11 @@ _ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <X11/Intrinsic.h>
+#include <X11/Xlib.h>
int
main ()
{
-XtMalloc (0)
+XrmInitialize ()
;
return 0;
}
@@ -20362,6 +20390,9 @@ fi
# FIXME: this should be _libs on some hosts.
libsubdir=.libs
+LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
+
+LIBSTDCXXSPEC=
# extra LD Flags which are required for targets
case "${host}" in
*-*-darwin[0-7].*)
@@ -20370,9 +20401,25 @@ case "${host}" in
# on Darwin -single_module speeds up loading of the dynamic libraries.
extra_ldflags_libjava=-Wl,-single_module
;;
+*-*-darwin[9]*)
+ extra_gij_ldflags=-Wl,-allow_stack_execute
+ ;;
+arm*linux*eabi)
+ # Some of the ARM unwinder code is actually in libstdc++. We
+ # could in principle replicate it in libgcj, but it's better to
+ # have a dependency on libstdc++.
+ extra_ldflags='-L$(here)/../libstdc++-v3/src/.libs -lstdc++'
+ LIBSTDCXXSPEC=-lstdc++
+ LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
+ ;;
esac
+
+
+
+
+
# Allow the GC to be disabled. Can be useful when debugging.
echo "$as_me:$LINENO: checking for garbage collector to use" >&5
echo $ECHO_N "checking for garbage collector to use... $ECHO_C" >&6
@@ -26165,29 +26212,31 @@ esac
+# Determine gcj and libgcj version number.
+gcjversion=`cat "$srcdir/../gcc/BASE-VER"`
+libgcj_soversion=`awk -F: '/^[^#].*:/ { print $1 }' $srcdir/libtool-version`
+GCJVERSION=$gcjversion
+
+
+cat >>confdefs.h <<_ACEOF
+#define GCJVERSION "$GCJVERSION"
+_ACEOF
+
+
# Determine where the standard .db file and GNU Classpath JNI
# libraries are found.
+gcjsubdir=gcj-$gcjversion-$libgcj_soversion
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
.)
- dbexecdir='$(libdir)/gcj-$(gcc_version)' # Avoid /.
+ dbexecdir='$(libdir)/'$gcjsubdir # Avoid /.
;;
*)
- dbexecdir='$(libdir)/'$multi_os_directory'/gcj-$(gcc_version)'
+ dbexecdir='$(libdir)/'$multi_os_directory/$gcjsubdir
;;
esac
-# Determine gcj version number.
-gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([^ ]*\).*$/\1/p'`
-GCJVERSION=$gcjversion
-
-
-cat >>confdefs.h <<_ACEOF
-#define GCJVERSION "$GCJVERSION"
-_ACEOF
-
-
cat >>confdefs.h <<\_ACEOF
#define JV_VERSION "1.5.0"
@@ -27241,7 +27290,10 @@ case "${host}" in
mips*-*-linux*)
SIGNAL_HANDLER=include/mips-signal.h
;;
- powerpc*-*-darwin*)
+ m68*-*-linux*)
+ SIGNAL_HANDLER=include/dwarf2-signal.h
+ ;;
+ powerpc*-*-darwin* | i?86-*-darwin9* | x86_64-*-darwin9*)
SIGNAL_HANDLER=include/darwin-signal.h
;;
*)
@@ -27289,7 +27341,7 @@ fi;
echo "$as_me:$LINENO: checking whether the target supports thread-local storage" >&5
echo $ECHO_N "checking whether the target supports thread-local storage... $ECHO_C" >&6
-if test "${have_tls+set}" = set; then
+if test "${gcc_cv_have_tls+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
@@ -27324,12 +27376,12 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- have_tls=yes
+ gcc_cv_have_tls=yes
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-have_tls=no
+gcc_cv_have_tls=no
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
@@ -27403,14 +27455,14 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- have_tls=yes
+ gcc_cv_have_tls=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
-have_tls=no
+gcc_cv_have_tls=no
fi
rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
@@ -27418,12 +27470,12 @@ else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-have_tls=yes
+gcc_cv_have_tls=yes
fi
rm -f conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LDFLAGS="$chktls_save_LDFLAGS"
- if test $have_tls = yes; then
+ if test $gcc_cv_have_tls = yes; then
chktls_save_CFLAGS="$CFLAGS"
thread_CFLAGS=failed
for flag in '' '-pthread' '-lpthread'; do
@@ -27536,14 +27588,14 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- have_tls=yes
+ gcc_cv_have_tls=yes
else
echo "$as_me: program exited with status $ac_status" >&5
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
-have_tls=no
+gcc_cv_have_tls=no
fi
rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
@@ -27556,14 +27608,14 @@ echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
( exit $ac_status )
-have_tls=no
+gcc_cv_have_tls=no
fi
rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
-echo "$as_me:$LINENO: result: $have_tls" >&5
-echo "${ECHO_T}$have_tls" >&6
- if test "$enable_tls $have_tls" = "yes yes"; then
+echo "$as_me:$LINENO: result: $gcc_cv_have_tls" >&5
+echo "${ECHO_T}$gcc_cv_have_tls" >&6
+ if test "$enable_tls $gcc_cv_have_tls" = "yes yes"; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_TLS 1
@@ -27758,11 +27810,13 @@ here=`${PWDCMD-pwd}`
ac_config_files="$ac_config_files Makefile libgcj.pc libgcj.spec libgcj-test.spec gcj/Makefile include/Makefile testsuite/Makefile"
- ac_config_files="$ac_config_files scripts/jar"
-
-
- ac_config_commands="$ac_config_commands default"
+if test ${multilib} = yes; then
+ multilib_arg="--enable-multilib"
+else
+ multilib_arg=
+fi
+ ac_config_files="$ac_config_files scripts/jar"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -27946,6 +28000,20 @@ echo "$as_me: error: conditional \"JAVA_HOME_SET\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${SUPPRESS_LIBGCJ_BC_TRUE}" && test -z "${SUPPRESS_LIBGCJ_BC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"SUPPRESS_LIBGCJ_BC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"SUPPRESS_LIBGCJ_BC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${INTERPRETER_TRUE}" && test -z "${INTERPRETER_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"INTERPRETER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"INTERPRETER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${USING_WIN32_PLATFORM_TRUE}" && test -z "${USING_WIN32_PLATFORM_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"USING_WIN32_PLATFORM\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -28914,17 +28982,6 @@ fi
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-multi_basedir=${multi_basedir}
-CC="${CC}"
-CXX="${CXX}"
-ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
-
_ACEOF
@@ -28963,7 +29020,6 @@ do
"default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"libtool" ) CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
- "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
"gcj/libgcj-config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS gcj/libgcj-config.h" ;;
*) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
@@ -29177,7 +29233,11 @@ s,@INSTALL_ECJ_JAR_FALSE@,$INSTALL_ECJ_JAR_FALSE,;t t
s,@JAVA_HOME_SET_TRUE@,$JAVA_HOME_SET_TRUE,;t t
s,@JAVA_HOME_SET_FALSE@,$JAVA_HOME_SET_FALSE,;t t
s,@JAVA_HOME@,$JAVA_HOME,;t t
+s,@SUPPRESS_LIBGCJ_BC_TRUE@,$SUPPRESS_LIBGCJ_BC_TRUE,;t t
+s,@SUPPRESS_LIBGCJ_BC_FALSE@,$SUPPRESS_LIBGCJ_BC_FALSE,;t t
s,@INTERPRETER@,$INTERPRETER,;t t
+s,@INTERPRETER_TRUE@,$INTERPRETER_TRUE,;t t
+s,@INTERPRETER_FALSE@,$INTERPRETER_FALSE,;t t
s,@LIBFFI@,$LIBFFI,;t t
s,@LIBFFIINCS@,$LIBFFIINCS,;t t
s,@PLATFORM@,$PLATFORM,;t t
@@ -29188,7 +29248,6 @@ s,@USING_POSIX_PLATFORM_FALSE@,$USING_POSIX_PLATFORM_FALSE,;t t
s,@USING_DARWIN_CRT_TRUE@,$USING_DARWIN_CRT_TRUE,;t t
s,@USING_DARWIN_CRT_FALSE@,$USING_DARWIN_CRT_FALSE,;t t
s,@SYSTEMSPEC@,$SYSTEMSPEC,;t t
-s,@LIBGCJTESTSPEC@,$LIBGCJTESTSPEC,;t t
s,@ZLIBSPEC@,$ZLIBSPEC,;t t
s,@ZLIBTESTSPEC@,$ZLIBTESTSPEC,;t t
s,@X_CFLAGS@,$X_CFLAGS,;t t
@@ -29196,6 +29255,10 @@ s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t
s,@X_LIBS@,$X_LIBS,;t t
s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
s,@extra_ldflags_libjava@,$extra_ldflags_libjava,;t t
+s,@extra_gij_ldflags@,$extra_gij_ldflags,;t t
+s,@extra_ldflags@,$extra_ldflags,;t t
+s,@LIBSTDCXXSPEC@,$LIBSTDCXXSPEC,;t t
+s,@LIBGCJTESTSPEC@,$LIBGCJTESTSPEC,;t t
s,@GCLIBS@,$GCLIBS,;t t
s,@GCINCS@,$GCINCS,;t t
s,@GCDEPS@,$GCDEPS,;t t
@@ -29253,8 +29316,8 @@ s,@GCC_UNWIND_INCLUDE@,$GCC_UNWIND_INCLUDE,;t t
s,@toolexecdir@,$toolexecdir,;t t
s,@toolexecmainlibdir@,$toolexecmainlibdir,;t t
s,@toolexeclibdir@,$toolexeclibdir,;t t
-s,@dbexecdir@,$dbexecdir,;t t
s,@GCJVERSION@,$GCJVERSION,;t t
+s,@dbexecdir@,$dbexecdir,;t t
s,@gxx_include_dir@,$gxx_include_dir,;t t
s,@libstdcxx_incdir@,$libstdcxx_incdir,;t t
s,@PERL@,$PERL,;t t
@@ -30958,20 +31021,6 @@ compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
_LT_EOF
;;
- default ) # Only add multilib support code if we just rebuilt top-level Makefile.
-case " $CONFIG_FILES " in
- *" Makefile "*)
- LD="${ORIGINAL_LD_FOR_MULTILIBS}"
- ac_file=Makefile . ${multi_basedir}/./libjava/../config-ml.in
- ;;
-esac
-for ac_multi_file in $CONFIG_FILES; do
- case $ac_multi_file in
- */Makefile)
- grep "^MULTI[^ ]* =" Makefile >> "$ac_multi_file" ;;
- esac
-done
- ;;
esac
done
_ACEOF
diff --git a/libjava/configure.ac b/libjava/configure.ac
index ddda4e8911a..0abf1bf87a9 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -514,6 +514,15 @@ AC_ARG_WITH(java-home,
AM_CONDITIONAL(JAVA_HOME_SET, test ! -z "$JAVA_HOME")
AC_SUBST(JAVA_HOME)
+suppress_libgcj_bc=no
+AC_ARG_ENABLE(libgcj-bc,
+ AS_HELP_STRING([--enable-libgcj-bc],
+ [enable(default) or disable BC ABI for portions of libgcj]),
+ [if test "$enable_libgcj_bc" = "no"; then
+ suppress_libgcj_bc=yes
+ fi])
+AM_CONDITIONAL(SUPPRESS_LIBGCJ_BC, test "$suppress_libgcj_bc" = "yes")
+
# What is the native OS API for MinGW?
AC_ARG_WITH(win32-nlsapi,
AS_HELP_STRING([--with-win32-nlsapi=ansi or unicows or unicode],
@@ -564,6 +573,7 @@ if test "$libgcj_interpreter" = yes; then
fi
INTERPRETER="$libgcj_interpreter"
AC_SUBST(INTERPRETER)
+AM_CONDITIONAL(INTERPRETER, test "$libgcj_interpreter" = yes)
AC_MSG_CHECKING([for exception model to use])
AC_LANG_PUSH(C++)
@@ -763,9 +773,6 @@ case "${host}" in
esac
AC_SUBST(SYSTEMSPEC)
-LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
-AC_SUBST(LIBGCJTESTSPEC)
-
AC_ARG_WITH(system-zlib,
AS_HELP_STRING([--with-system-zlib],
[use installed libz]))
@@ -779,6 +786,9 @@ AC_PATH_XTRA
# FIXME: this should be _libs on some hosts.
libsubdir=.libs
+LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -rpath `${PWDCMD-pwd}`/.libs"
+
+LIBSTDCXXSPEC=
# extra LD Flags which are required for targets
case "${host}" in
*-*-darwin[[0-7]].*)
@@ -787,8 +797,24 @@ case "${host}" in
# on Darwin -single_module speeds up loading of the dynamic libraries.
extra_ldflags_libjava=-Wl,-single_module
;;
+*-*-darwin[[9]]*)
+ extra_gij_ldflags=-Wl,-allow_stack_execute
+ ;;
+arm*linux*eabi)
+ # Some of the ARM unwinder code is actually in libstdc++. We
+ # could in principle replicate it in libgcj, but it's better to
+ # have a dependency on libstdc++.
+ extra_ldflags='-L$(here)/../libstdc++-v3/src/.libs -lstdc++'
+ LIBSTDCXXSPEC=-lstdc++
+ LIBGCJTESTSPEC="-L`${PWDCMD-pwd}`/.libs -L`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -rpath `${PWDCMD-pwd}`/.libs:`${PWDCMD-pwd}`/../libstdc++-v3/src/.libs -lstdc++"
+ ;;
esac
AC_SUBST(extra_ldflags_libjava)
+AC_SUBST(extra_gij_ldflags)
+AC_SUBST(extra_ldflags)
+AC_SUBST(LIBSTDCXXSPEC)
+
+AC_SUBST(LIBGCJTESTSPEC)
# Allow the GC to be disabled. Can be useful when debugging.
AC_MSG_CHECKING([for garbage collector to use])
@@ -1367,25 +1393,27 @@ AC_SUBST(toolexecdir)
AC_SUBST(toolexecmainlibdir)
AC_SUBST(toolexeclibdir)
+# Determine gcj and libgcj version number.
+gcjversion=`cat "$srcdir/../gcc/BASE-VER"`
+libgcj_soversion=`awk -F: '/^[[^#]].*:/ { print $1 }' $srcdir/libtool-version`
+GCJVERSION=$gcjversion
+AC_SUBST(GCJVERSION)
+AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
+
# Determine where the standard .db file and GNU Classpath JNI
# libraries are found.
+gcjsubdir=gcj-$gcjversion-$libgcj_soversion
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
.)
- dbexecdir='$(libdir)/gcj-$(gcc_version)' # Avoid /.
+ dbexecdir='$(libdir)/'$gcjsubdir # Avoid /.
;;
*)
- dbexecdir='$(libdir)/'$multi_os_directory'/gcj-$(gcc_version)'
+ dbexecdir='$(libdir)/'$multi_os_directory/$gcjsubdir
;;
esac
AC_SUBST(dbexecdir)
-# Determine gcj version number.
-gcjversion=`$GCJ -v 2>&1 | sed -n 's/^.*version \([[^ ]]*\).*$/\1/p'`
-GCJVERSION=$gcjversion
-AC_SUBST(GCJVERSION)
-AC_DEFINE_UNQUOTED(GCJVERSION, "$GCJVERSION", [Short GCJ version ID])
-
AC_DEFINE(JV_VERSION, "1.5.0", [Compatibility version string])
AC_DEFINE(JV_API_VERSION, "1.5", [API compatibility version string])
@@ -1528,7 +1556,10 @@ case "${host}" in
mips*-*-linux*)
SIGNAL_HANDLER=include/mips-signal.h
;;
- powerpc*-*-darwin*)
+ m68*-*-linux*)
+ SIGNAL_HANDLER=include/dwarf2-signal.h
+ ;;
+ powerpc*-*-darwin* | i?86-*-darwin9* | x86_64-*-darwin9*)
SIGNAL_HANDLER=include/darwin-signal.h
;;
*)
@@ -1604,33 +1635,11 @@ include/Makefile
testsuite/Makefile
])
-AC_CONFIG_FILES([scripts/jar], [chmod +x scripts/jar])
-
-AC_CONFIG_COMMANDS([default],
-[# Only add multilib support code if we just rebuilt top-level Makefile.
-case " $CONFIG_FILES " in
- *" Makefile "*)
- LD="${ORIGINAL_LD_FOR_MULTILIBS}"
- ac_file=Makefile . ${multi_basedir}/./libjava/../config-ml.in
- ;;
-esac
-for ac_multi_file in $CONFIG_FILES; do
- case $ac_multi_file in
- */Makefile)
- grep "^MULTI[[^ ]]* =" Makefile >> "$ac_multi_file" ;;
- esac
-done
-],
-srcdir=${srcdir}
-host=${host}
-target=${target}
-with_multisubdir=${with_multisubdir}
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-multi_basedir=${multi_basedir}
-CC="${CC}"
-CXX="${CXX}"
-ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
-)
+if test ${multilib} = yes; then
+ multilib_arg="--enable-multilib"
+else
+ multilib_arg=
+fi
+AC_CONFIG_FILES([scripts/jar], [chmod +x scripts/jar])
AC_OUTPUT
diff --git a/libjava/configure.host b/libjava/configure.host
index 9ce852f3984..b9490511755 100644
--- a/libjava/configure.host
+++ b/libjava/configure.host
@@ -86,6 +86,7 @@ case "${host}" in
arm*-linux*)
libgcj_interpreter=yes
sysdeps_dir=arm
+ fallback_backtrace_h=sysdep/arm/backtrace.h
;;
mips-tx39-*|mipstx39-unknown-*)
libgcj_flags="${libgcj_flags} -G 0"
@@ -97,7 +98,7 @@ case "${host}" in
enable_java_net_default=no
enable_getenv_properties_default=no
;;
- mipsel-*|mips-*)
+ mips*-*)
libgcj_interpreter=yes
;;
i686-*|i586-*|i486-*|i386-*)
@@ -145,6 +146,10 @@ case "${host}" in
libgcj_interpreter=yes
enable_hash_synchronization_default=no
;;
+ m68k-*)
+ sysdeps_dir=m68k
+ libgcj_interpreter=yes
+ ;;
powerpc64*-*)
sysdeps_dir=powerpc
libgcj_interpreter=yes
@@ -201,6 +206,7 @@ case "${host}" in
ia64-* | \
x86_64*-linux* | \
hppa*-linux* | \
+ m68k*-linux* | \
sh-linux* | sh[34]*-linux*)
can_unwind_signal=yes
libgcj_ld_symbolic='-Wl,-Bsymbolic'
@@ -267,15 +273,17 @@ EOF
# disable interpreter, no closure support for N32 and N64 ABIs
libgcj_interpreter=no
;;
+ arm*-linux* )
+ slow_pthread_self=no
+ can_unwind_signal=no
+ CHECKREFSPEC=-fcheck-references
+ DIVIDESPEC=-fuse-divide-subroutine
+ ;;
mips*-*-linux* )
sysdeps_dir=mips
can_unwind_signal=yes
DIVIDESPEC=-fno-use-divide-subroutine
- case "${host}" in
- mipsel*-linux* | mipsisa32el*-linux*)
- enable_hash_synchronization_default=yes
- ;;
- esac
+ enable_hash_synchronization_default=yes
;;
powerpc*-*-darwin*)
enable_hash_synchronization_default=yes
@@ -287,6 +295,17 @@ EOF
slow_pthread_self=
can_unwind_signal=no
;;
+ i?86-*-darwin9*)
+ can_unwind_signal=yes
+ DIVIDESPEC=-f%{m32:no-}%{!m32:%{!m64:no-}}%{m64:}use-divide-subroutine
+ ;;
+ x86_64-*-darwin9*)
+ enable_hash_synchronization_default=yes
+ slow_pthread_self=
+ can_unwind_signal=yes
+ DIVIDESPEC=-fuse-divide-subroutine
+ CHECKREFSPEC=-fcheck-references
+ ;;
*-*-freebsd*)
slow_pthread_self=
;;
@@ -346,7 +365,7 @@ case "${host}" in
esac
case "${host}" in
- *linux*|*-kfreebsd*-gnu)
+ *linux*|*-kfreebsd*-gnu|*-gnu*)
use_libgcj_bc=yes
;;
*)
diff --git a/libjava/darwin.cc b/libjava/darwin.cc
index d427ba7cd19..f6406b37599 100644
--- a/libjava/darwin.cc
+++ b/libjava/darwin.cc
@@ -1,6 +1,6 @@
/* darwin.cc - class loader stuff for Darwin. */
-/* Copyright (C) 2004 Free Software Foundation
+/* Copyright (C) 2004, 2007 Free Software Foundation
This file is part of libgcj.
@@ -21,26 +21,43 @@ details. */
ourself. */
#include <stdint.h>
-struct mach_header;
-extern "C" void _dyld_register_func_for_add_image
- (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
-extern "C" void _dyld_register_func_for_remove_image
- (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
-extern "C" char *getsectdatafromheader
-(const struct mach_header *mhp, const char *segname, const char *sectname,
- uint32_t *size);
+#if !defined (__LP64__)
+ struct mach_header;
+# define JAVA_MACH_HEADER mach_header
+# define mh_size_t uint32_t
+ extern "C" void _dyld_register_func_for_add_image
+ (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
+ extern "C" void _dyld_register_func_for_remove_image
+ (void (*func)(const struct mach_header *mh, intptr_t vmaddr_slide));
+ extern "C" char *getsectdatafromheader
+ (const struct mach_header *mhp, const char *segname, const char *sectname,
+ uint32_t *size);
+# define GETSECTDATA getsectdatafromheader
+#else
+ struct mach_header_64;
+# define JAVA_MACH_HEADER mach_header_64
+# define mh_size_t uint64_t
+ extern "C" void _dyld_register_func_for_add_image
+ (void (*func)(const struct mach_header_64 *mh, intptr_t vmaddr_slide));
+ extern "C" void _dyld_register_func_for_remove_image
+ (void (*func)(const struct mach_header_64 *mh, intptr_t vmaddr_slide));
+ extern "C" char *getsectdatafromheader_64
+ (const struct mach_header_64 *mhp, const char *segname,
+ const char *sectname, uint64_t *size);
+# define GETSECTDATA getsectdatafromheader_64
+#endif
/* When a new image is loaded, look to see if it has a jcr section
and if so register the classes listed in it. */
static void
-darwin_java_register_dyld_add_image_hook (const struct mach_header *mh,
+darwin_java_register_dyld_add_image_hook (const struct JAVA_MACH_HEADER *mh,
intptr_t slide)
{
char *fde;
- uint32_t sz;
+ mh_size_t sz;
- fde = getsectdatafromheader (mh, "__DATA", "jcr", &sz);
+ fde = GETSECTDATA (mh, "__DATA", "jcr", &sz);
if (! fde)
return;
diff --git a/libjava/defineclass.cc b/libjava/defineclass.cc
index 2024fb6440d..3416c468071 100644
--- a/libjava/defineclass.cc
+++ b/libjava/defineclass.cc
@@ -359,6 +359,8 @@ _Jv_DefineClass (jclass klass, jbyteArray data, jint offset, jint length,
#define MINOR_1_4 0
#define MAJOR_1_5 49
#define MINOR_1_5 0
+#define MAJOR_1_6 50
+#define MINOR_1_6 0
void
_Jv_ClassReader::parse ()
@@ -369,10 +371,10 @@ _Jv_ClassReader::parse ()
int minor_version = read2u ();
int major_version = read2u ();
- if (major_version < MAJOR_1_1 || major_version > MAJOR_1_5
- || (major_version == MAJOR_1_5 && minor_version > MINOR_1_5))
+ if (major_version < MAJOR_1_1 || major_version > MAJOR_1_6
+ || (major_version == MAJOR_1_6 && minor_version > MINOR_1_6))
throw_class_format_error ("unrecognized class file version");
- is_15 = (major_version == MAJOR_1_5);
+ is_15 = (major_version >= MAJOR_1_5);
pool_count = read2u ();
diff --git a/libjava/exception.cc b/libjava/exception.cc
index 4875dfde52f..3a8fe46d57d 100644
--- a/libjava/exception.cc
+++ b/libjava/exception.cc
@@ -58,6 +58,21 @@ struct java_exception_header
_Unwind_Exception unwindHeader;
};
+#ifdef __ARM_EABI_UNWINDER__
+// This is the exception class we report -- "GNUCJAVA".
+
+const _Unwind_Exception_Class __gcj_exception_class
+ = {'G', 'N', 'U', 'C', 'J', 'A', 'V', 'A'};
+
+static inline java_exception_header *
+get_exception_header_from_ue (_Unwind_Exception *exc)
+{
+ return reinterpret_cast<java_exception_header *>(exc + 1) - 1;
+}
+
+extern "C" void __cxa_begin_cleanup (_Unwind_Exception*);
+
+#else // !__ARM_EABI_UNWINDER__
// This is the exception class we report -- "GNUCJAVA".
const _Unwind_Exception_Class __gcj_exception_class
= ((((((((_Unwind_Exception_Class) 'G'
@@ -75,6 +90,7 @@ get_exception_header_from_ue (_Unwind_Exception *exc)
{
return reinterpret_cast<java_exception_header *>(exc + 1) - 1;
}
+#endif // !__ARM_EABI_UNWINDER__
/* Perform a throw, Java style. Throw will unwind through this call,
so there better not be any handlers or exception thrown here. */
@@ -89,7 +105,8 @@ _Jv_Throw (jthrowable value)
value = new java::lang::NullPointerException ();
xh->value = value;
- xh->unwindHeader.exception_class = __gcj_exception_class;
+ memcpy (&xh->unwindHeader.exception_class, &__gcj_exception_class,
+ sizeof xh->unwindHeader.exception_class);
xh->unwindHeader.exception_cleanup = NULL;
/* We're happy with setjmp/longjmp exceptions or region-based
@@ -159,6 +176,21 @@ parse_lsda_header (_Unwind_Context *context, const unsigned char *p,
return p;
}
+#ifdef __ARM_EABI_UNWINDER__
+
+static void **
+get_ttype_entry(_Unwind_Context *, lsda_header_info* info, _uleb128_t i)
+{
+ _Unwind_Ptr ptr;
+
+ ptr = (_Unwind_Ptr) (info->TType - (i * 4));
+ ptr = _Unwind_decode_target2(ptr);
+
+ return reinterpret_cast<void **>(ptr);
+}
+
+#else
+
static void **
get_ttype_entry (_Unwind_Context *context, lsda_header_info *info, long i)
{
@@ -170,6 +202,7 @@ get_ttype_entry (_Unwind_Context *context, lsda_header_info *info, long i)
return reinterpret_cast<void **>(ptr);
}
+#endif
// Using a different personality function name causes link failures
// when trying to mix code using different exception handling models.
@@ -180,12 +213,33 @@ get_ttype_entry (_Unwind_Context *context, lsda_header_info *info, long i)
#define PERSONALITY_FUNCTION __gcj_personality_v0
#endif
+#ifdef __ARM_EABI_UNWINDER__
+
+#define CONTINUE_UNWINDING \
+ do \
+ { \
+ if (__gnu_unwind_frame(ue_header, context) != _URC_OK) \
+ return _URC_FAILURE; \
+ return _URC_CONTINUE_UNWIND; \
+ } \
+ while (0)
+
+extern "C" _Unwind_Reason_Code
+PERSONALITY_FUNCTION (_Unwind_State state,
+ struct _Unwind_Exception* ue_header,
+ struct _Unwind_Context* context)
+#else
+
+#define CONTINUE_UNWINDING return _URC_CONTINUE_UNWIND
+
extern "C" _Unwind_Reason_Code
PERSONALITY_FUNCTION (int version,
_Unwind_Action actions,
_Unwind_Exception_Class exception_class,
struct _Unwind_Exception *ue_header,
struct _Unwind_Context *context)
+
+#endif
{
java_exception_header *xh = get_exception_header_from_ue (ue_header);
@@ -197,16 +251,56 @@ PERSONALITY_FUNCTION (int version,
int handler_switch_value;
bool saw_cleanup;
bool saw_handler;
+ bool foreign_exception;
int ip_before_insn = 0;
+#ifdef __ARM_EABI_UNWINDER__
+ _Unwind_Action actions;
+
+ switch (state & _US_ACTION_MASK)
+ {
+ case _US_VIRTUAL_UNWIND_FRAME:
+ actions = _UA_SEARCH_PHASE;
+ break;
+
+ case _US_UNWIND_FRAME_STARTING:
+ actions = _UA_CLEANUP_PHASE;
+ if (!(state & _US_FORCE_UNWIND)
+ && ue_header->barrier_cache.sp == _Unwind_GetGR(context, 13))
+ actions |= _UA_HANDLER_FRAME;
+ break;
+
+ case _US_UNWIND_FRAME_RESUME:
+ CONTINUE_UNWINDING;
+ break;
+
+ default:
+ std::abort();
+ }
+ actions |= state & _US_FORCE_UNWIND;
+
+ // We don't know which runtime we're working with, so can't check this.
+ // However the ABI routines hide this from us, and we don't actually need
+ // to know.
+ foreign_exception = false;
+
+ // The dwarf unwinder assumes the context structure holds things like the
+ // function and LSDA pointers. The ARM implementation caches these in
+ // the exception header (UCB). To avoid rewriting everything we make the
+ // virtual IP register point at the UCB.
+ ip = (_Unwind_Ptr) ue_header;
+ _Unwind_SetGR(context, 12, ip);
+#else
// Interface version check.
if (version != 1)
return _URC_FATAL_PHASE1_ERROR;
+ foreign_exception = exception_class != __gcj_exception_class;
+#endif
// Shortcut for phase 2 found handler for domestic exception.
if (actions == (_UA_CLEANUP_PHASE | _UA_HANDLER_FRAME)
- && exception_class == __gcj_exception_class)
+ && !foreign_exception)
{
handler_switch_value = xh->handlerSwitchValue;
landing_pad = xh->landingPad;
@@ -227,17 +321,17 @@ PERSONALITY_FUNCTION (int version,
// If no LSDA, then there are no handlers or cleanups.
if (! language_specific_data)
- return _URC_CONTINUE_UNWIND;
+ CONTINUE_UNWINDING;
// Parse the LSDA header.
p = parse_lsda_header (context, language_specific_data, &info);
#ifdef HAVE_GETIPINFO
ip = _Unwind_GetIPInfo (context, &ip_before_insn);
- if (! ip_before_insn)
- --ip;
#else
ip = _Unwind_GetIP (context) - 1;
#endif
+ if (! ip_before_insn)
+ --ip;
landing_pad = 0;
action_record = 0;
handler_switch_value = 0;
@@ -296,7 +390,7 @@ PERSONALITY_FUNCTION (int version,
// If ip is not present in the table, C++ would call terminate.
// ??? It is perhaps better to tweek the LSDA so that no-action
// is mapped to no-entry for Java.
- return _URC_CONTINUE_UNWIND;
+ CONTINUE_UNWINDING;
found_something:
saw_cleanup = false;
@@ -334,7 +428,7 @@ PERSONALITY_FUNCTION (int version,
// During forced unwinding, we only run cleanups. With a
// foreign exception class, we have no class info to match.
else if ((actions & _UA_FORCE_UNWIND)
- || exception_class != __gcj_exception_class)
+ || foreign_exception)
;
else if (ar_filter > 0)
@@ -374,15 +468,15 @@ PERSONALITY_FUNCTION (int version,
}
if (! saw_handler && ! saw_cleanup)
- return _URC_CONTINUE_UNWIND;
+ CONTINUE_UNWINDING;
if (actions & _UA_SEARCH_PHASE)
{
if (! saw_handler)
- return _URC_CONTINUE_UNWIND;
+ CONTINUE_UNWINDING;
// For domestic exceptions, we cache data from phase 1 for phase 2.
- if (exception_class == __gcj_exception_class)
+ if (! foreign_exception)
{
xh->handlerSwitchValue = handler_switch_value;
xh->landingPad = landing_pad;
@@ -396,5 +490,9 @@ PERSONALITY_FUNCTION (int version,
_Unwind_SetGR (context, __builtin_eh_return_data_regno (1),
handler_switch_value);
_Unwind_SetIP (context, landing_pad);
+#ifdef __ARM_EABI_UNWINDER__
+ if (saw_cleanup)
+ __cxa_begin_cleanup(ue_header);
+#endif
return _URC_INSTALL_CONTEXT;
}
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index d5966044821..bd3eea05a11 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -42,7 +42,9 @@ DIST_COMMON = $(gcj_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/libgcj-config.h.in \
$(toolgcj_HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
+ $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/confsubdir.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/gxx-include-dir.m4 \
@@ -57,10 +59,11 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../config/tls.m4 \
$(top_srcdir)/../config/unwind_ipinfo.m4 \
- $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
- $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
- $(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \
- $(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \
+ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
+ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/mingwld.m4 \
+ $(top_srcdir)/pkg.m4 $(top_srcdir)/shlibpath.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/include/config.h libgcj-config.h
@@ -150,6 +153,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+INTERPRETER_FALSE = @INTERPRETER_FALSE@
+INTERPRETER_TRUE = @INTERPRETER_TRUE@
JAR = @JAR@
JAVA_HOME = @JAVA_HOME@
JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
@@ -177,6 +182,7 @@ LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
@@ -206,6 +212,8 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SUPPRESS_LIBGCJ_BC_FALSE = @SUPPRESS_LIBGCJ_BC_FALSE@
+SUPPRESS_LIBGCJ_BC_TRUE = @SUPPRESS_LIBGCJ_BC_TRUE@
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
@@ -284,6 +292,8 @@ build_vendor = @build_vendor@
datadir = @datadir@
dbexecdir = @dbexecdir@
exec_prefix = @exec_prefix@
+extra_gij_ldflags = @extra_gij_ldflags@
+extra_ldflags = @extra_ldflags@
extra_ldflags_libjava = @extra_ldflags_libjava@
gxx_include_dir = @gxx_include_dir@
here = @here@
diff --git a/libjava/gij.cc b/libjava/gij.cc
index a3b8529c4c9..c04b1d889a8 100644
--- a/libjava/gij.cc
+++ b/libjava/gij.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2006 Free Software Foundation
+/* Copyright (C) 1999-2007 Free Software Foundation
This file is part of libgcj.
@@ -42,7 +42,7 @@ version ()
{
printf ("java version \"" JV_VERSION "\"\n");
printf ("gij (GNU libgcj) version %s\n\n", __VERSION__);
- printf ("Copyright (C) 2006 Free Software Foundation, Inc.\n");
+ printf ("Copyright (C) 2007 Free Software Foundation, Inc.\n");
printf ("This is free software; see the source for copying conditions. There is NO\n");
printf ("warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n");
}
diff --git a/libjava/gnu/awt/xlib/XCanvasPeer.h b/libjava/gnu/awt/xlib/XCanvasPeer.h
index fb01c06c2e4..509b98e3301 100644
--- a/libjava/gnu/awt/xlib/XCanvasPeer.h
+++ b/libjava/gnu/awt/xlib/XCanvasPeer.h
@@ -65,6 +65,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class gnu::awt::xlib::XCanvasPeer : public ::java::lang::Object
@@ -119,6 +126,7 @@ public:
virtual void hide();
virtual jboolean isFocusable();
virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong);
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
virtual jboolean isObscured();
virtual jboolean canDetermineObscurity();
virtual void coalescePaintEvent(::java::awt::event::PaintEvent *);
diff --git a/libjava/gnu/awt/xlib/XCanvasPeer.java b/libjava/gnu/awt/xlib/XCanvasPeer.java
index 097ad0e47d2..6d1fb67521b 100644
--- a/libjava/gnu/awt/xlib/XCanvasPeer.java
+++ b/libjava/gnu/awt/xlib/XCanvasPeer.java
@@ -44,6 +44,8 @@ import gnu.gcj.xlib.XImage;
import gnu.awt.j2d.*;
+import sun.awt.CausedFocusEvent;
+
public class XCanvasPeer implements CanvasPeer
{
static final Dimension MIN_SIZE = new Dimension(1, 1);
@@ -469,6 +471,13 @@ public class XCanvasPeer implements CanvasPeer
return false;
}
+ public boolean requestFocus (Component source, boolean b1,
+ boolean b2, long x,
+ CausedFocusEvent.Cause cause)
+ {
+ return false;
+ }
+
public boolean isObscured ()
{
return false;
diff --git a/libjava/gnu/awt/xlib/XFontPeer.h b/libjava/gnu/awt/xlib/XFontPeer.h
index 7a7f6b7df1a..b497d06cbb2 100644
--- a/libjava/gnu/awt/xlib/XFontPeer.h
+++ b/libjava/gnu/awt/xlib/XFontPeer.h
@@ -51,7 +51,7 @@ class gnu::awt::xlib::XFontPeer : public ::gnu::java::awt::peer::ClasspathFontPe
public:
XFontPeer(::java::lang::String *, jint);
XFontPeer(::java::lang::String *, jint, jfloat);
- virtual jboolean canDisplay(::java::awt::Font *, jchar);
+ virtual jboolean canDisplay(::java::awt::Font *, jint);
virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint);
virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *);
virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *);
diff --git a/libjava/gnu/awt/xlib/XFontPeer.java b/libjava/gnu/awt/xlib/XFontPeer.java
index 523cc22795f..cd05a11fbc7 100644
--- a/libjava/gnu/awt/xlib/XFontPeer.java
+++ b/libjava/gnu/awt/xlib/XFontPeer.java
@@ -38,7 +38,7 @@ public class XFontPeer extends ClasspathFontPeer
* useful if you are sharing peers between Font objects. Otherwise it may
* be ignored.
*/
- public boolean canDisplay (Font font, char c)
+ public boolean canDisplay (Font font, int c)
{
throw new UnsupportedOperationException ();
}
diff --git a/libjava/gnu/awt/xlib/XFramePeer.h b/libjava/gnu/awt/xlib/XFramePeer.h
index 621d2919d34..1ca28c61a9d 100644
--- a/libjava/gnu/awt/xlib/XFramePeer.h
+++ b/libjava/gnu/awt/xlib/XFramePeer.h
@@ -31,6 +31,7 @@ extern "Java"
{
namespace awt
{
+ class Dialog;
class Frame;
class Image;
class Insets;
@@ -69,8 +70,14 @@ public:
virtual void endLayout();
virtual jboolean isPaintPending();
virtual void setBoundsPrivate(jint, jint, jint, jint);
+ virtual ::java::awt::Rectangle * getBoundsPrivate();
virtual void updateAlwaysOnTop();
virtual jboolean requestWindowFocus();
+ virtual void setAlwaysOnTop(jboolean);
+ virtual void updateFocusableWindowState();
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+ virtual void updateMinimumSize();
+ virtual void updateIconImages();
private:
jboolean __attribute__((aligned(__alignof__( ::gnu::awt::xlib::XCanvasPeer)))) processingConfigureNotify;
public: // actually package-private
diff --git a/libjava/gnu/awt/xlib/XFramePeer.java b/libjava/gnu/awt/xlib/XFramePeer.java
index e7fdc83c7ec..2f9b503afd6 100644
--- a/libjava/gnu/awt/xlib/XFramePeer.java
+++ b/libjava/gnu/awt/xlib/XFramePeer.java
@@ -196,6 +196,14 @@ public class XFramePeer extends XCanvasPeer implements FramePeer
*/
public void setBoundsPrivate (int x, int y, int width, int height)
{
+ // TODO: Implement this.
+ throw new UnsupportedOperationException("Not yet implemented.");
+ }
+
+ public Rectangle getBoundsPrivate()
+ {
+ // TODO: Implement this.
+ throw new UnsupportedOperationException("Not yet implemented.");
}
/**
@@ -212,4 +220,29 @@ public class XFramePeer extends XCanvasPeer implements FramePeer
{
return false;
}
+
+ public void setAlwaysOnTop(boolean alwaysOnTop)
+ {
+ throw new UnsupportedOperationException("not implemented yet");
+ }
+
+ public void updateFocusableWindowState()
+ {
+ throw new UnsupportedOperationException("not implemented yet");
+ }
+
+ public void setModalBlocked(Dialog blocker, boolean blocked)
+ {
+ throw new UnsupportedOperationException("not implemented yet");
+ }
+
+ public void updateMinimumSize()
+ {
+ throw new UnsupportedOperationException("not implemented yet");
+ }
+
+ public void updateIconImages()
+ {
+ throw new UnsupportedOperationException("not implemented yet");
+ }
}
diff --git a/libjava/gnu/awt/xlib/XToolkit.h b/libjava/gnu/awt/xlib/XToolkit.h
index 7bfc61e1349..e4e35dbd226 100644
--- a/libjava/gnu/awt/xlib/XToolkit.h
+++ b/libjava/gnu/awt/xlib/XToolkit.h
@@ -53,6 +53,8 @@ extern "Java"
class Choice;
class Component;
class Dialog;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
class Dimension;
class EventQueue;
class FileDialog;
@@ -196,6 +198,9 @@ public:
virtual jboolean nativeQueueEmpty();
virtual void wakeNativeQueue();
virtual void iterateNativeQueue(::java::awt::EventQueue *, jboolean);
+ virtual void setAlwaysOnTop(jboolean);
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
public: // actually package-private
static ::gnu::awt::xlib::XToolkit * INSTANCE;
::gnu::gcj::xlib::Display * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) display;
diff --git a/libjava/gnu/awt/xlib/XToolkit.java b/libjava/gnu/awt/xlib/XToolkit.java
index 98ef7c162b3..681aad6d2fc 100644
--- a/libjava/gnu/awt/xlib/XToolkit.java
+++ b/libjava/gnu/awt/xlib/XToolkit.java
@@ -480,5 +480,23 @@ public class XToolkit extends ClasspathToolkit
// InterruptedException intentionally ignored
}
}
- };
+ }
+
+ public void setAlwaysOnTop(boolean b)
+ {
+ // TODO: Implement properly.
+ }
+
+ public boolean isModalExclusionTypeSupported
+ (Dialog.ModalExclusionType modalExclusionType)
+ {
+ // TODO: Implement properly.
+ return false;
+ }
+
+ public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+ {
+ // TODO: Implement properly.
+ return false;
+ }
}
diff --git a/libjava/gnu/classpath/natVMStackWalker.cc b/libjava/gnu/classpath/natVMStackWalker.cc
index 1b336cad063..2f068ca9947 100644
--- a/libjava/gnu/classpath/natVMStackWalker.cc
+++ b/libjava/gnu/classpath/natVMStackWalker.cc
@@ -19,6 +19,7 @@ details. */
#include <java/lang/ClassLoader.h>
#include <java/lang/Class.h>
+#ifndef __ARM_EABI_UNWINDER__
// Return the class of the method that contains PC.
// This is a macro not a function, since defining it as one would
// introduce an extra frame on the stack. */
@@ -44,6 +45,11 @@ details. */
\
klass; \
})
+#else // __ARM_EABI_UNWINDER__
+// ARM EABI doesn't support _Unwind_FindEnclosingFunction.
+#define GET_CALLING_CLASS(PC) \
+ (_Jv_StackTrace::GetStackWalkerCallingClass ())
+#endif
JArray<jclass> *
gnu::classpath::VMStackWalker::getClassContext(void)
@@ -59,14 +65,18 @@ jclass
gnu::classpath::VMStackWalker::getCallingClass(void)
{
_Jv_InitClass (&::gnu::classpath::VMStackWalker::class$);
- return _Jv_StackTrace::GetStackWalkerCallingClass ();
+ jclass result = _Jv_StackTrace::GetStackWalkerCallingClass ();
+ __asm__ __volatile__ ("" : : "g" (result));
+ return result;
}
jclass
gnu::classpath::VMStackWalker::getCallingClass(::gnu::gcj::RawData *pc)
{
_Jv_InitClass (&::gnu::classpath::VMStackWalker::class$);
- return GET_CALLING_CLASS(pc);
+ jclass result = GET_CALLING_CLASS(pc);
+ __asm__ __volatile__ ("" : : "g" (result));
+ return result;
}
::java::lang::ClassLoader *
diff --git a/libjava/gnu/java/awt/font/FontDelegate.h b/libjava/gnu/java/awt/font/FontDelegate.h
index a84c93e1c75..add91554510 100644
--- a/libjava/gnu/java/awt/font/FontDelegate.h
+++ b/libjava/gnu/java/awt/font/FontDelegate.h
@@ -55,6 +55,7 @@ public:
virtual ::java::lang::String * getSubFamilyName(::java::util::Locale *) = 0;
virtual ::java::lang::String * getPostScriptName() = 0;
virtual jint getNumGlyphs() = 0;
+ virtual jint getGlyphIndex(jint) = 0;
virtual jint getMissingGlyphCode() = 0;
virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *) = 0;
virtual void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *) = 0;
diff --git a/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h b/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h
index 7d07889c7d6..3fec583d7d5 100644
--- a/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h
+++ b/libjava/gnu/java/awt/font/opentype/OpenTypeFont.h
@@ -88,6 +88,7 @@ private:
public:
jint getGlyph(jint);
::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *);
+ jint getGlyphIndex(jint);
void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *);
::java::awt::geom::GeneralPath * getGlyphOutline(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jint);
::gnu::java::awt::font::opentype::truetype::Zone * getRawGlyphOutline(jint, ::java::awt::geom::AffineTransform *);
diff --git a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
index 48d474bf2a6..03567167734 100644
--- a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
+++ b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
@@ -21,6 +21,7 @@ extern "Java"
{
class AbstractGraphics2D;
class ScanlineConverter;
+ class ScanlineCoverage;
class ShapeCache;
}
}
@@ -176,10 +177,8 @@ public: // actually protected
virtual void rawCopyArea(jint, jint, jint, jint, jint, jint);
private:
void copyAreaImpl(jint, jint, jint, jint, jint, jint);
-public: // actually protected
- virtual void fillScanline(jint, jint, jint);
-private:
- void fillScanlineAA(JArray< jint > *, jint, jint, jint, ::java::awt::PaintContext *, jint);
+public:
+ virtual void renderScanline(jint, ::gnu::java::awt::java2d::ScanlineCoverage *);
public: // actually protected
virtual void init();
virtual ::java::awt::image::WritableRaster * getDestinationRaster();
@@ -191,7 +190,6 @@ private:
::gnu::java::awt::java2d::ShapeCache * getShapeCache();
::gnu::java::awt::java2d::ScanlineConverter * getScanlineConverter();
static ::java::awt::Font * FONT;
- static const jint AA_SAMPLING = 8;
static ::java::lang::ThreadLocal * shapeCache;
static ::java::lang::ThreadLocal * scanlineConverters;
public: // actually protected
@@ -206,8 +204,6 @@ private:
::java::awt::Shape * clip__;
::java::awt::RenderingHints * renderingHints;
::java::awt::image::WritableRaster * destinationRaster;
- JArray< jint > * alpha;
- JArray< ::java::util::ArrayList * > * edgeTable;
jboolean isOptimized;
static ::java::awt::BasicStroke * STANDARD_STROKE;
static ::java::util::HashMap * STANDARD_HINTS;
diff --git a/libjava/gnu/java/awt/java2d/Pixelizer.h b/libjava/gnu/java/awt/java2d/Pixelizer.h
new file mode 100644
index 00000000000..469019ad8c6
--- /dev/null
+++ b/libjava/gnu/java/awt/java2d/Pixelizer.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_Pixelizer__
+#define __gnu_java_awt_java2d_Pixelizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace java2d
+ {
+ class Pixelizer;
+ class ScanlineCoverage;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::awt::java2d::Pixelizer : public ::java::lang::Object
+{
+
+public:
+ virtual void renderScanline(jint, ::gnu::java::awt::java2d::ScanlineCoverage *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __gnu_java_awt_java2d_Pixelizer__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineConverter.h b/libjava/gnu/java/awt/java2d/ScanlineConverter.h
index febf495e451..8ef5369096d 100644
--- a/libjava/gnu/java/awt/java2d/ScanlineConverter.h
+++ b/libjava/gnu/java/awt/java2d/ScanlineConverter.h
@@ -19,11 +19,12 @@ extern "Java"
{
namespace java2d
{
- class AbstractGraphics2D;
class ActiveEdges;
+ class Pixelizer;
class PolyEdge;
class Scanline;
class ScanlineConverter;
+ class ScanlineCoverage;
}
}
}
@@ -32,6 +33,7 @@ extern "Java"
{
namespace awt
{
+ class RenderingHints;
class Shape;
namespace geom
{
@@ -47,10 +49,11 @@ class gnu::java::awt::java2d::ScanlineConverter : public ::java::lang::Object
public: // actually package-private
ScanlineConverter();
- void renderShape(::gnu::java::awt::java2d::AbstractGraphics2D *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint);
+public:
+ void renderShape(::gnu::java::awt::java2d::Pixelizer *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint, ::java::awt::RenderingHints *);
private:
void clear();
- void doScanline(::gnu::java::awt::java2d::AbstractGraphics2D *, jint, jboolean, jboolean);
+ void doScanline(::gnu::java::awt::java2d::Pixelizer *, jint, jboolean, jboolean);
void setResolution(jint);
void setUpperBounds(jint);
void addShape(::java::awt::geom::PathIterator *, jboolean);
@@ -60,6 +63,7 @@ private:
void edgePoolAdd(jint, jint, jint, jint, jboolean);
static jint FIXED_DIGITS;
static jint ONE;
+ static jint Y_RESOLUTION;
jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) numScanlines;
JArray< ::gnu::java::awt::java2d::Scanline * > * scanlines;
jint upperBounds;
@@ -71,6 +75,9 @@ private:
::gnu::java::awt::java2d::PolyEdge * edgePoolLast;
jint minY;
jint maxY;
+ jint minX;
+ jint maxX;
+ ::gnu::java::awt::java2d::ScanlineCoverage * scanlineCoverage;
public: // actually package-private
static jboolean $assertionsDisabled;
public:
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h
new file mode 100644
index 00000000000..0f1a5b788f1
--- /dev/null
+++ b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Coverage__
+#define __gnu_java_awt_java2d_ScanlineCoverage$Coverage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace java2d
+ {
+ class ScanlineCoverage$Coverage;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage$Coverage : public ::java::lang::Object
+{
+
+ ScanlineCoverage$Coverage();
+public:
+ jint getXPos();
+ jint getCoverageDelta();
+ ::java::lang::String * toString();
+ ::java::lang::String * list();
+public: // actually package-private
+ ScanlineCoverage$Coverage(::gnu::java::awt::java2d::ScanlineCoverage$Coverage *);
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xPos;
+ jint covDelta;
+ jint pixelCoverage;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * next;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage$Coverage__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h
new file mode 100644
index 00000000000..2ea741ea44f
--- /dev/null
+++ b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
+#define __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace java2d
+ {
+ class ScanlineCoverage;
+ class ScanlineCoverage$Coverage;
+ class ScanlineCoverage$Iterator;
+ class ScanlineCoverage$Range;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage$Iterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ScanlineCoverage$Iterator(::gnu::java::awt::java2d::ScanlineCoverage *);
+public:
+ ::gnu::java::awt::java2d::ScanlineCoverage$Range * next();
+ jboolean hasNext();
+public: // actually package-private
+ void reset();
+private:
+ ::gnu::java::awt::java2d::ScanlineCoverage$Range * __attribute__((aligned(__alignof__( ::java::lang::Object)))) range;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * currentItem;
+ jint currentCoverage;
+ jboolean handledPixelCoverage;
+public: // actually package-private
+ ::gnu::java::awt::java2d::ScanlineCoverage * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h
new file mode 100644
index 00000000000..5f6ccd6224d
--- /dev/null
+++ b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Range__
+#define __gnu_java_awt_java2d_ScanlineCoverage$Range__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace java2d
+ {
+ class ScanlineCoverage$Range;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage$Range : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ScanlineCoverage$Range();
+ void setXPos(jint);
+public:
+ jint getXPos();
+public: // actually package-private
+ void setLength(jint);
+public:
+ jint getLength();
+ jint getXPosEnd();
+public: // actually package-private
+ void setCoverage(jint);
+public:
+ jint getCoverage();
+ ::java::lang::String * toString();
+public: // actually package-private
+ static jint access$0(::gnu::java::awt::java2d::ScanlineCoverage$Range *);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xPos;
+ jint length;
+ jint coverage;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage$Range__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage.h
new file mode 100644
index 00000000000..46d9ae8997f
--- /dev/null
+++ b/libjava/gnu/java/awt/java2d/ScanlineCoverage.h
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage__
+#define __gnu_java_awt_java2d_ScanlineCoverage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace java2d
+ {
+ class ScanlineCoverage;
+ class ScanlineCoverage$Coverage;
+ class ScanlineCoverage$Iterator;
+ }
+ }
+ }
+ }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage : public ::java::lang::Object
+{
+
+public:
+ ScanlineCoverage();
+ void rewind();
+ void clear();
+ void add(jint, jint, jint);
+ jint getMaxCoverage();
+public: // actually package-private
+ void setMaxCoverage(jint);
+public:
+ jint getMaxX();
+ jint getMinX();
+private:
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * findOrInsert(jint);
+public:
+ ::gnu::java::awt::java2d::ScanlineCoverage$Iterator * iterate();
+ jboolean isEmpty();
+public: // actually package-private
+ static ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * access$0(::gnu::java::awt::java2d::ScanlineCoverage *);
+ static ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * access$1(::gnu::java::awt::java2d::ScanlineCoverage *);
+private:
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) head;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * current;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * currentPrev;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * last;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * lastPrev;
+ jint minX;
+ jint maxX;
+ jint maxCoverage;
+ ::gnu::java::awt::java2d::ScanlineCoverage$Iterator * iterator;
+public: // actually package-private
+ static jboolean $assertionsDisabled;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage__
diff --git a/libjava/gnu/java/awt/java2d/ShapeCache.h b/libjava/gnu/java/awt/java2d/ShapeCache.h
index ac7f3dacdba..1ae8ffdac3e 100644
--- a/libjava/gnu/java/awt/java2d/ShapeCache.h
+++ b/libjava/gnu/java/awt/java2d/ShapeCache.h
@@ -32,6 +32,7 @@ extern "Java"
{
class Arc2D;
class Ellipse2D;
+ class GeneralPath;
class Line2D;
class RoundRectangle2D;
}
@@ -50,6 +51,7 @@ public:
::java::awt::geom::Ellipse2D * ellipse;
::java::awt::geom::Arc2D * arc;
::java::awt::Polygon * polygon;
+ ::java::awt::geom::GeneralPath * polyline;
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/ClasspathFontPeer.h b/libjava/gnu/java/awt/peer/ClasspathFontPeer.h
index 2752664c8fc..18ab58c6851 100644
--- a/libjava/gnu/java/awt/peer/ClasspathFontPeer.h
+++ b/libjava/gnu/java/awt/peer/ClasspathFontPeer.h
@@ -95,7 +95,7 @@ public:
virtual jboolean isTransformed(::java::awt::Font *);
virtual jfloat getItalicAngle(::java::awt::Font *);
virtual jint getStyle(::java::awt::Font *);
- virtual jboolean canDisplay(::java::awt::Font *, jchar) = 0;
+ virtual jboolean canDisplay(::java::awt::Font *, jint) = 0;
virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint) = 0;
virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *) = 0;
virtual ::java::lang::String * getPostScriptName(::java::awt::Font *) = 0;
diff --git a/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h b/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h
index 53715c43b5a..89b4c8b06d7 100644
--- a/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h
+++ b/libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h
@@ -32,6 +32,7 @@ extern "Java"
class Color;
class Component;
class Cursor;
+ class Dialog;
class Dimension;
class Font;
class FontMetrics;
@@ -60,6 +61,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class gnu::java::awt::peer::EmbeddedWindowPeer : public ::java::lang::Object
@@ -76,10 +84,16 @@ public:
virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
virtual jboolean isRestackSupported() = 0;
virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
virtual void toBack() = 0;
virtual void toFront() = 0;
virtual void updateAlwaysOnTop() = 0;
virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
virtual ::java::awt::Insets * insets() = 0;
virtual ::java::awt::Insets * getInsets() = 0;
virtual void beginValidate() = 0;
@@ -140,6 +154,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/gnu/java/awt/peer/GLightweightPeer.h b/libjava/gnu/java/awt/peer/GLightweightPeer.h
index d9e6e58e6b1..ecf0b46533b 100644
--- a/libjava/gnu/java/awt/peer/GLightweightPeer.h
+++ b/libjava/gnu/java/awt/peer/GLightweightPeer.h
@@ -59,6 +59,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class gnu::java::awt::peer::GLightweightPeer : public ::java::lang::Object
@@ -127,6 +134,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint);
virtual jboolean isReparentSupported();
virtual void layout();
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h b/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
index 47b452ee712..f782b9cbd61 100644
--- a/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
+++ b/libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
@@ -91,6 +91,9 @@ public:
virtual ::java::awt::geom::Point2D * getGlyphPosition(jint);
virtual JArray< jfloat > * getGlyphPositions(jint, jint, JArray< jfloat > *);
virtual ::java::awt::geom::AffineTransform * getGlyphTransform(jint);
+public: // actually protected
+ virtual jboolean hasTransforms();
+public:
virtual ::java::awt::Shape * getGlyphVisualBounds(jint);
virtual ::java::awt::geom::Rectangle2D * getLogicalBounds();
virtual jint getNumGlyphs();
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h
index d7168b27bcf..ebfdd2c96f9 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace gnu
{
+ namespace classpath
+ {
+ class Pointer;
+ }
namespace java
{
namespace awt
@@ -93,7 +97,7 @@ public:
private:
::java::lang::String * getName(jint, ::java::util::Locale *);
public:
- virtual jboolean canDisplay(::java::awt::Font *, jchar);
+ virtual jboolean canDisplay(::java::awt::Font *, jint);
virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint);
virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *);
virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *);
@@ -135,6 +139,7 @@ public: // actually package-private
::gnu::java::awt::peer::gtk::GdkFontPeer$GdkFontMetrics * metrics;
private:
::java::nio::ByteBuffer * nameTable;
+ ::gnu::classpath::Pointer * nativeFont;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
index 49586fc08b1..978c2ec506b 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
+++ b/libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace gnu
{
+ namespace classpath
+ {
+ class Pointer;
+ }
namespace java
{
namespace awt
@@ -23,6 +27,7 @@ extern "Java"
{
class GdkGraphicsEnvironment;
class GdkScreenGraphicsDevice;
+ class GtkWindowPeer;
}
}
}
@@ -49,8 +54,7 @@ extern "Java"
class gnu::java::awt::peer::gtk::GdkGraphicsEnvironment : public ::gnu::java::awt::ClasspathGraphicsEnvironment
{
-public: // actually package-private
- static void initStaticState();
+ static void initIDs();
public:
GdkGraphicsEnvironment();
public: // actually package-private
@@ -74,12 +78,14 @@ public:
virtual JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *);
public: // actually package-private
virtual JArray< jint > * getMouseCoordinates();
+ virtual jboolean isWindowUnderMouse(::gnu::java::awt::peer::gtk::GtkWindowPeer *);
public:
virtual ::java::awt::image::WritableRaster * createRaster(::java::awt::image::ColorModel *, ::java::awt::image::SampleModel *);
private:
jint __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathGraphicsEnvironment)))) native_state;
::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * defaultDevice;
JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * > * devices;
+ ::gnu::classpath::Pointer * display;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h
index 8f7066551cb..1c5fa79395e 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h
+++ b/libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace gnu
{
+ namespace classpath
+ {
+ class Pointer;
+ }
namespace java
{
namespace awt
@@ -96,6 +100,9 @@ private:
jboolean needsClose;
public: // actually package-private
::java::util::Vector * curr;
+private:
+ ::gnu::classpath::Pointer * nativeDecoder;
+public: // actually package-private
static ::java::awt::image::ColorModel * cm;
static ::java::util::ArrayList * imageFormatSpecs;
private:
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h b/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h
index d961df32f29..24c6a853c35 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h
@@ -60,6 +60,7 @@ public: // actually package-private
public:
virtual jint getRGBPixel(jint, jint);
virtual JArray< jint > * getRGBPixels(::java::awt::Rectangle *);
+ virtual void dispose();
public: // actually package-private
static ::java::awt::image::ColorModel * cm;
public:
diff --git a/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h
index 30c165f6e7e..ff0362b99a2 100644
--- a/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h
+++ b/libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace gnu
{
+ namespace classpath
+ {
+ class Pointer;
+ }
namespace java
{
namespace awt
@@ -46,7 +50,7 @@ class gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice : public ::java::awt::G
{
public: // actually package-private
- static void initStaticState();
+ static void initIDs();
GdkScreenGraphicsDevice(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *);
virtual void init();
virtual ::java::awt::DisplayMode * nativeGetFixedDisplayMode(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *);
@@ -90,6 +94,8 @@ public: // actually package-private
::java::lang::String * idString;
JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice$X11DisplayMode * > * displayModes;
::java::awt::DisplayMode * fixedDisplayMode;
+private:
+ ::gnu::classpath::Pointer * screen;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h
index d29f0366f40..fa35e2ad70b 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h
@@ -67,6 +67,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class gnu::java::awt::peer::gtk::GtkComponentPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer
@@ -182,6 +189,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint);
virtual jboolean isReparentSupported();
virtual void layout();
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
public: // actually package-private
::java::awt::image::VolatileImage * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkGenericPeer)))) backBuffer;
::java::awt::BufferCapabilities * caps;
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h b/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h
index c136fa917ca..2c8ea0ee3f0 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h
@@ -80,6 +80,7 @@ public:
virtual void setMaximizedBounds(::java::awt::Rectangle *);
virtual void setBoundsPrivate(jint, jint, jint, jint);
virtual jboolean requestWindowFocus();
+ virtual ::java::awt::Rectangle * getBoundsPrivate();
private:
jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkWindowPeer)))) menuBarHeight;
::java::awt::peer::MenuBarPeer * menuBar;
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h
index 6c9c87dc1ef..ffb135bac0d 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h
@@ -11,6 +11,10 @@ extern "Java"
{
namespace gnu
{
+ namespace classpath
+ {
+ class Pointer;
+ }
namespace java
{
namespace awt
@@ -38,6 +42,7 @@ extern "Java"
class gnu::java::awt::peer::gtk::GtkGenericPeer : public ::java::lang::Object
{
+ static void initIDs();
public:
virtual void dispose();
public: // actually package-private
@@ -57,6 +62,9 @@ private:
static jint next_native_state;
public: // actually protected
::java::lang::Object * awtWidget;
+private:
+ ::gnu::classpath::Pointer * widget;
+ ::gnu::classpath::Pointer * globalRef;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h
index 66b3fcbaad4..c562e059e04 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h
+++ b/libjava/gnu/java/awt/peer/gtk/GtkToolkit.h
@@ -44,6 +44,8 @@ extern "Java"
class Component;
class Cursor;
class Dialog;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
class Dimension;
class EventQueue;
class FileDialog;
@@ -144,6 +146,10 @@ public: // actually package-private
static void gtkInit(jint, ::java::lang::Object *);
static void gtkMain();
static void gtkQuit();
+private:
+ static void initIDs();
+public: // actually package-private
+ static void initializeGlobalIDs();
public:
GtkToolkit();
virtual void beep();
@@ -228,10 +234,13 @@ private:
void checkHeadless();
public:
virtual jint getMouseNumberOfButtons();
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
public: // actually package-private
static ::java::lang::Object * GTK_LOCK;
private:
static ::java::awt::EventQueue * q;
+ static jboolean initializedGlobalIDs;
::gnu::java::awt::peer::gtk::GtkToolkit$LRUCache * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) fontCache;
::gnu::java::awt::peer::gtk::GtkToolkit$LRUCache * imageCache;
public:
diff --git a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
index da0c32556ae..a40f4168d2b 100644
--- a/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
+++ b/libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
@@ -30,7 +30,9 @@ extern "Java"
namespace awt
{
class Component;
+ class Dialog;
class Graphics;
+ class Point;
class Rectangle;
class Window;
}
@@ -100,7 +102,13 @@ public:
public: // actually protected
virtual void postMouseEvent(jint, jlong, jint, jint, jint, jint, jboolean);
public:
+ virtual ::java::awt::Point * getLocationOnScreen();
virtual ::java::awt::Rectangle * getBounds();
+ virtual void updateIconImages();
+ virtual void updateMinimumSize();
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+ virtual void updateFocusableWindowState();
+ virtual void setAlwaysOnTop(jboolean);
public: // actually protected
static const jint GDK_WINDOW_TYPE_HINT_NORMAL = 0;
static const jint GDK_WINDOW_TYPE_HINT_DIALOG = 1;
diff --git a/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h b/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h
index d7a72173ef2..657b32333a3 100644
--- a/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h
+++ b/libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h
@@ -41,6 +41,8 @@ extern "Java"
class CheckboxMenuItem;
class Choice;
class Dialog;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
class Dimension;
class EventQueue;
class FileDialog;
@@ -179,6 +181,8 @@ public:
virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *);
virtual ::gnu::java::awt::peer::ClasspathFontPeer * getClasspathFontPeer(::java::lang::String *, ::java::util::Map *);
virtual ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment();
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
private:
::gnu::java::awt::peer::headless::HeadlessGraphicsEnvironment * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) graphicsEnv;
public:
diff --git a/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h b/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h
index f596e809c2a..4688b8e3f24 100644
--- a/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h
+++ b/libjava/gnu/java/awt/peer/qt/QtComponentPeer.h
@@ -65,6 +65,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class gnu::java::awt::peer::qt::QtComponentPeer : public ::gnu::java::awt::peer::qt::NativeWrapper
@@ -168,6 +175,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint);
virtual jboolean isReparentSupported();
virtual void layout();
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
public: // actually protected
static const jint POPUP_TRIGGER = 3;
::gnu::java::awt::peer::qt::QtToolkit * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::NativeWrapper)))) toolkit;
diff --git a/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h b/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h
index a0655f2111f..fcb30d235be 100644
--- a/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h
+++ b/libjava/gnu/java/awt/peer/qt/QtFontMetrics.h
@@ -59,7 +59,7 @@ private:
void dispose();
public: // actually package-private
virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *);
- virtual jboolean canDisplay(jchar);
+ virtual jboolean canDisplay(jint);
public:
virtual jint getAscent();
virtual jint getDescent();
diff --git a/libjava/gnu/java/awt/peer/qt/QtFontPeer.h b/libjava/gnu/java/awt/peer/qt/QtFontPeer.h
index 11ca6ccf6c6..0daebcc135e 100644
--- a/libjava/gnu/java/awt/peer/qt/QtFontPeer.h
+++ b/libjava/gnu/java/awt/peer/qt/QtFontPeer.h
@@ -64,7 +64,7 @@ private:
void create(::java::lang::String *, jint, jint);
public:
virtual void dispose();
- virtual jboolean canDisplay(::java::awt::Font *, jchar);
+ virtual jboolean canDisplay(::java::awt::Font *, jint);
virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint);
virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *);
virtual ::java::lang::String * getPostScriptName(::java::awt::Font *);
diff --git a/libjava/gnu/java/awt/peer/qt/QtFramePeer.h b/libjava/gnu/java/awt/peer/qt/QtFramePeer.h
index 1b0f39e68d5..a89557c6011 100644
--- a/libjava/gnu/java/awt/peer/qt/QtFramePeer.h
+++ b/libjava/gnu/java/awt/peer/qt/QtFramePeer.h
@@ -66,6 +66,7 @@ public:
virtual void setBoundsPrivate(jint, jint, jint, jint);
virtual void updateAlwaysOnTop();
virtual jboolean requestWindowFocus();
+ virtual ::java::awt::Rectangle * getBoundsPrivate();
private:
jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtWindowPeer)))) theState;
public: // actually package-private
diff --git a/libjava/gnu/java/awt/peer/qt/QtToolkit.h b/libjava/gnu/java/awt/peer/qt/QtToolkit.h
index 471794be6c9..319318ac5ff 100644
--- a/libjava/gnu/java/awt/peer/qt/QtToolkit.h
+++ b/libjava/gnu/java/awt/peer/qt/QtToolkit.h
@@ -43,6 +43,8 @@ extern "Java"
class CheckboxMenuItem;
class Choice;
class Dialog;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
class Dimension;
class EventQueue;
class FileDialog;
@@ -193,6 +195,8 @@ public:
virtual ::java::awt::Font * createFont(jint, ::java::io::InputStream *);
virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *);
virtual ::gnu::java::awt::peer::EmbeddedWindowPeer * createEmbeddedWindow(::gnu::java::awt::EmbeddedWindow *);
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
static ::java::awt::EventQueue * eventQueue;
static ::gnu::java::awt::peer::qt::QtRepaintThread * repaintThread;
static ::gnu::java::awt::peer::qt::MainQtThread * guiThread;
diff --git a/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h b/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h
index e451e3c6027..9e5a1474f2d 100644
--- a/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h
+++ b/libjava/gnu/java/awt/peer/qt/QtWindowPeer.h
@@ -31,6 +31,7 @@ extern "Java"
namespace awt
{
class Component;
+ class Dialog;
}
}
}
@@ -49,6 +50,11 @@ public:
virtual void setTitle(::java::lang::String *);
virtual void updateAlwaysOnTop();
virtual jboolean requestWindowFocus();
+ virtual void updateIconImages();
+ virtual void updateMinimumSize();
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+ virtual void updateFocusableWindowState();
+ virtual void setAlwaysOnTop(jboolean);
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h
index 1bc372511eb..ffaa2b6cdc2 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h
@@ -37,6 +37,7 @@ extern "Java"
class Point;
namespace event
{
+ class FocusEvent;
class KeyEvent;
class MouseEvent;
}
@@ -66,6 +67,9 @@ public:
virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
virtual ::java::awt::Container * getParent();
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
+ virtual void requestFocus();
+ virtual jboolean requestFocus(jboolean);
public: // actually package-private
::java::awt::Button * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) button;
::gnu::java::awt::peer::swing::SwingButtonPeer * this$0;
diff --git a/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h
new file mode 100644
index 00000000000..d50fe669995
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckbox__
+#define __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckbox__
+
+#pragma interface
+
+#include <javax/swing/JCheckBox.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ namespace swing
+ {
+ class SwingCheckboxPeer;
+ class SwingCheckboxPeer$SwingCheckbox;
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Checkbox;
+ class Container;
+ class Graphics;
+ class Image;
+ class Point;
+ namespace event
+ {
+ class FocusEvent;
+ class KeyEvent;
+ class MouseEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace swing
+ {
+ class JComponent;
+ }
+ }
+}
+
+class gnu::java::awt::peer::swing::SwingCheckboxPeer$SwingCheckbox : public ::javax::swing::JCheckBox
+{
+
+public: // actually package-private
+ SwingCheckboxPeer$SwingCheckbox(::gnu::java::awt::peer::swing::SwingCheckboxPeer *, ::java::awt::Checkbox *);
+public:
+ virtual ::javax::swing::JComponent * getJComponent();
+ virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
+ virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
+ virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual jboolean isShowing();
+ virtual ::java::awt::Image * createImage(jint, jint);
+ virtual ::java::awt::Graphics * getGraphics();
+ virtual ::java::awt::Container * getParent();
+ virtual void requestFocus();
+ virtual jboolean requestFocus(jboolean);
+public: // actually package-private
+ ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::javax::swing::JCheckBox)))) checkbox;
+ ::gnu::java::awt::peer::swing::SwingCheckboxPeer * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckbox__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h
new file mode 100644
index 00000000000..71517aeb338
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckboxListener__
+#define __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckboxListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ namespace swing
+ {
+ class SwingCheckboxPeer;
+ class SwingCheckboxPeer$SwingCheckboxListener;
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Checkbox;
+ namespace event
+ {
+ class ItemEvent;
+ }
+ }
+ }
+}
+
+class gnu::java::awt::peer::swing::SwingCheckboxPeer$SwingCheckboxListener : public ::java::lang::Object
+{
+
+public: // actually package-private
+ SwingCheckboxPeer$SwingCheckboxListener(::gnu::java::awt::peer::swing::SwingCheckboxPeer *, ::java::awt::Checkbox *);
+public:
+ virtual void itemStateChanged(::java::awt::event::ItemEvent *);
+public: // actually package-private
+ ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtCheckbox;
+ ::gnu::java::awt::peer::swing::SwingCheckboxPeer * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckboxListener__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h
new file mode 100644
index 00000000000..bceaa2168ed
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingCheckboxPeer__
+#define __gnu_java_awt_peer_swing_SwingCheckboxPeer__
+
+#pragma interface
+
+#include <gnu/java/awt/peer/swing/SwingComponentPeer.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ namespace swing
+ {
+ class SwingCheckboxPeer;
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Checkbox;
+ class CheckboxGroup;
+ }
+ }
+}
+
+class gnu::java::awt::peer::swing::SwingCheckboxPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer
+{
+
+public:
+ SwingCheckboxPeer(::java::awt::Checkbox *);
+ virtual void setCheckboxGroup(::java::awt::CheckboxGroup *);
+ virtual void setLabel(::java::lang::String *);
+ virtual void setState(jboolean);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingCheckboxPeer__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingComponent.h b/libjava/gnu/java/awt/peer/swing/SwingComponent.h
index b9777c2b13f..619a05e36d2 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingComponent.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingComponent.h
@@ -31,6 +31,7 @@ extern "Java"
{
namespace event
{
+ class FocusEvent;
class KeyEvent;
class MouseEvent;
}
@@ -53,6 +54,7 @@ public:
virtual void handleMouseEvent(::java::awt::event::MouseEvent *) = 0;
virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *) = 0;
virtual void handleKeyEvent(::java::awt::event::KeyEvent *) = 0;
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h b/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h
index af2d715d6b6..54549687881 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h
@@ -47,6 +47,7 @@ extern "Java"
class Toolkit;
namespace event
{
+ class FocusEvent;
class KeyEvent;
class MouseEvent;
class PaintEvent;
@@ -64,6 +65,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class gnu::java::awt::peer::swing::SwingComponentPeer : public ::java::lang::Object
@@ -130,8 +138,10 @@ public: // actually protected
virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
public:
virtual ::java::awt::Component * getComponent();
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
public: // actually protected
::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtComponent;
::gnu::java::awt::peer::swing::SwingComponent * swingComponent;
diff --git a/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h b/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h
index 40d783975bb..a3895c08c43 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h
@@ -7,6 +7,8 @@
#pragma interface
#include <gnu/java/awt/peer/swing/SwingComponentPeer.h>
+#include <gcj/array.h>
+
extern "Java"
{
namespace gnu
@@ -48,9 +50,10 @@ class gnu::java::awt::peer::swing::SwingContainerPeer : public ::gnu::java::awt:
public:
SwingContainerPeer(::java::awt::Container *);
-public: // actually package-private
+public: // actually protected
virtual void addHeavyweightDescendent(::java::awt::Component *);
virtual void removeHeavyweightDescendent(::java::awt::Component *);
+ virtual JArray< ::java::awt::Component * > * getHeavyweightDescendents();
public:
virtual ::java::awt::Insets * insets();
virtual ::java::awt::Insets * getInsets();
diff --git a/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h b/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h
index 2822fccb36f..e09ee5d1dd8 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingFramePeer.h
@@ -68,6 +68,7 @@ public:
virtual void setState(jint) = 0;
virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
public: // actually package-private
::gnu::java::awt::peer::swing::SwingMenuBarPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingWindowPeer)))) menuBar;
public:
diff --git a/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h b/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h
index bc9eb617f78..561c8102fcb 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h
@@ -37,6 +37,7 @@ extern "Java"
class Point;
namespace event
{
+ class FocusEvent;
class KeyEvent;
class MouseEvent;
}
@@ -61,6 +62,7 @@ public:
virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
virtual ::java::awt::Point * getLocationOnScreen();
virtual jboolean isShowing();
virtual ::java::awt::Image * createImage(jint, jint);
diff --git a/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h b/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h
index 507e1e942b9..76b8b759b7a 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h
@@ -37,6 +37,7 @@ extern "Java"
class Point;
namespace event
{
+ class FocusEvent;
class KeyEvent;
class MouseEvent;
}
@@ -62,6 +63,7 @@ public:
virtual jboolean isLightweight();
virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
virtual ::java::awt::Point * getLocationOnScreen();
virtual jboolean isShowing();
virtual ::java::awt::Image * createImage(jint, jint);
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h
new file mode 100644
index 00000000000..1735bf07e77
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingTextAreaPeer$1__
+#define __gnu_java_awt_peer_swing_SwingTextAreaPeer$1__
+
+#pragma interface
+
+#include <javax/swing/JViewport.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ namespace swing
+ {
+ class SwingTextAreaPeer;
+ class SwingTextAreaPeer$1;
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Image;
+ }
+ }
+}
+
+class gnu::java::awt::peer::swing::SwingTextAreaPeer$1 : public ::javax::swing::JViewport
+{
+
+public: // actually package-private
+ SwingTextAreaPeer$1(::gnu::java::awt::peer::swing::SwingTextAreaPeer *);
+public:
+ ::java::awt::Image * createImage(jint, jint);
+public: // actually package-private
+ ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JViewport)))) this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingTextAreaPeer$1__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h
new file mode 100644
index 00000000000..040c7f01753
--- /dev/null
+++ b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h
@@ -0,0 +1,81 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingScrollPane__
+#define __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingScrollPane__
+
+#pragma interface
+
+#include <javax/swing/JScrollPane.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace awt
+ {
+ namespace peer
+ {
+ namespace swing
+ {
+ class SwingTextAreaPeer;
+ class SwingTextAreaPeer$SwingScrollPane;
+ class SwingTextAreaPeer$SwingTextArea;
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Container;
+ class Graphics;
+ class Image;
+ class Point;
+ namespace event
+ {
+ class FocusEvent;
+ class KeyEvent;
+ class MouseEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace swing
+ {
+ class JComponent;
+ }
+ }
+}
+
+class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingScrollPane : public ::javax::swing::JScrollPane
+{
+
+public: // actually package-private
+ SwingTextAreaPeer$SwingScrollPane(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea *);
+public:
+ virtual ::javax::swing::JComponent * getJComponent();
+ virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
+ virtual jboolean isLightweight();
+ virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
+ virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual jboolean isShowing();
+ virtual ::java::awt::Image * createImage(jint, jint);
+ virtual ::java::awt::Graphics * getGraphics();
+ virtual ::java::awt::Container * getParent();
+ virtual void requestFocus();
+ virtual jboolean requestFocus(jboolean);
+public: // actually package-private
+ ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea * __attribute__((aligned(__alignof__( ::javax::swing::JScrollPane)))) textArea;
+ ::gnu::java::awt::peer::swing::SwingTextAreaPeer * this$0;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingScrollPane__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h
index 6b283b69ef0..fe39275bb55 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h
@@ -6,7 +6,7 @@
#pragma interface
-#include <javax/swing/JScrollPane.h>
+#include <javax/swing/JTextArea.h>
extern "Java"
{
namespace gnu
@@ -30,45 +30,41 @@ extern "Java"
{
namespace awt
{
- class Component;
- class Container;
- class Graphics;
- class Image;
- class Point;
namespace event
{
+ class ComponentEvent;
+ class FocusEvent;
+ class HierarchyEvent;
+ class InputMethodEvent;
class KeyEvent;
class MouseEvent;
+ class MouseWheelEvent;
}
}
}
- namespace javax
- {
- namespace swing
- {
- class JComponent;
- }
- }
}
-class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea : public ::javax::swing::JScrollPane
+class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea : public ::javax::swing::JTextArea
{
-public: // actually package-private
- SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::java::awt::Component *);
+ SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *);
+public: // actually protected
+ virtual void processComponentKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void processMouseMotionEvent(::java::awt::event::MouseEvent *);
+ virtual void processComponentEvent(::java::awt::event::ComponentEvent *);
+ virtual void processFocusEvent(::java::awt::event::FocusEvent *);
+ virtual void processHierarchyBoundsEvent(::java::awt::event::HierarchyEvent *);
+ virtual void processHierarchyEvent(::java::awt::event::HierarchyEvent *);
+ virtual void processInputMethodEvent(::java::awt::event::InputMethodEvent *);
+ virtual void processMouseEvent(::java::awt::event::MouseEvent *);
+ virtual void processMouseWheelEvent(::java::awt::event::MouseWheelEvent *);
+ virtual void processKeyEvent(::java::awt::event::KeyEvent *);
public:
- virtual ::javax::swing::JComponent * getJComponent();
- virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
- virtual jboolean isLightweight();
- virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
- virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
- virtual ::java::awt::Point * getLocationOnScreen();
- virtual jboolean isShowing();
- virtual ::java::awt::Image * createImage(jint, jint);
- virtual ::java::awt::Graphics * getGraphics();
- virtual ::java::awt::Container * getParent();
+ virtual void requestFocus();
+ virtual jboolean requestFocus(jboolean);
public: // actually package-private
- ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JScrollPane)))) this$0;
+ SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea *);
+ ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JTextArea)))) this$0;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h
index a9d4b8f60f8..2e58f536a46 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h
@@ -20,6 +20,7 @@ extern "Java"
namespace swing
{
class SwingTextAreaPeer;
+ class SwingTextAreaPeer$SwingTextArea;
}
}
}
@@ -38,13 +39,6 @@ extern "Java"
}
}
}
- namespace javax
- {
- namespace swing
- {
- class JTextArea;
- }
- }
}
class gnu::java::awt::peer::swing::SwingTextAreaPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer
@@ -56,6 +50,8 @@ public:
virtual ::java::awt::Dimension * getPreferredSize(jint, jint);
virtual void insert(::java::lang::String *, jint);
virtual void insertText(::java::lang::String *, jint);
+ virtual ::java::awt::Dimension * minimumSize();
+ virtual ::java::awt::Dimension * preferredSize();
virtual ::java::awt::Dimension * minimumSize(jint, jint);
virtual ::java::awt::Dimension * preferredSize(jint, jint);
virtual void replaceRange(::java::lang::String *, jint, jint);
@@ -72,8 +68,9 @@ public:
virtual void setCaretPosition(jint);
virtual void setEditable(jboolean);
virtual void setText(::java::lang::String *);
+ virtual void reshape(jint, jint, jint, jint);
private:
- ::javax::swing::JTextArea * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) jTextArea;
+ ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) jTextArea;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h b/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h
index 08ac1387f7f..3a46f671956 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h
@@ -37,6 +37,7 @@ extern "Java"
class TextField;
namespace event
{
+ class FocusEvent;
class KeyEvent;
class MouseEvent;
}
@@ -64,8 +65,11 @@ public:
virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+ virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
virtual ::java::awt::Container * getParent();
virtual ::java::awt::Graphics * getGraphics();
+ virtual void requestFocus();
+ virtual jboolean requestFocus(jboolean);
public: // actually package-private
::java::awt::TextField * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) textField;
::gnu::java::awt::peer::swing::SwingTextFieldPeer * this$0;
diff --git a/libjava/gnu/java/awt/peer/swing/SwingToolkit.h b/libjava/gnu/java/awt/peer/swing/SwingToolkit.h
index c84bfe992c5..9572f3f7657 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingToolkit.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingToolkit.h
@@ -31,6 +31,8 @@ extern "Java"
{
class Button;
class Canvas;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
class Label;
class Menu;
class MenuBar;
@@ -67,6 +69,8 @@ public: // actually protected
virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *);
virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *);
public:
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h b/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h
index ce4e987158b..c4fc73fda58 100644
--- a/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h
+++ b/libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h
@@ -29,6 +29,7 @@ extern "Java"
{
namespace awt
{
+ class Dialog;
class Window;
}
}
@@ -39,6 +40,11 @@ class gnu::java::awt::peer::swing::SwingWindowPeer : public ::gnu::java::awt::pe
public:
SwingWindowPeer(::java::awt::Window *);
+ virtual void updateIconImages();
+ virtual void updateMinimumSize();
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+ virtual void updateFocusableWindowState();
+ virtual void setAlwaysOnTop(jboolean);
virtual void toBack() = 0;
virtual void toFront() = 0;
virtual void updateAlwaysOnTop() = 0;
diff --git a/libjava/gnu/java/math/Fixed.h b/libjava/gnu/java/math/Fixed.h
index 92c1c55585f..18f522e9c6f 100644
--- a/libjava/gnu/java/math/Fixed.h
+++ b/libjava/gnu/java/math/Fixed.h
@@ -30,6 +30,7 @@ public:
static jint mul(jint, jint, jint);
static jint ceil(jint, jint);
static jint floor(jint, jint);
+ static jint trunc(jint, jint);
static jint round(jint, jint);
static jfloat floatValue(jint, jint);
static jdouble doubleValue(jint, jint);
diff --git a/libjava/gnu/javax/sound/AudioSecurityManager$Permission.h b/libjava/gnu/javax/sound/AudioSecurityManager$Permission.h
new file mode 100644
index 00000000000..d8f35360919
--- /dev/null
+++ b/libjava/gnu/javax/sound/AudioSecurityManager$Permission.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_AudioSecurityManager$Permission__
+#define __gnu_javax_sound_AudioSecurityManager$Permission__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ class AudioSecurityManager$Permission;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::AudioSecurityManager$Permission : public ::java::lang::Enum
+{
+
+ AudioSecurityManager$Permission(::java::lang::String *, jint);
+public:
+ static JArray< ::gnu::javax::sound::AudioSecurityManager$Permission * > * values();
+ static ::gnu::javax::sound::AudioSecurityManager$Permission * valueOf(::java::lang::String *);
+ static ::gnu::javax::sound::AudioSecurityManager$Permission * PLAY;
+ static ::gnu::javax::sound::AudioSecurityManager$Permission * RECORD;
+ static ::gnu::javax::sound::AudioSecurityManager$Permission * ALL;
+private:
+ static JArray< ::gnu::javax::sound::AudioSecurityManager$Permission * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_AudioSecurityManager$Permission__
diff --git a/libjava/gnu/javax/sound/AudioSecurityManager.h b/libjava/gnu/javax/sound/AudioSecurityManager.h
new file mode 100644
index 00000000000..9d0ec83e8a8
--- /dev/null
+++ b/libjava/gnu/javax/sound/AudioSecurityManager.h
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_AudioSecurityManager__
+#define __gnu_javax_sound_AudioSecurityManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ class AudioSecurityManager;
+ class AudioSecurityManager$Permission;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::AudioSecurityManager : public ::java::lang::Object
+{
+
+public:
+ AudioSecurityManager();
+ static void checkPermissions();
+ static void checkPermissions(::gnu::javax::sound::AudioSecurityManager$Permission *);
+public: // actually package-private
+ static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$AudioSecurityManager$Permission();
+private:
+ static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$AudioSecurityManager$Permission__;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_AudioSecurityManager__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.h b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.h
new file mode 100644
index 00000000000..502ec94f688
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.h
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_GStreamerMixer$GstInfo__
+#define __gnu_javax_sound_sampled_gstreamer_GStreamerMixer$GstInfo__
+
+#pragma interface
+
+#include <javax/sound/sampled/Mixer$Info.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ class GStreamerMixer$GstInfo;
+ }
+ }
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::GStreamerMixer$GstInfo : public ::javax::sound::sampled::Mixer$Info
+{
+
+public: // actually protected
+ GStreamerMixer$GstInfo();
+private:
+ static ::java::lang::String * name;
+ static ::java::lang::String * vendor;
+ static ::java::lang::String * desc;
+ static ::java::lang::String * vers;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_GStreamerMixer$GstInfo__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h
new file mode 100644
index 00000000000..dccd81e8a58
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h
@@ -0,0 +1,84 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_GStreamerMixer__
+#define __gnu_javax_sound_sampled_gstreamer_GStreamerMixer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ class GStreamerMixer;
+ }
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class AudioFormat;
+ class Control;
+ class Control$Type;
+ class Line;
+ class Line$Info;
+ class LineListener;
+ class Mixer$Info;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::GStreamerMixer : public ::java::lang::Object
+{
+
+public:
+ GStreamerMixer();
+ virtual ::javax::sound::sampled::Line * getLine(::javax::sound::sampled::Line$Info *);
+ virtual jint getMaxLines(::javax::sound::sampled::Line$Info *);
+ virtual ::javax::sound::sampled::Mixer$Info * getMixerInfo();
+ virtual JArray< ::javax::sound::sampled::Line$Info * > * getSourceLineInfo();
+ virtual JArray< ::javax::sound::sampled::Line$Info * > * getSourceLineInfo(::javax::sound::sampled::Line$Info *);
+ virtual JArray< ::javax::sound::sampled::Line * > * getSourceLines();
+ virtual JArray< ::javax::sound::sampled::Line$Info * > * getTargetLineInfo();
+ virtual JArray< ::javax::sound::sampled::Line$Info * > * getTargetLineInfo(::javax::sound::sampled::Line$Info *);
+ virtual JArray< ::javax::sound::sampled::Line * > * getTargetLines();
+ virtual jboolean isLineSupported(::javax::sound::sampled::Line$Info *);
+ virtual jboolean isSynchronizationSupported(JArray< ::javax::sound::sampled::Line * > *, jboolean);
+ virtual void synchronize(JArray< ::javax::sound::sampled::Line * > *, jboolean);
+ virtual void unsynchronize(JArray< ::javax::sound::sampled::Line * > *);
+ virtual void addLineListener(::javax::sound::sampled::LineListener *);
+ virtual void close();
+ virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *);
+ virtual JArray< ::javax::sound::sampled::Control * > * getControls();
+ virtual ::javax::sound::sampled::Line$Info * getLineInfo();
+ virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *);
+ virtual jboolean isOpen();
+ virtual void open();
+ virtual void removeLineListener(::javax::sound::sampled::LineListener *);
+ static ::java::lang::String * GST_BACKEND;
+ static ::java::lang::String * GST_DECODER;
+private:
+ static JArray< ::javax::sound::sampled::AudioFormat * > * BASIC_FORMATS;
+ static ::javax::sound::sampled::Mixer$Info * INFO;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_GStreamerMixer__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.h b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.h
new file mode 100644
index 00000000000..00976f84fab
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_GStreamerMixerProvider__
+#define __gnu_javax_sound_sampled_gstreamer_GStreamerMixerProvider__
+
+#pragma interface
+
+#include <javax/sound/sampled/spi/MixerProvider.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ class GStreamerMixer;
+ class GStreamerMixerProvider;
+ }
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class Mixer;
+ class Mixer$Info;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::GStreamerMixerProvider : public ::javax::sound::sampled::spi::MixerProvider
+{
+
+public:
+ GStreamerMixerProvider();
+ virtual ::javax::sound::sampled::Mixer * getMixer(::javax::sound::sampled::Mixer$Info *);
+ virtual JArray< ::javax::sound::sampled::Mixer$Info * > * getMixerInfo();
+private:
+ static ::gnu::javax::sound::sampled::gstreamer::GStreamerMixer * mixer;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_GStreamerMixerProvider__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h
new file mode 100644
index 00000000000..dbe3a676622
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h
@@ -0,0 +1,65 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReader__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReader__
+
+#pragma interface
+
+#include <javax/sound/sampled/spi/AudioFileReader.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace io
+ {
+ class GstAudioFileReader;
+ }
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class AudioFileFormat;
+ class AudioInputStream;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReader : public ::javax::sound::sampled::spi::AudioFileReader
+{
+
+public:
+ GstAudioFileReader();
+ virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *);
+ virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *);
+ virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *);
+ virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *);
+ virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *);
+ virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::net::URL *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReader__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.h
new file mode 100644
index 00000000000..5d70c409030
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer$GstHeader__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer$GstHeader__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace io
+ {
+ class GstAudioFileReaderNativePeer$GstHeader;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader : public ::java::lang::Object
+{
+
+ GstAudioFileReaderNativePeer$GstHeader();
+public: // actually package-private
+ GstAudioFileReaderNativePeer$GstHeader(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
+public:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) file;
+ ::java::lang::String * suffix;
+ ::java::lang::String * name;
+ ::java::lang::String * mimetype;
+ ::java::lang::String * endianness;
+ ::java::lang::String * channels;
+ ::java::lang::String * rate;
+ ::java::lang::String * width;
+ ::java::lang::String * depth;
+ ::java::lang::String * isSigned;
+ ::java::lang::String * layer;
+ ::java::lang::String * bitrate;
+ ::java::lang::String * framed;
+ ::java::lang::String * type;
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer$GstHeader__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h
new file mode 100644
index 00000000000..0c9253c9d63
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h
@@ -0,0 +1,73 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace io
+ {
+ class GstAudioFileReaderNativePeer;
+ class GstAudioFileReaderNativePeer$GstHeader;
+ }
+ }
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class AudioFormat;
+ class AudioFormat$Encoding;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer : public ::java::lang::Object
+{
+
+public: // actually package-private
+ GstAudioFileReaderNativePeer();
+public:
+ static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::io::File *);
+ static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::io::InputStream *);
+ static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::net::URL *);
+private:
+ static ::javax::sound::sampled::AudioFormat$Encoding * getEncoding(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
+ static ::javax::sound::sampled::AudioFormat * getAudioFormat(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
+public: // actually protected
+ static jboolean gstreamer_get_audio_format_stream(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *, ::java::io::BufferedInputStream *);
+ static jboolean gstreamer_get_audio_format_file(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
+private:
+ static ::java::lang::String * GST_ENCODING;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.h
new file mode 100644
index 00000000000..450ab176b37
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileWriter__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileWriter__
+
+#pragma interface
+
+#include <javax/sound/sampled/spi/AudioFileWriter.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace io
+ {
+ class GstAudioFileWriter;
+ }
+ }
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class AudioFileFormat$Type;
+ class AudioInputStream;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::io::GstAudioFileWriter : public ::javax::sound::sampled::spi::AudioFileWriter
+{
+
+public:
+ GstAudioFileWriter();
+ virtual JArray< ::javax::sound::sampled::AudioFileFormat$Type * > * getAudioFileTypes();
+ virtual JArray< ::javax::sound::sampled::AudioFileFormat$Type * > * getAudioFileTypes(::javax::sound::sampled::AudioInputStream *);
+ virtual jint write(::javax::sound::sampled::AudioInputStream *, ::javax::sound::sampled::AudioFileFormat$Type *, ::java::io::File *);
+ virtual jint write(::javax::sound::sampled::AudioInputStream *, ::javax::sound::sampled::AudioFileFormat$Type *, ::java::io::OutputStream *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileWriter__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h
new file mode 100644
index 00000000000..ed6df66aaf0
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace lines
+ {
+ class GstDataLine$State;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State : public ::java::lang::Enum
+{
+
+ GstDataLine$State(::java::lang::String *, jint);
+public:
+ static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * > * values();
+ static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * valueOf(::java::lang::String *);
+ static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * PLAY;
+ static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * PAUSE;
+ static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * STOP;
+private:
+ static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h
new file mode 100644
index 00000000000..7939abb3459
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h
@@ -0,0 +1,89 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace lines
+ {
+ class GstDataLine;
+ class GstDataLine$State;
+ }
+ }
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class AudioFormat;
+ class Control;
+ class Control$Type;
+ class Line$Info;
+ class LineListener;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstDataLine : public ::java::lang::Object
+{
+
+public:
+ GstDataLine(::javax::sound::sampled::AudioFormat *);
+ GstDataLine(::javax::sound::sampled::AudioFormat *, jint);
+ virtual jint getBufferSize();
+ virtual ::javax::sound::sampled::AudioFormat * getFormat();
+ virtual jfloat getLevel();
+ virtual jboolean isRunning();
+ virtual void addLineListener(::javax::sound::sampled::LineListener *);
+ virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *);
+ virtual JArray< ::javax::sound::sampled::Control * > * getControls();
+ virtual ::javax::sound::sampled::Line$Info * getLineInfo();
+ virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *);
+ virtual jboolean isOpen();
+ virtual void open();
+ virtual void removeLineListener(::javax::sound::sampled::LineListener *);
+ virtual jint available() = 0;
+ virtual void drain() = 0;
+ virtual void flush() = 0;
+ virtual jint getFramePosition() = 0;
+ virtual jlong getLongFramePosition() = 0;
+ virtual jlong getMicrosecondPosition() = 0;
+ virtual jboolean isActive() = 0;
+ virtual void start() = 0;
+ virtual void stop() = 0;
+ virtual void close() = 0;
+ static const jint DEFAULT_BUFFER_SIZE = 1024;
+public: // actually protected
+ ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * __attribute__((aligned(__alignof__( ::java::lang::Object)))) state;
+ ::java::lang::Boolean * open__;
+private:
+ ::javax::sound::sampled::AudioFormat * format;
+ jint bufferSize;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h
new file mode 100644
index 00000000000..5452434e1c7
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace lines
+ {
+ class GstNativeDataLine;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstNativeDataLine : public ::java::lang::Object
+{
+
+public:
+ GstNativeDataLine();
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h
new file mode 100644
index 00000000000..a32150f9fe7
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ class Pointer;
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace lines
+ {
+ class GstPipeline;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline : public ::java::lang::Object
+{
+
+public:
+ GstPipeline();
+private:
+ void setState();
+ ::gnu::classpath::Pointer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pipeline;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h
new file mode 100644
index 00000000000..02b4b83ec9e
--- /dev/null
+++ b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h
@@ -0,0 +1,66 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstSourceDataLine__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstSourceDataLine__
+
+#pragma interface
+
+#include <gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ namespace gstreamer
+ {
+ namespace lines
+ {
+ class GstSourceDataLine;
+ }
+ }
+ }
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace sound
+ {
+ namespace sampled
+ {
+ class AudioFormat;
+ }
+ }
+ }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstSourceDataLine : public ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine
+{
+
+public:
+ GstSourceDataLine(::javax::sound::sampled::AudioFormat *);
+ virtual void open(::javax::sound::sampled::AudioFormat *);
+ virtual void open(::javax::sound::sampled::AudioFormat *, jint);
+ virtual jint write(JArray< jbyte > *, jint, jint);
+ virtual jint available();
+ virtual void drain();
+ virtual void flush();
+ virtual jint getFramePosition();
+ virtual jlong getLongFramePosition();
+ virtual jlong getMicrosecondPosition();
+ virtual jboolean isActive();
+ virtual void start();
+ virtual void stop();
+ virtual void close();
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstSourceDataLine__
diff --git a/libjava/gnu/xml/dom/DomDocument.h b/libjava/gnu/xml/dom/DomDocument.h
index e11ce621b4b..d634485b0ad 100644
--- a/libjava/gnu/xml/dom/DomDocument.h
+++ b/libjava/gnu/xml/dom/DomDocument.h
@@ -68,6 +68,7 @@ public:
virtual void setBuilding(jboolean);
virtual void setCheckWellformedness(jboolean);
virtual void setCheckingCharacters(jboolean);
+ virtual void setDefaultAttributes(jboolean);
virtual ::java::lang::String * getNodeName();
virtual ::org::w3c::dom::Element * getDocumentElement();
virtual ::org::w3c::dom::DocumentType * getDoctype();
@@ -89,7 +90,7 @@ public:
virtual ::org::w3c::dom::Element * createElement(::java::lang::String *);
virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *);
private:
- void defaultAttributes(::org::w3c::dom::Element *, ::java::lang::String *);
+ void setDefaultAttributes(::org::w3c::dom::Element *, ::java::lang::String *);
public:
virtual ::org::w3c::dom::DocumentFragment * createDocumentFragment();
virtual ::org::w3c::dom::Text * createTextNode(::java::lang::String *);
@@ -140,6 +141,9 @@ private:
jboolean checkingCharacters;
public: // actually package-private
jboolean checkingWellformedness;
+private:
+ jboolean defaultAttributes;
+public: // actually package-private
jboolean building;
::gnu::xml::dom::DomDocumentConfiguration * config;
::java::lang::String * inputEncoding;
diff --git a/libjava/gnu/xml/dom/DomNamedNodeMap.h b/libjava/gnu/xml/dom/DomNamedNodeMap.h
index c26f2af4890..3d5f41bdeaf 100644
--- a/libjava/gnu/xml/dom/DomNamedNodeMap.h
+++ b/libjava/gnu/xml/dom/DomNamedNodeMap.h
@@ -45,7 +45,7 @@ public:
virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *);
virtual ::org::w3c::dom::Node * setNamedItemNS(::org::w3c::dom::Node *);
public: // actually package-private
- virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *, jboolean);
+ virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *, jboolean, jboolean);
virtual void reparent(::gnu::xml::dom::DomNode *, ::java::lang::String *, jint);
public:
virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *);
diff --git a/libjava/gnu/xml/dom/DomNode.h b/libjava/gnu/xml/dom/DomNode.h
index 763284796a1..dca589ac735 100644
--- a/libjava/gnu/xml/dom/DomNode.h
+++ b/libjava/gnu/xml/dom/DomNode.h
@@ -94,6 +94,8 @@ public:
virtual ::java::lang::String * getNamespaceURI();
virtual ::java::lang::String * getLocalName();
virtual ::org::w3c::dom::Node * cloneNode(jboolean);
+private:
+ ::gnu::xml::dom::DomNode * cloneNodeDeepInternal(jboolean, ::gnu::xml::dom::DomDocument *);
public: // actually package-private
virtual void notifyUserDataHandlers(jshort, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
public:
diff --git a/libjava/gnu/xml/stream/XMLParser$Attribute.h b/libjava/gnu/xml/stream/XMLParser$Attribute.h
index 0b2b62aa653..3601ebebed4 100644
--- a/libjava/gnu/xml/stream/XMLParser$Attribute.h
+++ b/libjava/gnu/xml/stream/XMLParser$Attribute.h
@@ -29,6 +29,7 @@ public: // actually package-private
XMLParser$Attribute(::gnu::xml::stream::XMLParser *, ::java::lang::String *, ::java::lang::String *, jboolean, ::java::lang::String *);
public:
virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
public: // actually package-private
::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
::java::lang::String * type;
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index bd2d95d3bec..78b9f113d2a 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -41,7 +41,9 @@ subdir = include
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(tool_include__HEADERS)
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
+ $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/confsubdir.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/gxx-include-dir.m4 \
@@ -56,10 +58,11 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../config/tls.m4 \
$(top_srcdir)/../config/unwind_ipinfo.m4 \
- $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
- $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
- $(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \
- $(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \
+ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
+ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/mingwld.m4 \
+ $(top_srcdir)/pkg.m4 $(top_srcdir)/shlibpath.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = config.h $(top_builddir)/gcj/libgcj-config.h
@@ -149,6 +152,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+INTERPRETER_FALSE = @INTERPRETER_FALSE@
+INTERPRETER_TRUE = @INTERPRETER_TRUE@
JAR = @JAR@
JAVA_HOME = @JAVA_HOME@
JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
@@ -176,6 +181,7 @@ LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
@@ -205,6 +211,8 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SUPPRESS_LIBGCJ_BC_FALSE = @SUPPRESS_LIBGCJ_BC_FALSE@
+SUPPRESS_LIBGCJ_BC_TRUE = @SUPPRESS_LIBGCJ_BC_TRUE@
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
@@ -283,6 +291,8 @@ build_vendor = @build_vendor@
datadir = @datadir@
dbexecdir = @dbexecdir@
exec_prefix = @exec_prefix@
+extra_gij_ldflags = @extra_gij_ldflags@
+extra_ldflags = @extra_ldflags@
extra_ldflags_libjava = @extra_ldflags_libjava@
gxx_include_dir = @gxx_include_dir@
here = @here@
diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in
index b47f248686e..99da702417c 100644
--- a/libjava/include/config.h.in
+++ b/libjava/include/config.h.in
@@ -46,6 +46,9 @@
/* Define to 1 if you have the <bstring.h> header file. */
#undef HAVE_BSTRING_H
+/* Define to 1 if the target assembler supports thread-local storage. */
+#undef HAVE_CC_TLS
+
/* Define to 1 if you have the `chmod' function. */
#undef HAVE_CHMOD
@@ -379,6 +382,10 @@
library search path. */
#undef LTDL_SHLIBPATH_VAR
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#undef LT_OBJDIR
+
/* Define if MinGW libgcj uses the Windows UNICODE OS API. */
#undef MINGW_LIBGCJ_UNICODE
diff --git a/libjava/include/execution.h b/libjava/include/execution.h
index eac6133c5b7..c48b2fc3273 100644
--- a/libjava/include/execution.h
+++ b/libjava/include/execution.h
@@ -199,6 +199,7 @@ struct _Jv_IndirectCompiledEngine : public _Jv_CompiledEngine
_Jv_Free (aux->field_initializers);
}
+#ifdef INTERPRETER
static _Jv_ClosureList **do_get_closure_list (jclass klass)
{
_Jv_IndirectCompiledClass *aux = get_aux_info (klass);
@@ -208,9 +209,10 @@ struct _Jv_IndirectCompiledEngine : public _Jv_CompiledEngine
return aux->closures;
}
+#endif
};
-
+#ifdef INTERPRETER
// This handles interpreted code.
class _Jv_InterpreterEngine : public _Jv_ExecutionEngine
@@ -266,8 +268,9 @@ class _Jv_InterpreterEngine : public _Jv_ExecutionEngine
}
};
-
extern _Jv_InterpreterEngine _Jv_soleInterpreterEngine;
+#endif // INTERPRETER
+
extern _Jv_CompiledEngine _Jv_soleCompiledEngine;
extern _Jv_IndirectCompiledEngine _Jv_soleIndirectCompiledEngine;
#endif // __JAVA_EXECUTION_H__
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index f0b77f97b35..c6d9955f4bf 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -15,6 +15,13 @@ details. */
#include <java-cpool.h>
#include <gnu/gcj/runtime/NameFinder.h>
+enum _Jv_FrameType
+{
+ frame_native,
+ frame_interpreter,
+ frame_proxy
+};
+
#ifdef INTERPRETER
#pragma interface
@@ -215,18 +222,26 @@ class _Jv_InterpMethod : public _Jv_MethodBase
void *ncode (jclass);
void compile (const void * const *);
- static void run_normal (ffi_cif*, void*, ffi_raw*, void*);
- static void run_synch_object (ffi_cif*, void*, ffi_raw*, void*);
- static void run_class (ffi_cif*, void*, ffi_raw*, void*);
- static void run_synch_class (ffi_cif*, void*, ffi_raw*, void*);
-
- static void run_normal_debug (ffi_cif*, void*, ffi_raw*, void*);
- static void run_synch_object_debug (ffi_cif*, void*, ffi_raw*, void*);
- static void run_class_debug (ffi_cif*, void*, ffi_raw*, void*);
- static void run_synch_class_debug (ffi_cif*, void*, ffi_raw*, void*);
+#if FFI_NATIVE_RAW_API
+# define INTERP_FFI_RAW_TYPE ffi_raw
+#else
+# define INTERP_FFI_RAW_TYPE ffi_java_raw
+#endif
- static void run (void *, ffi_raw *, _Jv_InterpMethod *);
- static void run_debug (void *, ffi_raw *, _Jv_InterpMethod *);
+ static void run_normal (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
+ static void run_synch_object (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
+ static void run_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
+ static void run_synch_class (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
+
+ static void run_normal_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
+ static void run_synch_object_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*,
+ void*);
+ static void run_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*, void*);
+ static void run_synch_class_debug (ffi_cif*, void*, INTERP_FFI_RAW_TYPE*,
+ void*);
+
+ static void run (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *);
+ static void run_debug (void *, INTERP_FFI_RAW_TYPE *, _Jv_InterpMethod *);
@@ -354,7 +369,7 @@ class _Jv_JNIMethod : public _Jv_MethodBase
ffi_type **jni_arg_types;
// This function is used when making a JNI call from the interpreter.
- static void call (ffi_cif *, void *, ffi_raw *, void *);
+ static void call (ffi_cif *, void *, INTERP_FFI_RAW_TYPE *, void *);
void *ncode (jclass);
@@ -373,13 +388,6 @@ public:
}
};
-enum _Jv_FrameType
-{
- frame_native,
- frame_interpreter,
- frame_proxy
-};
-
// The composite call stack as represented by a linked list of frames
class _Jv_Frame
{
diff --git a/libjava/include/jvm.h b/libjava/include/jvm.h
index 02974e8c7ea..84847548f01 100644
--- a/libjava/include/jvm.h
+++ b/libjava/include/jvm.h
@@ -412,6 +412,10 @@ void _Jv_SetInitialHeapSize (const char *arg);
_Jv_GCSetMaximumHeapSize. */
void _Jv_SetMaximumHeapSize (const char *arg);
+/* External interface for setting the GC_free_space_divisor. Calls
+ GC_set_free_space_divisor and returns the old value. */
+int _Jv_SetGCFreeSpaceDivisor (int div);
+
/* Free the method cache, if one was allocated. This is only called
during thread deregistration. */
void _Jv_FreeMethodCache ();
@@ -548,7 +552,7 @@ extern void _Jv_CallAnyMethodA (jobject obj,
jboolean is_constructor,
jboolean is_virtual_call,
JArray<jclass> *parameter_types,
- jvalue *args,
+ const jvalue *args,
jvalue *result,
jboolean is_jni_call = true,
jclass iface = NULL);
diff --git a/libjava/interpret-run.cc b/libjava/interpret-run.cc
index 1eea57e1f9e..f858c971e0b 100644
--- a/libjava/interpret-run.cc
+++ b/libjava/interpret-run.cc
@@ -563,6 +563,7 @@ details. */
}
else
{
+ NULLCHECK (sp[0].o);
jobject rcv = sp[0].o;
_Jv_VTable *table = *(_Jv_VTable**) rcv;
fun = (void (*)()) table->get_method (rmeth->method->index);
@@ -575,7 +576,7 @@ details. */
{
/* here goes the magic again... */
ffi_cif *cif = &rmeth->cif;
- ffi_raw *raw = (ffi_raw*) sp;
+ INTERP_FFI_RAW_TYPE *raw = (INTERP_FFI_RAW_TYPE *) sp;
_Jv_value rvalue;
diff --git a/libjava/interpret.cc b/libjava/interpret.cc
index 092f3dd5f00..6153c542036 100644
--- a/libjava/interpret.cc
+++ b/libjava/interpret.cc
@@ -43,8 +43,6 @@ details. */
#include <gnu/gcj/jvmti/Breakpoint.h>
#include <gnu/gcj/jvmti/BreakpointManager.h>
-#ifdef INTERPRETER
-
// Execution engine for interpreted code.
_Jv_InterpreterEngine _Jv_soleInterpreterEngine;
@@ -348,7 +346,7 @@ get4 (unsigned char* loc)
void
_Jv_InterpMethod::run_normal (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -358,7 +356,7 @@ _Jv_InterpMethod::run_normal (ffi_cif *,
void
_Jv_InterpMethod::run_normal_debug (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -368,7 +366,7 @@ _Jv_InterpMethod::run_normal_debug (ffi_cif *,
void
_Jv_InterpMethod::run_synch_object (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -382,7 +380,7 @@ _Jv_InterpMethod::run_synch_object (ffi_cif *,
void
_Jv_InterpMethod::run_synch_object_debug (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -396,7 +394,7 @@ _Jv_InterpMethod::run_synch_object_debug (ffi_cif *,
void
_Jv_InterpMethod::run_class (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -407,7 +405,7 @@ _Jv_InterpMethod::run_class (ffi_cif *,
void
_Jv_InterpMethod::run_class_debug (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -418,7 +416,7 @@ _Jv_InterpMethod::run_class_debug (ffi_cif *,
void
_Jv_InterpMethod::run_synch_class (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -433,7 +431,7 @@ _Jv_InterpMethod::run_synch_class (ffi_cif *,
void
_Jv_InterpMethod::run_synch_class_debug (ffi_cif *,
void *ret,
- ffi_raw *args,
+ INTERP_FFI_RAW_TYPE *args,
void *__this)
{
_Jv_InterpMethod *_this = (_Jv_InterpMethod *) __this;
@@ -977,7 +975,8 @@ _Jv_InterpMethod::compile (const void * const *insn_targets)
/* Run the given method.
When args is NULL, don't run anything -- just compile it. */
void
-_Jv_InterpMethod::run (void *retp, ffi_raw *args, _Jv_InterpMethod *meth)
+_Jv_InterpMethod::run (void *retp, INTERP_FFI_RAW_TYPE *args,
+ _Jv_InterpMethod *meth)
{
#undef DEBUG
#undef DEBUG_LOCALS_INSN
@@ -987,7 +986,8 @@ _Jv_InterpMethod::run (void *retp, ffi_raw *args, _Jv_InterpMethod *meth)
}
void
-_Jv_InterpMethod::run_debug (void *retp, ffi_raw *args, _Jv_InterpMethod *meth)
+_Jv_InterpMethod::run_debug (void *retp, INTERP_FFI_RAW_TYPE *args,
+ _Jv_InterpMethod *meth)
{
#define DEBUG
#undef DEBUG_LOCALS_INSN
@@ -1308,27 +1308,32 @@ _Jv_init_cif (_Jv_Utf8Const* signature,
return item_count;
}
-#if FFI_NATIVE_RAW_API
-# define FFI_PREP_RAW_CLOSURE ffi_prep_raw_closure_loc
-# define FFI_RAW_SIZE ffi_raw_size
-#else
-# define FFI_PREP_RAW_CLOSURE ffi_prep_java_raw_closure_loc
-# define FFI_RAW_SIZE ffi_java_raw_size
-#endif
-
/* we put this one here, and not in interpret.cc because it
* calls the utility routines _Jv_count_arguments
* which are static to this module. The following struct defines the
* layout we use for the stubs, it's only used in the ncode method. */
+#if FFI_NATIVE_RAW_API
+# define FFI_PREP_RAW_CLOSURE ffi_prep_raw_closure_loc
+# define FFI_RAW_SIZE ffi_raw_size
typedef struct {
ffi_raw_closure closure;
_Jv_ClosureList list;
ffi_cif cif;
ffi_type *arg_types[0];
} ncode_closure;
-
-typedef void (*ffi_closure_fun) (ffi_cif*,void*,ffi_raw*,void*);
+typedef void (*ffi_closure_fun) (ffi_cif*,void*,INTERP_FFI_RAW_TYPE*,void*);
+#else
+# define FFI_PREP_RAW_CLOSURE ffi_prep_java_raw_closure_loc
+# define FFI_RAW_SIZE ffi_java_raw_size
+typedef struct {
+ ffi_java_raw_closure closure;
+ _Jv_ClosureList list;
+ ffi_cif cif;
+ ffi_type *arg_types[0];
+} ncode_closure;
+typedef void (*ffi_closure_fun) (ffi_cif*,void*,ffi_java_raw*,void*);
+#endif
void *
_Jv_InterpMethod::ncode (jclass klass)
@@ -1932,5 +1937,3 @@ _Jv_CompileMethod (_Jv_InterpMethod* method)
}
}
#endif // DIRECT_THREADED
-
-#endif // INTERPRETER
diff --git a/libjava/java/awt/Component.h b/libjava/java/awt/Component.h
index f5889d2bc0d..23edfa77e98 100644
--- a/libjava/java/awt/Component.h
+++ b/libjava/java/awt/Component.h
@@ -354,6 +354,11 @@ public: // actually package-private
virtual void dispatchEventImpl(::java::awt::AWTEvent *);
virtual jboolean eventTypeEnabled(jint);
virtual jboolean isHierarchyVisible();
+public:
+ virtual ::java::awt::Point * getMousePosition();
+public: // actually package-private
+ virtual ::java::awt::Point * getMousePositionHelper(jboolean);
+ virtual jboolean mouseOverComponent(::java::awt::Component *, jboolean);
virtual ::java::awt::Component * findNextFocusComponent(::java::awt::Component *);
private:
void readObject(::java::io::ObjectInputStream *);
diff --git a/libjava/java/awt/Container.h b/libjava/java/awt/Container.h
index 4a44759532a..3ea162aaede 100644
--- a/libjava/java/awt/Container.h
+++ b/libjava/java/awt/Container.h
@@ -97,6 +97,10 @@ public: // actually protected
public:
virtual void deliverEvent(::java::awt::Event *);
virtual ::java::awt::Component * getComponentAt(jint, jint);
+ virtual ::java::awt::Point * getMousePosition(jboolean);
+public: // actually package-private
+ virtual jboolean mouseOverComponent(::java::awt::Component *, jboolean);
+public:
virtual ::java::awt::Component * locate(jint, jint);
virtual ::java::awt::Component * getComponentAt(::java::awt::Point *);
virtual ::java::awt::Component * findComponentAt(jint, jint);
diff --git a/libjava/java/awt/Dialog$ModalExclusionType.h b/libjava/java/awt/Dialog$ModalExclusionType.h
new file mode 100644
index 00000000000..a47a2b4aec4
--- /dev/null
+++ b/libjava/java/awt/Dialog$ModalExclusionType.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$ModalExclusionType__
+#define __java_awt_Dialog$ModalExclusionType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog$ModalExclusionType;
+ }
+ }
+}
+
+class java::awt::Dialog$ModalExclusionType : public ::java::lang::Enum
+{
+
+ Dialog$ModalExclusionType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::awt::Dialog$ModalExclusionType * > * values();
+ static ::java::awt::Dialog$ModalExclusionType * valueOf(::java::lang::String *);
+ static ::java::awt::Dialog$ModalExclusionType * APPLICATION_EXCLUDE;
+ static ::java::awt::Dialog$ModalExclusionType * NO_EXCLUDE;
+ static ::java::awt::Dialog$ModalExclusionType * TOOLKIT_EXCLUDE;
+private:
+ static JArray< ::java::awt::Dialog$ModalExclusionType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$ModalExclusionType__
diff --git a/libjava/java/awt/Dialog$ModalityType.h b/libjava/java/awt/Dialog$ModalityType.h
new file mode 100644
index 00000000000..e7a3b736ee1
--- /dev/null
+++ b/libjava/java/awt/Dialog$ModalityType.h
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$ModalityType__
+#define __java_awt_Dialog$ModalityType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Dialog$ModalityType;
+ }
+ }
+}
+
+class java::awt::Dialog$ModalityType : public ::java::lang::Enum
+{
+
+ Dialog$ModalityType(::java::lang::String *, jint);
+public:
+ static JArray< ::java::awt::Dialog$ModalityType * > * values();
+ static ::java::awt::Dialog$ModalityType * valueOf(::java::lang::String *);
+ static ::java::awt::Dialog$ModalityType * APPLICATION_MODAL;
+ static ::java::awt::Dialog$ModalityType * DOCUMENT_MODAL;
+ static ::java::awt::Dialog$ModalityType * MODELESS;
+ static ::java::awt::Dialog$ModalityType * TOOLKIT_MODAL;
+private:
+ static JArray< ::java::awt::Dialog$ModalityType * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$ModalityType__
diff --git a/libjava/java/awt/Font.h b/libjava/java/awt/Font.h
index 07c651f5837..c3b46bf7c75 100644
--- a/libjava/java/awt/Font.h
+++ b/libjava/java/awt/Font.h
@@ -66,6 +66,9 @@ public: // actually package-private
public:
static ::java::awt::Font * getFont(::java::lang::String *, ::java::awt::Font *);
static ::java::awt::Font * getFont(::java::lang::String *);
+public: // actually protected
+ Font(::java::awt::Font *);
+public:
Font(::java::lang::String *, jint, jint);
Font(::java::util::Map *);
public: // actually package-private
@@ -80,6 +83,7 @@ public:
virtual ::java::lang::String * getFamily();
virtual jint getStyle();
virtual jboolean canDisplay(jchar);
+ virtual jboolean canDisplay(jint);
virtual jint canDisplayUpTo(::java::lang::String *);
virtual jint canDisplayUpTo(JArray< jchar > *, jint, jint);
virtual jint canDisplayUpTo(::java::text::CharacterIterator *, jint, jint);
@@ -123,6 +127,7 @@ public:
virtual jboolean equals(::java::lang::Object *);
virtual ::java::lang::String * toString();
virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::lang::String *, ::java::awt::font::FontRenderContext *);
+ virtual jboolean hasLayoutAttributes();
private:
void readObject(::java::io::ObjectInputStream *);
public:
@@ -138,6 +143,11 @@ public:
static const jint LAYOUT_RIGHT_TO_LEFT = 1;
static const jint LAYOUT_NO_START_CONTEXT = 2;
static const jint LAYOUT_NO_LIMIT_CONTEXT = 4;
+ static ::java::lang::String * DIALOG;
+ static ::java::lang::String * DIALOG_INPUT;
+ static ::java::lang::String * MONOSPACED;
+ static ::java::lang::String * SANS_SERIF;
+ static ::java::lang::String * SERIF;
public: // actually protected
::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
jint size;
diff --git a/libjava/java/awt/Toolkit.h b/libjava/java/awt/Toolkit.h
index 80528fe0571..844ebe81571 100644
--- a/libjava/java/awt/Toolkit.h
+++ b/libjava/java/awt/Toolkit.h
@@ -39,6 +39,8 @@ extern "Java"
class Cursor;
class Desktop;
class Dialog;
+ class Dialog$ModalExclusionType;
+ class Dialog$ModalityType;
class Dimension;
class EventQueue;
class FileDialog;
@@ -229,6 +231,8 @@ public: // actually package-private
virtual void globalDispatchEvent(::java::awt::AWTEvent *);
public:
virtual ::java::util::Map * mapInputMethodHighlight(::java::awt::im::InputMethodHighlight *) = 0;
+ virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *) = 0;
+ virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *) = 0;
private:
static void initAccessibility();
static ::java::lang::String * default_toolkit_name;
diff --git a/libjava/java/awt/event/MouseEvent.h b/libjava/java/awt/event/MouseEvent.h
index 439fc50ca39..82ef6c22d12 100644
--- a/libjava/java/awt/event/MouseEvent.h
+++ b/libjava/java/awt/event/MouseEvent.h
@@ -29,8 +29,12 @@ class java::awt::event::MouseEvent : public ::java::awt::event::InputEvent
public:
MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean, jint);
MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean);
+ MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jint, jint, jboolean, jint);
virtual jint getX();
virtual jint getY();
+ virtual ::java::awt::Point * getLocationOnScreen();
+ virtual jint getXOnScreen();
+ virtual jint getYOnScreen();
virtual ::java::awt::Point * getPoint();
virtual void translatePoint(jint, jint);
virtual jint getClickCount();
@@ -59,6 +63,8 @@ public:
private:
jint __attribute__((aligned(__alignof__( ::java::awt::event::InputEvent)))) x;
jint y;
+ jint absX;
+ jint absY;
jint clickCount;
jint button;
jboolean popupTrigger;
diff --git a/libjava/java/awt/peer/ButtonPeer.h b/libjava/java/awt/peer/ButtonPeer.h
index 1f5c203e055..781fd0e6fcb 100644
--- a/libjava/java/awt/peer/ButtonPeer.h
+++ b/libjava/java/awt/peer/ButtonPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ButtonPeer : public ::java::lang::Object
@@ -104,6 +111,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/CanvasPeer.h b/libjava/java/awt/peer/CanvasPeer.h
index 503b48a561d..2f9ba7c1398 100644
--- a/libjava/java/awt/peer/CanvasPeer.h
+++ b/libjava/java/awt/peer/CanvasPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::CanvasPeer : public ::java::lang::Object
@@ -103,6 +110,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/CheckboxPeer.h b/libjava/java/awt/peer/CheckboxPeer.h
index a397322e497..72e05ee204a 100644
--- a/libjava/java/awt/peer/CheckboxPeer.h
+++ b/libjava/java/awt/peer/CheckboxPeer.h
@@ -47,6 +47,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::CheckboxPeer : public ::java::lang::Object
@@ -107,6 +114,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/ChoicePeer.h b/libjava/java/awt/peer/ChoicePeer.h
index 78dca416d05..9a152d69322 100644
--- a/libjava/java/awt/peer/ChoicePeer.h
+++ b/libjava/java/awt/peer/ChoicePeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ChoicePeer : public ::java::lang::Object
@@ -108,6 +115,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/ComponentPeer.h b/libjava/java/awt/peer/ComponentPeer.h
index 3d3c22d9d2b..5bcd8876f4f 100644
--- a/libjava/java/awt/peer/ComponentPeer.h
+++ b/libjava/java/awt/peer/ComponentPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ComponentPeer : public ::java::lang::Object
@@ -103,6 +110,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/ContainerPeer.h b/libjava/java/awt/peer/ContainerPeer.h
index 6d6e9df4580..d1d26a02bd8 100644
--- a/libjava/java/awt/peer/ContainerPeer.h
+++ b/libjava/java/awt/peer/ContainerPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ContainerPeer : public ::java::lang::Object
@@ -113,6 +120,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/DialogPeer.h b/libjava/java/awt/peer/DialogPeer.h
index 2212ec95bcb..95f9e0c1c85 100644
--- a/libjava/java/awt/peer/DialogPeer.h
+++ b/libjava/java/awt/peer/DialogPeer.h
@@ -19,6 +19,7 @@ extern "Java"
class Color;
class Component;
class Cursor;
+ class Dialog;
class Dimension;
class Font;
class FontMetrics;
@@ -47,6 +48,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::DialogPeer : public ::java::lang::Object
@@ -59,6 +67,11 @@ public:
virtual void toFront() = 0;
virtual void updateAlwaysOnTop() = 0;
virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
virtual ::java::awt::Insets * insets() = 0;
virtual ::java::awt::Insets * getInsets() = 0;
virtual void beginValidate() = 0;
@@ -120,6 +133,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/FileDialogPeer.h b/libjava/java/awt/peer/FileDialogPeer.h
index b2419e42f41..22575b60041 100644
--- a/libjava/java/awt/peer/FileDialogPeer.h
+++ b/libjava/java/awt/peer/FileDialogPeer.h
@@ -19,6 +19,7 @@ extern "Java"
class Color;
class Component;
class Cursor;
+ class Dialog;
class Dimension;
class Font;
class FontMetrics;
@@ -47,6 +48,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::FileDialogPeer : public ::java::lang::Object
@@ -62,6 +70,11 @@ public:
virtual void toFront() = 0;
virtual void updateAlwaysOnTop() = 0;
virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
virtual ::java::awt::Insets * insets() = 0;
virtual ::java::awt::Insets * getInsets() = 0;
virtual void beginValidate() = 0;
@@ -123,6 +136,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/FramePeer.h b/libjava/java/awt/peer/FramePeer.h
index a80ca5540f1..e340e134b9d 100644
--- a/libjava/java/awt/peer/FramePeer.h
+++ b/libjava/java/awt/peer/FramePeer.h
@@ -19,6 +19,7 @@ extern "Java"
class Color;
class Component;
class Cursor;
+ class Dialog;
class Dimension;
class Font;
class FontMetrics;
@@ -48,6 +49,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::FramePeer : public ::java::lang::Object
@@ -63,10 +71,16 @@ public:
virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
virtual jboolean isRestackSupported() = 0;
virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+ virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
virtual void toBack() = 0;
virtual void toFront() = 0;
virtual void updateAlwaysOnTop() = 0;
virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
virtual ::java::awt::Insets * insets() = 0;
virtual ::java::awt::Insets * getInsets() = 0;
virtual void beginValidate() = 0;
@@ -127,6 +141,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/LabelPeer.h b/libjava/java/awt/peer/LabelPeer.h
index 426772d0e09..5247a0d0965 100644
--- a/libjava/java/awt/peer/LabelPeer.h
+++ b/libjava/java/awt/peer/LabelPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::LabelPeer : public ::java::lang::Object
@@ -105,6 +112,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/LightweightPeer.h b/libjava/java/awt/peer/LightweightPeer.h
index 9c743d97f3d..b18182f8271 100644
--- a/libjava/java/awt/peer/LightweightPeer.h
+++ b/libjava/java/awt/peer/LightweightPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::LightweightPeer : public ::java::lang::Object
@@ -103,6 +110,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/ListPeer.h b/libjava/java/awt/peer/ListPeer.h
index 3dd6bad7aa2..0edfd625168 100644
--- a/libjava/java/awt/peer/ListPeer.h
+++ b/libjava/java/awt/peer/ListPeer.h
@@ -48,6 +48,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ListPeer : public ::java::lang::Object
@@ -120,6 +127,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/PanelPeer.h b/libjava/java/awt/peer/PanelPeer.h
index 57e4ff7687a..b90c0570aa1 100644
--- a/libjava/java/awt/peer/PanelPeer.h
+++ b/libjava/java/awt/peer/PanelPeer.h
@@ -47,6 +47,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::PanelPeer : public ::java::lang::Object
@@ -114,6 +121,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/RobotPeer.h b/libjava/java/awt/peer/RobotPeer.h
index f0f810ae384..7947c5031c3 100644
--- a/libjava/java/awt/peer/RobotPeer.h
+++ b/libjava/java/awt/peer/RobotPeer.h
@@ -36,6 +36,7 @@ public:
virtual void keyRelease(jint) = 0;
virtual jint getRGBPixel(jint, jint) = 0;
virtual JArray< jint > * getRGBPixels(::java::awt::Rectangle *) = 0;
+ virtual void dispose() = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/ScrollPanePeer.h b/libjava/java/awt/peer/ScrollPanePeer.h
index f6387a50468..25f9431f549 100644
--- a/libjava/java/awt/peer/ScrollPanePeer.h
+++ b/libjava/java/awt/peer/ScrollPanePeer.h
@@ -48,6 +48,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ScrollPanePeer : public ::java::lang::Object
@@ -121,6 +128,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/ScrollbarPeer.h b/libjava/java/awt/peer/ScrollbarPeer.h
index 9e0c7c76c1b..b030ca5d90f 100644
--- a/libjava/java/awt/peer/ScrollbarPeer.h
+++ b/libjava/java/awt/peer/ScrollbarPeer.h
@@ -46,6 +46,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::ScrollbarPeer : public ::java::lang::Object
@@ -106,6 +113,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/TextAreaPeer.h b/libjava/java/awt/peer/TextAreaPeer.h
index 1954909b9bc..24fb100d711 100644
--- a/libjava/java/awt/peer/TextAreaPeer.h
+++ b/libjava/java/awt/peer/TextAreaPeer.h
@@ -50,6 +50,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::TextAreaPeer : public ::java::lang::Object
@@ -127,6 +134,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/TextComponentPeer.h b/libjava/java/awt/peer/TextComponentPeer.h
index 37e0310bde1..71afe17f5a0 100644
--- a/libjava/java/awt/peer/TextComponentPeer.h
+++ b/libjava/java/awt/peer/TextComponentPeer.h
@@ -50,6 +50,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::TextComponentPeer : public ::java::lang::Object
@@ -119,6 +126,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/TextFieldPeer.h b/libjava/java/awt/peer/TextFieldPeer.h
index a3718929d64..a2785b1b6bc 100644
--- a/libjava/java/awt/peer/TextFieldPeer.h
+++ b/libjava/java/awt/peer/TextFieldPeer.h
@@ -50,6 +50,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::TextFieldPeer : public ::java::lang::Object
@@ -125,6 +132,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/awt/peer/WindowPeer.h b/libjava/java/awt/peer/WindowPeer.h
index c900a1cecab..0257d8cb88c 100644
--- a/libjava/java/awt/peer/WindowPeer.h
+++ b/libjava/java/awt/peer/WindowPeer.h
@@ -19,6 +19,7 @@ extern "Java"
class Color;
class Component;
class Cursor;
+ class Dialog;
class Dimension;
class Font;
class FontMetrics;
@@ -47,6 +48,13 @@ extern "Java"
}
}
}
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
}
class java::awt::peer::WindowPeer : public ::java::lang::Object
@@ -57,6 +65,11 @@ public:
virtual void toFront() = 0;
virtual void updateAlwaysOnTop() = 0;
virtual jboolean requestWindowFocus() = 0;
+ virtual void setAlwaysOnTop(jboolean) = 0;
+ virtual void updateFocusableWindowState() = 0;
+ virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+ virtual void updateMinimumSize() = 0;
+ virtual void updateIconImages() = 0;
virtual ::java::awt::Insets * insets() = 0;
virtual ::java::awt::Insets * getInsets() = 0;
virtual void beginValidate() = 0;
@@ -118,6 +131,7 @@ public:
virtual void setBounds(jint, jint, jint, jint, jint) = 0;
virtual jboolean isReparentSupported() = 0;
virtual void layout() = 0;
+ virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
static ::java::lang::Class class$;
} __attribute__ ((java_interface));
diff --git a/libjava/java/io/File.java b/libjava/java/io/File.java
index 67d1b96df6c..0c4fb6932f5 100644
--- a/libjava/java/io/File.java
+++ b/libjava/java/io/File.java
@@ -117,6 +117,7 @@ public class File implements Serializable, Comparable<File>
public static final char pathSeparatorChar = pathSeparator.charAt(0);
static final String tmpdir = System.getProperty("java.io.tmpdir");
+ /* If 0, then the system doesn't have a file name length limit. */
static int maxPathLen;
static boolean caseSensitive;
@@ -1130,7 +1131,9 @@ public class File implements Serializable, Comparable<File>
// Truncation rules.
// `6' is the number of characters we generate.
- if (prefix.length() + 6 + suffix.length() > maxPathLen)
+ // If maxPathLen equals zero, then the system doesn't have a limit
+ // on the file name, so there is nothing to truncate.
+ if (maxPathLen > 0 && prefix.length() + 6 + suffix.length() > maxPathLen)
{
int suf_len = 0;
if (suffix.charAt(0) == '.')
diff --git a/libjava/java/io/natFilePosix.cc b/libjava/java/io/natFilePosix.cc
index d63625f57a5..ead28557f6e 100644
--- a/libjava/java/io/natFilePosix.cc
+++ b/libjava/java/io/natFilePosix.cc
@@ -504,6 +504,12 @@ java::io::File::performDelete (void)
void
java::io::File::init_native ()
{
+#ifdef MAXPATHLEN
maxPathLen = MAXPATHLEN;
+#else
+ /* Some systems do not have a limit on the length of a file name,
+ the GNU system is one such example. */
+ maxPathLen = 0;
+#endif
caseSensitive = true;
}
diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h
index 10a25eb6c73..d4a918483c3 100644
--- a/libjava/java/lang/Class.h
+++ b/libjava/java/lang/Class.h
@@ -97,9 +97,9 @@ class _Jv_Linker;
class _Jv_ExecutionEngine;
class _Jv_CompiledEngine;
class _Jv_IndirectCompiledEngine;
-class _Jv_InterpreterEngine;
#ifdef INTERPRETER
+class _Jv_InterpreterEngine;
class _Jv_ClassReader;
class _Jv_InterpClass;
class _Jv_InterpMethod;
@@ -619,6 +619,7 @@ private:
friend class ::_Jv_ClassReader;
friend class ::_Jv_InterpClass;
friend class ::_Jv_InterpMethod;
+ friend class ::_Jv_InterpreterEngine;
#endif
friend class ::_Jv_StackTrace;
@@ -633,7 +634,6 @@ private:
friend class ::_Jv_ExecutionEngine;
friend class ::_Jv_CompiledEngine;
friend class ::_Jv_IndirectCompiledEngine;
- friend class ::_Jv_InterpreterEngine;
friend class ::_Jv_ClosureList;
friend void ::_Jv_sharedlib_register_hook (jclass klass);
diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java
index 67805172aa0..691f983b0b5 100644
--- a/libjava/java/lang/Class.java
+++ b/libjava/java/lang/Class.java
@@ -56,7 +56,7 @@ import java.security.PrivilegedAction;
import java.security.ProtectionDomain;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.HashMap;
import java.util.Collection;
import java.lang.reflect.AnnotatedElement;
@@ -473,7 +473,7 @@ public final class Class<T>
*/
private Field[] internalGetFields()
{
- HashSet set = new HashSet();
+ LinkedHashSet set = new LinkedHashSet();
set.addAll(Arrays.asList(getDeclaredFields(true)));
Class[] interfaces = getInterfaces();
for (int i = 0; i < interfaces.length; i++)
diff --git a/libjava/java/lang/VMFloat.h b/libjava/java/lang/VMFloat.h
index 58e7ba9bbcc..fec037b2cf1 100644
--- a/libjava/java/lang/VMFloat.h
+++ b/libjava/java/lang/VMFloat.h
@@ -16,6 +16,8 @@ public: // actually package-private
static jint floatToIntBits(jfloat);
static jint floatToRawIntBits(jfloat);
static jfloat intBitsToFloat(jint);
+ static ::java::lang::String * toString(jfloat);
+ static jfloat parseFloat(::java::lang::String *);
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/lang/VMFloat.java b/libjava/java/lang/VMFloat.java
index a6570f929c6..72a8c3c6b18 100644
--- a/libjava/java/lang/VMFloat.java
+++ b/libjava/java/lang/VMFloat.java
@@ -96,4 +96,26 @@ final class VMFloat
*/
static native float intBitsToFloat(int bits);
+ /**
+ * @param f the <code>float</code> to convert
+ * @return the <code>String</code> representing the <code>float</code>
+ */
+ static String toString(float f)
+ {
+ return VMDouble.toString(f, true);
+ }
+
+ /**
+ * @param str the <code>String</code> to convert
+ * @return the <code>float</code> value of <code>s</code>
+ * @throws NumberFormatException if <code>str</code> cannot be parsed as a
+ * <code>float</code>
+ * @throws NullPointerException if <code>str</code> is null
+ */
+ static float parseFloat(String str)
+ {
+ // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
+ // the infinitely precise decimal.
+ return (float) Double.parseDouble(str);
+ }
} // class VMFloat
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc
index 754681d832a..5b141605f92 100644
--- a/libjava/java/lang/natClass.cc
+++ b/libjava/java/lang/natClass.cc
@@ -671,6 +671,7 @@ java::lang::Class::finalize (void)
engine->unregister(this);
}
+#ifdef INTERPRETER
void
_Jv_ClosureList::releaseClosures (_Jv_ClosureList **closures)
{
@@ -692,6 +693,7 @@ _Jv_ClosureList::registerClosure (jclass klass, void *ptr)
this->next = *closures;
*closures = this;
}
+#endif
// This implements the initialization process for a class. From Spec
// section 12.4.2.
@@ -1041,7 +1043,8 @@ java::lang::Class::getEnclosingClass()
_Jv_word indexes;
indexes.i = getEnclosingMethodData();
if (indexes.i == 0)
- return NULL;
+ // No enclosing method, but perhaps a member or anonymous class
+ return getDeclaringClass();
_Jv_ushort class_index, method_index;
_Jv_loadIndexes (&indexes, class_index, method_index);
return _Jv_Linker::resolve_pool_entry (this, class_index).clazz;
@@ -2065,6 +2068,7 @@ _Jv_GetClassState (jclass klass)
return klass->state;
}
+#ifdef INTERPRETER
jstring
_Jv_GetInterpClassSourceFile (jclass klass)
{
@@ -2077,3 +2081,4 @@ _Jv_GetInterpClassSourceFile (jclass klass)
return NULL;
}
+#endif
diff --git a/libjava/java/lang/natPosixProcess.cc b/libjava/java/lang/natPosixProcess.cc
index eadc44f8403..fbd3f6a0a1b 100644
--- a/libjava/java/lang/natPosixProcess.cc
+++ b/libjava/java/lang/natPosixProcess.cc
@@ -110,7 +110,11 @@ namespace
// sigwait() on SIGCHLD. The information passed is ignored as it
// will be recovered by the waitpid() call.
static void
+#ifdef SA_SIGINFO
sigchld_handler (int sig, siginfo_t *si, void *third)
+#else
+sigchld_handler (int sig)
+#endif
{
if (PosixProcess$ProcessManager::nativeData != NULL)
{
@@ -121,9 +125,11 @@ sigchld_handler (int sig, siginfo_t *si, void *third)
if (pmi->old_sigaction.sa_handler != SIG_DFL
&& pmi->old_sigaction.sa_handler != SIG_IGN)
{
+#ifdef SA_SIGINFO
if ((pmi->old_sigaction.sa_flags & SA_SIGINFO) != 0)
pmi->old_sigaction.sa_sigaction(sig, si, third);
else
+#endif
(*pmi->old_sigaction.sa_handler)(sig);
}
}
@@ -156,9 +162,15 @@ java::lang::PosixProcess$ProcessManager::init ()
struct sigaction sa;
memset (&sa, 0, sizeof (sa));
+#ifdef SA_SIGINFO
sa.sa_sigaction = sigchld_handler;
// We only want signals when the things exit.
sa.sa_flags = SA_NOCLDSTOP | SA_SIGINFO;
+#else
+ sa.sa_handler = sigchld_handler;
+ // We only want signals when the things exit.
+ sa.sa_flags = SA_NOCLDSTOP;
+#endif
if (-1 == sigaction (SIGCHLD, &sa, &pmi->old_sigaction))
goto error;
diff --git a/libjava/java/lang/natThread.cc b/libjava/java/lang/natThread.cc
index 42f18c4eb3a..d6abff13f54 100644
--- a/libjava/java/lang/natThread.cc
+++ b/libjava/java/lang/natThread.cc
@@ -27,8 +27,11 @@ details. */
#include <java/lang/NullPointerException.h>
#include <jni.h>
+
+#ifdef INTERPRETER
#include <jvmti.h>
#include "jvmti-int.h"
+#endif
#ifdef ENABLE_JVMPI
#include <jvmpi.h>
@@ -217,8 +220,10 @@ java::lang::Thread::finish_ ()
nt->park_helper.deactivate ();
group->removeThread (this);
+#ifdef INTERPRETER
if (JVMTI_REQUESTED_EVENT (ThreadEnd))
_Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, this, nt->jni_env);
+#endif
#ifdef ENABLE_JVMPI
if (_Jv_JVMPI_Notify_THREAD_END)
@@ -258,11 +263,13 @@ java::lang::Thread::finish_ ()
static void
_Jv_NotifyThreadStart (java::lang::Thread* thread)
{
+#ifdef INTERPRETER
if (JVMTI_REQUESTED_EVENT (ThreadStart))
{
natThread *nt = reinterpret_cast<natThread *> (thread->data);
_Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_START, thread, nt->jni_env);
}
+#endif
#ifdef ENABLE_JVMPI
if (_Jv_JVMPI_Notify_THREAD_START)
diff --git a/libjava/java/lang/reflect/natMethod.cc b/libjava/java/lang/reflect/natMethod.cc
index 4593da7f49e..d95c92f8468 100644
--- a/libjava/java/lang/reflect/natMethod.cc
+++ b/libjava/java/lang/reflect/natMethod.cc
@@ -359,7 +359,7 @@ _Jv_CallAnyMethodA (jobject obj,
jboolean is_constructor,
jboolean is_virtual_call,
JArray<jclass> *parameter_types,
- jvalue *args,
+ const jvalue *args,
jvalue *result,
jboolean is_jni_call,
jclass iface)
diff --git a/libjava/java/lang/reflect/natVMProxy.cc b/libjava/java/lang/reflect/natVMProxy.cc
index 1d9a3c6a551..a1b7dfcc398 100644
--- a/libjava/java/lang/reflect/natVMProxy.cc
+++ b/libjava/java/lang/reflect/natVMProxy.cc
@@ -42,6 +42,7 @@ details. */
#include <java/lang/IllegalArgumentException.h>
#include <java/lang/Integer.h>
#include <java/lang/StringBuffer.h>
+#include <java/lang/UnsupportedOperationException.h>
#include <java/lang/VMClassLoader.h>
#include <java/lang/VMCompiler.h>
#include <java/lang/reflect/InvocationHandler.h>
@@ -65,6 +66,15 @@ details. */
using namespace java::lang::reflect;
using namespace java::lang;
+#ifndef INTERPRETER
+jclass
+java::lang::reflect::VMProxy::generateProxyClass
+ (ClassLoader *, Proxy$ProxyData *)
+{
+ throw new UnsupportedOperationException (
+ JvNewStringLatin1 ("Interpreter not available"));
+}
+#else
typedef void (*closure_fun) (ffi_cif*, void*, void**, void*);
static void *ncode (int method_index, jclass klass, _Jv_Method *self, closure_fun fun);
static void run_proxy (ffi_cif*, void*, void**, void*);
@@ -444,3 +454,5 @@ ncode (int method_index, jclass klass, _Jv_Method *self, closure_fun fun)
self->ncode = code;
return self->ncode;
}
+
+#endif // INTERPRETER
diff --git a/libjava/java/net/natVMInetAddressPosix.cc b/libjava/java/net/natVMInetAddressPosix.cc
index 7fbe1bb1ff0..bc25f3654aa 100644
--- a/libjava/java/net/natVMInetAddressPosix.cc
+++ b/libjava/java/net/natVMInetAddressPosix.cc
@@ -47,10 +47,25 @@ java::net::VMInetAddress::getLocalHostname ()
{
char *chars;
#ifdef HAVE_GETHOSTNAME
+#ifdef MAXHOSTNAMELEN
char buffer[MAXHOSTNAMELEN];
if (gethostname (buffer, MAXHOSTNAMELEN))
return NULL;
chars = buffer;
+#else
+ size_t size = 256;
+ while (1) {
+ char buffer[size];
+ if (!gethostname (buffer, size-1))
+ {
+ buffer[size-1] = 0;
+ return JvNewStringUTF (buffer);
+ }
+ else if (errno != ENAMETOOLONG)
+ return NULL;
+ size *= 2;
+ }
+#endif
#elif HAVE_UNAME
struct utsname stuff;
if (uname (&stuff) != 0)
diff --git a/libjava/java/nio/CharSequenceBuffer.h b/libjava/java/nio/CharSequenceBuffer.h
new file mode 100644
index 00000000000..b46b2b60d65
--- /dev/null
+++ b/libjava/java/nio/CharSequenceBuffer.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_CharSequenceBuffer__
+#define __java_nio_CharSequenceBuffer__
+
+#pragma interface
+
+#include <java/nio/CharBuffer.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace nio
+ {
+ class ByteOrder;
+ class CharBuffer;
+ class CharSequenceBuffer;
+ }
+ }
+}
+
+class java::nio::CharSequenceBuffer : public ::java::nio::CharBuffer
+{
+
+public: // actually package-private
+ CharSequenceBuffer(::java::lang::CharSequence *, jint, jint, jint, jint, jint);
+ CharSequenceBuffer(::java::lang::CharSequence *, jint, jint);
+public:
+ ::java::nio::CharBuffer * asReadOnlyBuffer();
+ ::java::nio::CharBuffer * compact();
+ ::java::nio::CharBuffer * duplicate();
+ jchar get();
+ jchar get(jint);
+ jboolean isDirect();
+ ::java::nio::ByteOrder * order();
+ ::java::nio::CharBuffer * put(jchar);
+ ::java::nio::CharBuffer * put(jint, jchar);
+ ::java::nio::CharBuffer * slice();
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ jboolean isReadOnly();
+private:
+ ::java::lang::CharSequence * __attribute__((aligned(__alignof__( ::java::nio::CharBuffer)))) charSequence;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_CharSequenceBuffer__
diff --git a/libjava/java/util/EnumSet$1.h b/libjava/java/util/EnumSet$1.h
index 55e1c91d248..3e247ec9bd5 100644
--- a/libjava/java/util/EnumSet$1.h
+++ b/libjava/java/util/EnumSet$1.h
@@ -6,23 +6,25 @@
#pragma interface
-#include <java/lang/Object.h>
+#include <java/util/EnumSet.h>
-class java::util::EnumSet$1 : public ::java::lang::Object
+class java::util::EnumSet$1 : public ::java::util::EnumSet
{
public: // actually package-private
- EnumSet$1(::java::util::EnumSet *);
-public:
- jboolean hasNext();
- ::java::lang::Enum * EnumSet$1$next();
- void remove();
- ::java::lang::Object * next();
-public: // actually package-private
- jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__;
- jint count;
- ::java::util::EnumSet * this$0;
+ EnumSet$1();
public:
+ jboolean EnumSet$1$add(::java::lang::Enum *);
+ jboolean addAll(::java::util::Collection *);
+ void clear();
+ jboolean contains(::java::lang::Object *);
+ jboolean containsAll(::java::util::Collection *);
+ ::java::util::Iterator * iterator();
+ jboolean remove(::java::lang::Object *);
+ jboolean removeAll(::java::util::Collection *);
+ jboolean retainAll(::java::util::Collection *);
+ jint size();
+ jboolean add(::java::lang::Object *);
static ::java::lang::Class class$;
};
diff --git a/libjava/java/util/EnumSet$2.h b/libjava/java/util/EnumSet$2.h
new file mode 100644
index 00000000000..e80b9789bed
--- /dev/null
+++ b/libjava/java/util/EnumSet$2.h
@@ -0,0 +1,29 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_EnumSet$2__
+#define __java_util_EnumSet$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::EnumSet$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+ EnumSet$2(::java::util::EnumSet$1 *);
+public:
+ jboolean hasNext();
+ ::java::lang::Enum * EnumSet$2$next();
+ void remove();
+ ::java::lang::Object * next();
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) next__;
+ jint count;
+ ::java::util::EnumSet$1 * this$1;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_EnumSet$2__
diff --git a/libjava/java/util/EnumSet.h b/libjava/java/util/EnumSet.h
index 200868ae876..5497e306d8c 100644
--- a/libjava/java/util/EnumSet.h
+++ b/libjava/java/util/EnumSet.h
@@ -17,16 +17,6 @@ public: // actually package-private
EnumSet();
public:
virtual ::java::util::EnumSet * EnumSet$clone();
- virtual jint size();
- virtual ::java::util::Iterator * iterator();
- virtual jboolean EnumSet$add(::java::lang::Enum *);
- virtual jboolean addAll(::java::util::Collection *);
- virtual void clear();
- virtual jboolean contains(::java::lang::Object *);
- virtual jboolean containsAll(::java::util::Collection *);
- virtual jboolean remove(::java::lang::Object *);
- virtual jboolean removeAll(::java::util::Collection *);
- virtual jboolean retainAll(::java::util::Collection *);
static ::java::util::EnumSet * allOf(::java::lang::Class *);
static ::java::util::EnumSet * noneOf(::java::lang::Class *);
static ::java::util::EnumSet * copyOf(::java::util::EnumSet *);
@@ -40,7 +30,6 @@ public:
static ::java::util::EnumSet * of(::java::lang::Enum *, JArray< ::java::lang::Enum * > *);
static ::java::util::EnumSet * range(::java::lang::Enum *, ::java::lang::Enum *);
virtual ::java::lang::Object * clone();
- virtual jboolean add(::java::lang::Object *);
private:
static const jlong serialVersionUID = 4782406773684236311LL;
public: // actually package-private
diff --git a/libjava/javax/management/ObjectName.h b/libjava/javax/management/ObjectName.h
index 19a0dbfcd1a..d4288807e50 100644
--- a/libjava/javax/management/ObjectName.h
+++ b/libjava/javax/management/ObjectName.h
@@ -51,6 +51,9 @@ public:
virtual jboolean isDomainPattern();
virtual jboolean isPattern();
virtual jboolean isPropertyPattern();
+ virtual jboolean isPropertyListPattern();
+ virtual jboolean isPropertyValuePattern();
+ virtual jboolean isPropertyValuePattern(::java::lang::String *);
static ::java::lang::String * quote(::java::lang::String *);
virtual void setMBeanServer(::javax::management::MBeanServer *);
virtual ::java::lang::String * toString();
@@ -67,7 +70,8 @@ private:
::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) domain;
::java::util::TreeMap * properties;
::java::lang::String * propertyListString;
- jboolean propertyPattern;
+ jboolean propertyListPattern;
+ jboolean propertyValuePattern;
::javax::management::MBeanServer * server;
public:
static ::java::lang::Class class$;
diff --git a/libjava/jni-libjvm.cc b/libjava/jni-libjvm.cc
index d0c3036538e..1833eb7f345 100644
--- a/libjava/jni-libjvm.cc
+++ b/libjava/jni-libjvm.cc
@@ -17,7 +17,7 @@ details. */
using namespace gcj;
// Forward declarations.
-extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
+extern struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions;
extern jint JNICALL _Jv_JNI_AttachCurrentThread (JavaVM *vm,
void **penv, void *args);
extern JavaVM *_Jv_the_vm;
diff --git a/libjava/jni.cc b/libjava/jni.cc
index 549d4fb06d3..8bb2e591881 100644
--- a/libjava/jni.cc
+++ b/libjava/jni.cc
@@ -22,9 +22,10 @@ details. */
#ifdef ENABLE_JVMPI
#include <jvmpi.h>
#endif
+#ifdef INTERPRETER
#include <jvmti.h>
#include "jvmti-int.h"
-
+#endif
#include <java/lang/Class.h>
#include <java/lang/ClassLoader.h>
#include <java/lang/Throwable.h>
@@ -69,8 +70,8 @@ enum invocation_type
};
// Forward declarations.
-extern struct JNINativeInterface _Jv_JNIFunctions;
-extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
+extern struct JNINativeInterface_ _Jv_JNIFunctions;
+extern struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions;
// Number of slots in the default frame. The VM must allow at least
// 16.
@@ -452,7 +453,8 @@ _Jv_JNI_PopSystemFrame (JNIEnv *env)
_Jv_JNI_PopLocalFrame (env, NULL, MARK_SYSTEM);
else
env->locals = NULL;
-
+
+#ifdef INTERPRETER
if (__builtin_expect (env->ex != NULL, false))
{
jthrowable t = env->ex;
@@ -461,6 +463,7 @@ _Jv_JNI_PopSystemFrame (JNIEnv *env)
_Jv_ReportJVMTIExceptionThrow (t);
throw t;
}
+#endif
}
template<typename T> T extract_from_jvalue(jvalue const & t);
@@ -870,7 +873,7 @@ _Jv_JNI_CallAnyMethod (JNIEnv *env, jobject obj, jclass klass,
template<typename T, invocation_type style>
static T JNICALL
_Jv_JNI_CallAnyMethodA (JNIEnv *env, jobject obj, jclass klass,
- jmethodID id, jvalue *args)
+ jmethodID id, const jvalue *args)
{
obj = unwrap (obj);
klass = unwrap (klass);
@@ -967,7 +970,7 @@ _Jv_JNI_CallAnyVoidMethod (JNIEnv *env, jobject obj, jclass klass,
template<invocation_type style>
static void JNICALL
_Jv_JNI_CallAnyVoidMethodA (JNIEnv *env, jobject obj, jclass klass,
- jmethodID id, jvalue *args)
+ jmethodID id, const jvalue *args)
{
jclass decl_class = klass ? klass : obj->getClass ();
JvAssert (decl_class != NULL);
@@ -1032,7 +1035,7 @@ _Jv_JNI_CallMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
template<typename T>
static T JNICALL
_Jv_JNI_CallMethodA (JNIEnv *env, jobject obj,
- jmethodID id, jvalue *args)
+ jmethodID id, const jvalue *args)
{
return _Jv_JNI_CallAnyMethodA<T, normal> (env, obj, NULL, id, args);
}
@@ -1056,7 +1059,7 @@ _Jv_JNI_CallVoidMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
static void JNICALL
_Jv_JNI_CallVoidMethodA (JNIEnv *env, jobject obj,
- jmethodID id, jvalue *args)
+ jmethodID id, const jvalue *args)
{
_Jv_JNI_CallAnyVoidMethodA<normal> (env, obj, NULL, id, args);
}
@@ -1100,7 +1103,7 @@ _Jv_JNI_CallStaticMethod (JNIEnv *env, jclass klass,
template<typename T>
static T JNICALL
_Jv_JNI_CallStaticMethodA (JNIEnv *env, jclass klass, jmethodID id,
- jvalue *args)
+ const jvalue *args)
{
JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
JvAssert (java::lang::Class::class$.isInstance (unwrap (klass)));
@@ -1128,7 +1131,7 @@ _Jv_JNI_CallStaticVoidMethod (JNIEnv *env, jclass klass,
static void JNICALL
_Jv_JNI_CallStaticVoidMethodA (JNIEnv *env, jclass klass,
- jmethodID id, jvalue *args)
+ jmethodID id, const jvalue *args)
{
_Jv_JNI_CallAnyVoidMethodA<static_type> (env, NULL, klass, id, args);
}
@@ -1171,7 +1174,7 @@ _Jv_JNI_NewObject (JNIEnv *env, jclass klass, jmethodID id, ...)
static jobject JNICALL
_Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
- jvalue *args)
+ const jvalue *args)
{
JvAssert (klass && ! klass->isArray ());
JvAssert (! strcmp (id->name->chars(), "<init>")
@@ -1574,7 +1577,7 @@ _Jv_JNI_GetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
template<typename T, jclass K>
static void JNICALL
_Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
- jsize start, jsize len, T *buf)
+ jsize start, jsize len, const T *buf)
{
array = unwrap (array);
if (! _Jv_JNI_check_types (env, array, K))
@@ -2290,7 +2293,8 @@ _Jv_LookupJNIMethod (jclass klass, _Jv_Utf8Const *name,
// This function is the stub which is used to turn an ordinary (CNI)
// method call into a JNI call.
void
-_Jv_JNIMethod::call (ffi_cif *, void *ret, ffi_raw *args, void *__this)
+_Jv_JNIMethod::call (ffi_cif *, void *ret, INTERP_FFI_RAW_TYPE *args,
+ void *__this)
{
_Jv_JNIMethod* _this = (_Jv_JNIMethod *) __this;
@@ -2322,8 +2326,9 @@ _Jv_JNIMethod::call (ffi_cif *, void *ret, ffi_raw *args, void *__this)
}
}
- JvAssert (_this->args_raw_size % sizeof (ffi_raw) == 0);
- ffi_raw real_args[2 + _this->args_raw_size / sizeof (ffi_raw)];
+ JvAssert (_this->args_raw_size % sizeof (INTERP_FFI_RAW_TYPE) == 0);
+ INTERP_FFI_RAW_TYPE
+ real_args[2 + _this->args_raw_size / sizeof (INTERP_FFI_RAW_TYPE)];
int offset = 0;
// First argument is always the environment pointer.
@@ -2535,12 +2540,14 @@ _Jv_JNI_GetEnv (JavaVM *, void **penv, jint version)
}
#endif
+#ifdef INTERPRETER
// Handle JVMTI requests
if (version == JVMTI_VERSION_1_0)
{
*penv = (void *) _Jv_GetJVMTIEnv ();
return 0;
}
+#endif
// FIXME: do we really want to support 1.1?
if (version != JNI_VERSION_1_4 && version != JNI_VERSION_1_2
@@ -2588,7 +2595,7 @@ _Jv_JNI_GetJavaVM (JNIEnv *, JavaVM **vm)
#define RESERVED NULL
-struct JNINativeInterface _Jv_JNIFunctions =
+struct JNINativeInterface_ _Jv_JNIFunctions =
{
RESERVED,
RESERVED,
@@ -2871,7 +2878,7 @@ struct JNINativeInterface _Jv_JNIFunctions =
_Jv_JNI_GetDirectBufferCapacity // GetDirectBufferCapacity
};
-struct JNIInvokeInterface _Jv_JNI_InvokeFunctions =
+struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions =
{
RESERVED,
RESERVED,
diff --git a/libjava/libgcj.spec.in b/libjava/libgcj.spec.in
index cf24170ec77..72d715f5acd 100644
--- a/libjava/libgcj.spec.in
+++ b/libjava/libgcj.spec.in
@@ -7,6 +7,6 @@
*startfile: @THREADSTARTFILESPEC@ %(startfileorig)
%rename lib liborig
-*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
+*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ -fkeep-inline-functions
diff --git a/libjava/link.cc b/libjava/link.cc
index 1d873acf288..d6fd2ddafbd 100644
--- a/libjava/link.cc
+++ b/libjava/link.cc
@@ -1,6 +1,7 @@
// link.cc - Code for linking and resolving classes and pool entries.
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+ Free Software Foundation
This file is part of libgcj.
@@ -33,8 +34,10 @@ details. */
#include <limits.h>
#include <java-cpool.h>
#include <execution.h>
+#ifdef INTERPRETER
#include <jvmti.h>
#include "jvmti-int.h"
+#endif
#include <java/lang/Class.h>
#include <java/lang/String.h>
#include <java/lang/StringBuffer.h>
@@ -660,10 +663,11 @@ _Jv_Linker::prepare_constant_time_tables (jclass klass)
// interfaces or primitive types.
jclass klass0 = klass;
- jboolean has_interfaces = 0;
+ jboolean has_interfaces = false;
while (klass0 != &java::lang::Object::class$)
{
- has_interfaces += klass0->interface_count;
+ if (klass0->interface_count)
+ has_interfaces = true;
klass0 = klass0->superclass;
klass->depth++;
}
@@ -853,7 +857,7 @@ _Jv_ThrowNoSuchMethodError ()
throw new java::lang::NoSuchMethodError;
}
-#if defined USE_LIBFFI && FFI_CLOSURES
+#if defined USE_LIBFFI && FFI_CLOSURES && defined(INTERPRETER)
// A function whose invocation is prepared using libffi. It gets called
// whenever a static method of a missing class is invoked. The data argument
// holds a reference to a String denoting the missing class.
@@ -1039,7 +1043,7 @@ _Jv_Linker::find_iindex (jclass *ifaces, jshort *offsets, jshort num)
return i;
}
-#if defined USE_LIBFFI && FFI_CLOSURES
+#if defined USE_LIBFFI && FFI_CLOSURES && defined(INTERPRETER)
// We use a structure of this type to store the closure that
// represents a missing method.
struct method_closure
@@ -2069,6 +2073,7 @@ _Jv_Linker::wait_for_state (jclass klass, int state)
throw new java::lang::LinkageError;
}
+#ifdef INTERPRETER
if (__builtin_expect (klass->state == JV_STATE_LINKED, false)
&& state >= JV_STATE_LINKED
&& JVMTI_REQUESTED_EVENT (ClassPrepare))
@@ -2077,4 +2082,5 @@ _Jv_Linker::wait_for_state (jclass klass, int state)
_Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_PREPARE, self, jni_env,
klass);
}
+#endif
}
diff --git a/libjava/prims.cc b/libjava/prims.cc
index 5d3a260e9d0..d94cd92cbc7 100644
--- a/libjava/prims.cc
+++ b/libjava/prims.cc
@@ -32,8 +32,10 @@ details. */
#include <java/lang/ThreadGroup.h>
#endif
+#ifdef INTERPRETER
#include <jvmti.h>
#include "jvmti-int.h"
+#endif
#ifndef DISABLE_GETENV_PROPERTIES
#include <ctype.h>
@@ -67,8 +69,12 @@ details. */
#include <gnu/gcj/runtime/ExtensionClassLoader.h>
#include <gnu/gcj/runtime/FinalizerThread.h>
#include <execution.h>
+
+#ifdef INTERPRETER
#include <gnu/classpath/jdwp/Jdwp.h>
#include <gnu/classpath/jdwp/VMVirtualMachine.h>
+#endif // INTERPRETER
+
#include <gnu/java/lang/MainThread.h>
#ifdef USE_LTDL
@@ -105,6 +111,7 @@ int _Jv_argc;
// Debugging options
static bool remoteDebug = false;
+#ifdef INTERPRETER
static char defaultJdwpOptions[] = "";
static char *jdwpOptions = defaultJdwpOptions;
@@ -117,6 +124,7 @@ typedef jint jvmti_agent_onunload_func (JavaVM *vm);
static jvmti_agent_onload_func *jvmti_agentonload = NULL;
static jvmti_agent_onunload_func *jvmti_agentonunload = NULL;
static char *jvmti_agent_opts;
+#endif // INTERPRETER
// Argument support.
int
@@ -1173,6 +1181,7 @@ parse_x_arg (char* option_string)
{
remoteDebug = true;
}
+#ifdef INTERPRETER
else if (! strncmp (option_string, "runjdwp:", 8))
{
if (strlen (option_string) > 8)
@@ -1184,6 +1193,7 @@ parse_x_arg (char* option_string)
return -1;
}
}
+#endif // INTERPRETER
else if (! strncmp (option_string, "bootclasspath:", 14))
{
// FIXME: add a parse_bootclasspath_arg function
@@ -1372,6 +1382,7 @@ parse_verbose_args (char* option_string,
return 0;
}
+#ifdef INTERPRETER
// This function loads the agent functions for JVMTI from the library indicated
// by name. It returns a negative value on failure, the value of which
// indicates where ltdl failed, it also prints an error message.
@@ -1427,6 +1438,7 @@ load_jvmti_agent (const char *name)
// If LTDL cannot be used, return an error code indicating this.
return -99;
}
+#endif // INTERPRETER
static jint
parse_init_args (JvVMInitArgs* vm_args)
@@ -1481,6 +1493,7 @@ parse_init_args (JvVMInitArgs* vm_args)
continue;
}
+#ifdef INTERPRETER
else if (! strncmp (option_string, "-agentlib", sizeof ("-agentlib") - 1))
{
char *strPtr;
@@ -1575,6 +1588,7 @@ parse_init_args (JvVMInitArgs* vm_args)
JVMTI::enabled = true;
continue;
}
+#endif // INTERPRETER
else
{
int r = -1;
@@ -1666,7 +1680,10 @@ _Jv_CreateJavaVM (JvVMInitArgs* vm_args)
_Jv_platform_initialize ();
_Jv_JNI_Init ();
+
+#ifdef INTERPRETER
_Jv_JVMTI_Init ();
+#endif
_Jv_GCInitializeFinalizers (&::gnu::gcj::runtime::FinalizerThread::finalizerReady);
@@ -1734,7 +1751,8 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc,
main_thread = new MainThread (JvNewStringUTF (name),
arg_vec, is_jar);
_Jv_AttachCurrentThread (main_thread);
-
+
+#ifdef INTERPRETER
// Start JVMTI if an agent function has been found.
if (jvmti_agentonload)
(*jvmti_agentonload) (_Jv_GetJavaVM (), jvmti_agent_opts, NULL);
@@ -1755,6 +1773,7 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc,
// Send VMInit
if (JVMTI_REQUESTED_EVENT (VMInit))
_Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, main_thread);
+#endif // INTERPRETER
}
catch (java::lang::Throwable *t)
{
@@ -1769,6 +1788,7 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc,
_Jv_ThreadRun (main_thread);
+#ifdef INTERPRETER
// Send VMDeath
if (JVMTI_REQUESTED_EVENT (VMDeath))
{
@@ -1776,10 +1796,11 @@ _Jv_RunMain (JvVMInitArgs *vm_args, jclass klass, const char *name, int argc,
JNIEnv *jni_env = _Jv_GetCurrentJNIEnv ();
_Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, thread, jni_env);
}
-
- // Run JVMTI AgentOnUnload if it exists and an agent is loaded.
+
+ // Run JVMTI AgentOnUnload if it exists and an agent is loaded.
if (jvmti_agentonunload)
(*jvmti_agentonunload) (_Jv_GetJavaVM ());
+#endif // INTERPRETER
// If we got here then something went wrong, as MainThread is not
// supposed to terminate.
diff --git a/libjava/scripts/makemake.tcl b/libjava/scripts/makemake.tcl
index ab8a85d2c29..080265821f7 100755
--- a/libjava/scripts/makemake.tcl
+++ b/libjava/scripts/makemake.tcl
@@ -36,6 +36,11 @@ proc verbose {text} {
# objects in this package are not used. Note however that
# most ignored files are actually handled by listing them in
# 'standard.omit'
+# * interpreter
+# objects in this package (and possibly sub-packages,
+# if they do not appear in the map) are only compiled if
+# the interpreter is enabled. They are compiled as with the
+# 'package' specifier.
#
# If a package does not appear in the map, the default is 'package'.
global package_map
@@ -68,6 +73,7 @@ set package_map(gnu/java/awt/peer/qt) bc
set package_map(gnu/java/awt/peer/x) bc
set package_map(gnu/java/util/prefs/gconf) bc
set package_map(gnu/javax/sound/midi) bc
+set package_map(gnu/javax/sound/sampled/gstreamer) ignore
set package_map(org/xml) bc
set package_map(org/w3c) bc
set package_map(org/relaxng) bc
@@ -93,6 +99,19 @@ set package_map(gnu/javax/swing/text/html/parser/support) package
set package_map(gnu/gcj/xlib) package
set package_map(gnu/awt/xlib) package
+# These packages should only be included if the interpreter is
+# enabled.
+set package_map(gnu/classpath/jdwp) interpreter
+set package_map(gnu/classpath/jdwp/event) interpreter
+set package_map(gnu/classpath/jdwp/event/filters) interpreter
+set package_map(gnu/classpath/jdwp/exception) interpreter
+set package_map(gnu/classpath/jdwp/id) interpreter
+set package_map(gnu/classpath/jdwp/processor) interpreter
+set package_map(gnu/classpath/jdwp/transport) interpreter
+set package_map(gnu/classpath/jdwp/util) interpreter
+set package_map(gnu/classpath/jdwp/value) interpreter
+set package_map(gnu/gcj/jvmti) interpreter
+
# Some BC ABI packages have classes which must not be compiled BC.
# This maps such packages to a grep expression for excluding such
# classes.
@@ -131,6 +150,9 @@ set properties_map(META-INF/services/javax.xml.parsers.TransformerFactory) _
set properties_map(META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory) _
set properties_map(META-INF/services/org.w3c.dom.DOMImplementationSourceList) _
set properties_map(META-INF/services/org.xml.sax.driver) _
+set properties_map(META-INF/services/javax.sound.sampled.spi.AudioFileReader.in) ignore
+set properties_map(META-INF/services/javax.sound.sampled.spi.MixerProvider) ignore
+set properties_map(META-INF/services/javax.sound.sampled.spi.MixerProvider.in) ignore
# List of all properties files.
set properties_files {}
@@ -138,9 +160,16 @@ set properties_files {}
# List of all '@' files that we are going to compile.
set package_files {}
+# List of all '@' files that we are going to compile if the
+# interpreter is enabled.
+set interpreter_package_files {}
+
# List of all header file variables.
set header_vars {}
+# List of all header file variables for interpreter packages.
+set interpreter_header_vars {}
+
# List of all BC object files.
set bc_objects {}
@@ -288,7 +317,9 @@ proc emit_bc_rule {package} {
if {$package_map($package) == "bc"} {
puts -nonewline "-fjni "
}
- puts "-findirect-dispatch -fno-indirect-classes -c -o $loname @$tname"
+ # Unless bc is disabled with --disable-libgcj-bc, $(LIBGCJ_BC_FLAGS) is:
+ # -findirect-dispatch -fno-indirect-classes
+ puts "\$(LIBGCJ_BC_FLAGS) -c -o $loname @$tname"
puts "\t@rm -f $tname"
puts ""
@@ -300,8 +331,8 @@ proc emit_bc_rule {package} {
}
# Emit a rule for a 'package' package.
-proc emit_package_rule {package} {
- global package_map exclusion_map package_files
+proc emit_package_rule_to_list {package package_files_list} {
+ global package_map exclusion_map $package_files_list
if {$package == "."} {
set pkgname ordinary
@@ -333,10 +364,20 @@ proc emit_package_rule {package} {
if {$pkgname != "gnu/gcj/xlib" && $pkgname != "gnu/awt/xlib"
&& $pkgname != "gnu/gcj/tools/gcj_dbtool"} {
- lappend package_files $lname
+ lappend $package_files_list $lname
}
}
+proc emit_package_rule {package} {
+ global package_files
+ emit_package_rule_to_list $package package_files
+}
+
+proc emit_interpreter_rule {package} {
+ global interpreter_package_files
+ emit_package_rule_to_list $package interpreter_package_files
+}
+
# Emit a rule to build a package full of 'ordinary' files, that is,
# one .o for each .java.
proc emit_ordinary_rule {package} {
@@ -382,7 +423,7 @@ proc emit_process_package_rule {platform} {
# Emit a source file variable for a package, and corresponding header
# file variable, if needed.
proc emit_source_var {package} {
- global package_map name_map dir_map header_vars
+ global package_map name_map dir_map header_vars interpreter_header_vars
if {$package == "."} {
set pkgname ordinary
@@ -428,7 +469,11 @@ proc emit_source_var {package} {
puts "${uname}_header_files = $result"
puts ""
if {$pkgname != "gnu/gcj/xlib" && $pkgname != "gnu/awt/xlib"} {
- lappend header_vars "${uname}_header_files"
+ if {$package_map($package) == "interpreter"} {
+ lappend interpreter_header_vars "${uname}_header_files"
+ } else {
+ lappend header_vars "${uname}_header_files"
+ }
}
}
}
@@ -490,6 +535,8 @@ foreach package [lsort [array names package_map]] {
emit_ordinary_rule $package
} elseif {$package_map($package) == "package"} {
emit_package_rule $package
+ } elseif {$package_map($package) == "interpreter"} {
+ emit_interpreter_rule $package
} else {
error "unrecognized type: $package_map($package)"
}
@@ -499,6 +546,21 @@ emit_process_package_rule Ecos
emit_process_package_rule Win32
emit_process_package_rule Posix
+puts "if INTERPRETER"
+pp_var interpreter_packages_source_files $interpreter_package_files
+pp_var interpreter_header_files $interpreter_header_vars "\$(" ")"
+puts ""
+puts "else"
+puts ""
+puts "interpreter_packages_source_files="
+puts ""
+puts "interpreter_header_files="
+puts ""
+puts "endif"
+
+lappend package_files {$(interpreter_packages_source_files)}
+lappend header_vars interpreter_header_files
+
pp_var all_packages_source_files $package_files
pp_var ordinary_header_files $header_vars "\$(" ")"
pp_var bc_objects $bc_objects
diff --git a/libjava/shlibpath.m4 b/libjava/shlibpath.m4
index 4bdd362ff5e..d6a7ca4e227 100644
--- a/libjava/shlibpath.m4
+++ b/libjava/shlibpath.m4
@@ -71,7 +71,7 @@ aix3*)
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[[4-9]]*)
version_type=linux
need_lib_prefix=no
need_version=no
diff --git a/libjava/sources.am b/libjava/sources.am
index 89097563d71..5361bdf5554 100644
--- a/libjava/sources.am
+++ b/libjava/sources.am
@@ -166,7 +166,7 @@ classpath/gnu/CORBA/typecodes/StringTypeCode.java
gnu-CORBA.lo: $(gnu_CORBA_source_files)
@find $(srcdir)/classpath/lib/gnu/CORBA -name '*.class' > gnu-CORBA.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-CORBA.lo @gnu-CORBA.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-CORBA.lo @gnu-CORBA.list
@rm -f gnu-CORBA.list
gnu_awt_source_files = \
@@ -698,7 +698,7 @@ classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java
gnu-java-awt-dnd-peer-gtk.lo: $(gnu_java_awt_dnd_peer_gtk_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/dnd/peer/gtk -name '*.class' > gnu-java-awt-dnd-peer-gtk.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-dnd-peer-gtk.lo @gnu-java-awt-dnd-peer-gtk.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-dnd-peer-gtk.lo @gnu-java-awt-dnd-peer-gtk.list
@rm -f gnu-java-awt-dnd-peer-gtk.list
gnu_java_awt_font_source_files = \
@@ -800,12 +800,14 @@ classpath/gnu/java/awt/java2d/AlphaCompositeContext.java \
classpath/gnu/java/awt/java2d/CubicSegment.java \
classpath/gnu/java/awt/java2d/ImagePaint.java \
classpath/gnu/java/awt/java2d/LineSegment.java \
+classpath/gnu/java/awt/java2d/Pixelizer.java \
classpath/gnu/java/awt/java2d/PolyEdge.java \
classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \
classpath/gnu/java/awt/java2d/QuadSegment.java \
classpath/gnu/java/awt/java2d/RasterGraphics.java \
classpath/gnu/java/awt/java2d/Scanline.java \
classpath/gnu/java/awt/java2d/ScanlineConverter.java \
+classpath/gnu/java/awt/java2d/ScanlineCoverage.java \
classpath/gnu/java/awt/java2d/Segment.java \
classpath/gnu/java/awt/java2d/ShapeCache.java \
classpath/gnu/java/awt/java2d/TexturePaintContext.java
@@ -891,7 +893,7 @@ classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java
gnu-java-awt-peer-gtk.lo: $(gnu_java_awt_peer_gtk_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/gtk -name '*.class' > gnu-java-awt-peer-gtk.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-gtk.lo @gnu-java-awt-peer-gtk.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-gtk.lo @gnu-java-awt-peer-gtk.list
@rm -f gnu-java-awt-peer-gtk.list
gnu_java_awt_peer_headless_source_files = \
@@ -954,12 +956,13 @@ classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
gnu-java-awt-peer-qt.lo: $(gnu_java_awt_peer_qt_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/qt -name '*.class' > gnu-java-awt-peer-qt.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-qt.lo @gnu-java-awt-peer-qt.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-qt.lo @gnu-java-awt-peer-qt.list
@rm -f gnu-java-awt-peer-qt.list
gnu_java_awt_peer_swing_source_files = \
classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java \
classpath/gnu/java/awt/peer/swing/SwingCanvasPeer.java \
+classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java \
classpath/gnu/java/awt/peer/swing/SwingComponent.java \
classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java \
classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java \
@@ -977,31 +980,30 @@ classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java
gnu-java-awt-peer-swing.lo: $(gnu_java_awt_peer_swing_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/swing -name '*.class' > gnu-java-awt-peer-swing.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-swing.lo @gnu-java-awt-peer-swing.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-swing.lo @gnu-java-awt-peer-swing.list
@rm -f gnu-java-awt-peer-swing.list
gnu_java_awt_peer_x_source_files = \
classpath/gnu/java/awt/peer/x/GLGraphics.java \
classpath/gnu/java/awt/peer/x/ImageConverter.java \
classpath/gnu/java/awt/peer/x/KeyboardMapping.java \
+classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java \
classpath/gnu/java/awt/peer/x/XDialogPeer.java \
classpath/gnu/java/awt/peer/x/XEventPump.java \
-classpath/gnu/java/awt/peer/x/XFontPeer.java \
classpath/gnu/java/awt/peer/x/XFontPeer2.java \
classpath/gnu/java/awt/peer/x/XFramePeer.java \
-classpath/gnu/java/awt/peer/x/XGraphics.java \
classpath/gnu/java/awt/peer/x/XGraphics2D.java \
classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \
classpath/gnu/java/awt/peer/x/XGraphicsDevice.java \
classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java \
classpath/gnu/java/awt/peer/x/XImage.java \
-classpath/gnu/java/awt/peer/x/XLightweightPeer.java \
classpath/gnu/java/awt/peer/x/XToolkit.java \
-classpath/gnu/java/awt/peer/x/XWindowPeer.java
+classpath/gnu/java/awt/peer/x/XWindowPeer.java \
+classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
gnu-java-awt-peer-x.lo: $(gnu_java_awt_peer_x_source_files)
@find $(srcdir)/classpath/lib/gnu/java/awt/peer/x -name '*.class' > gnu-java-awt-peer-x.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-awt-peer-x.lo @gnu-java-awt-peer-x.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-awt-peer-x.lo @gnu-java-awt-peer-x.list
@rm -f gnu-java-awt-peer-x.list
gnu_java_awt_print_source_files = \
@@ -1105,7 +1107,7 @@ classpath/gnu/java/beans/encoder/elements/StringReference.java
gnu-java-beans.lo: $(gnu_java_beans_source_files)
@find $(srcdir)/classpath/lib/gnu/java/beans -name '*.class' > gnu-java-beans.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-beans.lo @gnu-java-beans.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-beans.lo @gnu-java-beans.list
@rm -f gnu-java-beans.list
gnu_java_io_source_files = \
@@ -1168,7 +1170,7 @@ gnu_java_lang_management_header_files = $(patsubst classpath/%,%,$(patsubst %.ja
gnu-java-lang-management.lo: $(gnu_java_lang_management_source_files)
@find $(srcdir)/classpath/lib/gnu/java/lang/management -name '*.class' > gnu-java-lang-management.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -findirect-dispatch -fno-indirect-classes -c -o gnu-java-lang-management.lo @gnu-java-lang-management.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes $(LIBGCJ_BC_FLAGS) -c -o gnu-java-lang-management.lo @gnu-java-lang-management.list
@rm -f gnu-java-lang-management.list
gnu_java_lang_reflect_source_files = \
@@ -2204,7 +2206,7 @@ classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java
gnu-java-util-prefs-gconf.lo: $(gnu_java_util_prefs_gconf_source_files)
@find $(srcdir)/classpath/lib/gnu/java/util/prefs/gconf -name '*.class' > gnu-java-util-prefs-gconf.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-java-util-prefs-gconf.lo @gnu-java-util-prefs-gconf.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-util-prefs-gconf.lo @gnu-java-util-prefs-gconf.list
@rm -f gnu-java-util-prefs-gconf.list
gnu_java_util_regex_source_files = \
@@ -2928,7 +2930,7 @@ classpath/gnu/javax/management/Translator.java
gnu-javax-management.lo: $(gnu_javax_management_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/management -name '*.class' > gnu-javax-management.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-management.lo @gnu-javax-management.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-javax-management.lo @gnu-javax-management.list
@rm -f gnu-javax-management.list
gnu_javax_naming_giop_source_files = \
@@ -3288,7 +3290,7 @@ classpath/gnu/javax/rmi/CORBA/ValueHandlerDelegateImpl.java
gnu-javax-rmi.lo: $(gnu_javax_rmi_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/rmi -name '*.class' > gnu-javax-rmi.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-rmi.lo @gnu-javax-rmi.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-javax-rmi.lo @gnu-javax-rmi.list
@rm -f gnu-javax-rmi.list
gnu_javax_security_auth_source_files = \
@@ -3335,6 +3337,18 @@ gnu/javax/security/auth/login.list: $(gnu_javax_security_auth_login_source_files
-include gnu/javax/security/auth/login.deps
+gnu_javax_sound_source_files = \
+classpath/gnu/javax/sound/AudioSecurityManager.java
+
+gnu_javax_sound_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_sound_source_files)))
+
+gnu/javax/sound.list: $(gnu_javax_sound_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/gnu/javax/sound/*.class > gnu/javax/sound.list
+
+-include gnu/javax/sound.deps
+
+
gnu_javax_sound_midi_source_files = \
classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java \
classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java \
@@ -3351,7 +3365,7 @@ classpath/gnu/javax/sound/midi/file/MidiFileWriter.java
gnu-javax-sound-midi.lo: $(gnu_javax_sound_midi_source_files)
@find $(srcdir)/classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list
@rm -f gnu-javax-sound-midi.list
gnu_javax_sound_sampled_AU_source_files = \
@@ -3564,7 +3578,7 @@ classpath/gnu/xml/aelfred2/XmlReader.java
gnu-xml-aelfred2.lo: $(gnu_xml_aelfred2_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/aelfred2 -name '*.class' > gnu-xml-aelfred2.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-aelfred2.lo @gnu-xml-aelfred2.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-aelfred2.lo @gnu-xml-aelfred2.list
@rm -f gnu-xml-aelfred2.list
gnu_xml_dom_source_files = \
@@ -3673,7 +3687,7 @@ classpath/gnu/xml/dom/ls/WriterOutputStream.java
gnu-xml-dom.lo: $(gnu_xml_dom_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/dom -name '*.class' > gnu-xml-dom.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-dom.lo @gnu-xml-dom.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-dom.lo @gnu-xml-dom.list
@rm -f gnu-xml-dom.list
gnu_xml_libxmlj_source_files = \
@@ -3721,7 +3735,7 @@ classpath/gnu/xml/libxmlj/util/XMLJ.java
gnu-xml-libxmlj.lo: $(gnu_xml_libxmlj_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/libxmlj -name '*.class' > gnu-xml-libxmlj.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-libxmlj.lo @gnu-xml-libxmlj.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-libxmlj.lo @gnu-xml-libxmlj.list
@rm -f gnu-xml-libxmlj.list
gnu_xml_pipeline_source_files = \
@@ -3741,7 +3755,7 @@ classpath/gnu/xml/pipeline/XsltFilter.java
gnu-xml-pipeline.lo: $(gnu_xml_pipeline_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/pipeline -name '*.class' > gnu-xml-pipeline.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-pipeline.lo @gnu-xml-pipeline.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-pipeline.lo @gnu-xml-pipeline.list
@rm -f gnu-xml-pipeline.list
gnu_xml_stream_source_files = \
@@ -3778,7 +3792,7 @@ classpath/gnu/xml/stream/XMLStreamWriterImpl.java
gnu-xml-stream.lo: $(gnu_xml_stream_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/stream -name '*.class' > gnu-xml-stream.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-stream.lo @gnu-xml-stream.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-stream.lo @gnu-xml-stream.list
@rm -f gnu-xml-stream.list
gnu_xml_transform_source_files = \
@@ -3839,7 +3853,7 @@ classpath/gnu/xml/transform/XSLURIResolver.java
gnu-xml-transform.lo: $(gnu_xml_transform_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/transform -name '*.class' > gnu-xml-transform.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-transform.lo @gnu-xml-transform.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-transform.lo @gnu-xml-transform.list
@rm -f gnu-xml-transform.list
gnu_xml_util_source_files = \
@@ -3853,7 +3867,7 @@ classpath/gnu/xml/util/XMLWriter.java
gnu-xml-util.lo: $(gnu_xml_util_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/util -name '*.class' > gnu-xml-util.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-util.lo @gnu-xml-util.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-util.lo @gnu-xml-util.list
@rm -f gnu-xml-util.list
gnu_xml_validation_source_files = \
@@ -3970,7 +3984,7 @@ classpath/gnu/xml/validation/xmlschema/XMLSchemaValidatorHandler.java
gnu-xml-validation.lo: $(gnu_xml_validation_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/validation -name '*.class' > gnu-xml-validation.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-validation.lo @gnu-xml-validation.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-validation.lo @gnu-xml-validation.list
@rm -f gnu-xml-validation.list
gnu_xml_xpath_source_files = \
@@ -4032,7 +4046,7 @@ classpath/gnu/xml/xpath/XPathTokenizer.java
gnu-xml-xpath.lo: $(gnu_xml_xpath_source_files)
@find $(srcdir)/classpath/lib/gnu/xml/xpath -name '*.class' > gnu-xml-xpath.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-xml-xpath.lo @gnu-xml-xpath.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-xml-xpath.lo @gnu-xml-xpath.list
@rm -f gnu-xml-xpath.list
java_applet_source_files = \
@@ -4876,7 +4890,7 @@ java/lang/management/VMManagementFactory.java
java-lang-management.lo: $(java_lang_management_source_files)
@find $(srcdir)/classpath/lib/java/lang/management -name '*.class' > java-lang-management.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o java-lang-management.lo @java-lang-management.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o java-lang-management.lo @java-lang-management.list
@rm -f java-lang-management.list
java_lang_ref_source_files = \
@@ -5015,6 +5029,7 @@ classpath/java/nio/ByteBufferImpl.java \
classpath/java/nio/ByteOrder.java \
classpath/java/nio/CharBuffer.java \
classpath/java/nio/CharBufferImpl.java \
+classpath/java/nio/CharSequenceBuffer.java \
classpath/java/nio/CharViewBufferImpl.java \
java/nio/DirectByteBufferImpl.java \
classpath/java/nio/DoubleBuffer.java \
@@ -6063,7 +6078,7 @@ classpath/javax/imageio/stream/MemoryCacheImageOutputStream.java
javax-imageio.lo: $(javax_imageio_source_files)
@find $(srcdir)/classpath/lib/javax/imageio -name '*.class' > javax-imageio.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-imageio.lo @javax-imageio.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o javax-imageio.lo @javax-imageio.list
@rm -f javax-imageio.list
javax_management_source_files = \
@@ -6580,7 +6595,7 @@ classpath/javax/rmi/ssl/SslRMIServerSocketFactory.java
javax-rmi.lo: $(javax_rmi_source_files)
@find $(srcdir)/classpath/lib/javax/rmi -name '*.class' > javax-rmi.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-rmi.lo @javax-rmi.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o javax-rmi.lo @javax-rmi.list
@rm -f javax-rmi.list
javax_security_auth_source_files = \
@@ -7687,7 +7702,7 @@ classpath/javax/xml/xpath/XPathVariableResolver.java
javax-xml.lo: $(javax_xml_source_files)
@find $(srcdir)/classpath/lib/javax/xml -name '*.class' > javax-xml.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o javax-xml.lo @javax-xml.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o javax-xml.lo @javax-xml.list
@rm -f javax-xml.list
org_ietf_jgss_source_files = \
@@ -8246,7 +8261,7 @@ classpath/org/omg/stub/java/rmi/_Remote_Stub.java
org-omg.lo: $(org_omg_source_files)
@find $(srcdir)/classpath/lib/org/omg -name '*.class' > org-omg.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-omg.lo @org-omg.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-omg.lo @org-omg.list
@rm -f org-omg.list
org_relaxng_source_files = \
@@ -8263,7 +8278,7 @@ classpath/external/relaxngDatatype/org/relaxng/datatype/helpers/StreamingValidat
org-relaxng.lo: $(org_relaxng_source_files)
@find $(srcdir)/classpath/lib/org/relaxng -name '*.class' > org-relaxng.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-relaxng.lo @org-relaxng.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-relaxng.lo @org-relaxng.list
@rm -f org-relaxng.list
org_w3c_source_files = \
@@ -8416,7 +8431,7 @@ classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java
org-w3c.lo: $(org_w3c_source_files)
@find $(srcdir)/classpath/lib/org/w3c -name '*.class' > org-w3c.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-w3c.lo @org-w3c.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-w3c.lo @org-w3c.list
@rm -f org-w3c.list
org_xml_source_files = \
@@ -8459,9 +8474,21 @@ classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java
org-xml.lo: $(org_xml_source_files)
@find $(srcdir)/classpath/lib/org/xml -name '*.class' > org-xml.list
- $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-xml.lo @org-xml.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o org-xml.lo @org-xml.list
@rm -f org-xml.list
+sun_awt_source_files = \
+classpath/sun/awt/CausedFocusEvent.java
+
+sun_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_awt_source_files)))
+
+sun/awt.list: $(sun_awt_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/sun/awt/*.class > sun/awt.list
+
+-include sun/awt.deps
+
+
sun_misc_source_files = \
classpath/sun/misc/Service.java \
classpath/sun/misc/ServiceConfigurationError.java \
@@ -8537,12 +8564,9 @@ java/process-Posix.list: java/lang/PosixProcess.java
-include java/process-Posix.deps
+if INTERPRETER
-all_packages_source_files = \
- gnu/awt.list \
- gnu/awt/j2d.list \
- gnu/classpath.list \
- gnu/classpath/debug.list \
+interpreter_packages_source_files = \
gnu/classpath/jdwp.list \
gnu/classpath/jdwp/event.list \
gnu/classpath/jdwp/event/filters.list \
@@ -8552,10 +8576,36 @@ all_packages_source_files = \
gnu/classpath/jdwp/transport.list \
gnu/classpath/jdwp/util.list \
gnu/classpath/jdwp/value.list \
+ gnu/gcj/jvmti.list
+
+interpreter_header_files = \
+ $(gnu_classpath_jdwp_header_files) \
+ $(gnu_classpath_jdwp_event_header_files) \
+ $(gnu_classpath_jdwp_event_filters_header_files) \
+ $(gnu_classpath_jdwp_exception_header_files) \
+ $(gnu_classpath_jdwp_id_header_files) \
+ $(gnu_classpath_jdwp_processor_header_files) \
+ $(gnu_classpath_jdwp_transport_header_files) \
+ $(gnu_classpath_jdwp_util_header_files) \
+ $(gnu_classpath_jdwp_value_header_files) \
+ $(gnu_gcj_jvmti_header_files)
+
+else
+
+interpreter_packages_source_files=
+
+interpreter_header_files=
+
+endif
+
+all_packages_source_files = \
+ gnu/awt.list \
+ gnu/awt/j2d.list \
+ gnu/classpath.list \
+ gnu/classpath/debug.list \
gnu/gcj.list \
gnu/gcj/convert.list \
gnu/gcj/io.list \
- gnu/gcj/jvmti.list \
gnu/gcj/runtime.list \
gnu/gcj/util.list \
gnu/java/awt.list \
@@ -8665,6 +8715,7 @@ all_packages_source_files = \
gnu/javax/security/auth.list \
gnu/javax/security/auth/callback.list \
gnu/javax/security/auth/login.list \
+ gnu/javax/sound.list \
gnu/javax/sound/sampled/AU.list \
gnu/javax/sound/sampled/WAV.list \
gnu/javax/swing/plaf/gnu.list \
@@ -8786,29 +8837,21 @@ all_packages_source_files = \
javax/transaction.list \
javax/transaction/xa.list \
org/ietf/jgss.list \
+ sun/awt.list \
sun/misc.list \
sun/reflect.list \
sun/reflect/annotation.list \
- sun/reflect/misc.list
+ sun/reflect/misc.list \
+ $(interpreter_packages_source_files)
ordinary_header_files = \
$(gnu_awt_header_files) \
$(gnu_awt_j2d_header_files) \
$(gnu_classpath_header_files) \
$(gnu_classpath_debug_header_files) \
- $(gnu_classpath_jdwp_header_files) \
- $(gnu_classpath_jdwp_event_header_files) \
- $(gnu_classpath_jdwp_event_filters_header_files) \
- $(gnu_classpath_jdwp_exception_header_files) \
- $(gnu_classpath_jdwp_id_header_files) \
- $(gnu_classpath_jdwp_processor_header_files) \
- $(gnu_classpath_jdwp_transport_header_files) \
- $(gnu_classpath_jdwp_util_header_files) \
- $(gnu_classpath_jdwp_value_header_files) \
$(gnu_gcj_header_files) \
$(gnu_gcj_convert_header_files) \
$(gnu_gcj_io_header_files) \
- $(gnu_gcj_jvmti_header_files) \
$(gnu_gcj_runtime_header_files) \
$(gnu_gcj_tools_gcj_dbtool_header_files) \
$(gnu_gcj_util_header_files) \
@@ -8920,6 +8963,7 @@ ordinary_header_files = \
$(gnu_javax_security_auth_header_files) \
$(gnu_javax_security_auth_callback_header_files) \
$(gnu_javax_security_auth_login_header_files) \
+ $(gnu_javax_sound_header_files) \
$(gnu_javax_sound_sampled_AU_header_files) \
$(gnu_javax_sound_sampled_WAV_header_files) \
$(gnu_javax_swing_plaf_gnu_header_files) \
@@ -9036,10 +9080,12 @@ ordinary_header_files = \
$(javax_transaction_header_files) \
$(javax_transaction_xa_header_files) \
$(org_ietf_jgss_header_files) \
+ $(sun_awt_header_files) \
$(sun_misc_header_files) \
$(sun_reflect_header_files) \
$(sun_reflect_annotation_header_files) \
- $(sun_reflect_misc_header_files)
+ $(sun_reflect_misc_header_files) \
+ $(interpreter_header_files)
bc_objects = \
gnu-CORBA.lo \
diff --git a/libjava/stacktrace.cc b/libjava/stacktrace.cc
index c3fbdf4e6a4..d8d1f38ae6c 100644
--- a/libjava/stacktrace.cc
+++ b/libjava/stacktrace.cc
@@ -39,6 +39,10 @@ using namespace java::lang::reflect;
using namespace java::util;
using namespace gnu::gcj::runtime;
+#ifdef __ARM_EABI_UNWINDER__
+#define _URC_NORMAL_STOP _URC_FAILURE
+#endif
+
// Maps ncode values to their containing native class.
// NOTE: Currently this Map contradicts class GC for native classes. This map
// (and the "new class stack") will need to use WeakReferences in order to
@@ -138,7 +142,6 @@ _Jv_StackTrace::UnwindTraceFn (struct _Unwind_Context *context, void *state_ptr)
state->interp_frame = state->interp_frame->next_interp;
}
else
-#endif
// We handle proxies in the same way as interpreted classes
if (_Jv_is_proxy (func_addr))
{
@@ -148,6 +151,7 @@ _Jv_StackTrace::UnwindTraceFn (struct _Unwind_Context *context, void *state_ptr)
state->interp_frame = state->interp_frame->next_interp;
}
else
+#endif
{
#ifdef HAVE_GETIPINFO
_Unwind_Ptr ip;
diff --git a/libjava/sun/awt/CausedFocusEvent$Cause.h b/libjava/sun/awt/CausedFocusEvent$Cause.h
new file mode 100644
index 00000000000..d342fc6eed2
--- /dev/null
+++ b/libjava/sun/awt/CausedFocusEvent$Cause.h
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __sun_awt_CausedFocusEvent$Cause__
+#define __sun_awt_CausedFocusEvent$Cause__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class sun::awt::CausedFocusEvent$Cause : public ::java::lang::Enum
+{
+
+ CausedFocusEvent$Cause(::java::lang::String *, jint);
+public:
+ static JArray< ::sun::awt::CausedFocusEvent$Cause * > * values();
+ static ::sun::awt::CausedFocusEvent$Cause * valueOf(::java::lang::String *);
+ static ::sun::awt::CausedFocusEvent$Cause * UNKNOWN;
+ static ::sun::awt::CausedFocusEvent$Cause * MOUSE_EVENT;
+ static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL;
+ static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_UP;
+ static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_DOWN;
+ static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_FORWARD;
+ static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_BACKWARD;
+ static ::sun::awt::CausedFocusEvent$Cause * MANUAL_REQUEST;
+ static ::sun::awt::CausedFocusEvent$Cause * AUTOMATIC_TRAVERSE;
+ static ::sun::awt::CausedFocusEvent$Cause * ROLLBACK;
+ static ::sun::awt::CausedFocusEvent$Cause * NATIVE_SYSTEM;
+ static ::sun::awt::CausedFocusEvent$Cause * ACTIVATION;
+ static ::sun::awt::CausedFocusEvent$Cause * CLEAR_GLOBAL_FOCUS_OWNER;
+ static ::sun::awt::CausedFocusEvent$Cause * RETARGETED;
+private:
+ static JArray< ::sun::awt::CausedFocusEvent$Cause * > * ENUM$VALUES;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __sun_awt_CausedFocusEvent$Cause__
diff --git a/libjava/sun/awt/CausedFocusEvent.h b/libjava/sun/awt/CausedFocusEvent.h
new file mode 100644
index 00000000000..b6575e7b390
--- /dev/null
+++ b/libjava/sun/awt/CausedFocusEvent.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __sun_awt_CausedFocusEvent__
+#define __sun_awt_CausedFocusEvent__
+
+#pragma interface
+
+#include <java/awt/event/FocusEvent.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ class Component;
+ }
+ }
+ namespace sun
+ {
+ namespace awt
+ {
+ class CausedFocusEvent;
+ class CausedFocusEvent$Cause;
+ }
+ }
+}
+
+class sun::awt::CausedFocusEvent : public ::java::awt::event::FocusEvent
+{
+
+public:
+ CausedFocusEvent(::java::awt::Component *, jint, jboolean, ::java::awt::Component *, ::sun::awt::CausedFocusEvent$Cause *);
+ virtual ::sun::awt::CausedFocusEvent$Cause * getCause();
+private:
+ ::sun::awt::CausedFocusEvent$Cause * __attribute__((aligned(__alignof__( ::java::awt::event::FocusEvent)))) cause;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __sun_awt_CausedFocusEvent__
diff --git a/libjava/sysdep/arm/backtrace.h b/libjava/sysdep/arm/backtrace.h
new file mode 100644
index 00000000000..ee1bd99f89a
--- /dev/null
+++ b/libjava/sysdep/arm/backtrace.h
@@ -0,0 +1,35 @@
+// backtrace.h - Fallback backtrace implementation. ARM implementation.
+
+/* Copyright (C) 2005, 2006 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. */
+
+#ifndef __SYSDEP_BACKTRACE_H__
+#define __SYSDEP_BACKTRACE_H__
+
+#include <java-stack.h>
+
+extern "C"
+{
+/* Unwind through the call stack calling TRACE_FN with STATE for every stack
+ frame. Returns the reason why the unwinding was stopped. */
+#ifdef __ARM_EABI_UNWINDER__
+
+#define _Unwind_FindEnclosingFunction(PC) \
+ (PC)
+
+_Unwind_Reason_Code
+fallback_backtrace (_Unwind_Reason_Code (*)(struct _Unwind_Context*, void*), _Jv_UnwindState *)
+#else
+_Unwind_Reason_Code
+fallback_backtrace (_Unwind_Trace_Fn, _Jv_UnwindState *)
+#endif
+{
+ return _URC_NO_REASON;
+}
+}
+#endif
diff --git a/libjava/sysdep/m68k/locks.h b/libjava/sysdep/m68k/locks.h
new file mode 100644
index 00000000000..d70757a8cd0
--- /dev/null
+++ b/libjava/sysdep/m68k/locks.h
@@ -0,0 +1,72 @@
+// locks.h - Thread synchronization primitives. m68k implementation.
+
+/* Copyright (C) 2006 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. */
+
+#ifndef __SYSDEP_LOCKS_H__
+#define __SYSDEP_LOCKS_H__
+
+/* Integer type big enough for object address. */
+typedef size_t obj_addr_t __attribute__ ((aligned (4)));
+
+// Atomically replace *addr by new_val if it was initially equal to old.
+// Return true if the comparison succeeded.
+// Assumed to have acquire semantics, i.e. later memory operations
+// cannot execute before the compare_and_swap finishes.
+static inline bool
+compare_and_swap(volatile obj_addr_t *addr,
+ obj_addr_t old, obj_addr_t new_val)
+{
+ char result;
+ __asm__ __volatile__("cas.l %2,%3,%0; seq %1"
+ : "+m" (*addr), "=d" (result), "+d" (old)
+ : "d" (new_val)
+ : "memory");
+ return (bool) result;
+}
+
+// Set *addr to new_val with release semantics, i.e. making sure
+// that prior loads and stores complete before this
+// assignment.
+// On m68k, the hardware shouldn't reorder reads and writes,
+// so we just have to convince gcc not to do it either.
+static inline void
+release_set(volatile obj_addr_t *addr, obj_addr_t new_val)
+{
+ __asm__ __volatile__(" " : : : "memory");
+ *(addr) = new_val;
+}
+
+// Compare_and_swap with release semantics instead of acquire semantics.
+// On many architecture, the operation makes both guarantees, so the
+// implementation can be the same.
+static inline bool
+compare_and_swap_release(volatile obj_addr_t *addr,
+ obj_addr_t old,
+ obj_addr_t new_val)
+{
+ return compare_and_swap(addr, old, new_val);
+}
+
+// Ensure that subsequent instructions do not execute on stale
+// data that was loaded from memory before the barrier.
+// On m68k, the hardware ensures that reads are properly ordered.
+static inline void
+read_barrier(void)
+{
+}
+
+// Ensure that prior stores to memory are completed with respect to other
+// processors.
+static inline void
+write_barrier(void)
+{
+ // m68k does not reorder writes. We just need to ensure that gcc also doesn't.
+ __asm__ __volatile__(" " : : : "memory");
+}
+#endif
diff --git a/libjava/sysdep/mips/locks.h b/libjava/sysdep/mips/locks.h
index 80509cadbbd..c8e30cf6888 100644
--- a/libjava/sysdep/mips/locks.h
+++ b/libjava/sysdep/mips/locks.h
@@ -22,29 +22,9 @@ typedef unsigned obj_addr_t __attribute__((__mode__(__pointer__)));
inline static bool
compare_and_swap(volatile obj_addr_t *addr,
obj_addr_t old,
- obj_addr_t new_val)
+ obj_addr_t new_val)
{
- long result;
- __asm__ __volatile__(".set\tpush\n\t"
- ".set\tnoreorder\n\t"
- ".set\tnomacro\n\t"
- "1:\n\t"
-#if _MIPS_SIM == _ABIO32
- ".set\tmips2\n\t"
-#endif
- "ll\t%[result],0(%[addr])\n\t"
- "bne\t%[result],%[old],2f\n\t"
- "move\t%[result],$0\n\t" // delay slot
- "move\t%[result],%[new_val]\n\t"
- "sc\t%[result],0(%[addr])\n\t"
- "beq\t%[result],$0,1b\n\t"
- "nop\n\t" // delay slot
- "2:\n\t"
- ".set\tpop"
- : [result] "=&r" (result)
- : [addr] "r" (addr), [new_val] "r" (new_val), [old] "r"(old)
- : "memory");
- return (bool) result;
+ return __sync_bool_compare_and_swap(addr, old, new_val);
}
// Set *addr to new_val with release semantics, i.e. making sure
@@ -53,12 +33,7 @@ compare_and_swap(volatile obj_addr_t *addr,
inline static void
release_set(volatile obj_addr_t *addr, obj_addr_t new_val)
{
- __asm__ __volatile__(".set\tpush\n\t"
-#if _MIPS_SIM == _ABIO32
- ".set\tmips2\n\t"
-#endif
- "sync\n\t"
- ".set\tpop" : : : "memory");
+ __sync_synchronize();
*(addr) = new_val;
}
@@ -67,16 +42,10 @@ release_set(volatile obj_addr_t *addr, obj_addr_t new_val)
// implementation can be the same.
inline static bool
compare_and_swap_release(volatile obj_addr_t *addr,
- obj_addr_t old,
- obj_addr_t new_val)
+ obj_addr_t old,
+ obj_addr_t new_val)
{
- __asm__ __volatile__(".set\tpush\n\t"
-#if _MIPS_SIM == _ABIO32
- ".set\tmips2\n\t"
-#endif
- "sync\n\t"
- ".set\tpop" : : : "memory");
- return compare_and_swap(addr, old, new_val);
+ return __sync_bool_compare_and_swap(addr, old, new_val);
}
// Ensure that subsequent instructions do not execute on stale
@@ -85,12 +54,7 @@ compare_and_swap_release(volatile obj_addr_t *addr,
inline static void
read_barrier()
{
- __asm__ __volatile__(".set\tpush\n\t"
-#if _MIPS_SIM == _ABIO32
- ".set\tmips2\n\t"
-#endif
- "sync\n\t"
- ".set\tpop" : : : "memory");
+ __sync_synchronize();
}
// Ensure that prior stores to memory are completed with respect to other
@@ -98,12 +62,7 @@ read_barrier()
inline static void
write_barrier()
{
- __asm__ __volatile__(".set\tpush\n\t"
-#if _MIPS_SIM == _ABIO32
- ".set\tmips2\n\t"
-#endif
- "sync\n\t"
- ".set\tpop" : : : "memory");
+ __sync_synchronize();
}
#endif // __SYSDEP_LOCKS_H__
diff --git a/libjava/testsuite/Makefile.am b/libjava/testsuite/Makefile.am
index af83ac3618b..fe42040d364 100644
--- a/libjava/testsuite/Makefile.am
+++ b/libjava/testsuite/Makefile.am
@@ -43,7 +43,7 @@ if JAVA_MAINTAINER_MODE
testdep="libjava.loader/MyLoader.java";; \
libjava.jni/register2.java) \
;; \
- libjava.jni/*.java) \
+ libjava.jni/*.java|libjava.jvmti/interp/*.java) \
genheader=-jni;; \
libjava.jvmti/*.java|libjava.cni/*.java) \
genheader=-cni;; \
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index 542311cab42..ecebf1109aa 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -39,7 +39,9 @@ target_triplet = @target@
subdir = testsuite
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
+ $(top_srcdir)/../config/acx.m4 \
+ $(top_srcdir)/../config/confsubdir.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/enable.m4 \
$(top_srcdir)/../config/gxx-include-dir.m4 \
@@ -54,10 +56,11 @@ am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
$(top_srcdir)/../config/no-executables.m4 \
$(top_srcdir)/../config/tls.m4 \
$(top_srcdir)/../config/unwind_ipinfo.m4 \
- $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
- $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
- $(top_srcdir)/mingwld.m4 $(top_srcdir)/pkg.m4 \
- $(top_srcdir)/shlibpath.m4 $(top_srcdir)/configure.ac
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltgcc.m4 \
+ $(top_srcdir)/../ltoptions.m4 $(top_srcdir)/../ltsugar.m4 \
+ $(top_srcdir)/../ltversion.m4 $(top_srcdir)/mingwld.m4 \
+ $(top_srcdir)/pkg.m4 $(top_srcdir)/shlibpath.m4 \
+ $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
CONFIG_HEADER = $(top_builddir)/include/config.h \
@@ -138,6 +141,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTERPRETER = @INTERPRETER@
+INTERPRETER_FALSE = @INTERPRETER_FALSE@
+INTERPRETER_TRUE = @INTERPRETER_TRUE@
JAR = @JAR@
JAVA_HOME = @JAVA_HOME@
JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
@@ -165,6 +170,7 @@ LIBICONV = @LIBICONV@
LIBLTDL = @LIBLTDL@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
+LIBSTDCXXSPEC = @LIBSTDCXXSPEC@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBICONV = @LTLIBICONV@
@@ -194,6 +200,8 @@ SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
+SUPPRESS_LIBGCJ_BC_FALSE = @SUPPRESS_LIBGCJ_BC_FALSE@
+SUPPRESS_LIBGCJ_BC_TRUE = @SUPPRESS_LIBGCJ_BC_TRUE@
SYSDEP_SOURCES = @SYSDEP_SOURCES@
SYSTEMSPEC = @SYSTEMSPEC@
SYS_ZLIBS = @SYS_ZLIBS@
@@ -272,6 +280,8 @@ build_vendor = @build_vendor@
datadir = @datadir@
dbexecdir = @dbexecdir@
exec_prefix = @exec_prefix@
+extra_gij_ldflags = @extra_gij_ldflags@
+extra_ldflags = @extra_ldflags@
extra_ldflags_libjava = @extra_ldflags_libjava@
gxx_include_dir = @gxx_include_dir@
here = @here@
@@ -548,7 +558,7 @@ compile-tests:
@JAVA_MAINTAINER_MODE_TRUE@ testdep="libjava.loader/MyLoader.java";; \
@JAVA_MAINTAINER_MODE_TRUE@ libjava.jni/register2.java) \
@JAVA_MAINTAINER_MODE_TRUE@ ;; \
-@JAVA_MAINTAINER_MODE_TRUE@ libjava.jni/*.java) \
+@JAVA_MAINTAINER_MODE_TRUE@ libjava.jni/*.java|libjava.jvmti/interp/*.java) \
@JAVA_MAINTAINER_MODE_TRUE@ genheader=-jni;; \
@JAVA_MAINTAINER_MODE_TRUE@ libjava.jvmti/*.java|libjava.cni/*.java) \
@JAVA_MAINTAINER_MODE_TRUE@ genheader=-cni;; \
diff --git a/libjava/testsuite/lib/libjava.exp b/libjava/testsuite/lib/libjava.exp
index c684bf64d78..2cec1566965 100644
--- a/libjava/testsuite/lib/libjava.exp
+++ b/libjava/testsuite/lib/libjava.exp
@@ -379,6 +379,11 @@ proc libjava_arguments {{mode compile}} {
if {$mode == "link"} {
global wrapper_file wrap_compile_flags
lappend args "additional_flags=$wrap_compile_flags"
+
+ if { [string match "linux" $target_triplet] } {
+ lappend args "additional_flags=-specs=libgcj-test.spec"
+ }
+
lappend args "libs=$wrapper_file"
lappend args "libs=$libjava"
lappend args debug
@@ -424,6 +429,10 @@ proc libjava_arguments {{mode compile}} {
lappend args "additional_flags=-bind_at_load"
lappend args "additional_flags=-multiply_defined suppress"
}
+ if { [istarget "*-*-darwin9*"] } {
+ lappend args "additional_flags=-Wl,-allow_stack_execute"
+ }
+
}
return $args
@@ -572,6 +581,8 @@ proc libjava_invoke {errname testName optName executable inpfile resultfile
return 1
}
+ send_log "invoke: $executable $args $inpfile\n"
+
set result [libjava_load $executable $args "$inpfile"]
set status [lindex $result 0]
set output [lindex $result 1]
diff --git a/libjava/testsuite/libjava.jni/jni.exp b/libjava/testsuite/libjava.jni/jni.exp
index ab22c23f68a..4ed27cdf0d1 100644
--- a/libjava/testsuite/libjava.jni/jni.exp
+++ b/libjava/testsuite/libjava.jni/jni.exp
@@ -29,6 +29,10 @@ proc gcj_jni_compile_c_to_so {file {options {}}} {
set name [file rootname $filename]
set soname lib${name}.${so_extension}
+ if { [istarget "*arm-*eabi*"] } {
+ lappend options "additional_flags=-fexceptions"
+ }
+
lappend options "additional_flags=${so_flag} -fPIC"
# Find the generated header.
lappend options "additional_flags=-I. -I.. -I$srcdir/$subdir -fdollars-in-identifiers"
@@ -237,6 +241,14 @@ proc gcj_jni_invocation_compile_c_to_binary {file {options {}}} {
}
proc gcj_jni_get_cxxflags_invocation {} {
+ global LIBJAVA
+ if [info exists LIBJAVA] {
+ set libjava $LIBJAVA;
+ } else {
+ set libjava [libjava_find_lib libjava gcj]
+ }
+ set cxxflags "$libjava -ljvm"
+
# Darwin needs -liconv linked, otherwise we get some unresolved.
# If you're building the compiler with --prefix set to a place
# where it's not yet installed, then the linker won't be able to
@@ -245,15 +257,7 @@ proc gcj_jni_get_cxxflags_invocation {} {
# to just make the linker find libgcc using -L options.
# Similar logic applies to libgcj.
if { [istarget "*-*-darwin*"] } {
- set cxxflags "-L../.libs -shared-libgcc -ljvm -lgcj -liconv"
- } else {
- global LIBJAVA
- if [info exists LIBJAVA] {
- set libjava $LIBJAVA;
- } else {
- set libjava [libjava_find_lib libjava gcj]
- }
- set cxxflags "$libjava -ljvm"
+ lappend cxxflags -shared-libgcc -lgcj -liconv
}
if { [istarget "*-*-solaris*"] } {
diff --git a/libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc b/libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc
index e2c88ada40c..cfd7c48c063 100644
--- a/libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc
+++ b/libjava/testsuite/libjava.jvmti/interp/natgetstacktrace.cc
@@ -90,7 +90,7 @@ JNIEXPORT void JNICALL Java_getstacktrace_natRunner (JNIEnv *env, jobject obj)
done = env->GetBooleanField (obj, done_id);
if (done == false)
break;
- usleep (10);
+ usleep (40);
}
while (done != false);
}
diff --git a/libjava/testsuite/libjava.lang/PR27908.jar b/libjava/testsuite/libjava.lang/PR27908.jar
index e2804073642..1ec1127ddcb 100644
--- a/libjava/testsuite/libjava.lang/PR27908.jar
+++ b/libjava/testsuite/libjava.lang/PR27908.jar
Binary files differ
diff --git a/libjava/testsuite/libjava.lang/PR27908.java b/libjava/testsuite/libjava.lang/PR27908.java
index 09f96546f98..addb1d7720f 100644
--- a/libjava/testsuite/libjava.lang/PR27908.java
+++ b/libjava/testsuite/libjava.lang/PR27908.java
@@ -13,7 +13,8 @@ class PR27908
(t2 = new Thread (r2)).start();
(t3 = new Thread (r3)).start();
- Thread.yield();
+ while (! (r1.isRunning() && r2.isRunning() && r3.isRunning()))
+ Thread.yield();
r1.stop();
r2.stop();
@@ -45,6 +46,11 @@ class PR27908
{
running = false;
}
+
+ public boolean isRunning()
+ {
+ return running;
+ }
}
private static class run2 implements Runnable
@@ -64,6 +70,11 @@ class PR27908
{
running = false;
}
+
+ public boolean isRunning()
+ {
+ return running;
+ }
}
static class run3 implements Runnable
@@ -83,5 +94,10 @@ class PR27908
{
running = false;
}
+
+ public boolean isRunning()
+ {
+ return running;
+ }
}
}
diff --git a/libjava/testsuite/libjava.lang/StackTrace2.jar b/libjava/testsuite/libjava.lang/StackTrace2.jar
index fc289f1da79..edb8f0e2e74 100644
--- a/libjava/testsuite/libjava.lang/StackTrace2.jar
+++ b/libjava/testsuite/libjava.lang/StackTrace2.jar
Binary files differ
diff --git a/libjava/testsuite/libjava.lang/StackTrace2.java b/libjava/testsuite/libjava.lang/StackTrace2.java
index e06db0cc992..4a69409815e 100644
--- a/libjava/testsuite/libjava.lang/StackTrace2.java
+++ b/libjava/testsuite/libjava.lang/StackTrace2.java
@@ -70,7 +70,8 @@ public class StackTrace2
&& frame.getFileName().equals("StackTrace2.java")))
System.out.println("OK");
else
- System.out.println("FAIL - expected " + expected_line + ", got: " +
- frame.getLineNumber());
+ System.out.println("FAIL - expected " + expected_line + ", got: "
+ + frame.getLineNumber() + ", in file "
+ + frame.getFileName());
}
}
diff --git a/libjava/testsuite/libjava.lang/WalkerTest.jar b/libjava/testsuite/libjava.lang/WalkerTest.jar
new file mode 100644
index 00000000000..64faf04df20
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/WalkerTest.jar
Binary files differ
diff --git a/libjava/testsuite/libjava.lang/WalkerTest.java b/libjava/testsuite/libjava.lang/WalkerTest.java
new file mode 100644
index 00000000000..f4e41fecfa0
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/WalkerTest.java
@@ -0,0 +1,15 @@
+class Foo
+{
+ Class bar()
+ {
+ return gnu.classpath.VMStackWalker.getCallingClass();
+ }
+}
+
+public class WalkerTest
+{
+ public static void main(String[] argv)
+ {
+ System.out.println(new Foo().bar());
+ }
+}
diff --git a/libjava/testsuite/libjava.lang/WalkerTest.out b/libjava/testsuite/libjava.lang/WalkerTest.out
new file mode 100644
index 00000000000..9b8eb003024
--- /dev/null
+++ b/libjava/testsuite/libjava.lang/WalkerTest.out
@@ -0,0 +1 @@
+class WalkerTest