From 94da395d5be090229b493b49b691425cc86aa56e Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Wed, 25 Sep 2002 19:19:40 +0000 Subject: Merge to tag pch-merge-20020920 git-svn-id: https://gcc.gnu.org/svn/gcc/branches/pch-branch@57511 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 263 +++++++++ libjava/Makefile.am | 11 +- libjava/Makefile.in | 45 +- libjava/configure | 651 ++++++++++----------- libjava/configure.in | 2 +- libjava/gnu/gcj/runtime/NameFinder.java | 156 ++++- libjava/gnu/gcj/runtime/natNameFinder.cc | 7 +- libjava/include/config.h.in | 3 + libjava/include/win32.h | 1 + libjava/java/awt/Toolkit.java | 4 +- libjava/java/lang/AssertionError.java | 2 +- libjava/java/lang/Class.h | 4 +- libjava/java/lang/Class.java | 28 +- libjava/java/lang/ClassLoader.java | 29 +- libjava/java/lang/natClass.cc | 7 +- libjava/java/lang/natVMThrowable.cc | 2 +- libjava/java/net/DatagramPacket.java | 302 +++++----- libjava/java/net/DatagramSocket.java | 218 ++++++- libjava/java/net/DatagramSocketImpl.java | 22 +- libjava/java/net/JarURLConnection.java | 9 +- libjava/java/net/MulticastSocket.java | 258 ++++---- libjava/java/net/NetworkInterface.java | 8 - libjava/java/net/PlainDatagramSocketImpl.java | 10 +- libjava/java/net/PlainSocketImpl.java | 18 +- libjava/java/net/ServerSocket.java | 158 ++++- libjava/java/net/Socket.java | 95 ++- libjava/java/net/SocketImpl.java | 40 ++ libjava/java/net/SocketOptions.java | 35 +- libjava/java/net/SocketPermission.java | 6 +- libjava/java/net/URLClassLoader.java | 7 +- libjava/java/net/URLConnection.java | 280 ++++++++- libjava/java/net/natPlainDatagramSocketImpl.cc | 128 ++++ libjava/java/net/natPlainSocketImpl.cc | 118 +++- libjava/java/nio/channels/DatagramChannel.java | 3 - libjava/java/nio/channels/ServerSocketChannel.java | 3 - libjava/java/nio/channels/SocketChannel.java | 3 - libjava/java/rmi/server/LogStream.java | 4 +- libjava/java/rmi/server/RemoteServer.java | 2 + libjava/javax/naming/BinaryRefAddr.java | 12 +- libjava/javax/naming/NamingException.java | 2 +- libjava/javax/naming/RefAddr.java | 24 +- 41 files changed, 2232 insertions(+), 748 deletions(-) (limited to 'libjava') diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 3e31ea2babc..24bd7ac9444 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,266 @@ +2002-09-19 Tom Tromey + + * java/lang/ClassLoader.java (resolveClass0): Set cause for + newly-created exception. + +2002-09-18 Michael Koch + + * java/util/regex/Matcher.java, java/util/regex/Pattern.java, + java/util/regex/PatternSyntaxException.java: + Merge with classpath, new files. + * Makefile.am (core_java_source_files): + Added java/util/regex/Matcher.java, + java/util/regex/Pattern.java, + java/util/regex/PatternSyntaxException.java + * Makefile.in: Regenerated. + * include/config.h.in: Added HAVE_NET_IF_H. + * java/net/natNetworkInterface.cc (getRealNetworkInterfaces): + Removed #if 0 ... #endif. + +2002-09-17 Michael Koch + + * java/net/natNetworkInterface.cc: + Removed unneed and yet wrong includes. + +2002-09-17 Michael Koch + + * java/net/NetworkInterface.java: New file. + * java/net/natNetworkInterface.java: New file. + * configure.in: Added check for net/if.h. + * configure: Regenerated. + * Makefile.am + (ordinary_java_source_files): Added NetworkInterface.java. + (nat_source_files): Added natNetworkInterface.cc. + * Makefile.in: Regenerated. + +2002-09-16 Tom Tromey + + * java/net/URLClassLoader.java (findClass): Code source for a + class from a jar is not necessarily a jar: URL. + +2002-09-16 Michael Koch + + * java/lang/AssertionError.java: + Merge with classpath, fixes HTML. + * java/rmi/server/LogStream.java: + Merge with classpath, fixes some constants. + * java/net/server/RemoteServer.java: + Merge with classpath, adds serialVersionUID. + * javax/naming/BinaryRefAddr.java: + Merge with classpath, s/equal/equals/. + * javax/naming/NamingException.java: + Merge with classpath, fixed typo. + * javax/naming/RefAddr.java: + Merge with classpath, s/equal/equals/. + * java/awt/Toolkit.java: + s/gnu.java.awt.peer.gtk.GtkToolkit/gnu.awt.gtk.GtkToolkit/ + and typo fixed. + +2002-09-15 Adam Megacz + + * java/net/natPlainSocketImpl.cc: fixed typo. + +2002-09-15 Adam Megacz + + * java/net/natPlainSocketImpl.cc: #ifdef-shielded socket timeouts, + which don't work on Win32 (yet). + +2002-09-14 Adam Megacz + + * java/net/natPlainDatagramSocket.cc: removed #include + ; the mingw header is broken (conflicts with itself). + * include/win32.h: included definition for IP_TOS to satisfy + natPlainDatagramSocket.cc + +2002-09-13 Michael Koch + + * java/net/DatagramPacket.java (DatagramPacket): + Added linebreak for 80 chars per line. + * java/net/JarURLConection.java + (getInputStreami, getJarEntry): Likewise. + * java/net/SocketPErmission.java + (SocketPermission class docu, implies): Likewise. + * java/net/URLClassLoader.java (findResources): Likewise. + * java/net/URLConnection.java: Reindendet remark for 80 chars per line + +2002-09-13 Michael Koch + + * java/nio/channels/DatagramChannel.java, + java/nio/channels/ServerSocketChannel.java + java/nio/channels/SocketChannel.java: + New dummy files to make java.net fully JDK 1.4 compatible + * Makefile.am (ordinary_java_source_files): Added + java/net/DatagramSocketImplFactory.java (long forgotten), + java/nio/SocketChannel.java, + java/nio/ServerSocketChannel.java, + java/nio/DatagramChannel.java + * Makefile.in: Regenrated. + +2002-09-12 Michael Koch + + * java/net/DatagramSocketImpl.java + (peekData): New method. + * java/net/PlainDatagramSocketImpl.java + (peekData): New method. + * java/net/natPlainDatagramSocketImpl.cc + (peekData): New method. + * java/net/URLConnection + (getPermission): New method. + (addRequestProperty): New method. + (getRequestProperties): New method. + (guessContentTypeFromStream): New method, not really implemented. + (URLConnection): Added/updated documentation. + (connect): Added/updated documentation. + (getURL): Added/updated documentation. + (getContentLength): Added/updated documentation. + (getContentType: Added/updated documentation. + (getContentEncoding): Added/updated documentation. + (getExpiration): Added/updated documentation. + (getDate): Added/updated documentation. + (getLastModified): Added/updated documentation. + (getHeaderField): Added/updated documentation. + (getHeaderFields): Added/updated documentation. + (getHeaderFieldInt): Added/updated documentation. + (getHeaderFieldDate): Added/updated documentation. + (getHeaderFieldKey): Added/updated documentation. + (getContent): Added/updated documentation. + (getInputStream): Added/updated documentation. + (getOutputStream): Added/updated documentation. + (toString): Added/updated documentation. + (setDoInput): Added/updated documentation. + (getDoInput): Added/updated documentation. + (setDoOutput): Added/updated documentation. + (getDoOutput): Added/updated documentation. + (setAllowUserInteraction): Added/updated documentation. + (getAllowUserInteraction): Added/updated documentation. + (setDefaultAllowUserInteraction): Added/updated documentation. + (getDefaultAllowUserInteraction): Added/updated documentation. + (setUseCaches): Added/updated documentation. + (getUseCaches): Added/updated documentation. + (setIfModifiedSince): Added/updated documentation. + (getIfModifiedSince): Added/updated documentation. + (getDefaultUseCaches): Added/updated documentation. + (setDefaultUseCaches): Added/updated documentation. + (setRequestProperty): Added/updated documentation. + (getRequestProperty): Added/updated documentation. + (setDefaultRequestProperty): Added/updated documentation. + (getDefaultRequestProperty): Added/updated documentation. + (setContentHandlerFactory): Added/updated documentation. + (guessContentTypeFromName): Added/updated documentation. + (getFileNameMap): Added/updated documentation. + (setFileNameMap): Added/updated documentation. + +2002-09-11 Michael Koch + + * java/net/Socket.java + (Socket): protected to public (since JDK 1.4). Added @specnote. + (bind): New method. + (connect): Two new methods. + (getKeepalive): Get correct socket option. + (setKeepalive): Set correct socket option. + (getOOBInline): New method. + (setOOBInline): New method. + * java/net/ServerSocket.java + (bind): Two new methods. + (getInetAddress): Reimplemented, catch exception. + (getLocalSocketAddress): New method. + (setReuseAddress): New method. + (getReuseAdress): New method. + (setReceiveBufferSize): New method. + (getReceiveBufferSize): New method. + (toString): Made string JDK 1.4 compliant. + +2002-09-10 Michael Koch + + * java/net/SocketImpl.java + (connect): New method. + (supportsUrgentData): New method. + (sendUrgentData): New method. + * java/net/PlainSocketImpl.java + (connect): One new method and two new implementation. + (sendUrgentData): New method. + * java/natPlainSocketImpl.cc + (connect): Arguments changed, added support for timeouts. + (getOption): Another __java_boolean to jboolean. + +2002-09-07 Adam Megacz + + * java/net/natPlainDatagramSocket.cc: include ws2tcpip.h for + definition of IP_TOS. + +2002-09-04 Michael Koch + + * java/net/DatagramSocket.java + (DatagramSocket): Added documentation. + (close): Likewise. + (getLocalAddress): Likewise. + (getLocalPort): Likewise. + (receive): Likewise. + (send): Likewise. + (setSoTimeout): Likewise. + (connect): New method. + (disconnect): New method. + (getInetAddress): New method (FIXME) + (getPort): New method. + (setReuseAddress): New method. + (getReuseAddress): New method. + (setBroadcast): New method. + (getBroadcast): New method. + (setTrafficClass): New method. + (getTrafficClass): New method. + * java/net/MulticastSocket.java): + (getTTL): Added @see in documentation. + (setTTL): Added @see in documentation. + (setLoopbackMode): New method. + (getLoopbackMode): New method. + * java/net/PlainSocketImpl.java: + Added new constants for the options SO_BROADCAST, SO_OOBINLINE, + IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS + * java/net/PlainDatagramSocketImpl.java + Added new constants for the options SO_BROADCAST, SO_OOBINLINE, + IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS + * java/net/natPlainSocketImpl.cc + (getOption): Implemented the options SO_BROADCAST, SO_OOBINLINE, + IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS + (setOption): Implemented the options SO_BROADCAST, SO_OOBINLINE, + IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS + This should also fix SO_KEEPALIVE + * java/net/natPlainDatagramSocketImpl.cc + (getOption): Implemented the options SO_BROADCAST, SO_OOBINLINE, + IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS + (setOption): Implemented the options SO_BROADCAST, SO_OOBINLINE, + IP_MULTICAST_IF2, IP_MULTICAST_LOOP, IP_TOS + +2002-09-04 Michael Koch + + * java/net/SocketOptions.java: added static variables to be JDK 1.4 + compatible (SO_BROADCAST, SO_OOBINLINE, IP_MULTICAST_IF2, + IP_MULTICAST_LOOP, IP_TOS + +2002-09-03 Tom Tromey + + * java/lang/Class.h (_getDeclaredMethod): Declare. + (_getMethod): Now private. + * java/lang/natClass.cc (_getDeclaredMethod): Renamed from + getDeclaredMethod. Now returns NULL on failure. + * java/lang/Class.java (_getDeclaredMethod): Declare. + (getDeclaredMethod): No longer native; implements access checks. + +2002-09-01 Mark Wielaard + + * gnu/gcj/runtime/NameFinder.java (remove_interpreter): New field. + (sanitizeStack): Correctly reset unknown and interpreter counters, + detect interpreter runtime frames. + (demangleInterpreterMethod): New method. + * gnu/gcj/runtime/natNameFinder.cc (lookupInterp): Use new method. + * java/lang/natVMThrowable.cc (fillInStackTrace): Change order of + filling in addrs[]. + +2002-09-02 Michael Koch + + * java/net/DatagramPacket.java, java/net/MulticsstSocket.java: + re-indented documentation. + 2002-08-30 Jesse Rosenstock * java/util/Calendar.java (getTimeInMillis, getTimeInMillis): Now diff --git a/libjava/Makefile.am b/libjava/Makefile.am index e3cfaeab727..456662ce4fc 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -1661,7 +1661,10 @@ java/util/TreeMap.java \ java/util/TreeSet.java \ java/util/TooManyListenersException.java \ java/util/Vector.java \ -java/util/WeakHashMap.java +java/util/WeakHashMap.java \ +java/util/regex/Matcher.java \ +java/util/regex/Pattern.java \ +java/util/regex/PatternSyntaxException.java ## List of all .java files to be compiled. Please keep this list ## alphabetical. Please put files from java/lang, java/io, and java/util @@ -1885,6 +1888,7 @@ java/net/ContentHandlerFactory.java \ java/net/DatagramPacket.java \ java/net/DatagramSocket.java \ java/net/DatagramSocketImpl.java \ +java/net/DatagramSocketImplFactory.java \ java/net/FileNameMap.java \ java/net/HttpURLConnection.java \ java/net/InetAddress.java \ @@ -1893,6 +1897,7 @@ java/net/JarURLConnection.java \ java/net/MalformedURLException.java \ java/net/MulticastSocket.java \ java/net/NetPermission.java \ +java/net/NetworkInterface.java \ java/net/NoRouteToHostException.java \ java/net/PasswordAuthentication.java \ java/net/PlainDatagramSocketImpl.java \ @@ -1918,6 +1923,9 @@ java/net/URLStreamHandler.java \ java/net/URLStreamHandlerFactory.java \ java/net/UnknownHostException.java \ java/net/UnknownServiceException.java \ +java/nio/channels/DatagramChannel.java \ +java/nio/channels/ServerSocketChannel.java \ +java/nio/channels/SocketChannel.java \ java/security/AccessControlContext.java \ java/security/AccessControlException.java \ java/security/AccessController.java \ @@ -2232,6 +2240,7 @@ java/lang/reflect/natArray.cc \ java/lang/reflect/natConstructor.cc \ java/lang/reflect/natField.cc \ java/lang/reflect/natMethod.cc \ +java/net/natNetworkInterface.cc \ java/net/natInetAddress.cc \ java/net/natPlainDatagramSocketImpl.cc \ java/net/natPlainSocketImpl.cc \ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index 91edd98e2f5..272a4460098 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -1428,7 +1428,10 @@ java/util/TreeMap.java \ java/util/TreeSet.java \ java/util/TooManyListenersException.java \ java/util/Vector.java \ -java/util/WeakHashMap.java +java/util/WeakHashMap.java \ +java/util/regex/Matcher.java \ +java/util/regex/Pattern.java \ +java/util/regex/PatternSyntaxException.java ordinary_java_source_files = $(core_java_source_files) \ @@ -1647,6 +1650,7 @@ java/net/ContentHandlerFactory.java \ java/net/DatagramPacket.java \ java/net/DatagramSocket.java \ java/net/DatagramSocketImpl.java \ +java/net/DatagramSocketImplFactory.java \ java/net/FileNameMap.java \ java/net/HttpURLConnection.java \ java/net/InetAddress.java \ @@ -1655,6 +1659,7 @@ java/net/JarURLConnection.java \ java/net/MalformedURLException.java \ java/net/MulticastSocket.java \ java/net/NetPermission.java \ +java/net/NetworkInterface.java \ java/net/NoRouteToHostException.java \ java/net/PasswordAuthentication.java \ java/net/PlainDatagramSocketImpl.java \ @@ -1680,6 +1685,9 @@ java/net/URLStreamHandler.java \ java/net/URLStreamHandlerFactory.java \ java/net/UnknownHostException.java \ java/net/UnknownServiceException.java \ +java/nio/channels/DatagramChannel.java \ +java/nio/channels/ServerSocketChannel.java \ +java/nio/channels/SocketChannel.java \ java/security/AccessControlContext.java \ java/security/AccessControlException.java \ java/security/AccessController.java \ @@ -1993,6 +2001,7 @@ java/lang/reflect/natArray.cc \ java/lang/reflect/natConstructor.cc \ java/lang/reflect/natField.cc \ java/lang/reflect/natMethod.cc \ +java/net/natNetworkInterface.cc \ java/net/natInetAddress.cc \ java/net/natPlainDatagramSocketImpl.cc \ java/net/natPlainSocketImpl.cc \ @@ -2146,10 +2155,11 @@ java/lang/natStringBuffer.lo java/lang/natSystem.lo \ java/lang/natThread.lo java/lang/natVMThrowable.lo \ java/lang/ref/natReference.lo java/lang/reflect/natArray.lo \ java/lang/reflect/natConstructor.lo java/lang/reflect/natField.lo \ -java/lang/reflect/natMethod.lo java/net/natInetAddress.lo \ -java/net/natPlainDatagramSocketImpl.lo java/net/natPlainSocketImpl.lo \ -java/text/natCollator.lo java/util/natTimeZone.lo \ -java/util/zip/natDeflater.lo java/util/zip/natInflater.lo +java/lang/reflect/natMethod.lo java/net/natNetworkInterface.lo \ +java/net/natInetAddress.lo java/net/natPlainDatagramSocketImpl.lo \ +java/net/natPlainSocketImpl.lo java/text/natCollator.lo \ +java/util/natTimeZone.lo java/util/zip/natDeflater.lo \ +java/util/zip/natInflater.lo libgcjx_la_OBJECTS = gnu/gcj/xlib/natClip.lo \ gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.lo \ gnu/gcj/xlib/natDrawable.lo gnu/gcj/xlib/natFont.lo \ @@ -2865,11 +2875,12 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/java/net/ConnectException.P .deps/java/net/ContentHandler.P \ .deps/java/net/ContentHandlerFactory.P .deps/java/net/DatagramPacket.P \ .deps/java/net/DatagramSocket.P .deps/java/net/DatagramSocketImpl.P \ -.deps/java/net/FileNameMap.P .deps/java/net/HttpURLConnection.P \ -.deps/java/net/InetAddress.P .deps/java/net/InetSocketAddress.P \ -.deps/java/net/JarURLConnection.P \ +.deps/java/net/DatagramSocketImplFactory.P .deps/java/net/FileNameMap.P \ +.deps/java/net/HttpURLConnection.P .deps/java/net/InetAddress.P \ +.deps/java/net/InetSocketAddress.P .deps/java/net/JarURLConnection.P \ .deps/java/net/MalformedURLException.P .deps/java/net/MulticastSocket.P \ -.deps/java/net/NetPermission.P .deps/java/net/NoRouteToHostException.P \ +.deps/java/net/NetPermission.P .deps/java/net/NetworkInterface.P \ +.deps/java/net/NoRouteToHostException.P \ .deps/java/net/PasswordAuthentication.P \ .deps/java/net/PlainDatagramSocketImpl.P \ .deps/java/net/PlainSocketImpl.P \ @@ -2887,10 +2898,13 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/java/net/URLStreamHandlerFactory.P \ .deps/java/net/UnknownHostException.P \ .deps/java/net/UnknownServiceException.P \ -.deps/java/net/natInetAddress.P \ +.deps/java/net/natInetAddress.P .deps/java/net/natNetworkInterface.P \ .deps/java/net/natPlainDatagramSocketImpl.P \ -.deps/java/net/natPlainSocketImpl.P .deps/java/rmi/AccessException.P \ -.deps/java/rmi/AlreadyBoundException.P \ +.deps/java/net/natPlainSocketImpl.P \ +.deps/java/nio/channels/DatagramChannel.P \ +.deps/java/nio/channels/ServerSocketChannel.P \ +.deps/java/nio/channels/SocketChannel.P \ +.deps/java/rmi/AccessException.P .deps/java/rmi/AlreadyBoundException.P \ .deps/java/rmi/ConnectException.P .deps/java/rmi/ConnectIOException.P \ .deps/java/rmi/MarshalException.P .deps/java/rmi/MarshalledObject.P \ .deps/java/rmi/Naming.P .deps/java/rmi/NoSuchObjectException.P \ @@ -3102,8 +3116,11 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ .deps/java/util/jar/JarException.P .deps/java/util/jar/JarFile.P \ .deps/java/util/jar/JarInputStream.P \ .deps/java/util/jar/JarOutputStream.P .deps/java/util/jar/Manifest.P \ -.deps/java/util/natTimeZone.P .deps/java/util/zip/Adler32.P \ -.deps/java/util/zip/CRC32.P .deps/java/util/zip/CheckedInputStream.P \ +.deps/java/util/natTimeZone.P .deps/java/util/regex/Matcher.P \ +.deps/java/util/regex/Pattern.P \ +.deps/java/util/regex/PatternSyntaxException.P \ +.deps/java/util/zip/Adler32.P .deps/java/util/zip/CRC32.P \ +.deps/java/util/zip/CheckedInputStream.P \ .deps/java/util/zip/CheckedOutputStream.P \ .deps/java/util/zip/Checksum.P \ .deps/java/util/zip/DataFormatException.P \ diff --git a/libjava/configure b/libjava/configure index 20b1836aa47..bef8cc14d86 100755 --- a/libjava/configure +++ b/libjava/configure @@ -82,7 +82,6 @@ program_suffix=NONE program_transform_name=s,x,x, silent= site= -sitefile= srcdir= target=NONE verbose= @@ -197,7 +196,6 @@ Configuration: --help print this message --no-create do not create output files --quiet, --silent do not print \`checking...' messages - --site-file=FILE use FILE as the site file --version print the version of autoconf that created configure Directory and file names: --prefix=PREFIX install architecture-independent files in PREFIX @@ -368,11 +366,6 @@ EOF -site=* | --site=* | --sit=*) site="$ac_optarg" ;; - -site-file | --site-file | --site-fil | --site-fi | --site-f) - ac_prev=sitefile ;; - -site-file=* | --site-file=* | --site-fil=* | --site-fi=* | --site-f=*) - sitefile="$ac_optarg" ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) @@ -538,16 +531,12 @@ fi srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` # Prefer explicitly selected file to automatically selected ones. -if test -z "$sitefile"; then - if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi -else - CONFIG_SITE="$sitefile" fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then @@ -594,7 +583,7 @@ fi ORIGINAL_LD_FOR_MULTILIBS=$LD echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:598: checking whether ln -s works" >&5 +echo "configure:587: checking whether ln -s works" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -647,7 +636,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:651: checking for a BSD compatible install" >&5 +echo "configure:640: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -700,7 +689,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:704: checking whether build environment is sane" >&5 +echo "configure:693: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -757,7 +746,7 @@ test "$program_suffix" != NONE && test "$program_transform_name" = "" && program_transform_name="s,x,x," echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:761: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:750: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -790,12 +779,12 @@ else fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:794: checking for Cygwin environment" >&5 +echo "configure:783: checking for Cygwin environment" >&5 if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -823,19 +812,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:827: checking for mingw32 environment" >&5 +echo "configure:816: checking for mingw32 environment" >&5 if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -962,7 +951,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:966: checking host system type" >&5 +echo "configure:955: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -983,7 +972,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$host" 1>&6 echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:987: checking target system type" >&5 +echo "configure:976: checking target system type" >&5 target_alias=$target case "$target_alias" in @@ -1001,7 +990,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$ac_t""$target" 1>&6 echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1005: checking build system type" >&5 +echo "configure:994: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1030,7 +1019,7 @@ test "$host_alias" != "$target_alias" && # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1034: checking for $ac_word" >&5 +echo "configure:1023: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1060,7 +1049,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1064: checking for $ac_word" >&5 +echo "configure:1053: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1111,7 +1100,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1115: checking for $ac_word" >&5 +echo "configure:1104: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1144,7 +1133,7 @@ fi echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1148: checking whether we are using GNU C" >&5 +echo "configure:1137: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1153,7 +1142,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1172,7 +1161,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1176: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1165: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1221,7 +1210,7 @@ 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1225: checking for $ac_word" >&5 +echo "configure:1214: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_glibjava_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1256,7 +1245,7 @@ CXX=$glibjava_CXX test -z "$glibjava_CXX" && { echo "configure: error: no acceptable c++ found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:1260: checking whether we are using GNU C++" >&5 +echo "configure:1249: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1265,7 +1254,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -1280,7 +1269,7 @@ if test $ac_cv_prog_gxx = yes; then ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1284: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1273: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1329,7 +1318,7 @@ EOF missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:1333: checking for working aclocal" >&5 +echo "configure:1322: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1342,7 +1331,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:1346: checking for working autoconf" >&5 +echo "configure:1335: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1355,7 +1344,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:1359: checking for working automake" >&5 +echo "configure:1348: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1368,7 +1357,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:1372: checking for working autoheader" >&5 +echo "configure:1361: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1381,7 +1370,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:1385: checking for working makeinfo" >&5 +echo "configure:1374: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1400,7 +1389,7 @@ fi # LIBGCJ_CONFIGURE, which doesn't work because that means that it will # be run before AC_CANONICAL_HOST. echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:1404: checking build system type" >&5 +echo "configure:1393: checking build system type" >&5 build_alias=$build case "$build_alias" in @@ -1421,7 +1410,7 @@ echo "$ac_t""$build" 1>&6 # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1425: checking for $ac_word" >&5 +echo "configure:1414: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1453,7 +1442,7 @@ fi # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1457: checking for $ac_word" >&5 +echo "configure:1446: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1485,7 +1474,7 @@ fi # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1489: checking for $ac_word" >&5 +echo "configure:1478: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1517,7 +1506,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1521: checking for $ac_word" >&5 +echo "configure:1510: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1562,7 +1551,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:1566: checking for a BSD compatible install" >&5 +echo "configure:1555: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1616,7 +1605,7 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:1620: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:1609: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -1642,7 +1631,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:1646: checking for executable suffix" >&5 +echo "configure:1635: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1652,10 +1641,10 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:1656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:1645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in - *.c | *.o | *.obj | *.ilk | *.pdb) ;; + *.$ac_ext | *.c | *.o | *.obj) ;; *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;; esac done @@ -1802,7 +1791,7 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:1806: checking for ld used by GCC" >&5 +echo "configure:1795: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -1832,10 +1821,10 @@ echo "configure:1806: checking for ld used by GCC" >&5 esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:1836: checking for GNU ld" >&5 +echo "configure:1825: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:1839: checking for non-GNU ld" >&5 +echo "configure:1828: checking for non-GNU ld" >&5 fi if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1870,7 +1859,7 @@ else fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:1874: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:1863: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1887,7 +1876,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 -echo "configure:1891: checking for $LD option to reload object files" >&5 +echo "configure:1880: checking for $LD option to reload object files" >&5 if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1899,7 +1888,7 @@ reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:1903: checking for BSD-compatible nm" >&5 +echo "configure:1892: checking for BSD-compatible nm" >&5 if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1937,7 +1926,7 @@ NM="$lt_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:1941: checking how to recognise dependant libraries" >&5 +echo "configure:1930: checking how to recognise dependant libraries" >&5 if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2110,13 +2099,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:2114: checking for object suffix" >&5 +echo "configure:2103: checking for object suffix" >&5 if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:2120: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2109: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -2140,7 +2129,7 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 -echo "configure:2144: checking for ${ac_tool_prefix}file" >&5 +echo "configure:2133: checking for ${ac_tool_prefix}file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2202,7 +2191,7 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 -echo "configure:2206: checking for file" >&5 +echo "configure:2195: checking for file" >&5 if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2273,7 +2262,7 @@ esac # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2277: checking for $ac_word" >&5 +echo "configure:2266: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2305,7 +2294,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2309: checking for $ac_word" >&5 +echo "configure:2298: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2340,7 +2329,7 @@ fi # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2344: checking for $ac_word" >&5 +echo "configure:2333: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2372,7 +2361,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2376: checking for $ac_word" >&5 +echo "configure:2365: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2439,8 +2428,8 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 2443 "configure"' > conftest.$ac_ext - if { (eval echo configure:2444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 2432 "configure"' > conftest.$ac_ext + if { (eval echo configure:2433: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -2459,7 +2448,7 @@ case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext - if { (eval echo configure:2463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:2452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *ELF-32*) HPUX_IA64_MODE="32" @@ -2477,7 +2466,7 @@ ia64-*-hpux*) SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:2481: checking whether the C compiler needs -belf" >&5 +echo "configure:2470: checking whether the C compiler needs -belf" >&5 if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2490,14 +2479,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else @@ -2527,7 +2516,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 esac echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:2531: checking how to run the C++ preprocessor" >&5 +echo "configure:2520: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2540,12 +2529,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2781,7 +2770,7 @@ INTERPRETER="$libgcj_interpreter" echo $ac_n "checking for exception model to use""... $ac_c" 1>&6 -echo "configure:2785: checking for exception model to use" >&5 +echo "configure:2774: checking for exception model to use" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -2796,7 +2785,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then : else cat > conftest.$ac_ext << EOF -#line 2800 "configure" +#line 2789 "configure" struct S { ~S(); }; void bar(); void foo() @@ -2807,7 +2796,7 @@ void foo() EOF old_CXXFLAGS="$CXXFLAGS" CXXFLAGS=-S -if { (eval echo configure:2811: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:2800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then enable_sjlj_exceptions=yes elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then @@ -2937,7 +2926,7 @@ esac echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:2941: checking how to run the C preprocessor" >&5 +echo "configure:2930: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -2952,13 +2941,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2962: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2951: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2969,13 +2958,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2979: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2968: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -2986,13 +2975,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2996: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2985: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3017,7 +3006,7 @@ fi echo "$ac_t""$CPP" 1>&6 cat > conftest.$ac_ext < EOF @@ -3032,7 +3021,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < EOF @@ -3047,7 +3036,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < EOF @@ -3062,7 +3051,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < EOF @@ -3079,7 +3068,7 @@ rm -f conftest* cat > conftest.$ac_ext < EOF @@ -3094,7 +3083,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < EOF @@ -3146,7 +3135,7 @@ ZLIBTESTSPEC= libsubdir=.libs echo $ac_n "checking for garbage collector to use""... $ac_c" 1>&6 -echo "configure:3150: checking for garbage collector to use" >&5 +echo "configure:3139: checking for garbage collector to use" >&5 # Check whether --enable-java-gc or --disable-java-gc was given. if test "${enable_java_gc+set}" = set; then enableval="$enable_java_gc" @@ -3199,7 +3188,7 @@ esac echo $ac_n "checking for thread model used by GCC""... $ac_c" 1>&6 -echo "configure:3203: checking for thread model used by GCC" >&5 +echo "configure:3192: checking for thread model used by GCC" >&5 THREADS=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'` echo "$ac_t""$THREADS" 1>&6 @@ -3407,12 +3396,12 @@ else for ac_func in strerror ioctl select fstat open fsync sleep opendir do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3411: checking for $ac_func" >&5 +echo "configure:3400: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3462,12 +3451,12 @@ done for ac_func in gmtime_r localtime_r readdir_r getpwuid_r getcwd do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3466: checking for $ac_func" >&5 +echo "configure:3455: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3517,12 +3506,12 @@ done for ac_func in access stat mkdir rename rmdir unlink realpath utime chmod do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3521: checking for $ac_func" >&5 +echo "configure:3510: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3572,12 +3561,12 @@ done for ac_func in nl_langinfo setlocale do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3576: checking for $ac_func" >&5 +echo "configure:3565: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3627,12 +3616,12 @@ done for ac_func in inet_aton inet_addr do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3631: checking for $ac_func" >&5 +echo "configure:3620: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3682,12 +3671,12 @@ done for ac_func in inet_pton uname inet_ntoa do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3686: checking for $ac_func" >&5 +echo "configure:3675: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3737,12 +3726,12 @@ done for ac_func in fork execvp pipe sigaction ftruncate do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3741: checking for $ac_func" >&5 +echo "configure:3730: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3793,17 +3782,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3797: checking for $ac_hdr" >&5 +echo "configure:3786: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3807: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3796: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3830,12 +3819,12 @@ fi done echo $ac_n "checking for backtrace""... $ac_c" 1>&6 -echo "configure:3834: checking for backtrace" >&5 +echo "configure:3823: checking for backtrace" >&5 if eval "test \"`echo '$''{'ac_cv_func_backtrace'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_backtrace=yes" else @@ -3894,7 +3883,7 @@ fi echo $ac_n "checking for dladdr in -ldl""... $ac_c" 1>&6 -echo "configure:3898: checking for dladdr in -ldl" >&5 +echo "configure:3887: checking for dladdr in -ldl" >&5 ac_lib_var=`echo dl'_'dladdr | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3902,7 +3891,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3943,7 +3932,7 @@ do ac_safe=`echo "$ac_file" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_file""... $ac_c" 1>&6 -echo "configure:3947: checking for $ac_file" >&5 +echo "configure:3936: checking for $ac_file" >&5 if eval "test \"`echo '$''{'ac_cv_file_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4001,7 +3990,7 @@ fi echo $ac_n "checking for iconv""... $ac_c" 1>&6 -echo "configure:4005: checking for iconv" >&5 +echo "configure:3994: checking for iconv" >&5 if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4009,7 +3998,7 @@ else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat > conftest.$ac_ext < #include @@ -4019,7 +4008,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:4023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_func_iconv=yes else @@ -4031,7 +4020,7 @@ rm -f conftest* am_save_LIBS="$LIBS" LIBS="$LIBS $am_cv_libiconv_ldpath -liconv" cat > conftest.$ac_ext < #include @@ -4041,7 +4030,7 @@ iconv_t cd = iconv_open("",""); iconv_close(cd); ; return 0; } EOF -if { (eval echo configure:4045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_lib_iconv=yes am_cv_func_iconv=yes @@ -4062,13 +4051,13 @@ echo "$ac_t""$am_cv_func_iconv" 1>&6 EOF echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6 -echo "configure:4066: checking for iconv declaration" >&5 +echo "configure:4055: checking for iconv declaration" >&5 if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -4087,7 +4076,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_proto_iconv_arg1="" else @@ -4116,19 +4105,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:4120: checking for LC_MESSAGES" >&5 +echo "configure:4109: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:4132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -4149,12 +4138,12 @@ EOF fi fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:4153: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:4142: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -4162,7 +4151,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:4166: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -4183,12 +4172,12 @@ EOF fi echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6 -echo "configure:4187: checking for tm_zone in struct tm" >&5 +echo "configure:4176: checking for tm_zone in struct tm" >&5 if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -4196,7 +4185,7 @@ int main() { struct tm tm; tm.tm_zone; ; return 0; } EOF -if { (eval echo configure:4200: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm_zone=yes else @@ -4216,12 +4205,12 @@ EOF else echo $ac_n "checking for tzname""... $ac_c" 1>&6 -echo "configure:4220: checking for tzname" >&5 +echo "configure:4209: checking for tzname" >&5 if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -4231,7 +4220,7 @@ int main() { atoi(*tzname); ; return 0; } EOF -if { (eval echo configure:4235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4224: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_var_tzname=yes else @@ -4256,12 +4245,12 @@ fi for ac_func in gethostbyname_r do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4260: checking for $ac_func" >&5 +echo "configure:4249: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4311,7 +4300,7 @@ EOF # We look for the one that returns `int'. # Hopefully this check is robust enough. cat > conftest.$ac_ext < EOF @@ -4331,7 +4320,7 @@ rm -f conftest* *" -D_REENTRANT "*) ;; *) echo $ac_n "checking whether gethostbyname_r declaration requires -D_REENTRANT""... $ac_c" 1>&6 -echo "configure:4335: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5 +echo "configure:4324: checking whether gethostbyname_r declaration requires -D_REENTRANT" >&5 if eval "test \"`echo '$''{'libjava_cv_gethostbyname_r_needs_reentrant'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4344,14 +4333,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext < int main() { gethostbyname_r("", 0, 0); ; return 0; } EOF -if { (eval echo configure:4355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libjava_cv_gethostbyname_r_needs_reentrant=no else @@ -4361,14 +4350,14 @@ else CPPFLAGS_SAVE="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_REENTRANT" cat > conftest.$ac_ext < int main() { gethostbyname_r("", 0, 0); ; return 0; } EOF -if { (eval echo configure:4372: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libjava_cv_gethostbyname_r_needs_reentrant=yes else @@ -4403,12 +4392,12 @@ EOF esac echo $ac_n "checking for struct hostent_data""... $ac_c" 1>&6 -echo "configure:4407: checking for struct hostent_data" >&5 +echo "configure:4396: checking for struct hostent_data" >&5 if eval "test \"`echo '$''{'libjava_cv_struct_hostent_data'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4412: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* libjava_cv_struct_hostent_data=yes else @@ -4451,7 +4440,7 @@ done # to exist where expected. (The root issue: AC_CHECK_FUNCS assumes C # linkage check is enough, yet C++ code requires proper prototypes.) cat > conftest.$ac_ext < EOF @@ -4462,12 +4451,12 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | for ac_func in gethostbyaddr_r do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4466: checking for $ac_func" >&5 +echo "configure:4455: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4517,7 +4506,7 @@ EOF # We look for the one that returns `int'. # Hopefully this check is robust enough. cat > conftest.$ac_ext < EOF @@ -4544,12 +4533,12 @@ rm -f conftest* for ac_func in gethostname do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4548: checking for $ac_func" >&5 +echo "configure:4537: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4596,7 +4585,7 @@ EOF EOF cat > conftest.$ac_ext < EOF @@ -4627,12 +4616,12 @@ done for ac_func in pthread_mutexattr_settype pthread_mutexattr_setkind_np do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4631: checking for $ac_func" >&5 +echo "configure:4620: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4685,12 +4674,12 @@ done for ac_func in sched_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4689: checking for $ac_func" >&5 +echo "configure:4678: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4735,7 +4724,7 @@ EOF else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6 -echo "configure:4739: checking for sched_yield in -lrt" >&5 +echo "configure:4728: checking for sched_yield in -lrt" >&5 ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4743,7 +4732,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lrt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4780,7 +4769,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sched_yield in -lposix4""... $ac_c" 1>&6 -echo "configure:4784: checking for sched_yield in -lposix4" >&5 +echo "configure:4773: checking for sched_yield in -lposix4" >&5 ac_lib_var=`echo posix4'_'sched_yield | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4788,7 +4777,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix4 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4835,7 +4824,7 @@ done # We can save a little space at runtime if the mutex has m_count # or __m_count. This is a nice hack for Linux. cat > conftest.$ac_ext < int main() { @@ -4844,7 +4833,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4837: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define PTHREAD_MUTEX_HAVE_M_COUNT 1 @@ -4856,7 +4845,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < int main() { @@ -4865,7 +4854,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4858: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define PTHREAD_MUTEX_HAVE___M_COUNT 1 @@ -4885,12 +4874,12 @@ rm -f conftest* for ac_func in gettimeofday time ftime do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4889: checking for $ac_func" >&5 +echo "configure:4878: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4944,12 +4933,12 @@ done for ac_func in memmove do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4948: checking for $ac_func" >&5 +echo "configure:4937: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5002,12 +4991,12 @@ done for ac_func in memcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5006: checking for $ac_func" >&5 +echo "configure:4995: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5059,7 +5048,7 @@ done fi echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:5063: checking for dlopen in -ldl" >&5 +echo "configure:5052: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5067,7 +5056,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5123,7 +5112,7 @@ fi #-------------------------------------------------------------------- echo $ac_n "checking for socket libraries""... $ac_c" 1>&6 -echo "configure:5127: checking for socket libraries" >&5 +echo "configure:5116: checking for socket libraries" >&5 if eval "test \"`echo '$''{'gcj_cv_lib_sockets'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5131,12 +5120,12 @@ else gcj_checkBoth=0 unset ac_cv_func_connect echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:5135: checking for connect" >&5 +echo "configure:5124: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -5182,7 +5171,7 @@ fi if test "$gcj_checkSocket" = 1; then unset ac_cv_func_connect echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 -echo "configure:5186: checking for main in -lsocket" >&5 +echo "configure:5175: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5190,14 +5179,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5224,12 +5213,12 @@ fi LIBS="$LIBS -lsocket -lnsl" unset ac_cv_func_accept echo $ac_n "checking for accept""... $ac_c" 1>&6 -echo "configure:5228: checking for accept" >&5 +echo "configure:5217: checking for accept" >&5 if eval "test \"`echo '$''{'ac_cv_func_accept'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_accept=yes" else @@ -5279,12 +5268,12 @@ fi gcj_oldLibs=$LIBS LIBS="$LIBS $gcj_cv_lib_sockets" echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:5283: checking for gethostbyname" >&5 +echo "configure:5272: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5300: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -5325,7 +5314,7 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 -echo "configure:5329: checking for main in -lnsl" >&5 +echo "configure:5318: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5333,14 +5322,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5372,7 +5361,7 @@ echo "$ac_t""$gcj_cv_lib_sockets" 1>&6 if test "$with_system_zlib" = yes; then echo $ac_n "checking for deflate in -lz""... $ac_c" 1>&6 -echo "configure:5376: checking for deflate in -lz" >&5 +echo "configure:5365: checking for deflate in -lz" >&5 ac_lib_var=`echo z'_'deflate | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5380,7 +5369,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lz $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5418,7 +5407,7 @@ fi # requires -ldl. if test "$GC" = boehm; then echo $ac_n "checking for main in -ldl""... $ac_c" 1>&6 -echo "configure:5422: checking for main in -ldl" >&5 +echo "configure:5411: checking for main in -ldl" >&5 ac_lib_var=`echo dl'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5426,14 +5415,14 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5499,7 +5488,7 @@ fi # Extract the first word of "${ac_tool_prefix}gcj", so it can be a program name with args. set dummy ${ac_tool_prefix}gcj; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5503: checking for $ac_word" >&5 +echo "configure:5492: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5531,7 +5520,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "gcj", so it can be a program name with args. set dummy gcj; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5535: checking for $ac_word" >&5 +echo "configure:5524: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_GCJ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5593,13 +5582,13 @@ exec 5>>./config.log CPPFLAGS=$GCJ_SAVE_CPPFLAGS echo $ac_n "checking size of void *""... $ac_c" 1>&6 -echo "configure:5597: checking size of void *" >&5 +echo "configure:5586: checking size of void *" >&5 if eval "test \"`echo '$''{'ac_cv_sizeof_void_p'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 12 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < @@ -5609,7 +5598,7 @@ int main() { switch (0) case 0: case (sizeof (void *) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:5613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5602: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_void_p=$ac_size else @@ -5710,18 +5699,18 @@ EOF echo $ac_n "checking for g++ -ffloat-store bug""... $ac_c" 1>&6 -echo "configure:5714: checking for g++ -ffloat-store bug" >&5 +echo "configure:5703: checking for g++ -ffloat-store bug" >&5 save_CFLAGS="$CFLAGS" CFLAGS="-x c++ -O2 -ffloat-store" cat > conftest.$ac_ext < int main() { ; return 0; } EOF -if { (eval echo configure:5725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* echo "$ac_t""no" 1>&6 else @@ -5737,21 +5726,21 @@ fi rm -f conftest* CFLAGS="$save_CFLAGS" -for ac_hdr in unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h pwd.h sys/config.h stdint.h langinfo.h locale.h +for ac_hdr in unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h pwd.h sys/config.h stdint.h langinfo.h locale.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5745: checking for $ac_hdr" >&5 +echo "configure:5734: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5755: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5744: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5781,17 +5770,17 @@ for ac_hdr in dirent.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5785: checking for $ac_hdr" >&5 +echo "configure:5774: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5795: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5784: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5821,17 +5810,17 @@ for ac_hdr in inttypes.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5825: checking for $ac_hdr" >&5 +echo "configure:5814: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5835: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5824: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5867,12 +5856,12 @@ fi done echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:5871: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:5860: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5888,7 +5877,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:5892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -5910,12 +5899,12 @@ fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:5914: checking for ANSI C header files" >&5 +echo "configure:5903: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5923,7 +5912,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5916: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5940,7 +5929,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -5958,7 +5947,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -5979,7 +5968,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -5990,7 +5979,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:5994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -6014,12 +6003,12 @@ EOF fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:6018: checking for ssize_t" >&5 +echo "configure:6007: checking for ssize_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6048,9 +6037,9 @@ fi echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6 -echo "configure:6052: checking for in_addr_t" >&5 +echo "configure:6041: checking for in_addr_t" >&5 cat > conftest.$ac_ext < #if STDC_HEADERS @@ -6064,7 +6053,7 @@ int main() { in_addr_t foo; ; return 0; } EOF -if { (eval echo configure:6068: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6057: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_IN_ADDR_T 1 @@ -6080,16 +6069,16 @@ fi rm -f conftest* echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6 -echo "configure:6084: checking whether struct ip_mreq is in netinet/in.h" >&5 +echo "configure:6073: checking whether struct ip_mreq is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct ip_mreq mreq; ; return 0; } EOF -if { (eval echo configure:6093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_STRUCT_IP_MREQ 1 @@ -6105,16 +6094,16 @@ fi rm -f conftest* echo $ac_n "checking whether struct ipv6_mreq is in netinet/in.h""... $ac_c" 1>&6 -echo "configure:6109: checking whether struct ipv6_mreq is in netinet/in.h" >&5 +echo "configure:6098: checking whether struct ipv6_mreq is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct ipv6_mreq mreq6; ; return 0; } EOF -if { (eval echo configure:6118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_STRUCT_IPV6_MREQ 1 @@ -6130,16 +6119,16 @@ fi rm -f conftest* echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6 -echo "configure:6134: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 +echo "configure:6123: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 cat > conftest.$ac_ext < int main() { struct sockaddr_in6 addr6; ; return 0; } EOF -if { (eval echo configure:6143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_INET6 1 @@ -6155,9 +6144,9 @@ fi rm -f conftest* echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6 -echo "configure:6159: checking for socklen_t in sys/socket.h" >&5 +echo "configure:6148: checking for socklen_t in sys/socket.h" >&5 cat > conftest.$ac_ext < @@ -6166,7 +6155,7 @@ int main() { socklen_t x = 5; ; return 0; } EOF -if { (eval echo configure:6170: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SOCKLEN_T 1 @@ -6182,16 +6171,16 @@ fi rm -f conftest* echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6 -echo "configure:6186: checking for tm_gmtoff in struct tm" >&5 +echo "configure:6175: checking for tm_gmtoff in struct tm" >&5 cat > conftest.$ac_ext < int main() { struct tm tim; tim.tm_gmtoff = 0; ; return 0; } EOF -if { (eval echo configure:6195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define STRUCT_TM_HAS_GMTOFF 1 @@ -6204,16 +6193,16 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6 -echo "configure:6208: checking for global timezone variable" >&5 +echo "configure:6197: checking for global timezone variable" >&5 cat > conftest.$ac_ext < int main() { void i(){long z2 = 2*timezone;} ; return 0; } EOF -if { (eval echo configure:6217: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_TIMEZONE 1 @@ -6226,16 +6215,16 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking for global _timezone variable""... $ac_c" 1>&6 -echo "configure:6230: checking for global _timezone variable" >&5 +echo "configure:6219: checking for global _timezone variable" >&5 cat > conftest.$ac_ext < int main() { long z2 = _timezone; ; return 0; } EOF -if { (eval echo configure:6239: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_UNDERSCORE_TIMEZONE 1 @@ -6257,19 +6246,19 @@ rm -f conftest* # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:6261: checking for working alloca.h" >&5 +echo "configure:6250: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:6273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -6290,12 +6279,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:6294: checking for alloca" >&5 +echo "configure:6283: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -6355,12 +6344,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:6359: checking whether alloca needs Cray hooks" >&5 +echo "configure:6348: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6389: checking for $ac_func" >&5 +echo "configure:6378: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -6440,7 +6429,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:6444: checking stack direction for C alloca" >&5 +echo "configure:6433: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6448,7 +6437,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:6460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -6494,7 +6483,7 @@ 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 $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:6498: checking for $ac_word" >&5 +echo "configure:6487: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6584,7 +6573,7 @@ fi # Uses ac_ vars as temps to allow command line to override cache and checks. # --without-x overrides everything else, but does not touch the cache. echo $ac_n "checking for X""... $ac_c" 1>&6 -echo "configure:6588: checking for X" >&5 +echo "configure:6577: checking for X" >&5 # Check whether --with-x or --without-x was given. if test "${with_x+set}" = set; then @@ -6646,12 +6635,12 @@ if test "$ac_x_includes" = NO; then # First, try using that file with no special directory specified. cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:6655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -6720,14 +6709,14 @@ if test "$ac_x_libraries" = NO; then ac_save_LIBS="$LIBS" LIBS="-l$x_direct_test_library $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* LIBS="$ac_save_LIBS" # We can link X programs with no special library path. @@ -6833,17 +6822,17 @@ else case "`(uname -sr) 2>/dev/null`" in "SunOS 5"*) echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 -echo "configure:6837: checking whether -R must be followed by a space" >&5 +echo "configure:6826: checking whether -R must be followed by a space" >&5 ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_nospace=yes else @@ -6859,14 +6848,14 @@ rm -f conftest* else LIBS="$ac_xsave_LIBS -R $x_libraries" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_R_space=yes else @@ -6898,7 +6887,7 @@ rm -f conftest* # libraries were built with DECnet support. And karl@cs.umb.edu says # the Alpha needs dnet_stub (dnet does not exist). echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 -echo "configure:6902: checking for dnet_ntoa in -ldnet" >&5 +echo "configure:6891: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6906,7 +6895,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6939,7 +6928,7 @@ fi if test $ac_cv_lib_dnet_dnet_ntoa = no; then echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 -echo "configure:6943: checking for dnet_ntoa in -ldnet_stub" >&5 +echo "configure:6932: checking for dnet_ntoa in -ldnet_stub" >&5 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6947,7 +6936,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldnet_stub $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6987,12 +6976,12 @@ fi # The nsl library prevents programs from opening the X display # on Irix 5.2, according to dickey@clark.net. echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 -echo "configure:6991: checking for gethostbyname" >&5 +echo "configure:6980: checking for gethostbyname" >&5 if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7008: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gethostbyname=yes" else @@ -7036,7 +7025,7 @@ fi if test $ac_cv_func_gethostbyname = no; then echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 -echo "configure:7040: checking for gethostbyname in -lnsl" >&5 +echo "configure:7029: checking for gethostbyname in -lnsl" >&5 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7044,7 +7033,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7085,12 +7074,12 @@ fi # -lsocket must be given before -lnsl if both are needed. # We assume that if connect needs -lnsl, so does gethostbyname. echo $ac_n "checking for connect""... $ac_c" 1>&6 -echo "configure:7089: checking for connect" >&5 +echo "configure:7078: checking for connect" >&5 if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_connect=yes" else @@ -7134,7 +7123,7 @@ fi if test $ac_cv_func_connect = no; then echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 -echo "configure:7138: checking for connect in -lsocket" >&5 +echo "configure:7127: checking for connect in -lsocket" >&5 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7142,7 +7131,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7177,12 +7166,12 @@ fi # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. echo $ac_n "checking for remove""... $ac_c" 1>&6 -echo "configure:7181: checking for remove" >&5 +echo "configure:7170: checking for remove" >&5 if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_remove=yes" else @@ -7226,7 +7215,7 @@ fi if test $ac_cv_func_remove = no; then echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 -echo "configure:7230: checking for remove in -lposix" >&5 +echo "configure:7219: checking for remove in -lposix" >&5 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7234,7 +7223,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lposix $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7269,12 +7258,12 @@ fi # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. echo $ac_n "checking for shmat""... $ac_c" 1>&6 -echo "configure:7273: checking for shmat" >&5 +echo "configure:7262: checking for shmat" >&5 if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7290: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shmat=yes" else @@ -7318,7 +7307,7 @@ fi if test $ac_cv_func_shmat = no; then echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 -echo "configure:7322: checking for shmat in -lipc" >&5 +echo "configure:7311: checking for shmat in -lipc" >&5 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7326,7 +7315,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lipc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7370,7 +7359,7 @@ fi # libraries we check for below, so use a different variable. # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 -echo "configure:7374: checking for IceConnectionNumber in -lICE" >&5 +echo "configure:7363: checking for IceConnectionNumber in -lICE" >&5 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -7378,7 +7367,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lICE $X_EXTRA_LIBS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -7730,7 +7719,7 @@ cat >> $CONFIG_STATUS <<\EOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. -ac_max_sed_cmds=60 # Maximum number of lines to put in a sed script. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. ac_file=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_cmds # Line after last line for current file. diff --git a/libjava/configure.in b/libjava/configure.in index 93437c685b7..3c57a97b4d7 100644 --- a/libjava/configure.in +++ b/libjava/configure.in @@ -813,7 +813,7 @@ CFLAGS="$save_CFLAGS" dnl We check for sys/filio.h because Solaris 2.5 defines FIONREAD there. dnl On that system, sys/ioctl.h will not include sys/filio.h unless dnl BSD_COMP is defined; just including sys/filio.h is simpler. -AC_CHECK_HEADERS(unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h pwd.h sys/config.h stdint.h langinfo.h locale.h) +AC_CHECK_HEADERS(unistd.h bstring.h sys/time.h sys/types.h fcntl.h sys/ioctl.h sys/filio.h sys/stat.h sys/select.h sys/socket.h netinet/in.h arpa/inet.h netdb.h net/if.h pwd.h sys/config.h stdint.h langinfo.h locale.h) dnl We avoid AC_HEADER_DIRENT since we really only care about dirent.h dnl for now. If you change this, you also must update natFile.cc. AC_CHECK_HEADERS(dirent.h) diff --git a/libjava/gnu/gcj/runtime/NameFinder.java b/libjava/gnu/gcj/runtime/NameFinder.java index f32ebe0f530..1d729d252ac 100644 --- a/libjava/gnu/gcj/runtime/NameFinder.java +++ b/libjava/gnu/gcj/runtime/NameFinder.java @@ -34,11 +34,15 @@ import java.io.File; * should be removed from the stack trace. Only done when names are * demangled. *
    gnu.gcj.runtime.NameFinder.remove_unknown - * Wheter calls to unknown functions (class and method names are unknown) + * Whether calls to unknown functions (class and method names are unknown) * should be removed from the stack trace. Only done when the stack is * sanitized.
+ *
    gnu.gcj.runtime.NameFinder.remove_interpreter + * Whether runtime interpreter calls (methods in the _Jv_InterpMethod class + * and functions starting with 'ffi_') should be removed from the stack + * trace. Only done when the stack is sanitized.
*
    gnu.gcj.runtime.NameFinder.use_addr2line - * Wheter an external process (addr2line or addr2name.awk) should be used + * Whether an external process (addr2line or addr2name.awk) should be used * as fallback to convert the addresses to function names when the runtime * is unable to do it through dladdr.
* @@ -68,6 +72,10 @@ public class NameFinder = Boolean.valueOf(System.getProperty ("gnu.gcj.runtime.NameFinder.remove_unknown", "true") ).booleanValue(); + private static final boolean remove_interpreter + = Boolean.valueOf(System.getProperty + ("gnu.gcj.runtime.NameFinder.remove_interpreter", "true") + ).booleanValue(); private static final boolean use_addr2line = Boolean.valueOf(System.getProperty ("gnu.gcj.runtime.NameFinder.use_addr2line", "true") @@ -257,6 +265,7 @@ public class NameFinder consName = className.substring(lastDot + 1) + '('; int unknown = 0; + int interpreter = 0; int last_throw = -1; int length = elements.length; int end = length-1; @@ -274,10 +283,20 @@ public class NameFinder && (MName.startsWith(consName) || MName.startsWith("Throwable(") || MName.startsWith("fillInStackTrace(")))) - last_throw = i; + { + last_throw = i; + // Reset counting of unknown and interpreter frames. + unknown = 0; + interpreter = 0; + } else if (remove_unknown && CName == null && (MName == null || MName.startsWith("0x"))) unknown++; + else if (remove_interpreter + && ((CName == null + && MName != null && MName.startsWith("ffi_")) + || (CName != null && CName.equals("_Jv_InterpMethod")))) + interpreter++; else if ("main(java.lang.String[])".equals(MName)) { end = i; @@ -287,20 +306,28 @@ public class NameFinder int begin = last_throw+1; // Now filter out everything at the start and the end that is not part - // of the "normal" user program including any elements that have no - // usefull information whatsoever unless that means we filter out all info. - int nr_elements = end-begin-unknown+1; - if ((begin > 0 || end < length-1 || unknown > 0) && nr_elements > 0) + // of the "normal" user program including any elements that are interpreter + // calls or have no usefull information whatsoever. + // Unless that means we filter out all info. + int nr_elements = end-begin-unknown-interpreter+1; + if ((begin > 0 || end < length-1 || unknown > 0 || interpreter > 0) + && nr_elements > 0) { stack = new StackTraceElement[nr_elements]; int pos =0; for (int i=begin; i<=end; i++) { - String MName; - if (unknown == 0 - || !(elements[i].getClassName() == null - && ((MName = elements[i].getMethodName()) == null - || MName.startsWith("0x")))) + String MName = elements[i].getMethodName(); + String CName = elements[i].getClassName(); + if (remove_unknown && CName == null + && (MName == null || MName.startsWith("0x"))) + ; // Skip unknown frame + else if (remove_interpreter + && ((CName == null + && MName != null && MName.startsWith("ffi_")) + || (CName != null && CName.equals("_Jv_InterpMethod")))) + ; // Skip interpreter runtime frame + else { stack[pos] = elements[i]; pos++; @@ -394,6 +421,111 @@ public class NameFinder return s; } + /** + * Returns human readable method name and aguments given a method type + * signature as known to the interpreter and a classname. + */ + public static String demangleInterpreterMethod(String m, String cn) + { + int index = 0; + int length = m.length(); + StringBuffer sb = new StringBuffer(length); + + // Figure out the real method name + if (m.startsWith("")) + { + String className; + int i = cn.lastIndexOf('.'); + if (i < 0) + className = cn; + else + className = cn.substring(i + 1); + sb.append(className); + index += 7; + } + else + { + int i = m.indexOf('('); + if (i > 0) + { + sb.append(m.substring(0,i)); + index += i + 1; + } + } + + sb.append('('); + + // Demangle the type arguments + int arrayDepth = 0; + char c = (index < length) ? m.charAt(index) : ')'; + while (c != ')') + { + String type; + switch(c) + { + case 'B': + type = "byte"; + break; + case 'C': + type = "char"; + break; + case 'D': + type = "double"; + break; + case 'F': + type = "float"; + break; + case 'I': + type = "int"; + break; + case 'J': + type = "long"; + break; + case 'S': + type = "short"; + break; + case 'Z': + type = "boolean"; + break; + case 'L': + int i = m.indexOf(';', index); + if (i > 0) + { + type = m.substring(index+1, i); + index = i; + } + else + type = ""; + break; + case '[': + type = ""; + arrayDepth++; + break; + default: + type = "'; + } + sb.append(type); + + // Handle arrays + if (c != '[' && arrayDepth > 0) + while (arrayDepth > 0) + { + sb.append("[]"); + arrayDepth--; + } + + index++; + char nc = (index < length) ? m.charAt(index) : ')'; + if (c != '[' && nc != ')') + sb.append(", "); + c = nc; + } + + // Stop. We are not interested in the return type. + sb.append(')'); + return sb.toString(); + } + /** * Releases all resources used by this NameFinder. */ diff --git a/libjava/gnu/gcj/runtime/natNameFinder.cc b/libjava/gnu/gcj/runtime/natNameFinder.cc index 29488eddda7..29687cb5bb9 100644 --- a/libjava/gnu/gcj/runtime/natNameFinder.cc +++ b/libjava/gnu/gcj/runtime/natNameFinder.cc @@ -95,7 +95,6 @@ gnu::gcj::runtime::NameFinder::lookupInterp(RawData* addrs, jint n) _Jv_InterpMethod *meth = reinterpret_cast<_Jv_InterpMethod *> (stack[n].interp); - // FIXME: demangle. java::lang::StringBuffer *sb = new java::lang::StringBuffer(); sb->append(_Jv_NewStringUtf8Const(meth->self->name)); sb->append(_Jv_NewStringUtf8Const(meth->self->signature)); @@ -103,9 +102,11 @@ gnu::gcj::runtime::NameFinder::lookupInterp(RawData* addrs, jint n) // bytecode debug information. But currently we don't keep that // around. // FIXME: is using the defining class correct here? + java::lang::String *className = meth->defining_class->getName(); + java::lang::String *methodName + = demangleInterpreterMethod(sb->toString(), className); return new java::lang::StackTraceElement(NULL, -1, - meth->defining_class->getName(), - sb->toString(), false); + className, methodName, false); #else // INTERPRETER return NULL; #endif // INTERPRETER diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in index f75f74f0318..612a2bfe30d 100644 --- a/libjava/include/config.h.in +++ b/libjava/include/config.h.in @@ -346,6 +346,9 @@ /* Define if you have the header file. */ #undef HAVE_NETDB_H +/* Define if you have the header file. */ +#undef HAVE_NET_IF_H + /* Define if you have the header file. */ #undef HAVE_NETINET_IN_H diff --git a/libjava/include/win32.h b/libjava/include/win32.h index da71b8be56a..a035cfc5c13 100644 --- a/libjava/include/win32.h +++ b/libjava/include/win32.h @@ -16,6 +16,7 @@ details. */ #undef __INSIDE_CYGWIN__ #include +#define IP_TOS 3 #include #include diff --git a/libjava/java/awt/Toolkit.java b/libjava/java/awt/Toolkit.java index 7caec22dca9..fb5e020a29e 100644 --- a/libjava/java/awt/Toolkit.java +++ b/libjava/java/awt/Toolkit.java @@ -96,11 +96,11 @@ public abstract class Toolkit { /** The default toolkit name. */ private static String default_toolkit_name - = "gnu.java.awt.peer.gtk.GtkToolkit"; + = "gnu.awt.gtk.GtkToolkit"; /** * The toolkit in use. Once we load it, we don't ever change it - * if the awt.toolkit propert is set. + * if the awt.toolkit property is set. */ private static Toolkit toolkit; diff --git a/libjava/java/lang/AssertionError.java b/libjava/java/lang/AssertionError.java index 1ce00aee7af..2bbf81cac97 100644 --- a/libjava/java/lang/AssertionError.java +++ b/libjava/java/lang/AssertionError.java @@ -42,7 +42,7 @@ package java.lang; * An assertion error normally occurs as a result of the assert * statement added in JDK 1.4, to indicate that an assertion failed. There * are enough constructors to ensure that - * new AssertionError(expression will work for all + * new AssertionError(expression) will work for all * espressions, regardless of type, as if the error message were given by * the string "" + expression. This extends Error, * because you usually do not want to inadvertently trap an assertion failure. diff --git a/libjava/java/lang/Class.h b/libjava/java/lang/Class.h index 253aa64df1c..9a8d4183b6f 100644 --- a/libjava/java/lang/Class.h +++ b/libjava/java/lang/Class.h @@ -160,6 +160,9 @@ private: java::lang::reflect::Method *getPrivateMethod (jstring, JArray *); java::security::ProtectionDomain *getProtectionDomain0 (); + java::lang::reflect::Method *_getMethod (jstring, JArray *); + java::lang::reflect::Method *_getDeclaredMethod (jstring, JArray *); + public: JArray *getFields (void); @@ -167,7 +170,6 @@ public: void getSignature (java::lang::StringBuffer *buffer); static jstring getSignature (JArray *, jboolean is_constructor); - java::lang::reflect::Method *_getMethod (jstring, JArray *); JArray *getMethods (void); inline jint getModifiers (void) diff --git a/libjava/java/lang/Class.java b/libjava/java/lang/Class.java index 12306da8061..cc1cc40f2a4 100644 --- a/libjava/java/lang/Class.java +++ b/libjava/java/lang/Class.java @@ -65,9 +65,31 @@ public final class Class implements Serializable public native Field getDeclaredField (String fieldName) throws NoSuchFieldException, SecurityException; public native Field[] getDeclaredFields () throws SecurityException; - public native Method getDeclaredMethod (String methodName, - Class[] parameterTypes) - throws NoSuchMethodException, SecurityException; + + private native Method _getDeclaredMethod (String methodName, + Class[] parameterTypes); + + public Method getDeclaredMethod (String methodName, Class[] parameterTypes) + throws NoSuchMethodException, SecurityException + { + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + { + sm.checkMemberAccess(this, Member.DECLARED); + Package p = getPackage(); + if (p != null) + sm.checkPackageAccess(p.getName()); + } + + if ("".equals(methodName) || "".equals(methodName)) + throw new NoSuchMethodException(methodName); + + Method m = _getDeclaredMethod(methodName, parameterTypes); + if (m == null) + throw new NoSuchMethodException (methodName); + return m; + } + public native Method[] getDeclaredMethods () throws SecurityException; // This is marked as unimplemented in the JCL book. diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java index a6faa61b2ed..2c0e21133d9 100644 --- a/libjava/java/lang/ClassLoader.java +++ b/libjava/java/lang/ClassLoader.java @@ -432,17 +432,24 @@ public abstract class ClassLoader { synchronized (clazz) { - try { - linkClass0 (clazz); - } catch (Throwable x) { - markClassErrorState0 (clazz); - - if (x instanceof Error) - throw (Error)x; - else - throw new java.lang.InternalError - ("unexpected exception during linking: " + x); - } + try + { + linkClass0 (clazz); + } + catch (Throwable x) + { + markClassErrorState0 (clazz); + + if (x instanceof Error) + throw (Error)x; + else + { + InternalError e + = new InternalError ("unexpected exception during linking"); + e.initCause (x); + throw e; + } + } } } diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index 43b79adc9b6..fca074152ce 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -315,8 +315,8 @@ java::lang::Class::getSignature (JArray *param_types, } java::lang::reflect::Method * -java::lang::Class::getDeclaredMethod (jstring name, - JArray *param_types) +java::lang::Class::_getDeclaredMethod (jstring name, + JArray *param_types) { jstring partial_sig = getSignature (param_types, false); jint p_len = partial_sig->length(); @@ -324,7 +324,6 @@ java::lang::Class::getDeclaredMethod (jstring name, int i = isPrimitive () ? 0 : method_count; while (--i >= 0) { - // FIXME: access checks. if (_Jv_equalUtf8Consts (methods[i].name, utf_name) && _Jv_equaln (methods[i].signature, partial_sig, p_len)) { @@ -336,7 +335,7 @@ java::lang::Class::getDeclaredMethod (jstring name, return rmethod; } } - throw new java::lang::NoSuchMethodException; + return NULL; } JArray * diff --git a/libjava/java/lang/natVMThrowable.cc b/libjava/java/lang/natVMThrowable.cc index f5c56c7a1d4..ce897c23e0b 100644 --- a/libjava/java/lang/natVMThrowable.cc +++ b/libjava/java/lang/natVMThrowable.cc @@ -72,7 +72,7 @@ java::lang::VMThrowable::fillInStackTrace (java::lang::Throwable* t) state->length = n; int len = n; addrs = (_Jv_frame_info *) _Jv_Malloc (n * sizeof (_Jv_frame_info)); - while (n--) + for (n = 0; n < len; n++) { addrs[n].addr = p[n]; #ifdef INTERPRETER diff --git a/libjava/java/net/DatagramPacket.java b/libjava/java/net/DatagramPacket.java index d136f8424a5..836f5dd66b8 100644 --- a/libjava/java/net/DatagramPacket.java +++ b/libjava/java/net/DatagramPacket.java @@ -44,67 +44,66 @@ package java.net; */ /** - * This class models a packet of data that is to be sent across the network - * using a connectionless protocol such as UDP. It contains the data - * to be send, as well as the destination address and port. Note that - * datagram packets can arrive in any order and are not guaranteed to be - * delivered at all. - *

- * This class can also be used for receiving data from the network. - *

- * Note that for all method below where the buffer length passed by the - * caller cannot exceed the actually length of the byte array passed as - * the buffer, if this condition is not true, then the method silently - * reduces the length value to maximum allowable value. - * - * Written using on-line Java Platform 1.2 API Specification, as well - * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). - * Status: Believed complete and correct. - * - * @author Warren Levy - * @author Aarom M. Renn (arenn@urbanophile.com) (Documentation comments) - * @date April 28, 1999. - */ - + * This class models a packet of data that is to be sent across the network + * using a connectionless protocol such as UDP. It contains the data + * to be send, as well as the destination address and port. Note that + * datagram packets can arrive in any order and are not guaranteed to be + * delivered at all. + *

+ * This class can also be used for receiving data from the network. + *

+ * Note that for all method below where the buffer length passed by the + * caller cannot exceed the actually length of the byte array passed as + * the buffer, if this condition is not true, then the method silently + * reduces the length value to maximum allowable value. + * + * Written using on-line Java Platform 1.2 API Specification, as well + * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). + * Status: Believed complete and correct. + * + * @author Warren Levy + * @author Aarom M. Renn (arenn@urbanophile.com) (Documentation comments) + * @date April 28, 1999. + */ public final class DatagramPacket { -/** - * The data buffer to send - */ + /** + * The data buffer to send + */ private byte[] buffer; -/** - * This is the offset into the buffer to start sending from or receiving to. - */ + /** + * This is the offset into the buffer to start sending from or receiving to. + */ private int offset; -/** - * The length of the data buffer to send - */ + /** + * The length of the data buffer to send + */ private int length; -/** - * The address to which the packet should be sent or from which it - * was received - */ + /** + * The address to which the packet should be sent or from which it + * was received + */ private InetAddress address; -/** - * The port to which the packet should be sent or from which it was - * was received. - */ + /** + * The port to which the packet should be sent or from which it was + * was received. + */ private int port; -/** - * This method initializes a new instance of DatagramPacket - * which has the specified buffer, offset, and length. - * - * @param buf The buffer for holding the incoming datagram. - * @param offset The offset into the buffer to start writing. - * @param length The maximum number of bytes to read. - * - * @since 1.2 - */ + /** + * This method initializes a new instance of DatagramPacket + * which has the specified buffer, offset, and length. + * + * @param buf The buffer for holding the incoming datagram. + * @param offset The offset into the buffer to start writing. + * @param length The maximum number of bytes to read. + * + * @since 1.2 + */ public DatagramPacket(byte[] buf, int offset, int length) { if (buf == null) @@ -124,30 +123,30 @@ public final class DatagramPacket this.port = -1; } -/** - * Initializes a new instance of DatagramPacket for - * receiving packets from the network. - * - * @param buf A buffer for storing the returned packet data - * @param length The length of the buffer (must be <= buf.length) - */ + /** + * Initializes a new instance of DatagramPacket for + * receiving packets from the network. + * + * @param buf A buffer for storing the returned packet data + * @param length The length of the buffer (must be <= buf.length) + */ public DatagramPacket(byte[] buf, int length) { this(buf, 0, length); } -/** - * Initializes a new instance of DatagramPacket for - * transmitting packets across the network. - * - * @param buf A buffer containing the data to send - * @param offset The offset into the buffer to start writing from. - * @param len The length of the buffer (must be <= buf.length) - * @param addr The address to send to - * @param port The port to send to - * - * @since 1.2 - */ + /** + * Initializes a new instance of DatagramPacket for + * transmitting packets across the network. + * + * @param buf A buffer containing the data to send + * @param offset The offset into the buffer to start writing from. + * @param len The length of the buffer (must be <= buf.length) + * @param addr The address to send to + * @param port The port to send to + * + * @since 1.2 + */ public DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) { @@ -172,15 +171,15 @@ public final class DatagramPacket this.port = port; } -/** - * Initializes a new instance of DatagramPacket for - * transmitting packets across the network. - * - * @param buf A buffer containing the data to send - * @param length The length of the buffer (must be <= buf.length) - * @param address The address to send to - * @param port The port to send to - */ + /** + * Initializes a new instance of DatagramPacket for + * transmitting packets across the network. + * + * @param buf A buffer containing the data to send + * @param length The length of the buffer (must be <= buf.length) + * @param address The address to send to + * @param port The port to send to + */ public DatagramPacket(byte[] buf, int length, InetAddress address, int port) { this(buf, 0, length, address, port); @@ -199,7 +198,8 @@ public final class DatagramPacket * * @since 1.4 */ - public DatagramPacket(byte[] buf, int offset, int length, SocketAddress address) + public DatagramPacket(byte[] buf, int offset, int length, + SocketAddress address) throws SocketException { this(buf, offset, length, ((InetSocketAddress)address).getAddress(), @@ -225,74 +225,74 @@ public final class DatagramPacket ((InetSocketAddress)address).getPort()); } -/** - * Returns the address that this packet is being sent to or, if it was used - * to receive a packet, the address that is was received from. If the - * constructor that doesn not take an address was used to create this object - * and no packet was actually read into this object, then this method - * returns null. - * - * @return The address for this packet. - */ + /** + * Returns the address that this packet is being sent to or, if it was used + * to receive a packet, the address that is was received from. If the + * constructor that doesn not take an address was used to create this object + * and no packet was actually read into this object, then this method + * returns null. + * + * @return The address for this packet. + */ public synchronized InetAddress getAddress() { return address; } -/** - * Returns the port number this packet is being sent to or, if it was used - * to receive a packet, the port that it was received from. If the - * constructor that doesn not take an address was used to create this object - * and no packet was actually read into this object, then this method - * will return 0. - * - * @return The port number for this packet - */ + /** + * Returns the port number this packet is being sent to or, if it was used + * to receive a packet, the port that it was received from. If the + * constructor that doesn not take an address was used to create this object + * and no packet was actually read into this object, then this method + * will return 0. + * + * @return The port number for this packet + */ public synchronized int getPort() { return port; } -/** - * Returns the data buffer for this packet - * - * @return This packet's data buffer - */ + /** + * Returns the data buffer for this packet + * + * @return This packet's data buffer + */ public synchronized byte[] getData() { return buffer; } -/** - * This method returns the current offset value into the data buffer - * where data will be sent from. - * - * @return The buffer offset. - * - * @since 1.2 - */ + /** + * This method returns the current offset value into the data buffer + * where data will be sent from. + * + * @return The buffer offset. + * + * @since 1.2 + */ public synchronized int getOffset() { return offset; } -/** - * Returns the length of the data in the buffer - * - * @return The length of the data - */ + /** + * Returns the length of the data in the buffer + * + * @return The length of the data + */ public synchronized int getLength() { return length; } -/** - * This sets the address to which the data packet will be transmitted. - * - * @param addr The destination address - * - * @since 1.1 - */ + /** + * This sets the address to which the data packet will be transmitted. + * + * @param addr The destination address + * + * @since 1.1 + */ public synchronized void setAddress(InetAddress iaddr) { if (iaddr == null) @@ -301,13 +301,13 @@ public final class DatagramPacket address = iaddr; } -/** - * This sets the port to which the data packet will be transmitted. - * - * @param port The destination port - * - * @since 1.1 - */ + /** + * This sets the port to which the data packet will be transmitted. + * + * @param port The destination port + * + * @since 1.1 + */ public synchronized void setPort(int iport) { if (iport < 0 || iport > 65535) @@ -348,13 +348,13 @@ public final class DatagramPacket return new InetSocketAddress (address, port); } -/** - * Sets the data buffer for this packet. - * - * @param buf The new buffer for this packet - * - * @since 1.1 - */ + /** + * Sets the data buffer for this packet. + * + * @param buf The new buffer for this packet + * + * @since 1.1 + */ public synchronized void setData(byte[] buf) { // This form of setData requires setLength to be called separately @@ -365,15 +365,15 @@ public final class DatagramPacket buffer = buf; } -/** - * This method sets the data buffer for the packet. - * - * @param buf The byte array containing the data for this packet. - * @param offset The offset into the buffer to start reading data from. - * @param length The number of bytes of data in the buffer. - * - * @since 1.2 - */ + /** + * This method sets the data buffer for the packet. + * + * @param buf The byte array containing the data for this packet. + * @param offset The offset into the buffer to start reading data from. + * @param length The number of bytes of data in the buffer. + * + * @since 1.2 + */ public synchronized void setData(byte[] buf, int offset, int length) { // This form of setData must be used if offset is to be changed. @@ -393,13 +393,13 @@ public final class DatagramPacket this.length = length; } -/** - * Sets the length of the data in the buffer. - * - * @param length The new length. (Where len <= buf.length) - * - * @since 1.1 - */ + /** + * Sets the length of the data in the buffer. + * + * @param length The new length. (Where len <= buf.length) + * + * @since 1.1 + */ public synchronized void setLength(int length) { if (length < 0) diff --git a/libjava/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java index 7fc21ff73f4..93aea0754ed 100644 --- a/libjava/java/net/DatagramSocket.java +++ b/libjava/java/net/DatagramSocket.java @@ -31,11 +31,26 @@ public class DatagramSocket this(0, null); } + /** + * Creates a datagram socket that is bound to a specific port + * + * @param port The port number to bind to + * + * @exception SocketException If an error occurs + */ public DatagramSocket(int port) throws SocketException { this(port, null); } + /** + * Creates a datagram socket that is bound to a specific port/inet address + * + * @param port The port number to bind to + * @param laddr The local address to bind to + * + * @exception SocketException If an error occurs + */ public DatagramSocket(int port, InetAddress laddr) throws SocketException { if (port < 0 || port > 65535) @@ -69,11 +84,19 @@ public class DatagramSocket impl.bind(port, laddr == null ? InetAddress.ANY_IF : laddr); } + /** + * Closes the datagram socket + */ public void close() { impl.close(); } + /** + * Returns the local address of the datagram socket + * + * @since 1.1 + */ public InetAddress getLocalAddress() { SecurityManager s = System.getSecurityManager(); @@ -112,12 +135,23 @@ public class DatagramSocket } } + /** + * Returns the local port this socket uses + * + * @return The local port number + */ public int getLocalPort() { return impl.getLocalPort(); } /** + * Gets the SO_TIMEOUT value + * + * @return The current timeout in milliseconds + * + * @exception SocketException If an error occurs + * * @since 1.1 */ public synchronized int getSoTimeout() throws SocketException @@ -129,6 +163,13 @@ public class DatagramSocket return 0; } + /** + * Receive a datagram packet + * + * @param p The datagram packet to put the incoming data into + * + * @exception IOException If an error occurs + */ public synchronized void receive(DatagramPacket p) throws IOException { SecurityManager s = System.getSecurityManager(); @@ -138,6 +179,13 @@ public class DatagramSocket impl.receive(p); } + /** + * Sends a datagram packet + * + * @param p The datagram packet to send + * + * @exception IOException If an error occurs + */ public void send(DatagramPacket p) throws IOException { // JDK1.2: Don't do security checks if socket is connected; see jdk1.2 api. @@ -151,11 +199,17 @@ public class DatagramSocket s.checkConnect(addr.getHostAddress(), p.getPort()); } - // FIXME: if this is a subclass of MulticastSocket, use getTTL for TTL val. + // FIXME: if this is a subclass of MulticastSocket, use getTimeToLive for TTL val. impl.send(p); } /** + * Sets a new value for SO_TIMEOUT + * + * @param timeout The timeout in milliseconds + * + * @exception SocketException If an error occurs + * * @since 1.1 */ public synchronized void setSoTimeout(int timeout) throws SocketException @@ -166,25 +220,53 @@ public class DatagramSocket impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout)); } - // JDK1.2 - // public void connect(InetAddress address, int port) - // { - // } + /** + * Connects the datagrem socket to a specified address/port + * + * @param address The address to connect to + * @param port The port to connect to + * + * @exception SocketException If an error occurs + * + * @since 1.2 + */ + public void connect(InetAddress address, int port) + throws SocketException + { + //impl.connect(address, port); + } - // JDK1.2 - // public void disconnect() - // { - // } + /** + * Disconnects the datagram socket + * + * @since 1.2 + */ + public void disconnect() + { + //impl.disconnect(); + } - // JDK1.2 - // public InetAddress getInetAddress() - // { - // } + /** + * Returns the InetAddress the socket is connected to + * or null if the socket is not connected + * + * @since 1.2 + */ + public InetAddress getInetAddress() + { + // FIXME: + return null; + } - // JDK1.2 - // public int getPort() - // { - // } + /** + * Returns the local port number of the socket + * + * @since 1.2 + */ + public int getPort() + { + return impl.localPort; + } /** * This method returns the value of the system level socket option @@ -207,6 +289,108 @@ public class DatagramSocket throw new SocketException("Unexpected type"); } + /** + * Enables/Disables SO_REUSEADDR + * + * @param on Whether or not to have SO_REUSEADDR turned on + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setReuseAddress(boolean on) throws SocketException + { + impl.setOption (SocketOptions.SO_REUSEADDR, new Boolean (on)); + } + + /** + * Checks if SO_REUSEADDR is enabled + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getReuseAddress() throws SocketException + { + Object obj = impl.getOption (SocketOptions.SO_REUSEADDR); + + if (obj instanceof Boolean) + return(((Boolean) obj).booleanValue ()); + else + throw new SocketException ("Unexpected type"); + } + + /** + * Enables/Disables SO_BROADCAST + * + * @param on Whether or not to have SO_BROADCAST turned on + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setBroadcast(boolean on) throws SocketException + { + impl.setOption (SocketOptions.SO_BROADCAST, new Boolean (on)); + } + + /** + * Checks if SO_BROADCAST is enabled + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getBroadcast() throws SocketException + { + Object obj = impl.getOption (SocketOptions.SO_BROADCAST); + + if (obj instanceof Boolean) + return ((Boolean) obj).booleanValue (); + else + throw new SocketException ("Unexpected type"); + } + + /** + * Sets the traffic class value + * + * @param tc The traffic class + * + * @exception SocketException If an error occurs + * @exception IllegalArgumentException If tc < 0 or rc > 255 + * + * @see DatagramSocket:getTrafficClass + * + * @since 1.4 + */ + public void setTrafficClass(int tc) + throws SocketException + { + if (tc < 0 || tc > 255) + throw new IllegalArgumentException(); + + impl.setOption (SocketOptions.IP_TOS, new Integer (tc)); + } + + /** + * Returns the current traffic class + * + * @see DatagramSocket:setTrafficClass + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public int getTrafficClass() throws SocketException + { + Object obj = impl.getOption(SocketOptions.IP_TOS); + + if (obj instanceof Integer) + return ((Integer) obj).intValue (); + else + throw new SocketException ("Unexpected type"); + } + /** * This method returns the value of the system level socket option * SO_SNDBUF, which is used by the operating system to tune buffer diff --git a/libjava/java/net/DatagramSocketImpl.java b/libjava/java/net/DatagramSocketImpl.java index 260088dfe05..6f10a78b190 100644 --- a/libjava/java/net/DatagramSocketImpl.java +++ b/libjava/java/net/DatagramSocketImpl.java @@ -111,6 +111,20 @@ public abstract class DatagramSocketImpl implements SocketOptions */ protected abstract int peek(InetAddress i) throws IOException; + /** + * Takes a peek at the next packet received. This packet is not consumed. + * With the next peekData/receive operation this packet will be read again. + * + * @param p The DatagramPacket to fill in with the data sent. + * + * @return The port number of the sender of the packet. + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + protected abstract int peekData (DatagramPacket p) throws IOException; + /** * Transmits the specified packet of data to the network. The destination * host and port should be encoded in the packet. @@ -208,7 +222,7 @@ public abstract class DatagramSocketImpl implements SocketOptions * Sets the specified option on a socket to the passed in object. For * options that take an integer argument, the passed in object is an * Integer. For options that are set to on or off, the - * value passed will be a Boolean. The option_id + * value passed will be a Boolean. The option_id * parameter is one of the defined constants in the superinterface. * * @param option_id The identifier of the option @@ -221,9 +235,9 @@ public abstract class DatagramSocketImpl implements SocketOptions throws SocketException; /** - * Returns the current setting of the specified option. The - * Object returned will be an Integer for options - * that have integer values. For options that are set to on or off, a + * Returns the current setting of the specified option. The + * Object returned will be an Integer for options + * that have integer values. For options that are set to on or off, a * Boolean will be returned. The option_id * is one of the defined constants in the superinterface. * diff --git a/libjava/java/net/JarURLConnection.java b/libjava/java/net/JarURLConnection.java index 5ee438dd515..c5597d636df 100644 --- a/libjava/java/net/JarURLConnection.java +++ b/libjava/java/net/JarURLConnection.java @@ -106,7 +106,8 @@ public abstract class JarURLConnection extends URLConnection { // This is a JarURLConnection for the entire jar file. - InputStream jar_is = new BufferedInputStream(jarFileURLConnection.getInputStream ()); + InputStream jar_is = new BufferedInputStream( + jarFileURLConnection.getInputStream ()); return new JarInputStream(jar_is); } @@ -131,7 +132,8 @@ public abstract class JarURLConnection extends URLConnection else { // If the jar file is not local, ... - JarInputStream zis = new JarInputStream(jarFileURLConnection.getInputStream ()); + JarInputStream zis = new JarInputStream( + jarFileURLConnection.getInputStream ()); // This is hideous, we're doing a linear search... for (ZipEntry ent = zis.getNextEntry (); @@ -172,7 +174,8 @@ public abstract class JarURLConnection extends URLConnection if (jarfile == null) { - JarInputStream zis = new JarInputStream(jarFileURLConnection.getInputStream ()); + JarInputStream zis = new JarInputStream( + jarFileURLConnection.getInputStream ()); // This is hideous, we're doing a linear search for the thing... for (ZipEntry ent = zis.getNextEntry (); diff --git a/libjava/java/net/MulticastSocket.java b/libjava/java/net/MulticastSocket.java index 7381a866d55..88cb149633d 100644 --- a/libjava/java/net/MulticastSocket.java +++ b/libjava/java/net/MulticastSocket.java @@ -39,82 +39,84 @@ package java.net; import java.io.IOException; -/* +/** * Written using on-line Java Platform 1.2 API Specification, as well * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). * Status: Believed complete and correct. */ /** - * This class models a multicast UDP socket. A multicast address is a - * class D internet address (one whose most significant bits are 1110). - * A multicast group consists of a multicast address and a well known - * port number. All members of the group listening on that address and - * port will receive all the broadcasts to the group. - *

- * Please note that applets are not allowed to use multicast sockets - * - * Written using on-line Java Platform 1.2 API Specification, as well - * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). - * Status: Believed complete and correct. - * - * @author Warren Levy - * @author Aaron M. Renn (arenn@urbanophile.com) (Documentation comments) - * @since 1.1 - * @date May 18, 1999. - */ + * This class models a multicast UDP socket. A multicast address is a + * class D internet address (one whose most significant bits are 1110). + * A multicast group consists of a multicast address and a well known + * port number. All members of the group listening on that address and + * port will receive all the broadcasts to the group. + *

+ * Please note that applets are not allowed to use multicast sockets + * + * Written using on-line Java Platform 1.2 API Specification, as well + * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). + * Status: Believed complete and correct. + * + * @author Warren Levy + * @author Aaron M. Renn (arenn@urbanophile.com) (Documentation comments) + * @since 1.1 + * @date May 18, 1999. + */ public class MulticastSocket extends DatagramSocket { // FIXME: the local addr bound to the multicast socket can be reused; // unlike unicast sockets. It binds to any available network interface. // See p.1159 JCL book. -/** - * Create a MulticastSocket that this not bound to any address - * - * @exception IOException If an error occurs - */ + /** + * Create a MulticastSocket that this not bound to any address + * + * @exception IOException If an error occurs + */ public MulticastSocket() throws IOException { super(0, null); } -/** - * Create a multicast socket bound to the specified port - * - * @param The port to bind to - * - * @exception IOException If an error occurs - */ + /** + * Create a multicast socket bound to the specified port + * + * @param port The port to bind to + * + * @exception IOException If an error occurs + */ public MulticastSocket(int port) throws IOException { super(port, null); } -/** - * Returns the interface being used for multicast packets - * - * @return The multicast interface - * - * @exception SocketException If an error occurs - */ + /** + * Returns the interface being used for multicast packets + * + * @return The multicast interface + * + * @exception SocketException If an error occurs + */ public InetAddress getInterface() throws SocketException { // FIXME: Is it possible that an InetAddress wasn't returned from getOption? return (InetAddress) impl.getOption(SocketOptions.IP_MULTICAST_IF); } -/** - * Returns the current value of the "Time to Live" option. This is the - * number of hops a packet can make before it "expires". This method id - * deprecated. Use getTimeToLive instead. - * - * @return The TTL value - * - * @exception IOException If an error occurs - * - * @deprecated Replaced by getTimeToLive() in Java 1.2 - */ + /** + * Returns the current value of the "Time to Live" option. This is the + * number of hops a packet can make before it "expires". This method id + * deprecated. Use getTimeToLive instead. + * + * @return The TTL value + * + * @exception IOException If an error occurs + * + * @deprecated 1.2 Replaced by getTimeToLive() + * + * @see Multicastsocket:getTimeToLive + */ public byte getTTL() throws IOException { // Use getTTL here rather than getTimeToLive in case we're using an impl @@ -123,43 +125,81 @@ public class MulticastSocket extends DatagramSocket return impl.getTTL(); } -/** - * Returns the current value of the "Time to Live" option. This is the - * number of hops a packet can make before it "expires". - * - * @return The TTL value - * - * @exception IOException If an error occurs - * - * @since Java 1.2 - */ + /** + * Returns the current value of the "Time to Live" option. This is the + * number of hops a packet can make before it "expires". + * + * @return The TTL value + * + * @exception IOException If an error occurs + * + * @since 1.2 + */ public int getTimeToLive() throws IOException { return impl.getTimeToLive(); } -/** - * Sets the interface to use for multicast packets. - * - * @param addr The new interface to use - * - * @exception SocketException If an error occurs - */ + /** + * Sets the interface to use for sending multicast packets. + * + * @param inf The new interface to use + * + * @exception SocketException If an error occurs + */ public void setInterface(InetAddress inf) throws SocketException { impl.setOption(SocketOptions.IP_MULTICAST_IF, inf); } -/** - * Sets the "Time to Live" value for a socket. The value must be between - * 1 and 255. - * - * @param ttl The new TTL value - * - * @exception IOException If an error occurs - * - * @deprecated Replaced by setTimeToLive in Java 1.2 - */ + /** + * Disable/Enable local loopback of multicast packets. The option is used by + * the platform's networking code as a hint for setting whether multicast + * data will be looped back to the local socket. + * + * Because this option is a hint, applications that want to verify what + * loopback mode is set to should call #getLoopbackMode + * + * @param disable True to disable loopback mode + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setLoopbackMode(boolean disable) throws SocketException + { + impl.setOption (SocketOptions.IP_MULTICAST_LOOP, new Boolean (disable)); + } + + /** + * Checks if local loopback mode is enabled or not + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getLoopbackMode() throws SocketException + { + Object obj = impl.getOption (SocketOptions.IP_MULTICAST_LOOP); + + if (obj instanceof Boolean) + return ((Boolean) obj).booleanValue (); + else + throw new SocketException ("Unexpected type"); + } + + /** + * Sets the "Time to Live" value for a socket. The value must be between + * 1 and 255. + * + * @param ttl The new TTL value + * + * @exception IOException If an error occurs + * + * @deprecated 1.2 Replaced by setTimeToLive + * + * @see MulticastSocket:setTimeToLive + */ public void setTTL(byte ttl) throws IOException { // Use setTTL here rather than setTimeToLive in case we're using an impl @@ -168,16 +208,16 @@ public class MulticastSocket extends DatagramSocket impl.setTTL(ttl); } -/** - * Sets the "Time to Live" value for a socket. The value must be between - * 1 and 255. - * - * @param ttl The new TTL value - * - * @exception IOException If an error occurs - * - * @since Java 1.2 - */ + /** + * Sets the "Time to Live" value for a socket. The value must be between + * 1 and 255. + * + * @param ttl The new TTL value + * + * @exception IOException If an error occurs + * + * @since 1.2 + */ public void setTimeToLive(int ttl) throws IOException { if (ttl <= 0 || ttl > 255) @@ -186,13 +226,13 @@ public class MulticastSocket extends DatagramSocket impl.setTimeToLive(ttl); } -/** - * Joins the specified mulitcast group. - * - * @param addr The address of the group to join - * - * @exception IOException If an error occurs - */ + /** + * Joins the specified mulitcast group. + * + * @param addr The address of the group to join + * + * @exception IOException If an error occurs + */ public void joinGroup(InetAddress mcastaddr) throws IOException { if (! mcastaddr.isMulticastAddress()) @@ -205,13 +245,13 @@ public class MulticastSocket extends DatagramSocket impl.join(mcastaddr); } -/** - * Leaves the specified multicast group - * - * @param addr The address of the group to leave - * - * @exception IOException If an error occurs - */ + /** + * Leaves the specified multicast group + * + * @param addr The address of the group to leave + * + * @exception IOException If an error occurs + */ public void leaveGroup(InetAddress mcastaddr) throws IOException { if (! mcastaddr.isMulticastAddress()) @@ -224,16 +264,16 @@ public class MulticastSocket extends DatagramSocket impl.leave(mcastaddr); } -/** - * Sends a packet of data to a multicast address with a TTL that is - * different from the default TTL on this socket. The default TTL for - * the socket is not changed. - * - * @param packet The packet of data to send - * @param ttl The TTL for this packet - * - * @exception IOException If an error occurs - */ + /** + * Sends a packet of data to a multicast address with a TTL that is + * different from the default TTL on this socket. The default TTL for + * the socket is not changed. + * + * @param packet The packet of data to send + * @param ttl The TTL for this packet + * + * @exception IOException If an error occurs + */ public synchronized void send(DatagramPacket p, byte ttl) throws IOException { SecurityManager s = System.getSecurityManager(); diff --git a/libjava/java/net/NetworkInterface.java b/libjava/java/net/NetworkInterface.java index f0113d03808..d42e69d5052 100644 --- a/libjava/java/net/NetworkInterface.java +++ b/libjava/java/net/NetworkInterface.java @@ -118,9 +118,6 @@ public final class NetworkInterface * Returns an network interface by name * * @param name The name of the interface to return - * - * @exception SocketException If an error occurs - * @exception NullPointerException If the specified name is null */ public static NetworkInterface getByName (String name) throws SocketException @@ -144,9 +141,6 @@ public final class NetworkInterface * Return a network interface by its address * * @param addr The address of the interface to return - * - * @exception SocketException If an error occurs - * @exception NullPointerException If the specified addess is null */ public static NetworkInterface getByInetAddress (InetAddress addr) throws SocketException @@ -173,8 +167,6 @@ public final class NetworkInterface /** * Return an Enumeration of all available network interfaces - * - * @exception SocketException If an error occurs */ public static Enumeration getNetworkInterfaces () throws SocketException diff --git a/libjava/java/net/PlainDatagramSocketImpl.java b/libjava/java/net/PlainDatagramSocketImpl.java index 5f8a559557c..3a8db03627e 100644 --- a/libjava/java/net/PlainDatagramSocketImpl.java +++ b/libjava/java/net/PlainDatagramSocketImpl.java @@ -29,7 +29,12 @@ class PlainDatagramSocketImpl extends DatagramSocketImpl static final int _Jv_TCP_NODELAY_ = SocketOptions.TCP_NODELAY, _Jv_SO_BINDADDR_ = SocketOptions.SO_BINDADDR, _Jv_SO_REUSEADDR_ = SocketOptions.SO_REUSEADDR, - _Jv_IP_MULTICAST_IF_ = SocketOptions.IP_MULTICAST_IF, + _Jv_SO_BROADCAST_ = SocketOptions.SO_BROADCAST, + _Jv_SO_OOBINLINE_ = SocketOptions.SO_OOBINLINE, + _Jv_IP_MULTICAST_IF_ = SocketOptions.IP_MULTICAST_IF, + _Jv_IP_MULTICAST_IF2_ = SocketOptions.IP_MULTICAST_IF2, + _Jv_IP_MULTICAST_LOOP_ = SocketOptions.IP_MULTICAST_LOOP, + _Jv_IP_TOS_ = SocketOptions.IP_TOS, _Jv_SO_LINGER_ = SocketOptions.SO_LINGER, _Jv_SO_TIMEOUT_ = SocketOptions.SO_TIMEOUT, _Jv_SO_SNDBUF_ = SocketOptions.SO_SNDBUF, @@ -60,6 +65,7 @@ class PlainDatagramSocketImpl extends DatagramSocketImpl throws SocketException; protected native void create() throws SocketException; protected native int peek(InetAddress i) throws IOException; + protected native int peekData (DatagramPacket dp) throws IOException; protected native void setTimeToLive(int ttl) throws IOException; protected native int getTimeToLive() throws IOException; protected native void send(DatagramPacket p) throws IOException; @@ -67,7 +73,7 @@ class PlainDatagramSocketImpl extends DatagramSocketImpl public native void setOption(int optID, Object value) throws SocketException; public native Object getOption(int optID) throws SocketException; private native void mcastGrp(InetAddress inetaddr, boolean join) - throws IOException; + throws IOException; protected native void close(); // Deprecated in JDK 1.2. diff --git a/libjava/java/net/PlainSocketImpl.java b/libjava/java/net/PlainSocketImpl.java index 2146f5e9a7d..2b65ba08002 100644 --- a/libjava/java/net/PlainSocketImpl.java +++ b/libjava/java/net/PlainSocketImpl.java @@ -28,7 +28,12 @@ class PlainSocketImpl extends SocketImpl static final int _Jv_TCP_NODELAY_ = SocketOptions.TCP_NODELAY, _Jv_SO_BINDADDR_ = SocketOptions.SO_BINDADDR, _Jv_SO_REUSEADDR_ = SocketOptions.SO_REUSEADDR, - _Jv_IP_MULTICAST_IF_ = SocketOptions.IP_MULTICAST_IF, + _Jv_SO_BROADCAST_ = SocketOptions.SO_BROADCAST, + _Jv_SO_OOBINLINE_ = SocketOptions.SO_OOBINLINE, + _Jv_IP_MULTICAST_IF_ = SocketOptions.IP_MULTICAST_IF, + _Jv_IP_MULTICAST_IF2_ = SocketOptions.IP_MULTICAST_IF2, + _Jv_IP_MULTICAST_LOOP_ = SocketOptions.IP_MULTICAST_LOOP, + _Jv_IP_TOS_ = SocketOptions.IP_TOS, _Jv_SO_LINGER_ = SocketOptions.SO_LINGER, _Jv_SO_TIMEOUT_ = SocketOptions.SO_TIMEOUT, _Jv_SO_SNDBUF_ = SocketOptions.SO_SNDBUF, @@ -62,10 +67,15 @@ class PlainSocketImpl extends SocketImpl protected void connect (String host, int port) throws IOException { - connect(InetAddress.getByName(host), port); + connect (new InetSocketAddress (InetAddress.getByName(host), port), 0); } - protected native void connect (InetAddress host, int port) + protected void connect (InetAddress host, int port) throws IOException + { + connect (new InetSocketAddress (host, port), 0); + } + + protected native void connect (SocketAddress addr, int timeout) throws IOException; protected native void bind (InetAddress host, int port) throws IOException; @@ -83,6 +93,8 @@ class PlainSocketImpl extends SocketImpl protected native void close () throws IOException; + protected native void sendUrgentData(int data) + throws IOException; // Stream handling. diff --git a/libjava/java/net/ServerSocket.java b/libjava/java/net/ServerSocket.java index 788057d1384..c6b187071ec 100644 --- a/libjava/java/net/ServerSocket.java +++ b/libjava/java/net/ServerSocket.java @@ -151,6 +151,53 @@ public class ServerSocket impl.listen(backlog); } + /** + * Binds the server socket to a specified socket address + * + * @param endpoint The socket address to bind to + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + public void bind (SocketAddress endpoint) + throws IOException + { + if (impl == null) + throw new IOException ("Cannot initialize Socket implementation"); + + InetSocketAddress tmp = (InetSocketAddress) endpoint; + + SecurityManager s = System.getSecurityManager (); + if (s != null) + s.checkListen (tmp.getPort ()); + + impl.bind (tmp.getAddress (), tmp.getPort ()); + } + + /** + * Binds the server socket to a specified socket address + * + * @param endpoint The socket address to bind to + * @param backlog The length of the pending connection queue + * @exception IOException If an error occurs + */ + public void bind (SocketAddress endpoint, int backlog) + throws java.io.IOException + { + if (impl == null) + throw new IOException ("Cannot initialize Socket implementation"); + + InetSocketAddress tmp = (InetSocketAddress) endpoint; + + SecurityManager s = System.getSecurityManager (); + if (s != null) + s.checkListen (tmp.getPort ()); + + impl.bind (tmp.getAddress (), tmp.getPort ()); + impl.listen(backlog); + } + /** * This method returns the local address to which this socket is bound * @@ -158,7 +205,14 @@ public class ServerSocket */ public InetAddress getInetAddress() { - return impl.getInetAddress(); + try + { + return (InetAddress) impl.getOption (SocketOptions.SO_BINDADDR); + } + catch (SocketException e) + { + return null; + } } /** @@ -171,6 +225,21 @@ public class ServerSocket return impl.getLocalPort(); } + /** + * Returns the local socket address + * + * @since 1.4 + */ + public SocketAddress getLocalSocketAddress() + { + InetAddress addr = getInetAddress(); + + if (addr != null) + return new InetSocketAddress (getInetAddress(), getLocalPort()); + + return null; + } + /** * Accepts a new connection and returns a connected Socket * instance representing that connection. This method will block until a @@ -254,6 +323,91 @@ public class ServerSocket return ((Integer)timeout).intValue(); } + /** + * Enables/Disables the SO_REUSEADDR option + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setReuseAddress (boolean on) + throws SocketException + { + if (impl == null) + throw new SocketException ("Cannot initialize Socket implementation"); + + impl.setOption (SocketOptions.SO_REUSEADDR, new Boolean (on)); + } + + /** + * Checks if the SO_REUSEADDR option is enabled + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getReuseAddress() + throws SocketException + { + if (impl == null) + throw new SocketException ("Cannot initialize Socket implementation"); + + Object reuseaddr = impl.getOption (SocketOptions.SO_REUSEADDR); + + if (!(reuseaddr instanceof Boolean)) + throw new SocketException ("Internal Error"); + + return ((Boolean) reuseaddr).booleanValue (); + } + + /** + * This method sets the value for the system level socket option + * SO_RCVBUF to the specified value. Note that valid values for this + * option are specific to a given operating system. + * + * @param size The new receive buffer size. + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.4 + */ + public void setReceiveBufferSize (int size) + throws SocketException + { + if (impl == null) + throw new SocketException ("Not connected"); + + if (size <= 0) + throw new IllegalArgumentException ("SO_RCVBUF value must be > 0"); + + impl.setOption (SocketOptions.SO_RCVBUF, new Integer (size)); + } + + /** + * This method returns the value of the system level socket option + * SO_RCVBUF, which is used by the operating system to tune buffer + * sizes for data transfers. + * + * @return The receive buffer size. + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.4 + */ + public int getReceiveBufferSize () + throws SocketException + { + if (impl == null) + throw new SocketException ("Not connected"); + + Object buf = impl.getOption (SocketOptions.SO_RCVBUF); + + if (!(buf instanceof Integer)) + throw new SocketException ("Internal Error: Unexpected type"); + + return ((Integer) buf).intValue (); + } + /** * Returns the value of this socket as a String. * @@ -261,7 +415,7 @@ public class ServerSocket */ public String toString () { - return "ServerSocket " + impl.toString(); + return "ServerSocket" + impl.toString(); } // Class methods diff --git a/libjava/java/net/Socket.java b/libjava/java/net/Socket.java index 217e6956b5b..078bfff7a03 100644 --- a/libjava/java/net/Socket.java +++ b/libjava/java/net/Socket.java @@ -84,8 +84,10 @@ public class Socket * Initializes a new instance of Socket object without * connecting to a remote host. This useful for subclasses of socket that * might want this behavior. + * + * @specnote This constructor is public since JDK 1.4 */ - protected Socket () + public Socket () { if (factory != null) impl = factory.createSocketImpl(); @@ -265,6 +267,56 @@ public class Socket impl.connect(raddr, rport); } + /** + * Binds the socket to the givent local address/port + * + * @param bindpoint The address/port to bind to + * + * @exception If an error occurs + * + * @since 1.4 + */ + public void bind (SocketAddress bindpoint) throws IOException + { + if ( !(bindpoint instanceof InetSocketAddress)) + throw new IllegalArgumentException (); + + InetSocketAddress tmp = (InetSocketAddress) bindpoint; + impl.bind (tmp.getAddress(), tmp.getPort()); + } + + /** + * Connects the socket with a remote address. + * + * @param endpoint The address to connect to + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + public void connect (SocketAddress endpoint) + throws IOException + { + impl.connect (endpoint, 0); + } + + /** + * Connects the socket with a remote address. A timeout of zero is + * interpreted as an infinite timeout. The connection will then block + * until established or an error occurs. + * + * @param endpoint The address to connect to + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + public void connect (SocketAddress endpoint, int timeout) + throws IOException + { + impl.connect (endpoint, timeout); + } + /** * Returns the address of the remote end of the socket. If this socket * is not connected, then null is returned. @@ -472,6 +524,43 @@ public class Socket return -1; } + /** + * Enables/disables the SO_OOBINLINE option + * + * @param on True if SO_OOBLINE should be enabled + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setOOBInline (boolean on) throws SocketException + { + if (impl == null) + throw new SocketException("Not connected"); + + impl.setOption(SocketOptions.SO_OOBINLINE, new Boolean(on)); + } + + /** + * Returns the current setting of the SO_OOBINLINE option for this socket + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getOOBInline () throws SocketException + { + if (impl == null) + throw new SocketException("Not connected"); + + Object buf = impl.getOption(SocketOptions.SO_OOBINLINE); + + if (buf instanceof Boolean) + return(((Boolean)buf).booleanValue()); + else + throw new SocketException("Internal Error: Unexpected type"); + } + /** * Sets the value of the SO_TIMEOUT option on the socket. If this value * is set, and an read/write is performed that does not complete within @@ -632,7 +721,7 @@ public class Socket if (impl == null) throw new SocketException("Not connected"); - impl.setOption(SocketOptions.SO_RCVBUF, new Boolean(on)); + impl.setOption(SocketOptions.SO_KEEPALIVE, new Boolean(on)); } /** @@ -650,7 +739,7 @@ public class Socket if (impl == null) throw new SocketException("Not connected"); - Object buf = impl.getOption(SocketOptions.SO_RCVBUF); + Object buf = impl.getOption(SocketOptions.SO_KEEPALIVE); if (buf instanceof Boolean) return(((Boolean)buf).booleanValue()); diff --git a/libjava/java/net/SocketImpl.java b/libjava/java/net/SocketImpl.java index 7dcf87de629..1c9049950e5 100644 --- a/libjava/java/net/SocketImpl.java +++ b/libjava/java/net/SocketImpl.java @@ -119,6 +119,21 @@ public abstract class SocketImpl implements SocketOptions protected abstract void connect(InetAddress host, int port) throws IOException; + /** + * Connects to the socket to the host specified in address. This + * method blocks until successful connected or the timeout occurs. + * A timeout of zero means no timout. + * + * @param address Data of remote host + * @param timeout time to wait to stop connecting + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + protected abstract void connect(SocketAddress address, int timeout) + throws IOException; + /** * Binds to the specified port on the specified addr. Note that this addr * must represent a local IP address. @@ -214,6 +229,31 @@ public abstract class SocketImpl implements SocketOptions */ protected int getPort() { return port; } + /** + * Returns true or false when this socket supports sending urgent data + * or not. + * + * @since 1.4 + */ + protected boolean supportsUrgentData() + { + // This method has to be overwritten by socket classes that support + // sending urgend data. + return false; + } + + /** + * Sends one byte of urgent data to the socket. + * + * @param data The byte to send, the low eight bits of it + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + protected abstract void sendUrgentData(int data) + throws IOException; + /** * Returns the local port this socket is bound to * diff --git a/libjava/java/net/SocketOptions.java b/libjava/java/net/SocketOptions.java index bf57450d037..fda637e8d06 100644 --- a/libjava/java/net/SocketOptions.java +++ b/libjava/java/net/SocketOptions.java @@ -51,6 +51,7 @@ package java.net; * * @author Aaron M. Renn (arenn@urbanophile.com) * @author Warren Levy + * @status should be completely JDK 1.4 compatible */ public interface SocketOptions { @@ -63,9 +64,10 @@ public interface SocketOptions /** * Option id for the SO_KEEPALIVE value + * @since 1.3 */ static final int SO_KEEPALIVE = 0x8; - + /** * Option id for the SO_LINGER value */ @@ -98,6 +100,18 @@ static final int SO_RCVBUF = 0x1002; // 4098 */ static final int SO_REUSEADDR = 0x04; // 4 +/** + * Sets SO_BROADCAST for a socket + * @since 1.4 + */ +static final int SO_BROADCAST = 0x20; // 32 + +/** + * Sets SO_OOBINLINE for a socket + * @since 1.4 + */ +static final int SO_OOBINLINE = 0x1003; // 4099 + /** * Option id for the TCP_NODELAY value */ @@ -108,6 +122,25 @@ static final int TCP_NODELAY = 0x01; // 1 */ static final int IP_MULTICAST_IF = 0x10; // 16 +/** + * same as above + * @since 1.4 + */ +static final int IP_MULTICAST_IF2 = 0x1F; // 31 + +/** + * This option enables or disables local loopback of multicast datagrams. + * @since 1.4 + */ +static final int IP_MULTICAST_LOOP = 0x12; // 18 + +/** + * This option sets the type-of-service or traffic class field in the + * IP header for a TCP or UDP socket. + * @since 1.4 + */ +static final int IP_TOS = 0x03; // 3 + /*************************************************************************/ /* diff --git a/libjava/java/net/SocketPermission.java b/libjava/java/net/SocketPermission.java index 8aa453e5f17..002a99c15cf 100644 --- a/libjava/java/net/SocketPermission.java +++ b/libjava/java/net/SocketPermission.java @@ -87,7 +87,8 @@ import java.security.PermissionCollection; * SocketPermission("www.urbanophile.com:80", "connect,accept"); * Can connect to or accept connections from www.urbanophile.com on port 80 * SocketPermission("localhost:1024-", "listen,accept,connect"); - * Can connect to, accept from, an listen on any local port number 1024 and up. + * Can connect to, accept from, an listen on any local port number 1024 + * and up. * SocketPermission("*.edu", "connect"); * Can connect to any host in the edu domain * SocketPermission("197.197.20.1", "accept"); @@ -241,7 +242,8 @@ public final class SocketPermission extends Permission *

    *
  • The argument's hostname or IP address is equal to this object's. *
  • The argument's canonical hostname is equal to this object's. - *
  • The argument's canonical name matches this domains hostname with wildcards + *
  • The argument's canonical name matches this domains hostname with + * wildcards *
* * @param perm The Permission to check against diff --git a/libjava/java/net/URLClassLoader.java b/libjava/java/net/URLClassLoader.java index 3afb8f1861c..7e59c66070d 100644 --- a/libjava/java/net/URLClassLoader.java +++ b/libjava/java/net/URLClassLoader.java @@ -119,7 +119,7 @@ public class URLClassLoader extends SecureClassLoader for (int i = 0; i < urls.length; i++) { - // Convert a Jar File URL into a Jar URL is possible. + // Convert a Jar File URL into a Jar URL if possible. URL u = jarFileize(urls[i]); path.addElement (u); @@ -165,7 +165,8 @@ public class URLClassLoader extends SecureClassLoader if (conn != null) { if (conn.getJarFile().getJarEntry (name) != null) - results.addElement (new URL(u, name, getHandler0 (u.getProtocol()))); + results.addElement (new URL(u, name, + getHandler0 (u.getProtocol()))); } else { @@ -265,7 +266,7 @@ public class URLClassLoader extends SecureClassLoader int i = u.indexOf ('!'); if (i >= 0) u = u.substring (0, i); - url = new URL("jar", "", u); + url = new URL(u); source = new CodeSource(url, certificates); } diff --git a/libjava/java/net/URLConnection.java b/libjava/java/net/URLConnection.java index b3bebba00f2..548479d635d 100644 --- a/libjava/java/net/URLConnection.java +++ b/libjava/java/net/URLConnection.java @@ -19,6 +19,8 @@ import java.util.Locale; import java.util.Hashtable; import java.util.Map; import java.util.StringTokenizer; +import java.security.Permission; +import java.security.AllPermission; import gnu.gcj.io.MimeTypes; /** @@ -30,7 +32,7 @@ import gnu.gcj.io.MimeTypes; * Written using on-line Java Platform 1.2 API Specification, as well * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998). * Status: One guessContentTypeFrom... methods not implemented. - * getContent method assumes content type from response; see comment there. + * getContent method assumes content type from response; see comment there. */ public abstract class URLConnection @@ -52,6 +54,14 @@ public abstract class URLConnection private static SimpleDateFormat dateFormat1, dateFormat2, dateFormat3; private static boolean dateformats_initialized = false; + /** + * Creates a URL connection to a given URL. A real connection is not made. + * Use #connect to do this. + * + * @param url The Object to create the URL connection to + * + * @see URLConnection:connect + */ protected URLConnection(URL url) { this.url = url; @@ -59,49 +69,84 @@ public abstract class URLConnection useCaches = defaultUseCaches; } + /** + * Creates a real connection to the object references by the URL given + * to the constructor + */ public abstract void connect() throws IOException; + /** + * Returns ths URL to the object. + */ public URL getURL() { return url; } + /** + * Returns the value of the content-length header field + */ public int getContentLength() { return getHeaderFieldInt("content-length", -1); } + /** + * Returns the value of the content-type header field + */ public String getContentType() { return getHeaderField("content-type"); } + /** + * Returns the value of the content-encoding header field + */ public String getContentEncoding() { return getHeaderField("content-encoding"); } + /** + * Returns the value of the expires header field + */ public long getExpiration() { return getHeaderFieldDate("expiration", 0L); } + /** + * Returns the value of the date header field + */ public long getDate() { return getHeaderFieldDate("date", 0L); } + /** + * Returns the value of the last-modified header field + */ public long getLastModified() { return getHeaderFieldDate("last-modified", 0L); } - public String getHeaderField(int n) + /** + * Returns the value of the n-th header field + * + * @param num The number of the header field + */ + public String getHeaderField(int num) { // Subclasses for specific protocols override this. return null; } + /** + * Returns the value of the header filed specified by name + * + * @param name The name of the header field + */ public String getHeaderField(String name) { // Subclasses for specific protocols override this. @@ -109,6 +154,8 @@ public abstract class URLConnection } /** + * Returns a map of all sent header fields + * * @since 1.4 */ public Map getHeaderFields() @@ -117,6 +164,15 @@ public abstract class URLConnection return null; } + /** + * Returns the value of the header filed name as int. + * + * @param name The name of the header field + * @param val The default value + * + * @return Returns the value of the header filed or the default value + * if the field is missing or malformed + */ public int getHeaderFieldInt(String name, int val) { String str = getHeaderField(name); @@ -132,6 +188,16 @@ public abstract class URLConnection return val; } + /** + * Returns the value of a header field parsed as date. The result is then + * number of milliseconds since January 1st, 1970 GMT. + * + * @param name The name of the header field + * @param val The dafault date + * + * @return Returns the date value of the header filed or the default value + * if the field is missing or malformed + */ public long getHeaderFieldDate(String name, long val) { if (! dateformats_initialized) @@ -150,12 +216,20 @@ public abstract class URLConnection return val; } - public String getHeaderFieldKey(int n) + /** + * Returns the key of the n-th header field + * + * @param num The number of the header field + */ + public String getHeaderFieldKey(int num) { // Subclasses for specific protocols override this. return null; } + /** + * Retrieves the content of this URLConnection + */ public Object getContent() throws IOException { // FIXME: Doc indicates that other criteria should be applied as @@ -170,12 +244,20 @@ public abstract class URLConnection return contentHandler.getContent(this); } -// TODO12: public Permission getPermission() throws IOException -// { -// // Subclasses may override this. -// return java.security.AllPermission; -// } + /** + * Returns a permission object representing the permission necessary to make + * the connection represented by this object. This method returns null if no + * permission is required to make the connection. + */ + public Permission getPermission() throws IOException + { + // Subclasses may override this. + return new java.security.AllPermission(); + } + /** + * Returns the input stream of the URL connection + */ public InputStream getInputStream() throws IOException { // Subclasses for specific protocols override this. @@ -183,6 +265,9 @@ public abstract class URLConnection " does not support input."); } + /** + * Returns the output stream of the URL connection + */ public OutputStream getOutputStream() throws IOException { // Subclasses for specific protocols override this. @@ -190,11 +275,19 @@ public abstract class URLConnection " does not support output."); } + /** + * Returns a string representation of the URL connection object + */ public String toString() { return this.getClass().getName() + ":" + url.toString(); } + /** + * Sets tha value of the doInput field. + * + * @param doinput The new value of the doInput field + */ public void setDoInput(boolean doinput) { if (connected) @@ -203,11 +296,19 @@ public abstract class URLConnection doInput = doinput; } + /** + * Returns the current value of the doInput field + */ public boolean getDoInput() { return doInput; } + /** + * Sets the value of the doOutput field + * + * @param dooutput The new value of the doOutput field + */ public void setDoOutput(boolean dooutput) { if (connected) @@ -216,35 +317,58 @@ public abstract class URLConnection doOutput = dooutput; } + /** + * Returns the current value of the doOutput field + */ public boolean getDoOutput() { return doOutput; } - public void setAllowUserInteraction(boolean allowuserinteraction) + /** + * Sets a new value to the allowUserInteraction field + * + * @param allowed The new value + */ + public void setAllowUserInteraction(boolean allowed) { if (connected) throw new IllegalAccessError("Already connected"); - allowUserInteraction = allowuserinteraction; + allowUserInteraction = allowed; } + /** + * Returns the current value of the allowUserInteraction field + */ public boolean getAllowUserInteraction() { return allowUserInteraction; } - public static void - setDefaultAllowUserInteraction(boolean defaultallowuserinteraction) + /** + * Sets the default value if the allowUserInteraction field + * + * @param allowed The new default value + */ + public static void setDefaultAllowUserInteraction(boolean allowed) { - defaultAllowUserInteraction = defaultallowuserinteraction; + defaultAllowUserInteraction = allowed; } + /** + * Returns the default value of the allowUserInteraction field + */ public static boolean getDefaultAllowUserInteraction() { return defaultAllowUserInteraction; } + /** + * Sets a new value to the useCaches field + * + * @param usecaches The new value + */ public void setUseCaches(boolean usecaches) { if (connected) @@ -253,11 +377,20 @@ public abstract class URLConnection useCaches = usecaches; } + /** + * The current value of the useCaches field + */ public boolean getUseCaches() { return useCaches; } + /** + * Sets the value of the ifModifiedSince field + * + * @param ifmodifiedsince The new value in milliseconds + * since January 1, 1970 GMT + */ public void setIfModifiedSince(long ifmodifiedsince) { if (connected) @@ -266,27 +399,77 @@ public abstract class URLConnection ifModifiedSince = ifmodifiedsince; } + /** + * Returns the current value of the ifModifiedSince field + */ public long getIfModifiedSince() { return ifModifiedSince; } + /** + * Returns the default value of the useCaches field + */ public boolean getDefaultUseCaches() { return defaultUseCaches; } + /** + * Sets the default value of the useCaches field + * + * @param defaultusecaches The new default value + */ public void setDefaultUseCaches(boolean defaultusecaches) { defaultUseCaches = defaultusecaches; } + /** + * Sets a property specified by key to value. + * + * @param key Key of the property to set + * @param value Value of the Property to set + * + * @see URLConnection:getRequestProperty(String key) + * @see URLConnection:addRequestProperty/String key, String value) + */ public void setRequestProperty(String key, String value) { // Do nothing unless overridden by subclasses that support setting // header fields in the request. } + /** + * Sets a property specified by key to value. If the property key already + * is assigned to a value it does nothing. + * + * @param key Key of the property to add + * @param value Value of the Property to add + * + * @see URLConnection:getRequestProperty(String key) + * @see URLConnection:setRequestProperty(String key, String value) + * + * @since 1.4 + */ + public void addRequestProperty(String key, String value) + { + if (getRequestProperty (key) == null) + { + setRequestProperty (key, value); + } + } + + /** + * Returns a property value specified by key. + * + * @param key Key of the property to return + * + * @see URLConnection:setRequestProperty(String key, String value) + * @see URLConnection:addRequestProperty(String key, String value) + * + * @return Value of the property. + */ public String getRequestProperty(String key) { // Overridden by subclasses that support reading header fields from the @@ -294,6 +477,28 @@ public abstract class URLConnection return null; } + /** + * Returns a map that contains all properties of the request + * + * @return The map of properties + */ + public Map getRequestProperties() + { + // Overridden by subclasses that support reading header fields from the + // request. + return null; + } + + /** + * Defines a default request property + * + * @param key The key of the property + * @param value The value of the property + * + * @deprecated 1.3 The method setRequestProperty should be used instead + * + * @see URLConnection:setRequestProperty + */ public static void setDefaultRequestProperty(String key, String value) { // Do nothing unless overridden by subclasses that support setting @@ -301,7 +506,15 @@ public abstract class URLConnection } /** - * @deprecated 1.3 + * Returns the value of a default request property + * + * @param key The key of the default property + * + * @return The value of the default property or null if not available + * + * @deprecated 1.3 The method getRequestProperty should be used instead + * + * @see URLConnection:getRequestProperty */ public static String getDefaultRequestProperty(String key) { @@ -309,6 +522,11 @@ public abstract class URLConnection return null; } + /** + * Sets a ContentHandlerFactory + * + * @param fac The ContentHandlerFactory + */ public static void setContentHandlerFactory(ContentHandlerFactory fac) { if (factory != null) @@ -322,6 +540,12 @@ public abstract class URLConnection factory = fac; } + /** + * Tries to determine the content type of an object, based on the + * specified file name + * + * @param fname The filename to guess the content type from + */ protected static String guessContentTypeFromName(String fname) { int dot = fname.lastIndexOf ("."); @@ -342,14 +566,26 @@ public abstract class URLConnection return(type); } -// TODO: public static String guessContentTypeFromStream(InputStream is) -// throws IOException -// { -// } - -// TODO12: protected void parseURL(URL u, String spec, int start, int limit) + /** + * Tries to guess the content type of an object, based on the characters + * at the beginning of then input stream + * + * @param is The input stream to guess from + * + * @exception IOException If an error occurs + */ + public static String guessContentTypeFromStream(InputStream is) + throws IOException + { + is.mark(1024); + // FIXME: Implement this. Use system mimetype informations (like "file"). + is.reset(); + return null; + } /** + * Returns a filename map (a mimetable) + * * @since 1.2 */ public static FileNameMap getFileNameMap() @@ -358,6 +594,10 @@ public abstract class URLConnection } /** + * Sets a FileNameMap + * + * @param map The new FileNameMap + * * @since 1.2 */ public static void setFileNameMap(FileNameMap map) diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc index bb306e202bd..12eaf3be9d9 100644 --- a/libjava/java/net/natPlainDatagramSocketImpl.cc +++ b/libjava/java/net/natPlainDatagramSocketImpl.cc @@ -92,6 +92,13 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *) JvNewStringLatin1 ("DatagramSocketImpl.peek: unimplemented")); } +jint +java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *) +{ + throw new java::io::IOException ( + JvNewStringLatin1 ("DatagramSocketImpl.peekData: unimplemented")); +} + void java::net::PlainDatagramSocketImpl::close () { @@ -294,6 +301,68 @@ java::net::PlainDatagramSocketImpl::peek (java::net::InetAddress *i) throw new java::io::IOException (JvNewStringUTF (strerr)); } +jint +java::net::PlainDatagramSocketImpl::peekData(java::net::DatagramPacket *p) +{ + // FIXME: Deal with Multicast and if the socket is connected. + union SockAddr u; + socklen_t addrlen = sizeof(u); + jbyte *dbytes = elements (p->getData()); + ssize_t retlen = 0; + +// FIXME: implement timeout support for Win32 +#ifndef WIN32 + // Do timeouts via select since SO_RCVTIMEO is not always available. + if (timeout > 0 && fnum >= 0 && fnum < FD_SETSIZE) + { + fd_set rset; + struct timeval tv; + FD_ZERO(&rset); + FD_SET(fnum, &rset); + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + int retval; + if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0) + goto error; + else if (retval == 0) + throw new java::io::InterruptedIOException (); + } +#endif /* WIN32 */ + + retlen = + ::recvfrom (fnum, (char *) dbytes, p->getLength(), MSG_PEEK, (sockaddr*) &u, + &addrlen); + if (retlen < 0) + goto error; + // FIXME: Deal with Multicast addressing and if the socket is connected. + jbyteArray raddr; + jint rport; + if (u.address.sin_family == AF_INET) + { + raddr = JvNewByteArray (4); + memcpy (elements (raddr), &u.address.sin_addr, 4); + rport = ntohs (u.address.sin_port); + } +#ifdef HAVE_INET6 + else if (u.address.sin_family == AF_INET6) + { + raddr = JvNewByteArray (16); + memcpy (elements (raddr), &u.address6.sin6_addr, 16); + rport = ntohs (u.address6.sin6_port); + } +#endif + else + throw new java::net::SocketException (JvNewStringUTF ("invalid family")); + + p->setAddress (new InetAddress (raddr, NULL)); + p->setPort (rport); + p->setLength ((jint) retlen); + return rport; + error: + char* strerr = strerror (errno); + throw new java::io::IOException (JvNewStringUTF (strerr)); +} + // Close(shutdown) the socket. void java::net::PlainDatagramSocketImpl::close () @@ -528,6 +597,18 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID, throw new java::net::SocketException ( JvNewStringUTF ("SO_KEEPALIVE not valid for UDP")); return; + + case _Jv_SO_BROADCAST_ : + if (::setsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, + val_len) != 0) + goto error; + break; + + case _Jv_SO_OOBINLINE_ : + throw new java::net::SocketException ( + JvNewStringUTF ("SO_OOBINLINE: not valid for UDP")); + break; + case _Jv_SO_SNDBUF_ : case _Jv_SO_RCVBUF_ : #if defined(SO_SNDBUF) && defined(SO_RCVBUF) @@ -591,6 +672,23 @@ java::net::PlainDatagramSocketImpl::setOption (jint optID, if (::setsockopt (fnum, level, opname, ptr, len) != 0) goto error; return; + + case _Jv_IP_MULTICAST_IF2_ : + throw new java::net::SocketException ( + JvNewStringUTF ("IP_MULTICAST_IF2: not yet implemented")); + break; + + case _Jv_IP_MULTICAST_LOOP_ : + throw new java::net::SocketException ( + JvNewStringUTF ("IP_MULTICAST_LOOP: not yet implemented")); + break; + + case _Jv_IP_TOS_ : + if (::setsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, + val_len) != 0) + goto error; + return; + case _Jv_SO_TIMEOUT_ : timeout = val; return; @@ -625,6 +723,18 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID) throw new java::net::SocketException ( JvNewStringUTF ("SO_KEEPALIVE not valid for UDP")); break; + + case _Jv_SO_BROADCAST_ : + if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, + &val_len) != 0) + goto error; + return new java::lang::Boolean (val != 0); + + case _Jv_SO_OOBINLINE_ : + throw new java::net::SocketException ( + JvNewStringUTF ("SO_OOBINLINE not valid for UDP")); + break; + case _Jv_SO_RCVBUF_ : case _Jv_SO_SNDBUF_ : #if defined(SO_SNDBUF) && defined(SO_RCVBUF) @@ -697,6 +807,24 @@ java::net::PlainDatagramSocketImpl::getOption (jint optID) case _Jv_SO_TIMEOUT_ : return new java::lang::Integer (timeout); break; + + case _Jv_IP_MULTICAST_IF2_ : + throw new java::net::SocketException ( + JvNewStringUTF ("IP_MULTICAST_IF2: not yet implemented")); + break; + + case _Jv_IP_MULTICAST_LOOP_ : + if (::getsockopt (fnum, SOL_SOCKET, IP_MULTICAST_LOOP, (char *) &val, + &val_len) != 0) + goto error; + return new java::lang::Boolean (val != 0); + + case _Jv_IP_TOS_ : + if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, + &val_len) != 0) + goto error; + return new java::lang::Integer (val); + default : errno = ENOPROTOOPT; } diff --git a/libjava/java/net/natPlainSocketImpl.cc b/libjava/java/net/natPlainSocketImpl.cc index f82aa6bb47c..9d5b4d20a58 100644 --- a/libjava/java/net/natPlainSocketImpl.cc +++ b/libjava/java/net/natPlainSocketImpl.cc @@ -118,7 +118,9 @@ _Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) #include #include #include +#include #include +#include #include #include #include @@ -146,7 +148,7 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *, jint) } void -java::net::PlainSocketImpl::connect (java::net::InetAddress *, jint) +java::net::PlainSocketImpl::connect (java::net::SocketAddress *, jint) { throw new ConnectException ( JvNewStringLatin1 ("SocketImpl.connect: unimplemented")); @@ -208,6 +210,13 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len) JvNewStringLatin1 ("SocketImpl.write: unimplemented")); } +void +java::net::PlainSocketImpl::sendUrgentData(jint data) +{ + throw new SocketException ( + JvNewStringLatin1 ("SocketImpl.sendUrgentData: unimplemented")); +} + jint java::net::PlainSocketImpl::available(void) { @@ -316,8 +325,13 @@ java::net::PlainSocketImpl::bind (java::net::InetAddress *host, jint lport) } void -java::net::PlainSocketImpl::connect (java::net::InetAddress *host, jint rport) +java::net::PlainSocketImpl::connect (java::net::SocketAddress *addr, + jint timeout) { + java::net::InetSocketAddress *tmp = (java::net::InetSocketAddress*) addr; + java::net::InetAddress *host = tmp->getAddress(); + jint rport = tmp->getPort(); + union SockAddr u; socklen_t addrlen = sizeof(u); jbyteArray haddress = host->addr; @@ -343,8 +357,37 @@ java::net::PlainSocketImpl::connect (java::net::InetAddress *host, jint rport) else throw new java::net::SocketException (JvNewStringUTF ("invalid length")); - if (_Jv_connect (fnum, ptr, len) != 0) - goto error; +// FIXME: implement timeout support for Win32 +#ifndef WIN32 + if (timeout > 0) + { + int flags = ::fcntl (fnum, F_GETFL); + ::fcntl (fnum, F_SETFL, flags | O_NONBLOCK); + + if ((_Jv_connect (fnum, ptr, len) != 0) && (errno != EINPROGRESS)) + goto error; + + fd_set rset; + struct timeval tv; + FD_ZERO(&rset); + FD_SET(fnum, &rset); + tv.tv_sec = timeout / 1000; + tv.tv_usec = (timeout % 1000) * 1000; + int retval; + + if ((retval = _Jv_select (fnum + 1, &rset, NULL, NULL, &tv)) < 0) + goto error; + else if (retval == 0) + throw new java::net::SocketTimeoutException ( + JvNewStringUTF("Connect timed out")); + } + else +#endif + { + if (_Jv_connect (fnum, ptr, len) != 0) + goto error; + } + address = host; port = rport; // A bind may not have been done on this socket; if so, set localport now. @@ -518,6 +561,12 @@ java::net::PlainSocketImpl::write(jbyteArray b, jint offset, jint len) } } +void +java::net::PlainSocketImpl::sendUrgentData (jint) +{ + throw new SocketException (JvNewStringLatin1 ( + "PlainSocketImpl: sending of urgent data not supported by this socket")); +} // Read a single byte from the socket. jint @@ -747,6 +796,18 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value) if (::setsockopt (fnum, SOL_SOCKET, SO_KEEPALIVE, (char *) &val, val_len) != 0) goto error; + break; + + case _Jv_SO_BROADCAST_ : + throw new java::net::SocketException ( + JvNewStringUTF ("SO_BROADCAST not valid for TCP")); + break; + + case _Jv_SO_OOBINLINE_ : + if (::setsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val, + val_len) != 0) + goto error; + break; case _Jv_SO_LINGER_ : #ifdef SO_LINGER @@ -781,6 +842,23 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value) throw new java::net::SocketException ( JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP")); return; + + case _Jv_IP_MULTICAST_IF2_ : + throw new java::net::SocketException ( + JvNewStringUTF ("IP_MULTICAST_IF2: not valid for TCP")); + break; + + case _Jv_IP_MULTICAST_LOOP_ : + throw new java::net::SocketException ( + JvNewStringUTF ("IP_MULTICAST_LOOP: not valid for TCP")); + break; + + case _Jv_IP_TOS_ : + if (::setsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, + val_len) != 0) + goto error; + break; + case _Jv_SO_REUSEADDR_ : throw new java::net::SocketException ( JvNewStringUTF ("SO_REUSEADDR: not valid for TCP")); @@ -830,7 +908,7 @@ java::net::PlainSocketImpl::getOption (jint optID) if (l_val.l_onoff) return new java::lang::Integer (l_val.l_linger); else - return new java::lang::Boolean ((__java_boolean)false); + return new java::lang::Boolean ((jboolean)false); #else throw new java::lang::InternalError ( JvNewStringUTF ("SO_LINGER not supported")); @@ -844,6 +922,18 @@ java::net::PlainSocketImpl::getOption (jint optID) else return new java::lang::Boolean (val != 0); + case _Jv_SO_BROADCAST_ : + if (::getsockopt (fnum, SOL_SOCKET, SO_BROADCAST, (char *) &val, + &val_len) != 0) + goto error; + return new java::lang::Boolean ((jboolean)val); + + case _Jv_SO_OOBINLINE_ : + if (::getsockopt (fnum, SOL_SOCKET, SO_OOBINLINE, (char *) &val, + &val_len) != 0) + goto error; + return new java::lang::Boolean ((jboolean)val); + case _Jv_SO_RCVBUF_ : case _Jv_SO_SNDBUF_ : #if defined(SO_SNDBUF) && defined(SO_RCVBUF) @@ -888,6 +978,24 @@ java::net::PlainSocketImpl::getOption (jint optID) throw new java::net::SocketException ( JvNewStringUTF ("IP_MULTICAST_IF: not valid for TCP")); break; + + case _Jv_IP_MULTICAST_IF2_ : + throw new java::net::SocketException ( + JvNewStringUTF ("IP_MULTICAST_IF2: not valid for TCP")); + break; + + case _Jv_IP_MULTICAST_LOOP_ : + throw new java::net::SocketException( + JvNewStringUTF ("IP_MULTICAST_LOOP: not valid for TCP")); + break; + + case _Jv_IP_TOS_ : + if (::getsockopt (fnum, SOL_SOCKET, IP_TOS, (char *) &val, + &val_len) != 0) + goto error; + return new java::lang::Integer (val); + break; + case _Jv_SO_REUSEADDR_ : throw new java::net::SocketException ( JvNewStringUTF ("SO_REUSEADDR: not valid for TCP")); diff --git a/libjava/java/nio/channels/DatagramChannel.java b/libjava/java/nio/channels/DatagramChannel.java index 74a26c64ec5..e1a0b1f85e5 100644 --- a/libjava/java/nio/channels/DatagramChannel.java +++ b/libjava/java/nio/channels/DatagramChannel.java @@ -37,10 +37,7 @@ exception statement from your version. */ package java.nio.channels; -import java.nio.channels.spi.AbstractSelectableChannel; - public class DatagramChannel - extends AbstractSelectableChannel { } diff --git a/libjava/java/nio/channels/ServerSocketChannel.java b/libjava/java/nio/channels/ServerSocketChannel.java index e5d95c1bfbb..d033384066f 100644 --- a/libjava/java/nio/channels/ServerSocketChannel.java +++ b/libjava/java/nio/channels/ServerSocketChannel.java @@ -37,9 +37,6 @@ exception statement from your version. */ package java.nio.channels; -import java.nio.channels.spi.AbstractSelectableChannel; - public class ServerSocketChannel - extends AbstractSelectableChannel { } diff --git a/libjava/java/nio/channels/SocketChannel.java b/libjava/java/nio/channels/SocketChannel.java index 05fc8a55f63..857c3948537 100644 --- a/libjava/java/nio/channels/SocketChannel.java +++ b/libjava/java/nio/channels/SocketChannel.java @@ -37,9 +37,6 @@ exception statement from your version. */ package java.nio.channels; -import java.nio.channels.spi.AbstractSelectableChannel; - public class SocketChannel - extends AbstractSelectableChannel { } diff --git a/libjava/java/rmi/server/LogStream.java b/libjava/java/rmi/server/LogStream.java index 8ba169f83b8..ffbd3f67e71 100644 --- a/libjava/java/rmi/server/LogStream.java +++ b/libjava/java/rmi/server/LogStream.java @@ -45,8 +45,8 @@ public class LogStream extends PrintStream { public static final int SILENT = 0; -public static final int BRIEF = 1; -public static final int VERBOSE = 2; +public static final int BRIEF = 10; +public static final int VERBOSE = 20; private static PrintStream defStream; diff --git a/libjava/java/rmi/server/RemoteServer.java b/libjava/java/rmi/server/RemoteServer.java index ca52d5eb757..b9cfc4e898e 100644 --- a/libjava/java/rmi/server/RemoteServer.java +++ b/libjava/java/rmi/server/RemoteServer.java @@ -43,6 +43,8 @@ import java.io.PrintStream; public abstract class RemoteServer extends RemoteObject { +private static final long serialVersionUID = -4100238210092549637L; + protected RemoteServer() { super(); } diff --git a/libjava/javax/naming/BinaryRefAddr.java b/libjava/javax/naming/BinaryRefAddr.java index 8d8d44d9bd4..29ca33d6ca2 100644 --- a/libjava/javax/naming/BinaryRefAddr.java +++ b/libjava/javax/naming/BinaryRefAddr.java @@ -97,17 +97,17 @@ public class BinaryRefAddr extends RefAddr * the addrType is the same as this addrType and the bytes of the * content are the same. */ - public boolean equals (Object o) + public boolean equal(Object o) { if (o instanceof BinaryRefAddr) { BinaryRefAddr refAddr = (BinaryRefAddr) o; if (this.getType().equals(refAddr.getType())) - { - byte[] c1 = (byte[]) this.getContent(); - byte[] c2 = (byte[]) refAddr.getContent(); - return Arrays.equals(c1, c2); - } + { + byte[] c1 = (byte[]) this.getContent(); + byte[] c2 = (byte[]) refAddr.getContent(); + return Arrays.equals(c1, c2); + } } return false; } diff --git a/libjava/javax/naming/NamingException.java b/libjava/javax/naming/NamingException.java index a377041ae83..6c0f0172dc1 100644 --- a/libjava/javax/naming/NamingException.java +++ b/libjava/javax/naming/NamingException.java @@ -47,7 +47,7 @@ import java.io.PrintWriter; * NamingException), the part of the Name that * could be resolved (including the Object it resolved to) * and the part of the Name that could not be resolved when - * the exception occurred. + * the exception occured. * * @since 1.3 * @author Anthony Green (green@redhat.com) diff --git a/libjava/javax/naming/RefAddr.java b/libjava/javax/naming/RefAddr.java index 2bccdfab8c0..9ed504f760d 100644 --- a/libjava/javax/naming/RefAddr.java +++ b/libjava/javax/naming/RefAddr.java @@ -71,9 +71,9 @@ public abstract class RefAddr implements Serializable */ protected RefAddr(String addrType) { - if (addrType == null) - throw new NullPointerException("addrType cannot be null"); - + if (addrType == null) + throw new NullPointerException("addrType cannot be null"); + this.addrType = addrType; } @@ -98,20 +98,20 @@ public abstract class RefAddr implements Serializable * is the same as this addrType and the content is equals to the * content of this object. */ - public boolean equals (Object o) + public boolean equal(Object o) { if (o instanceof RefAddr) { RefAddr refAddr = (RefAddr) o; if (this.getType().equals(refAddr.getType())) - { - Object c1 = this.getContent(); - Object c2 = refAddr.getContent(); - if (c1 == null) - return c2 == null; - else - return c1.equals(c2); - } + { + Object c1 = this.getContent(); + Object c2 = refAddr.getContent(); + if (c1 == null) + return c2 == null; + else + return c1.equals(c2); + } } return false; } -- cgit v1.2.3