diff -ruN squid-2.6.PRE2/CONTRIBUTORS squid-2.6.RC1/CONTRIBUTORS
--- squid-2.6.PRE2/CONTRIBUTORS	Sat Jun  3 20:53:41 2006
+++ squid-2.6.RC1/CONTRIBUTORS	Wed Jun  7 18:00:48 2006
@@ -98,5 +98,7 @@
 	Tim Starling <tstarling@wikimedia.org>
 	Reuben Farrelly <reuben@reub.net>
 	Alan Barrett <apb@cequrux.com>
+	Przemek Czerkas <pczerkas@mgmnet.pl>
+	Pawel Worach <pawel.worach@gmail.com>
 
 	Duane Wessels <wessels@squid-cache.org>
diff -ruN squid-2.6.PRE2/ChangeLog squid-2.6.RC1/ChangeLog
--- squid-2.6.PRE2/ChangeLog	Sat Jun  3 20:27:53 2006
+++ squid-2.6.RC1/ChangeLog	Wed Jun  7 18:22:02 2006
@@ -46,6 +46,7 @@
 	  purgeing of cache content
 	- Optionally follow X-Forwarded-For headers to determine the original
 	  client IP behind sedond level proxies
+	- FreeBSD kqueue support
 
 Changes to squid-2.5.STABLE14 (20 May 2006)
 	- [Minor] icons not displayed when visible_hostname is a
diff -ruN squid-2.6.PRE2/Makefile.in squid-2.6.RC1/Makefile.in
--- squid-2.6.PRE2/Makefile.in	Fri Jun  2 15:35:38 2006
+++ squid-2.6.RC1/Makefile.in	Mon Jun 12 00:09:41 2006
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.41 2006/06/02 21:35:38 hno Exp $
+# $Id: Makefile.in,v 1.45 2006/06/12 06:09:41 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -43,8 +43,8 @@
 	$(srcdir)/Makefile.in $(top_srcdir)/configure \
 	$(top_srcdir)/include/autoconf.h.in COPYING ChangeLog INSTALL \
 	cfgaux/compile cfgaux/config.guess cfgaux/config.sub \
-	cfgaux/depcomp cfgaux/install-sh cfgaux/ltmain.sh \
-	cfgaux/missing cfgaux/mkinstalldirs
+	cfgaux/depcomp cfgaux/install-sh cfgaux/missing \
+	cfgaux/mkinstalldirs
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
@@ -150,6 +150,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -182,7 +184,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -192,10 +193,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/RELEASENOTES.html squid-2.6.RC1/RELEASENOTES.html
--- squid-2.6.PRE2/RELEASENOTES.html	Tue Jun  6 11:46:36 2006
+++ squid-2.6.RC1/RELEASENOTES.html	Tue Jun 20 15:01:37 2006
@@ -7,7 +7,7 @@
 <BODY>
 <H1>Squid 2.6.PRE2 release notes</H1>
 
-<H2>Squid Developers</H2>$Id: release-2.6.html,v 1.11 2006/06/06 08:20:55 hno Exp $
+<H2>Squid Developers</H2>$Id: release-2.6.html,v 1.15 2006/06/12 21:37:42 hno Exp $
 <HR>
 <EM>This document contains the release notes for version 2.6 of Squid.
 Squid is a WWW Cache application developed by the Web Caching community.
@@ -45,11 +45,11 @@
 client requests for objects into one request to the server.  Of particular 
 benefit in accelerator setups but also provides some benefits to non accelerator 
 setups.</LI>
-<LI>Support for epoll under Linux, which gives Squid the ability to handle 
-many many more concurrent requests with lower CPU overhead and lower 
-FileDescriptor usage.  This feature is of particular benefit to very busy caches 
+<LI>Support for epoll under Linux and kqueue under FreeBSD, which gives Squid
+the ability to handle many many more concurrent requests with lower CPU
+overhead. This feature is of particular benefit to very busy caches 
 as the poll() and select() routines do not scale anywhere near as well as epoll 
-does under high loads.</LI>
+and kqueue does under high loads.</LI>
 <LI>SSL assisted hardware encryption making use of OpenSSL functionality 
 within Squid.</LI>
 <LI>Logging enhancements to allow even greater customization of the way Squid 
@@ -70,6 +70,8 @@
 membership check</LI>
 </UL>
 </LI>
+<LI>HTCP significantly cleaned up and added support for the CLR operation to purge contents from the cache</LI>
+<LI>Support for parsing X-Forwarded-For headers allowing access controls to be based on the real client IP even if behind secondary proxies</LI>
 </UL>
 </P>
 
@@ -87,21 +89,26 @@
 <DT><B>ssl_engine</B><DD><P>New directive for hardware assisted SSL encryption</P>
 <DT><B>sslproxy_*</B><DD><P>New directives defining how to gateway http-&gt;https</P>
 <DT><B>sslpassword_program</B><DD><P>New helper directive to query an external program for SSL key encryption password (if any)</P>
+<DT><B>no_cache</B><DD><P>Renamed to cache to better reflect the functionaliy. no_cache still accepted.</P>
+<DT><B>cache</B><DD><P>New name for the old no_cache directive.</P>
 <DT><B>cache_vary</B><DD><P>New directive to disable caching of Vary:ing responses</P>
+<DT><B>broken_vary_encoding</B><DD><P>New directive to work around known broken compression modules which hasn't understood the meaning of the ETag HTTP header.</P>
 <DT><B>logformat</B><DD><P>New directive for defining custom log formats</P>
 <DT><B>cache_access_log</B><DD><P>Renamed to access_log</P>
 <DT><B>access_log</B><DD><P>Select what requests to log where any by what format. Support for multiple log files and multiple log formats.</P>
 <DT><B>check_hostnames</B><DD><P>New option to disable the hostname validity/sanity checks usually performed by Squid, replacing the similar build time configure option in 2.5.</P>
 <DT><B>allow_underscore</B><DD><P>New option to allow _ in hostnames, replacing the similar build time configure option in 2.5 and earlier.</P>
-<DT><B>redirect_*</B><DD><P>Renamed to url_rewrite_* to better reflect the functionality of this helper</P>
+<DT><B>dns_defnames</B><DD><P>Allow for domain searches. Now possible even when using the internal DNS client</P>
+<DT><B>redirect_*</B><DD><P>Renamed to url_rewrite_* to better reflect the functionality of this helper (rewriting requested URLs)</P>
 <DT><B>url_rewrite_concurrency</B><DD><P>Activates a new and more efficient helper protocol. Requires changes in the helper.</P>
 <DT><B>location_rewrite_*</B><DD><P>New helper hook for rewriting Location headers</P>
 <DT><B>auth_param basic blankpassword</B><DD><P>New option to allow the use of blank passwords.</P>
 <DT><B>auth_param ntlm max_challenge_reuse / max_challenge_lifetime</B><DD><P>No longer supported</P>
-<DT><B>auth_param ntlm use_ntlm_negotiate</B><DD><P>Now defaults to "on"</P>
+<DT><B>auth_param ntlm use_ntlm_negotiate</B><DD><P>Directive no longer supported. Use of NTLM negotiate packet is always on.</P>
 <DT><B>auth_param ntlm keep_alive</B><DD><P>New option to fine-tune the use of HTTP keep-alive in combination with NTLM</P>
 <DT><B>auth_param negotiate</B><DD><P>New Negotiate authentication scheme, the "next generation" scheme in the family of Microsoft authentication.</P>
 <DT><B>external_acl_type</B><DD><P>Many new format options %SRCPORT, %MYADDR, %MYPORT, %PATH, %USER_CERT, %ACL, %DATA and a few variants. Helper protocol defaults to the simpler "3.0" protocol, and there is support for a highly efficient protocol via the concurrency= option if supported by the helper.</P>
+<DT><B>refresh_pattern</B><DD><P>Several new HTTP override/ignore options</P>
 <DT><B>read_ahead_gap</B><DD><P>New directive to set the response buffer size.</P>
 <DT><B>collapsed_forwarding</B><DD><P>New directive to enable an alternative optimized forwarding path when there is very many concurrent requests for the same URL.</P>
 <DT><B>refresh_stale_hit</B><DD><P>New directive similar to collapsed_forwarding and activates an alternative optimized request processing when there is very many concurrent requests for the same recently expired URL.</P>
@@ -109,14 +116,16 @@
 <DT><B>acl user_cert</B><DD><P>New acl class matching the user SSL certificate (https_port)</P>
 <DT><B>acl ca_cert</B><DD><P>New acl class matching the CA of the user SSL certificate (https_port)</P>
 <DT><B>acl ext_user / ext_user_regex</B><DD><P>New acl matching usernames returned by external acl</P>
+<DT><B>follow_x_forwarded_for</B><DD><P>New option to enable parsing of X-Forwarded-For headers allowing access controls to be based on the real client IP even if behind secondary proxies</P>
 <DT><B>http_access2</B><DD><P>New http_access type directive but evaluated after url rewrites</P>
+<DT><B>htcp_access, htcp_clr_access</B><DD><P>Access control on HTCP requests</P>
 <DT><B>log_access</B><DD><P>New directive to limit what gets logged.</P>
 <DT><B>httpd_suppress_version_string</B><DD><P>Enable hiding of the Squid version</P>
+<DT><B>umask</B><DD><P>New directive to specify the minimum umask Squid should run under</P>
 <DT><B>error_map</B><DD><P>New directive to allow dynamic rewrites of error pages</P>
 <DT><B>via</B><DD><P>New directive to disable the use of the Via directive</P>
 <DT><B>wccp2_*</B><DD><P>WCCP2 protocol support</P>
 <DT><B>linux_tproxy, tproxy_port</B><DD><P>Linux TPROXY support for masquerading outgoing connections as the original client</P>
-<DT><B>umask</B><DD><P>New directive enforcing a minimum umask</P>
 </DL>
 </P>
 
diff -ruN squid-2.6.PRE2/bootstrap.sh squid-2.6.RC1/bootstrap.sh
--- squid-2.6.PRE2/bootstrap.sh	Fri Jun  2 04:50:02 2006
+++ squid-2.6.RC1/bootstrap.sh	Tue Jun  6 12:57:47 2006
@@ -7,9 +7,8 @@
 # Autotool versions preferred. To override either edit the script
 # to match the versions you want to use, or set the variables on
 # the command line like "env acver=.. amver=... ./bootstrap.sh"
-acversions="${acver:-2.59 2.57 2.53 2.52}"
-amversions="${amver:-1.9 1.7 1.6}"
-ltversions="${ltver:-1.5 1.4}"
+acversions="${acver}" # ${acver:-2.59 2.57 2.53 2.52}"
+amversions="${amver}" # ${amver:-1.9 1.8 1.7 1.6}"
 SUBDIRS=""
 
 check_version()
@@ -23,6 +22,9 @@
   found="NOT_FOUND"
   shift
   versions="$*"
+  if [ -z "$versions" ]; then
+    found=""
+  fi
   for version in $versions; do
     for variant in "" "-${version}" "`echo $version | sed -e 's/\.//g'`"; do
       if check_version $tool ${tool}${variant} $version; then
@@ -56,14 +58,12 @@
 # Adjust paths of required autool packages
 amver=`find_version automake ${amversions}`
 acver=`find_version autoconf ${acversions}`
-ltver=`find_version libtool ${ltversions}`
 
 # Set environment variable to tell automake which autoconf to use.
 AUTOCONF="autoconf${acver}" ; export AUTOCONF
 
 echo "automake : $amver"
 echo "autoconfg: $acver"
-echo "libtool  : $ltver"
 
 for dir in "" $SUBDIRS; do
     if [ -z "$dir" ] || [ -d $dir ]; then
@@ -79,7 +79,6 @@
 	    # Bootstrap the autotool subsystems
 	    bootstrap aclocal$amver
 	    bootstrap autoheader$acver
-	    bootstrap libtoolize$ltver --force --copy --automake
 	    bootstrap automake$amver --foreign --add-missing --copy -f
 	    bootstrap autoconf$acver --force
 	fi ); then
diff -ruN squid-2.6.PRE2/cfgaux/ltmain.sh squid-2.6.RC1/cfgaux/ltmain.sh
--- squid-2.6.PRE2/cfgaux/ltmain.sh	Tue May 23 15:38:59 2006
+++ squid-2.6.RC1/cfgaux/ltmain.sh	Wed Dec 31 17:00:00 1969
@@ -1,6919 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-basename="s,^.*/,,g"
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-# The name of this program:
-progname=`echo "$progpath" | $SED $basename`
-modename="$progname"
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5.22
-TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes.
-if test -n "${ZSH_VERSION+set}" ; then
-  setopt NO_GLOB_SUBST
-fi
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit $EXIT_SUCCESS
-fi
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  SP2NL='tr \040 \012'
-  NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  SP2NL='tr \100 \n'
-  NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" 	$lt_nl"
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit $EXIT_FAILURE
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-duplicate_deps=no
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
-
-    if test "$run" = ":"; then
-      # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
-    else
-
-      # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
-      if test ! -d "$my_tmpdir"; then
-	# Failing that, at least try and use $RANDOM to avoid a race
-	my_tmpdir="${my_template}-${RANDOM-0}$$"
-
-	save_mktempdir_umask=`umask`
-	umask 0077
-	$mkdir "$my_tmpdir"
-	umask $save_mktempdir_umask
-      fi
-
-      # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || {
-        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
-	exit $EXIT_FAILURE
-      }
-    fi
-
-    $echo "X$my_tmpdir" | $Xsed
-}
-
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-func_win32_libid ()
-{
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $echo $win32_libid_type
-}
-
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
-    # FreeBSD-specific: where we install compilers with non-standard names
-    tag_compilers_CC="*cc cc* *gcc gcc*"
-    tag_compilers_CXX="*c++ c++* *g++ g++*"
-    base_compiler=`set -- "$@"; echo $1`
-
-    # If $tagname isn't set, then try to infer if the default "CC" tag applies
-    if test -z "$tagname"; then
-      for zp in $tag_compilers_CC; do
-        case $base_compiler in
-	 $zp) tagname="CC"; break;;
-	esac
-      done
-    fi
-
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-	case $arg in
-	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	CC_quoted="$CC_quoted $arg"
-      done
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-	    CC_quoted=
-	    for arg in $CC; do
-	    # Double-quote args containing other shell metacharacters.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    CC_quoted="$CC_quoted $arg"
-	  done
-	    case "$@ " in
-	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-
-	    # FreeBSD-specific: try compilers based on inferred tag
-	    if test -z "$tagname"; then
-	      eval "tag_compilers=\$tag_compilers_${z}"
-	      if test -n "$tag_compilers"; then
-		for zp in $tag_compilers; do
-		  case $base_compiler in   
-		    $zp) tagname=$z; break;;
-		  esac
-		done
-		if test -n "$tagname"; then
-		  break
-		fi
-	      fi
-            fi
-          fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit $EXIT_FAILURE
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-
-    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
-    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
-    else
-      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
-      exit $EXIT_FAILURE
-    fi
-}
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
-    my_status=""
-
-    $show "${rm}r $my_gentop"
-    $run ${rm}r "$my_gentop"
-    $show "$mkdir $my_gentop"
-    $run $mkdir "$my_gentop"
-    my_status=$?
-    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
-      exit $my_status
-    fi
-
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-	*) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
-      my_xdir="$my_gentop/$my_xlib"
-
-      $show "${rm}r $my_xdir"
-      $run ${rm}r "$my_xdir"
-      $show "$mkdir $my_xdir"
-      $run $mkdir "$my_xdir"
-      exit_status=$?
-      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
-	exit $exit_status
-      fi
-      case $host in
-      *-darwin*)
-	$show "Extracting $my_xabs"
-	# Do not bother doing anything if just a dry run
-	if test -z "$run"; then
-	  darwin_orig_dir=`pwd`
-	  cd $my_xdir || exit $?
-	  darwin_archive=$my_xabs
-	  darwin_curdir=`pwd`
-	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
-	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
-	  if test -n "$darwin_arches"; then 
-	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
-	    darwin_arch=
-	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
-	    for darwin_arch in  $darwin_arches ; do
-	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-	      cd "$darwin_curdir"
-	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-	    done # $darwin_arches
-      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
-	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
-	    darwin_file=
-	    darwin_files=
-	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
-	      lipo -create -output "$darwin_file" $darwin_files
-	    done # $darwin_filelist
-	    ${rm}r unfat-$$
-	    cd "$darwin_orig_dir"
-	  else
-	    cd "$darwin_orig_dir"
- 	    func_extract_an_archive "$my_xdir" "$my_xabs"
-	  fi # $darwin_arches
-	fi # $run
-	;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-        ;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-    done
-    func_extract_archives_result="$my_oldobjs"
-}
-# End of Shell function definitions
-#####################################
-
-# Darwin sucks
-eval std_shrext=\"$shrext_cmds\"
-
-disable_libs=no
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-      preserve_args="${preserve_args}=$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-	$echo "$progname: invalid tag name: $tagname" 1>&2
-	exit $EXIT_FAILURE
-	;;
-      esac
-
-      case $tagname in
-      CC)
-	# Don't test for the "default" C tag, as we know, it's there, but
-	# not specially marked.
-	;;
-      *)
-	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
-	  taglist="$taglist $tagname"
-	  # Evaluate the configuration.
-	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
-	else
-	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
-	fi
-	;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit $?
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
-    done
-    exit $?
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --features)
-    $echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      $echo "enable shared libraries"
-    else
-      $echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      $echo "enable static libraries"
-    else
-      $echo "disable static libraries"
-    fi
-    exit $?
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    preserve_args="$preserve_args $arg"
-    ;;
-
-  --tag)
-    prevopt="--tag"
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    preserve_args="$preserve_args --tag"
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-fi
-
-case $disable_libs in
-no) 
-  ;;
-shared)
-  build_libtool_libs=no
-  build_old_libs=yes
-  ;;
-static)
-  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-  ;;
-esac
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-	case $arg in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-
-    for arg
-    do
-      case $arg_mode in
-      arg  )
-	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
-	arg_mode=normal
-	;;
-
-      target )
-	libobj="$arg"
-	arg_mode=normal
-	continue
-	;;
-
-      normal )
-	# Accept any command-line options.
-	case $arg in
-	-o)
-	  if test -n "$libobj" ; then
-	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-static | -prefer-pic | -prefer-non-pic)
-	  later="$later $arg"
-	  continue
-	  ;;
-
-	-no-suppress)
-	  suppress_opt=no
-	  continue
-	  ;;
-
-	-Xcompiler)
-	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-	  continue      #  The current "srcfile" will either be retained or
-	  ;;            #  replaced later.  I would guess that would be a bug.
-
-	-Wc,*)
-	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
- 	  for arg in $args; do
-	    IFS="$save_ifs"
-
-	    # Double-quote args containing other shell metacharacters.
-	    # Many Bourne shells cannot handle close brackets correctly
-	    # in scan sets, so we specify it separately.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    lastarg="$lastarg $arg"
-	  done
-	  IFS="$save_ifs"
-	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-	  # Add the arguments to base_compile.
-	  base_compile="$base_compile $lastarg"
-	  continue
-	  ;;
-
-	* )
-	  # Accept the current argument as the source file.
-	  # The previous "srcfile" becomes the current argument.
-	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
-	  ;;
-	esac  #  case $arg
-	;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, and some SunOS ksh mistreat backslash-escaping
-      # in scan sets (worked around with variable expansion),
-      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
-      # at all, so we specify them separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit $EXIT_FAILURE
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    esac
-
-    func_infer_tag $base_compile
-
-    for arg in $later; do
-      case $arg in
-      -static)
-	build_old_libs=yes
-	continue
-	;;
-
-      -prefer-pic)
-	pic_mode=yes
-	continue
-	;;
-
-      -prefer-non-pic)
-	pic_mode=no
-	continue
-	;;
-      esac
-    done
-
-    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
-    case $qlibobj in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qlibobj="\"$qlibobj\"" ;;
-    esac
-    test "X$libobj" != "X$qlibobj" \
-	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
-	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
-	$show "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	$echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-      $echo "$srcfile" > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
-    case $qsrcfile in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-      qsrcfile="\"$qsrcfile\"" ;;
-    esac
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-	command="$base_compile $qsrcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $qsrcfile"
-      fi
-
-      if test ! -d "${xdir}$objdir"; then
-	$show "$mkdir ${xdir}$objdir"
-	$run $mkdir ${xdir}$objdir
-	exit_status=$?
-	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $exit_status
-	fi
-      fi
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-	$show "$mv $output_obj $lobj"
-	if $run $mv $output_obj $lobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-        suppress_output=' >/dev/null 2>&1'
-      fi
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-	# Don't build PIC code
-	command="$base_compile $qsrcfile"
-      else
-	command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args="$nonopt"
-    base_compile="$nonopt $@"
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    notinst_path= # paths that contain not-installed libtool libraries
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-
-    func_infer_tag $base_compile
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=built
-	fi
-	build_libtool_libs=no
-	build_old_libs=yes
-	break
-	;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-	;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit $EXIT_FAILURE
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	precious_regex)
-	  precious_files_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat $save_arg`
-	    do
-#	      moreargs="$moreargs $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		# If there is no directory component, then add one.
-		case $arg in
-		*/* | *\\*) . $arg ;;
-		*) . ./$arg ;;
-		esac
-
-		if test -z "$pic_object" || \
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none && \
-		   test "$non_pic_object" = none; then
-		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-		  exit $EXIT_FAILURE
-		fi
-
-		# Extract subdirectory from the argument.
-		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		if test "X$xdir" = "X$arg"; then
-		  xdir=
-		else
-		  xdir="$xdir/"
-		fi
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  libobjs="$libobjs $pic_object"
-		  arg="$pic_object"
-		fi
-
-		# Non-PIC object.
-		if test "$non_pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
-
-		  # A standard non-PIC object
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		else
-		  # If the PIC object exists, use it instead.
-		  # $xdir was prepended to $pic_object above.
-		  non_pic_object="$pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if test -z "$run"; then
-		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-		  exit $EXIT_FAILURE
-		else
-		  # Dry-run case.
-
-		  # Extract subdirectory from the argument.
-		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		  if test "X$xdir" = "X$arg"; then
-		    xdir=
-		  else
-		    xdir="$xdir/"
-		  fi
-
-		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-		  libobjs="$libobjs $pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      fi
-	    done
-	  else
-	    $echo "$modename: link input file \`$save_arg' does not exist"
-	    exit $EXIT_FAILURE
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit $EXIT_FAILURE
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
-	  prev=
-	  compile_command="$compile_command $wl$qarg"
-	  finalize_command="$finalize_command $wl$qarg"
-	  continue
-	  ;;
-	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	shrext)
-  	  shrext_cmds="$arg"
-	  prev=
-	  continue
-	  ;;
-	darwin_framework|darwin_framework_skip)
-	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  prev=
-	  continue
-	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
-	  ;;
-	esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: more than one -exported-symbols argument is not allowed"
-	  exit $EXIT_FAILURE
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -framework|-arch|-isysroot)
-	case " $CC " in
-	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
-		prev=darwin_framework_skip ;;
-	  *) compiler_flags="$compiler_flags $arg"
-	     prev=darwin_framework ;;
-	esac
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-	continue
-	;;
-
-      -inst-prefix-dir)
-	prev=inst_prefix
-	continue
-	;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-	case $with_gcc/$host in
-	no/*-*-irix* | /*-*-irix*)
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    absdir="$dir"
-	    notinst_path="$notinst_path $dir"
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "*) ;;
-	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs -framework System"
-	    continue
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      -model)
-	compile_command="$compile_command $arg"
-	compiler_flags="$compiler_flags $arg"
-	finalize_command="$finalize_command $arg"
-	prev=xcompiler
-	continue
-	;;
-
-     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-	compiler_flags="$compiler_flags $arg"
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
-      # -r[0-9][0-9]* specifies the processor on the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
-      # +DA*, +DD* enable 64-bit mode on the HP compiler
-      # -q* pass through compiler args for the IBM compiler
-      # -m* pass through architecture-specific compiler args for GCC
-      # -m*, -t[45]*, -txscale* pass through architecture-specific
-      # compiler args for GCC
-      # -pg pass through profiling flag for GCC
-      # @file GCC response files
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
-      -t[45]*|-txscale*|@*)
-
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        compiler_flags="$compiler_flags $arg"
-        continue
-        ;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
-	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -precious-files-regex)
-	prev=precious_regex
-	continue
-	;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# The effects of -static are defined in a previous loop.
-	# We used to do the same as -all-static on platforms that
-	# didn't have a PIC flag, but the assumption that the effects
-	# would be equivalent was wrong.  It would break on at least
-	# Digital Unix and AIX.
-	continue
-	;;
-
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
-
-      -version-info)
-	prev=vinfo
-	continue
-	;;
-      -version-number)
-	prev=vinfo
-	vinfo_number=yes
-	continue
-	;;
-
-      -Wc,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Wl,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $wl$flag"
-	  linker_flags="$linker_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.$objext)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  # If there is no directory component, then add one.
-	  case $arg in
-	  */* | *\\*) . $arg ;;
-	  *) . ./$arg ;;
-	  esac
-
-	  if test -z "$pic_object" || \
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none && \
-	     test "$non_pic_object" = none; then
-	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$arg"; then
-	    xdir=
- 	  else
-	    xdir="$xdir/"
-	  fi
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    libobjs="$libobjs $pic_object"
-	    arg="$pic_object"
-	  fi
-
-	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
-
-	    # A standard non-PIC object
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  else
-	    # If the PIC object exists, use it instead.
-	    # $xdir was prepended to $pic_object above.
-	    non_pic_object="$pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if test -z "$run"; then
-	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-	    exit $EXIT_FAILURE
-	  else
-	    # Dry-run case.
-
-	    # Extract subdirectory from the argument.
-	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$arg"; then
-	      xdir=
-	    else
-	      xdir="$xdir/"
-	    fi
-
-	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-	    libobjs="$libobjs $pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
-	  prev=
-	else
-	  deplibs="$deplibs $arg"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      exit_status=$?
-      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $exit_status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplications in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    esac
-    specialdeplibs=
-
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if test "X$duplicate_deps" = "Xyes" ; then
-	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    case $linkmode in
-    lib)
-	passes="conv link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-	    exit $EXIT_FAILURE
-	    ;;
-	  esac
-	done
-	;;
-    prog)
-	compile_deplibs=
-	finalize_deplibs=
-	alldeplibs=no
-	newdlfiles=
-	newdlprefiles=
-	passes="conv scan dlopen dlpreopen link"
-	;;
-    *)  passes="conv"
-	;;
-    esac
-    for pass in $passes; do
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
-	deplibs=
-      fi
-      if test "$linkmode" = prog; then
-	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-	esac
-      fi
-      if test "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    compiler_flags="$compiler_flags $deplib"
-	  fi
-
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    ;;
-	  *)
-	    ;;
-	  esac # linkmode
-
-	  continue
-	  ;;
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-	    continue
-	  fi
-	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-	    for search_ext in .la $std_shrext .so .a; do
-	      # Search the libtool library
-	      lib="$searchdir/lib${name}${search_ext}"
-	      if test -f "$lib"; then
-		if test "$search_ext" = ".la"; then
-		  found=yes
-		else
-		  found=no
-		fi
-		break 2
-	      fi
-	    done
-	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
-	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	      case " $predeps $postdeps " in
-	      *" $deplib "*)
-		if (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		  library_names=
-		  old_library=
-		  case $lib in
-		  */* | *\\*) . $lib ;;
-		  *) . ./$lib ;;
-		  esac
-		  for l in $old_library $library_names; do
-		    ll="$l"
-		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
-		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-		    test "X$ladir" = "X$lib" && ladir="."
-		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
-		      compile_deplibs="$deplib $compile_deplibs"
-		      finalize_deplibs="$deplib $finalize_deplibs"
-		    else
-		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-		    fi
-		    continue
-		  fi
-		fi
-	        ;;
-	      *) ;;
-	      esac
-	    fi
-	  fi
-	  ;; # -l
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  *)
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la) lib="$deplib" ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    valid_a_lib=no
-	    case $deplibs_check_method in
-	      match_pattern*)
-		set dummy $deplibs_check_method
-	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-		if eval $echo \"$deplib\" 2>/dev/null \
-		    | $SED 10q \
-		    | $EGREP "$match_pattern_regex" > /dev/null; then
-		  valid_a_lib=yes
-		fi
-		;;
-	      pass_all)
-		valid_a_lib=yes
-		;;
-            esac
-	    if test "$valid_a_lib" != yes; then
-	      $echo
-	      $echo "*** Warning: Trying to link with static lib archive $deplib."
-	      $echo "*** I have the capability to make that library automatically link in when"
-	      $echo "*** you link to this library.  But I can only do this if you have a"
-	      $echo "*** shared version of the library, which you do not appear to have"
-	      $echo "*** because the file extensions .$libext of this argument makes me believe"
-	      $echo "*** that it is just a static archive that I should not used here."
-	    else
-	      $echo
-	      $echo "*** Warning: Linking the shared library $output against the"
-	      $echo "*** static library $deplib is not portable!"
-	      deplibs="$deplib $deplibs"
-	    fi
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      newdlfiles="$newdlfiles $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$ladir" = "X$lib" && ladir="."
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-	avoidtemprpath=
-
-
-	# Read the .la file
-	case $lib in
-	*/* | *\\*) . $lib ;;
-	*) . ./$lib ;;
-	esac
-
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	      exit $EXIT_FAILURE
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-	        case "$tmp_libs " in
-	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	        esac
-              fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  continue
-	fi # $pass = conv
-
-
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
-	  else
-	    newdlfiles="$newdlfiles $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$libdir"
-	    absdir="$libdir"
-	  fi
-	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-	else
-	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
-	  else
-	    dir="$ladir/$objdir"
-	    absdir="$abs_ladir/$objdir"
-	    # Remove this search path later
-	    notinst_path="$notinst_path $abs_ladir"
-	  fi
-	fi # $installed = yes
-	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-	    esac
-	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      # Need to hardcode shared library paths
-	      # or/and link against static libraries
-	      newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath " in
-	      *" $dir "*) ;;
-	      *" $absdir "*) ;;
-	      *) temp_rpath="$temp_rpath $absdir" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	use_static_libs=$prefer_static_libs
-	if test "$use_static_libs" = built && test "$installed" = yes ; then
-	  use_static_libs=no
-	fi
-	if test -n "$library_names" &&
-	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
-	  if test "$installed" = no; then
-	    notinst_deplibs="$notinst_deplibs $lib"
-	    need_relink=yes
-	  fi
-	  # This is a shared library
-
-	  # Warn about portability, can't link against -module's on
-	  # some systems (darwin)
-	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
-	    $echo
-	    if test "$linkmode" = prog; then
-	      $echo "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $echo "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $echo "*** $linklib is not portable!"
-	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    realname="$2"
-	    shift; shift
-	    libname=`eval \\$echo \"$libname_spec\"`
-	    # use dlname if we got it. it's perfectly good, no?
-	    if test -n "$dlname"; then
-	      soname="$dlname"
-	    elif test -n "$soname_spec"; then
-	      # bleh windows
-	      case $host in
-	      *cygwin* | mingw*)
-		major=`expr $current - $age`
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      $show "extracting exported symbol list from \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      cmds=$extract_expsyms_cmds
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      $show "generating import library for \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      cmds=$old_archive_from_expsyms_cmds
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-		    *-*-unixware7*) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a module then we can not link against
-		    # it, someone is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null |
-                      $EGREP ": [^:]* bundle" >/dev/null ; then
-		      $echo "** Warning, lib $linklib is a module, not a shared library"
-		      if test -z "$old_library" ; then
-		        $echo
-		        $echo "** And there doesn't seem to be a static archive available"
-		        $echo "** The link will probably fail, sorry"
-		      else
-		        add="$dir/$old_library"
-		      fi
-		    fi
-		esac
-	      elif test "$hardcode_minus_L" = no; then
-		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
-		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    relink)
-	      if test "$hardcode_direct" = yes; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case $libdir in
-		    [\\/]*)
-		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
-
-	    if test "$lib_linked" != yes; then
-	      $echo "$modename: configuration error: unsupported hardcode properties"
-	      exit $EXIT_FAILURE
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes && \
-		 test "$hardcode_minus_L" != yes && \
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-	        add="$inst_prefix_dir$libdir/$linklib"
-	      else
-	        add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case $libdir in
-		  [\\/]*)
-		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    $echo
-	    $echo "*** Warning: This system can not link to static lib archive $lib."
-	    $echo "*** I have the capability to make that library automatically link in when"
-	    $echo "*** you link to this library.  But I can only do this if you have a"
-	    $echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      $echo "*** But as you try to build a module library, libtool will still create "
-	      $echo "*** a static module, that should work as long as the dlopening application"
-	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		$echo
-		$echo "*** However, this would only work if libtool was able to extract symbol"
-		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		$echo "*** not find such a program.  So, this module is probably useless."
-		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
-		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  newlib_search_path="$newlib_search_path $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-		test "X$dir" = "X$deplib" && dir="."
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if grep "^installed=no" $deplib > /dev/null; then
-		  path="$absdir/$objdir"
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  if test -z "$libdir"; then
-		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		    exit $EXIT_FAILURE
-		  fi
-		  if test "$absdir" != "$libdir"; then
-		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-		  fi
-		  path="$absdir"
-		fi
-		depdepl=
-		case $host in
-		*-*-darwin*)
-		  # we do not want to link against static libs,
-		  # but need to link against shared
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$path/$depdepl" ; then
-		      depdepl="$path/$depdepl"
-		    fi
-		    # do not add paths which are already there
-		    case " $newlib_search_path " in
-		    *" $path "*) ;;
-		    *) newlib_search_path="$newlib_search_path $path";;
-		    esac
-		  fi
-		  path=""
-		  ;;
-		*)
-		  path="-L$path"
-		  ;;
-		esac
-		;;
-	      -l*)
-		case $host in
-		*-*-darwin*)
-		  # Again, we only want to link against shared libraries
-		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-		  for tmp in $newlib_search_path ; do
-		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
-		      eval depdepl="$tmp/lib$tmp_libs.dylib"
-		      break
-		    fi
-		  done
-		  path=""
-		  ;;
-		*) continue ;;
-		esac
-		;;
-	      *) continue ;;
-	      esac
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$path $deplibs" ;;
-	      esac
-	      case " $deplibs " in
-	      *" $depdepl "*) ;;
-	      *) deplibs="$depdepl $deplibs" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
-	      esac
-	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval shared_ext=\"$shrext_cmds\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval shared_ext=\"$shrext_cmds\"
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-	  exit $EXIT_FAILURE
-	else
-	  $echo
-	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
-	  $echo "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
-	fi
-      fi
-
-      if test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
-	  # convenience libraries should have the same extension an
-	  # archive normally would.
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# convert absolute version numbers to libtool ages
-	# this retains compatibility with .la files and attempts
-	# to make the code below a bit more comprehensible
-
-	case $vinfo_number in
-	yes)
-	  number_major="$2"
-	  number_minor="$3"
-	  number_revision="$4"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows)
-	    current=`expr $number_major + $number_minor`
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
-	    age="$number_minor"
-	    revision="$number_minor"
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$2"
-	  revision="$3"
-	  age="$4"
-	  ;;
-	esac
-
-	# Check that each of the things are valid numbers.
-	case $current in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	case $revision in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	case $age in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case $version_type in
-	none) ;;
-
-	darwin)
-	  # Like Linux, but with the current version available in
-	  # verstring for coding it into the library header
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  minor_current=`expr $current + 1`
-	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current";
-	  ;;
-
-	irix | nonstopux)
-	  major=`expr $current - $age + 1`
-
-	  case $version_type in
-	    nonstopux) verstring_prefix=nonstopux ;;
-	    *)         verstring_prefix=sgi ;;
-	  esac
-	  verstring="$verstring_prefix$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test "$loop" -ne 0; do
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=.`expr $current - $age`
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test "$loop" -ne 0; do
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  major=`expr $current - $age`
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-      fi
-
-      if test "$mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$echo "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
-	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-	         then
-		   continue
-		 fi
-	       fi
-	       removelist="$removelist $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	if test -n "$removelist"; then
-	  $show "${rm}r $removelist"
-	  $run ${rm}r $removelist
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
-	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
-      done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs -framework System"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    ;;
- 	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name=`expr $i : '-l\(.*\)'`
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    newdeplibs="$newdeplibs $i"
-		    i=""
-		    ;;
-		  esac
-	        fi
-		if test -n "$i" ; then
-		  libname=`eval \\$echo \"$libname_spec\"`
-		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		  set dummy $deplib_matches
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$newdeplibs $i"
-		  else
-		    droppeddeps=yes
-		    $echo
-		    $echo "*** Warning: dynamic linker does not accept needed library $i."
-		    $echo "*** I have the capability to make that library automatically link in when"
-		    $echo "*** you link to this library.  But I can only do this if you have a"
-		    $echo "*** shared version of the library, which I believe you do not have"
-		    $echo "*** because a test_compile did reveal that the linker did not use it for"
-		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
-		  fi
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  else
-	    # Error occurred in the first compile.  Let's try to salvage
-	    # the situation: Compile a separate program for each library.
-	    for i in $deplibs; do
-	      name=`expr $i : '-l\(.*\)'`
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-		$rm conftest
-		$LTCC $LTCFLAGS -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      newdeplibs="$newdeplibs $i"
-		      i=""
-		      ;;
-		    esac
-		  fi
-		  if test -n "$i" ; then
-		    libname=`eval \\$echo \"$libname_spec\"`
-		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		    set dummy $deplib_matches
-		    deplib_match=$2
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$newdeplibs $i"
-		    else
-		      droppeddeps=yes
-		      $echo
-		      $echo "*** Warning: dynamic linker does not accept needed library $i."
-		      $echo "*** I have the capability to make that library automatically link in when"
-		      $echo "*** you link to this library.  But I can only do this if you have a"
-		      $echo "*** shared version of the library, which you do not appear to have"
-		      $echo "*** because a test_compile did reveal that the linker did not use this one"
-		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-		    fi
-		  fi
-		else
-		  droppeddeps=yes
-		  $echo
-		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
-		  $echo "***  make it link in!  You will probably need to install it or some"
-		  $echo "*** library that it depends on before this library will be fully"
-		  $echo "*** functional.  Installing it before continuing would be even better."
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name=`expr $a_deplib : '-l\(.*\)'`
-	    # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | ${SED} 10q \
-			 | $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name=`expr $a_deplib : '-l\(.*\)'`
-	    # If $name is empty we are operating on a -L argument.
-	    if test -n "$name" && test "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval $echo \"$potent_lib\" 2>/dev/null \
-		        | ${SED} 10q \
-		        | $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	    -e 's/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-	    done
-	  fi
-	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
-	    | grep . >/dev/null; then
-	    $echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      $echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    $echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library is the System framework
-	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	  ;;
-	esac
-
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    $echo
-	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
-	    $echo "*** a static module, that should work as long as the dlopening"
-	    $echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      $echo
-	      $echo "*** However, this would only work if libtool was able to extract symbol"
-	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      $echo "*** not find such a program.  So, this module is probably useless."
-	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    $echo "*** The inter-library dependencies that have been dropped here will be"
-	    $echo "*** automatically added whenever a program is linked with this library"
-	    $echo "*** or is declared to -dlopen it."
-
-	    if test "$allow_undefined" = no; then
-	      $echo
-	      $echo "*** Since this library must not contain undefined symbols,"
-	      $echo "*** because either the platform does not support them or"
-	      $echo "*** it was explicitly requested with -no-undefined,"
-	      $echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $deplibs " in
-	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
-	  esac
-	  ;;
-	*) new_libs="$new_libs $deplib" ;;
-	esac
-      done
-      deplibs="$new_libs"
-
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext_cmds\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
-
-	lib="$output_objdir/$realname"
-	linknames=
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      eval cmd=\"$cmd\"
-	      if len=`expr "X$cmd" : ".*"` &&
-	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	        $show "$cmd"
-	        $run eval "$cmd" || exit $?
-	        skipped_export=false
-	      else
-	        # The command line is too long to execute in one step.
-	        $show "using reloadable object file for export list..."
-	        skipped_export=:
-		# Break out early, otherwise skipped_export may be
-		# set to false by a later but shorter cmd.
-		break
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex"; then
-	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-		case " $convenience " in
-		*" $test_deplib "*) ;;
-		*)
-			tmp_deplibs="$tmp_deplibs $test_deplib"
-			;;
-		esac
-	done
-	deplibs="$tmp_deplibs"
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    generated="$generated $gentop"
-
-	    func_extract_archives $gentop $convenience
-	    libobjs="$libobjs $func_extract_archives_result"
-	  fi
-	fi
-	
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
-	fi
-
-	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
-	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	    eval test_cmds=\"$module_expsym_cmds\"
-	    cmds=$module_expsym_cmds
-	  else
-	    eval test_cmds=\"$module_cmds\"
-	    cmds=$module_cmds
-	  fi
-	else
-	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	  eval test_cmds=\"$archive_expsym_cmds\"
-	  cmds=$archive_expsym_cmds
-	else
-	  eval test_cmds=\"$archive_cmds\"
-	  cmds=$archive_cmds
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" &&
-	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise.
-	  $echo "creating reloadable object files..."
-
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  delfiles=
-	  last_robj=
-	  k=1
-	  output=$output_objdir/$output_la-${k}.$objext
-	  # Loop over the list of objects to be linked.
-	  for obj in $save_libobjs
-	  do
-	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-	    if test "X$objlist" = X ||
-	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-		 test "$len" -le "$max_cmd_len"; }; then
-	      objlist="$objlist $obj"
-	    else
-	      # The command $test_cmds is almost too long, add a
-	      # command to the queue.
-	      if test "$k" -eq 1 ; then
-		# The first file doesn't have a previous command to add.
-		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-	      else
-		# All subsequent reloadable object files will link in
-		# the last one created.
-		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-	      fi
-	      last_robj=$output_objdir/$output_la-${k}.$objext
-	      k=`expr $k + 1`
-	      output=$output_objdir/$output_la-${k}.$objext
-	      objlist=$obj
-	      len=1
-	    fi
-	  done
-	  # Handle the remaining objects by creating one last
-	  # reloadable object file.  All subsequent reloadable object
-	  # files will link in the last one created.
-	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-	  if ${skipped_export-false}; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    libobjs=$output
-	    # Append the command to create the export file.
-	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-	  # Set up a command to remove the reloadable object files
-	  # after they are used.
-	  i=0
-	  while test "$i" -lt "$k"
-	  do
-	    i=`expr $i + 1`
-	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
-	  done
-
-	  $echo "creating a temporary reloadable object file: $output"
-
-	  # Loop through the commands generated above and execute them.
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $concat_cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-
-	  libobjs=$output
-	  # Restore the value of output.
-	  output=$save_output
-
-	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test "$module" = yes && test -n "$module_cmds" ; then
-	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	      cmds=$module_expsym_cmds
-	    else
-	      cmds=$module_cmds
-	    fi
-	  else
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    cmds=$archive_expsym_cmds
-	  else
-	    cmds=$archive_cmds
-	    fi
-	  fi
-
-	  # Append the command to remove the reloadable object files
-	  # to the just-reset $cmds.
-	  eval cmds=\"\$cmds~\$rm $delfiles\"
-	fi
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $show "$cmd"
-	  $run eval "$cmd" || {
-	    lt_exit=$?
-
-	    # Restore the uninstalled library and exit
-	    if test "$mode" = relink; then
-	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-	    fi
-
-	    exit $lt_exit
-	  }
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-
-	  if test -n "$convenience"; then
-	    if test -z "$whole_archive_flag_spec"; then
-	      $show "${rm}r $gentop"
-	      $run ${rm}r "$gentop"
-	    fi
-	  fi
-
-	  exit $EXIT_SUCCESS
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-	  fi
-	done
-
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-	if test -n "$objs$old_deplibs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $run $rm $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  generated="$generated $gentop"
-
-	  func_extract_archives $gentop $convenience
-	  reload_conv_objs="$reload_objs $func_extract_archives_result"
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      cmds=$reload_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	eval cmd=\"$cmd\"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	# $show "echo timestamp > $libobj"
-	# $run eval "echo timestamp > $libobj" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	cmds=$reload_cmds
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $compile_deplibs " in
-	  *" -L$path/$objdir "*)
-	    new_libs="$new_libs -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $compile_deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) new_libs="$new_libs $deplib" ;;
-	  esac
-	  ;;
-	*) new_libs="$new_libs $deplib" ;;
-	esac
-      done
-      compile_deplibs="$new_libs"
-
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$testbindir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case $dlsyms in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    if test -n "$export_symbols_regex"; then
-	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$outputname.exp"
-	      $run $rm $export_symbols
-	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-              case $host in
-              *cygwin* | *mingw* )
-	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-                ;;
-              esac
-	    else
-	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-              case $host in
-              *cygwin* | *mingw* )
-	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-                ;;
-              esac
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-	    $run eval '$echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # Make sure we have at least an empty file.
-	    test -f "$nlist" || : > "$nlist"
-
-	    if test -n "$exclude_expsyms"; then
-	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	      $mv "$nlist"T "$nlist"
-	    fi
-
-	    # Try sorting and uniquifying the output.
-	    if grep -v "^: " < "$nlist" |
-		if sort -k 3 </dev/null >/dev/null 2>&1; then
-		  sort -k 3
-		else
-		  sort +2
-		fi |
-		uniq > "$nlist"S; then
-	      :
-	    else
-	      grep -v "^: " < "$nlist" > "$nlist"S
-	    fi
-
-	    if test -f "$nlist"S; then
-	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
-	    else
-	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-"
-
-	    case $host in
-	    *cygwin* | *mingw* )
-	  $echo >> "$output_objdir/$dlsyms" "\
-/* DATA imports from DLLs on WIN32 can't be const, because
-   runtime relocations are performed -- see ld's documentation
-   on pseudo-relocs */
-struct {
-"
-	      ;;
-	    * )
-	  $echo >> "$output_objdir/$dlsyms" "\
-const struct {
-"
-	      ;;
-	    esac
-
-
-	  $echo >> "$output_objdir/$dlsyms" "\
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  case $host in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-          case $host in
-          *cygwin* | *mingw* )
-            if test -f "$output_objdir/${outputname}.def" ; then
-              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
-              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
-            else
-              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-             fi
-            ;;
-          * )
-            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-            ;;
-          esac
-	  ;;
-	*-*-freebsd*)
-	  # FreeBSD doesn't need this...
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	exit_status=$?
-
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $exit_status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case $dir in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$run $rm $output
-	# Link the executable and exit
-	$show "$link_command"
-	$run eval "$link_command" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	# Preserve any variables that may affect compiler behavior
-	for var in $variables_saved_for_relink; do
-	  if eval test -z \"\${$var+set}\"; then
-	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-	  elif eval var_value=\$$var; test -z "$var_value"; then
-	    relink_command="$var=; export $var; $relink_command"
-	  else
-	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
-	case $progpath in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-            output_name=`basename $output`
-            output_path=`dirname $output`
-            cwrappersource="$output_path/$objdir/lt-$output_name.c"
-            cwrapper="$output_path/$output_name.exe"
-            $rm $cwrappersource $cwrapper
-            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
-	    cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-	    cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# ifndef DIR_SEPARATOR_2
-#  define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-#  define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-/* -DDEBUG is fairly common in CFLAGS.  */
-#undef DEBUG
-#if defined DEBUGWRAPPER
-# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
-#else
-# define DEBUG(format, ...)
-#endif
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-const char * base_name (const char *name);
-char * find_executable(const char *wrapper);
-int    check_executable(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  DEBUG("(main) argv[0]      : %s\n",argv[0]);
-  DEBUG("(main) program_name : %s\n",program_name);
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-            cat >> $cwrappersource <<EOF
-  newargz[0] = (char *) xstrdup("$SHELL");
-EOF
-
-            cat >> $cwrappersource <<"EOF"
-  newargz[1] = find_executable(argv[0]);
-  if (newargz[1] == NULL)
-    lt_fatal("Couldn't find %s", argv[0]);
-  DEBUG("(main) found exe at : %s\n",newargz[1]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe");
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-
-  for (i=0; i<argc+1; i++)
-  {
-    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
-    ;
-  }
-
-EOF
-
-            case $host_os in
-              mingw*)
-                cat >> $cwrappersource <<EOF
-  execv("$SHELL",(char const **)newargz);
-EOF
-              ;;
-              *)
-                cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-              ;;
-            esac
-
-            cat >> $cwrappersource <<"EOF"
-  return 127;
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-const char *
-base_name (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
-
-int
-check_executable(const char * path)
-{
-  struct stat st;
-
-  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
-  if ((!path) || (!*path))
-    return 0;
-
-  if ((stat (path, &st) >= 0) &&
-      (
-        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
-#if defined (S_IXOTH)
-       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
-#endif
-#if defined (S_IXGRP)
-       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
-#endif
-       ((st.st_mode & S_IXUSR) == S_IXUSR))
-      )
-    return 1;
-  else
-    return 0;
-}
-
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise */
-char *
-find_executable (const char* wrapper)
-{
-  int has_slash = 0;
-  const char* p;
-  const char* p_next;
-  /* static buffer for getcwd */
-  char tmp[LT_PATHMAX + 1];
-  int tmp_len;
-  char* concat_name;
-
-  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
-
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
-
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
-  {
-    concat_name = xstrdup (wrapper);
-    if (check_executable(concat_name))
-      return concat_name;
-    XFREE(concat_name);
-  }
-  else
-  {
-#endif
-    if (IS_DIR_SEPARATOR (wrapper[0]))
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable(concat_name))
-        return concat_name;
-      XFREE(concat_name);
-    }
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  }
-#endif
-
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-    {
-      has_slash = 1;
-      break;
-    }
-  if (!has_slash)
-  {
-    /* no slashes; search PATH */
-    const char* path = getenv ("PATH");
-    if (path != NULL)
-    {
-      for (p = path; *p; p = p_next)
-      {
-        const char* q;
-        size_t p_len;
-        for (q = p; *q; q++)
-          if (IS_PATH_SEPARATOR(*q))
-            break;
-        p_len = q - p;
-        p_next = (*q == '\0' ? q : q + 1);
-        if (p_len == 0)
-        {
-          /* empty path: current directory */
-          if (getcwd (tmp, LT_PATHMAX) == NULL)
-            lt_fatal ("getcwd failed");
-          tmp_len = strlen(tmp);
-          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-          memcpy (concat_name, tmp, tmp_len);
-          concat_name[tmp_len] = '/';
-          strcpy (concat_name + tmp_len + 1, wrapper);
-        }
-        else
-        {
-          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
-          memcpy (concat_name, p, p_len);
-          concat_name[p_len] = '/';
-          strcpy (concat_name + p_len + 1, wrapper);
-        }
-        if (check_executable(concat_name))
-          return concat_name;
-        XFREE(concat_name);
-      }
-    }
-    /* not found in PATH; assume curdir */
-  }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  tmp_len = strlen(tmp);
-  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
-
-  if (check_executable(concat_name))
-    return concat_name;
-  XFREE(concat_name);
-  return NULL;
-}
-
-char *
-strendzap(char *str, const char *pat)
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode,
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-          # we should really use a build-platform specific compiler
-          # here, but OTOH, the wrappers (shell script and this C one)
-          # are only useful if you want to execute the "real" binary.
-          # Since the "real" binary is built for $host, then this
-          # wrapper might as well be built for $host, too.
-          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
-          ;;
-        esac
-        $rm $output
-        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $echo >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
-
-	  $echo >> $output "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-	$echo \"\$relink_command_output\" >&2
-	$rm \"\$progdir/\$file\"
-	exit $EXIT_FAILURE
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-	else
-	  $echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2*)
-	  $echo >> $output "\
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $echo >> $output "\
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit $EXIT_FAILURE
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      exit $EXIT_SUCCESS
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$old_deplibs $non_pic_objects"
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	generated="$generated $gentop"
-
-	func_extract_archives $gentop $addlibs
-	oldobjs="$oldobjs $func_extract_archives_result"
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-       cmds=$old_archive_from_new_cmds
-      else
-	# POSIX demands no paths to be encoded in archives.  We have
-	# to avoid creating archives with duplicate basenames if we
-	# might have to extract them afterwards, e.g., when creating a
-	# static archive out of a convenience library, or when linking
-	# the entirety of a libtool archive into another (currently
-	# not supported by libtool).
-	if (for obj in $oldobjs
-	    do
-	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	  :
-	else
-	  $echo "copying selected object files to avoid basename conflicts..."
-
-	  if test -z "$gentop"; then
-	    gentop="$output_objdir/${outputname}x"
-	    generated="$generated $gentop"
-
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "$mkdir $gentop"
-	    $run $mkdir "$gentop"
-	    exit_status=$?
-	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
-	      exit $exit_status
-	    fi
-	  fi
-
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  counter=1
-	  for obj in $save_oldobjs
-	  do
-	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-	    case " $oldobjs " in
-	    " ") oldobjs=$obj ;;
-	    *[\ /]"$objbase "*)
-	      while :; do
-		# Make sure we don't pick an alternate name that also
-		# overlaps.
-		newobj=lt$counter-$objbase
-		counter=`expr $counter + 1`
-		case " $oldobjs " in
-		*[\ /]"$newobj "*) ;;
-		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
-		esac
-	      done
-	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      $run ln "$obj" "$gentop/$newobj" ||
-	      $run cp "$obj" "$gentop/$newobj"
-	      oldobjs="$oldobjs $gentop/$newobj"
-	      ;;
-	    *) oldobjs="$oldobjs $obj" ;;
-	    esac
-	  done
-	fi
-
-	eval cmds=\"$old_archive_cmds\"
-
-	if len=`expr "X$cmds" : ".*"` &&
-	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  cmds=$old_archive_cmds
-	else
-	  # the command line is too long to link in one step, link in parts
-	  $echo "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done
-	  for obj in $save_oldobjs
-	  do
-	    oldobjs="$objlist $obj"
-	    objlist="$objlist $obj"
-	    eval test_cmds=\"$old_archive_cmds\"
-	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
-	       test "$len" -le "$max_cmd_len"; then
-	      :
-	    else
-	      # the above command should be used before it gets too long
-	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
-	        RANLIB=$save_RANLIB
-	      fi
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
-	    fi
-	  done
-	  RANLIB=$save_RANLIB
-	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
-	    eval cmds=\"\$concat_cmds\"
-	  else
-	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-	  fi
-	fi
-      fi
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-        eval cmd=\"$cmd\"
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-	if eval test -z \"\${$var+set}\"; then
-	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-	elif eval var_value=\$$var; test -z "$var_value"; then
-	  relink_command="$var=; export $var; $relink_command"
-	else
-	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
-	relink_command=
-      fi
-
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	    # Replace all uninstalled libtool libraries with the installed ones
-	    newdependency_libs=
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      *.la)
-		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		if test -z "$libdir"; then
-		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		  exit $EXIT_FAILURE
-		fi
-		newdependency_libs="$newdependency_libs $libdir/$name"
-		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit $EXIT_FAILURE
-	      fi
-	      newdlfiles="$newdlfiles $libdir/$name"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit $EXIT_FAILURE
-	      fi
-	      newdlprefiles="$newdlprefiles $libdir/$name"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  else
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      newdlfiles="$newdlfiles $abs"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      newdlprefiles="$newdlprefiles $abs"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $rm $output
-	  # place dlname in correct position for cygwin
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-	  esac
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
-	    $echo >> $output "\
-relink_command=\"$relink_command\""
-	  fi
-	done
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg=$nonopt
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest=$arg
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) 
-      	case " $install_prog " in
-	*[\\\ /]cp\ *) ;;
-	*) prev=$arg ;;
-	esac
-	;;
-      -g | -m | -o) prev=$arg ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*)
-	;;
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest=$arg
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit $EXIT_FAILURE
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	library_names=
-	old_library=
-	relink_command=
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-	test "X$dir" = "X$file/" && dir=
-	dir="$dir$objdir"
-
-	if test -n "$relink_command"; then
-	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
-
-	  # Don't allow the user to place us outside of our expected
-	  # location b/c this prevents finding dependent libraries that
-	  # are installed to the same prefix.
-	  # At present, this check doesn't affect windows .dll's that
-	  # are installed into $libdir/../bin (currently, that works fine)
-	  # but it's something to keep an eye on.
-	  if test "$inst_prefix_dir" = "$destdir"; then
-	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  if test -n "$inst_prefix_dir"; then
-	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-	  else
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-	  fi
-
-	  $echo "$modename: warning: relinking \`$file'" 1>&2
-	  $show "$relink_command"
-	  if $run eval "$relink_command"; then :
-	  else
-	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$srcname $destdir/$realname"
-	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-	  if test -n "$stripme" && test -n "$striplib"; then
-	    $show "$striplib $destdir/$realname"
-	    $run eval "$striplib $destdir/$realname" || exit $?
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    # Try `ln -sf' first, because the `ln' binary might depend on
-	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
-	    # so we also need to try rm && ln -s.
-	    for linkname
-	    do
-	      if test "$linkname" != "$realname"; then
-                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  cmds=$postinstall_cmds
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    eval cmd=\"$cmd\"
-	    $show "$cmd"
-	    $run eval "$cmd" || {
-	      lt_exit=$?
-
-	      # Restore the uninstalled library and exit
-	      if test "$mode" = relink; then
-		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
-	      fi
-
-	      exit $lt_exit
-	    }
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-	fi
-	exit $EXIT_SUCCESS
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# If the file is missing, and there is a .exe on the end, strip it
-	# because it is most likely a libtool script we actually want to
-	# install
-	stripped_ext=""
-	case $file in
-	  *.exe)
-	    if test ! -f "$file"; then
-	      file=`$echo $file|${SED} 's,.exe$,,'`
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin*|*mingw*)
-	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  # Note that it is not necessary on cygwin/mingw to append a dot to
-	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
-	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-	  # `FILE.' does not work on cygwin managed mounts.
-	  #
-	  # If there is no directory component, then add one.
-	  case $wrapper in
-	  */* | *\\*) . ${wrapper} ;;
-	  *) . ./${wrapper} ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$notinst_deplibs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-	    exit $EXIT_FAILURE
-	  fi
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case $lib in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  # Note that it is not necessary on cygwin/mingw to append a dot to
-	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
-	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
-	  # `FILE.' does not work on cygwin managed mounts.
-	  #
-	  # If there is no directory component, then add one.
-	  case $wrapper in
-	  */* | *\\*) . ${wrapper} ;;
-	  *) . ./${wrapper} ;;
-	  esac
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir=`func_mktempdir`
-	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyway 
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-	    ;;
-	  esac
-	  ;;
-	esac
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$old_striplib"; then
-	$show "$old_striplib $oldlib"
-	$run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      cmds=$old_postinstall_cmds
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	eval cmd=\"$cmd\"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  cmds=$finish_cmds
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    eval cmd=\"$cmd\"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit $EXIT_SUCCESS
-
-    $echo "X----------------------------------------------------------------------" | $Xsed
-    $echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $echo "   $libdir"
-    done
-    $echo
-    $echo "If you ever happen to want to link against installed libraries"
-    $echo "in a given directory, LIBDIR, you must either use libtool, and"
-    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      $echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $echo
-    $echo "See any operating system documentation about shared libraries for"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "X----------------------------------------------------------------------" | $Xsed
-    exit $EXIT_SUCCESS
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit $EXIT_FAILURE
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit $EXIT_FAILURE
-      fi
-
-      dir=
-      case $file in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit $EXIT_FAILURE
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-	$echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit $EXIT_SUCCESS
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-	dir=.
-	objdir="$origobjdir"
-      else
-	objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-	|| (test -h "$file") >/dev/null 2>&1 \
-	|| test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-
-	  case "$mode" in
-	  clean)
-	    case "  $library_names " in
-	    # "  " in the beginning catches empty $dlname
-	    *" $dlname "*) ;;
-	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
-	    esac
-	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-	    ;;
-	  uninstall)
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      cmds=$postuninstall_cmds
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      cmds=$old_postuninstall_cmds
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		eval cmd=\"$cmd\"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	    ;;
-	  esac
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-	  # Read the .lo file
-	  . $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" \
-	     && test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" \
-	     && test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe)
-	    file=`$echo $file|${SED} 's,.exe$,,'`
-	    noexename=`$echo $name|${SED} 's,.exe$,,'`
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	    relink_command=
-	    . $dir/$noexename
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	$show "rmdir $dir"
-	$run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit $EXIT_FAILURE
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit $EXIT_FAILURE
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit $EXIT_SUCCESS
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit $EXIT_FAILURE
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit $?
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them.  This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration.  But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-disable_libs=shared
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-disable_libs=static
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff -ruN squid-2.6.PRE2/configure squid-2.6.RC1/configure
--- squid-2.6.PRE2/configure	Tue Jun  6 11:46:18 2006
+++ squid-2.6.RC1/configure	Tue Jun 20 15:01:20 2006
@@ -1,7 +1,7 @@
 #! /bin/sh
-# From configure.in Revision: 1.362 .
+# From configure.in Revision: 1.377 .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for Squid Web Proxy 2.6.PRE2.
+# Generated by GNU Autoconf 2.59 for Squid Web Proxy 2.6.RC1.
 #
 # Report bugs to <http://www.squid-cache.org/bugs/>.
 #
@@ -270,8 +270,8 @@
 # Identity of this package.
 PACKAGE_NAME='Squid Web Proxy'
 PACKAGE_TARNAME='squid'
-PACKAGE_VERSION='2.6.PRE2'
-PACKAGE_STRING='Squid Web Proxy 2.6.PRE2'
+PACKAGE_VERSION='2.6.RC1'
+PACKAGE_STRING='Squid Web Proxy 2.6.RC1'
 PACKAGE_BUGREPORT='http://www.squid-cache.org/bugs/'
 
 ac_default_prefix=/usr/local/squid
@@ -312,7 +312,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os PKGCONFIG CGIEXT ENABLE_WIN32SPECIFIC_TRUE ENABLE_WIN32SPECIFIC_FALSE CACHE_HTTP_PORT CACHE_ICP_PORT LIBDLMALLOC LIB_MALLOC STORE_OBJS STORE_LIBS STORE_MODULES STORE_MODULE_SUBDIRS REPL_POLICIES REPL_OBJS REPL_LIBS ENABLE_PINGER_TRUE ENABLE_PINGER_FALSE USE_DELAY_POOLS_TRUE USE_DELAY_POOLS_FALSE USE_SNMP_TRUE USE_SNMP_FALSE SNMPLIB makesnmplib ENABLE_HTCP_TRUE ENABLE_HTCP_FALSE ENABLE_SSL_TRUE ENABLE_SSL_FALSE NEED_OWN_MD5_TRUE NEED_OWN_MD5_FALSE SSLLIB ERR_DEFAULT_LANGUAGE ERR_LANGUAGES MAKE_LEAKFINDER_TRUE MAKE_LEAKFINDER_FALSE USE_DNSSERVER_TRUE USE_DNSSERVER_FALSE OPT_DEFAULT_HOSTS AUTH_MODULES AUTH_OBJS AUTH_LIBS BASIC_AUTH_HELPERS NTLM_AUTH_HELPERS DIGEST_AUTH_HELPERS NEGOTIATE_AUTH_HELPERS EXTERNAL_ACL_HELPERS CPP EGREP LIBSASL ENABLE_UNLINKD_TRUE ENABLE_UNLINKD_FALSE RANLIB ac_ct_RANLIB LN_S SH FALSE TRUE RM MV MKDIR LN PERL AR AR_R ALLOCA CRYPTLIB LIB_EPOLL LIB_LDAP LIB_LBER LIB_DB EPOLL_LIBS USE_POLL_TRUE USE_POLL_FALSE USE_EPOLL_TRUE USE_EPOLL_FALSE USE_SELECT_TRUE USE_SELECT_FALSE NEED_OWN_SNPRINTF_TRUE NEED_OWN_SNPRINTF_FALSE NEED_OWN_STRSEP_TRUE NEED_OWN_STRSEP_FALSE REGEXLIB LIBREGEX LIBOBJS XTRA_OBJS XTRA_LIBS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE build build_cpu build_vendor build_os host host_cpu host_vendor host_os PKGCONFIG CGIEXT ENABLE_WIN32SPECIFIC_TRUE ENABLE_WIN32SPECIFIC_FALSE CACHE_HTTP_PORT CACHE_ICP_PORT LIBDLMALLOC LIB_MALLOC STORE_OBJS STORE_LIBS STORE_MODULES NEED_DISKD_TRUE NEED_DISKD_FALSE REPL_POLICIES REPL_OBJS REPL_LIBS ENABLE_PINGER_TRUE ENABLE_PINGER_FALSE USE_DELAY_POOLS_TRUE USE_DELAY_POOLS_FALSE USE_SNMP_TRUE USE_SNMP_FALSE SNMPLIB makesnmplib ENABLE_HTCP_TRUE ENABLE_HTCP_FALSE ENABLE_SSL_TRUE ENABLE_SSL_FALSE NEED_OWN_MD5_TRUE NEED_OWN_MD5_FALSE SSLLIB ERR_DEFAULT_LANGUAGE ERR_LANGUAGES MAKE_LEAKFINDER_TRUE MAKE_LEAKFINDER_FALSE USE_DNSSERVER_TRUE USE_DNSSERVER_FALSE OPT_DEFAULT_HOSTS AUTH_MODULES AUTH_OBJS AUTH_LIBS BASIC_AUTH_HELPERS NTLM_AUTH_HELPERS DIGEST_AUTH_HELPERS NEGOTIATE_AUTH_HELPERS EXTERNAL_ACL_HELPERS CPP EGREP LIBSASL ENABLE_UNLINKD_TRUE ENABLE_UNLINKD_FALSE RANLIB ac_ct_RANLIB LN_S SH FALSE TRUE RM MV MKDIR LN PERL AR AR_R ALLOCA CRYPTLIB LIB_EPOLL LIB_LDAP LIB_LBER LIB_DB EPOLL_LIBS USE_POLL_TRUE USE_POLL_FALSE USE_EPOLL_TRUE USE_EPOLL_FALSE USE_SELECT_TRUE USE_SELECT_FALSE USE_SELECT_WIN32_TRUE USE_SELECT_WIN32_FALSE USE_KQUEUE_TRUE USE_KQUEUE_FALSE NEED_OWN_SNPRINTF_TRUE NEED_OWN_SNPRINTF_FALSE NEED_OWN_STRSEP_TRUE NEED_OWN_STRSEP_FALSE REGEXLIB LIBREGEX LIBOBJS XTRA_OBJS XTRA_LIBS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -781,7 +781,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Squid Web Proxy 2.6.PRE2 to adapt to many kinds of systems.
+\`configure' configures Squid Web Proxy 2.6.RC1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -847,7 +847,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Squid Web Proxy 2.6.PRE2:";;
+     short | recursive ) echo "Configuration of Squid Web Proxy 2.6.RC1:";;
    esac
   cat <<\_ACEOF
 
@@ -893,7 +893,7 @@
   --enable-useragent-log  Enable logging of User-Agent header
   --enable-referer-log    Enable logging of Referer header
   --disable-wccp          Disable Web Cache Coordination V1 Protocol
-  --enable-wccpv2          Enable Web Cache Coordination V2 Protocol
+  --disable-wccpv2        Disable Web Cache Coordination V2 Protocol
   --enable-kill-parent-hack
                           Kill parent on shutdown
   --enable-forward-log    Enable experimental forward_log directive
@@ -915,6 +915,7 @@
   --enable-err-languages=\"lang1 lang2..\"
                           Select languages to be installed. (All will be
                           installed by default)
+  --enable-coss-aio-ops   Enable COSS I/O with Posix AIO (default is aufs I/O)
   --enable-select         Enable select() support.
   --disable-select        Disable select() support.
   --enable-poll           Enable poll() instead of select().  Normally poll
@@ -927,6 +928,8 @@
                           epoll() is best where available, but must be
                           explicitly set at the moment.
   --disable-epoll          Disable the use of epoll().
+  --enable-kqueue         Enable kqueue support.
+  --disable-kqueue        Disable kqueue support.
   --disable-http-violations
                           This allows you to remove code which is known to
                           violate the HTTP protocol specification.
@@ -1157,7 +1160,7 @@
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-Squid Web Proxy configure 2.6.PRE2
+Squid Web Proxy configure 2.6.RC1
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1171,7 +1174,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Squid Web Proxy $as_me 2.6.PRE2, which was
+It was created by Squid Web Proxy $as_me 2.6.RC1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -1507,6 +1510,7 @@
 
 
 
+
           ac_config_headers="$ac_config_headers include/autoconf.h"
 
 ac_aux_dir=
@@ -1816,7 +1820,7 @@
 
 # Define the identity of the package.
  PACKAGE='squid'
- VERSION='2.6.PRE2'
+ VERSION='2.6.RC1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3689,6 +3693,7 @@
 
 fi;
 echo "Store modules built: $STORE_MODULES"
+NEED_DISKD=0
 STORE_OBJS="fs/lib`echo $STORE_MODULES|sed -e 's% %.a fs/lib%g'`.a"
 
 STORE_LIBS="`echo $STORE_OBJS|sed -e 's%fs/%%g'`"
@@ -3697,7 +3702,7 @@
 for fs in $STORE_MODULES none; do
     case "$fs" in
     diskd)
-        STORE_MODULE_SUBDIRS="$STORE_MODULE_SUBDIRS $fs"
+	NEED_DISKD=1
 	;;
     aufs)
 	if test -z "$with_pthreads"; then
@@ -3716,6 +3721,15 @@
 
 
 
+if test "$NEED_DISKD" = 1; then
+  NEED_DISKD_TRUE=
+  NEED_DISKD_FALSE='#'
+else
+  NEED_DISKD_TRUE='#'
+  NEED_DISKD_FALSE=
+fi
+
+
 # Check whether --enable-heap-replacement or --disable-heap-replacement was given.
 if test "${enable_heap_replacement+set}" = set; then
   enableval="$enable_heap_replacement"
@@ -3872,7 +3886,7 @@
   fi
 
 fi;
-if test USE_WCCP = 1; then
+if test $USE_WCCP = 1; then
 
 cat >>confdefs.h <<\_ACEOF
 #define USE_WCCP 1
@@ -3880,20 +3894,23 @@
 
 fi
 
+USE_WCCPv2=1
 # Check whether --enable-wccpv2 or --disable-wccpv2 was given.
 if test "${enable_wccpv2+set}" = set; then
   enableval="$enable_wccpv2"
-   if test "$enableval" = "yes" ; then
-    echo "Web Cache Coordination V2 Protocol enabled"
+   if test "$enableval" = "no" ; then
+    echo "Web Cache Coordination V2 Protocol disabled"
+    USE_WCCPv2=0
+  fi
+
+fi;
+if test $USE_WCCPv2 = 1; then
 
 cat >>confdefs.h <<\_ACEOF
 #define USE_WCCPv2 1
 _ACEOF
 
-  fi
-
-fi;
-
+fi
 
 
 # Check whether --enable-kill-parent-hack or --disable-kill-parent-hack was given.
@@ -4275,6 +4292,26 @@
 
 fi;
 
+# Check whether --enable-coss-aio-ops or --disable-coss-aio-ops was given.
+if test "${enable_coss_aio_ops+set}" = set; then
+  enableval="$enable_coss_aio_ops"
+
+fi;
+if test "$enable_coss_aio_ops" = "yes"; then
+      echo "Using Posix AIO method for COSS disk I/O"
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_AUFSOPS 0
+_ACEOF
+
+else
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_AUFSOPS 1
+_ACEOF
+
+fi
+
 # Check whether --enable-select or --disable-select was given.
 if test "${enable_select+set}" = set; then
   enableval="$enable_select"
@@ -4329,6 +4366,24 @@
 
 fi;
 
+# Check whether --enable-kqueue or --disable-kqueue was given.
+if test "${enable_kqueue+set}" = set; then
+  enableval="$enable_kqueue"
+
+  case "$enableval" in
+  yes)
+    echo "Forcing kqueue to be enabled"
+    SELECT_TYPE="kqueue"
+    ac_cv_func_kqueue='yes'
+    ;;
+  no)
+    echo "Forcing kqueue to be disabled"
+    ac_cv_func_kqueue='no'
+    ;;
+  esac
+
+fi;
+
 HTTP_VIOLATIONS=1
 # Check whether --enable-http-violations or --disable-http-violations was given.
 if test "${enable_http_violations+set}" = set; then
@@ -5598,6 +5653,9 @@
 #define PRINT_STACK_TRACE 1
 _ACEOF
 
+    if test "$GCC" = "yes"; then
+	LDFLAGS="$CFLAGS -rdynamic"
+    fi
   fi
 
 fi;
@@ -7023,6 +7081,8 @@
 
 
 
+
+
 for ac_header in sys/types.h \
 	stddef.h \
 	limits.h \
@@ -7076,6 +7136,7 @@
 	sys/msg.h \
 	sys/prctl.h \
 	sys/resource.h \
+	sys/poll.h \
 	sys/select.h \
 	sys/stat.h \
 	sys/statvfs.h \
@@ -7085,6 +7146,7 @@
 	sys/un.h \
 	sys/vfs.h \
 	sys/wait.h \
+	sys/event.h \
 	syslog.h \
 	time.h \
 	unistd.h \
@@ -14208,6 +14270,7 @@
 
 
 
+
 for ac_func in \
 	bcopy \
 	backtrace_symbols_fd \
@@ -14218,6 +14281,7 @@
 	getpass \
 	getrusage \
 	getspnam \
+	kqueue \
 	lrand48 \
 	mallinfo \
 	mallocblksize \
@@ -14542,13 +14606,21 @@
 	: # Nothing to do
 elif test "$ac_cv_func_epoll_ctl" = "yes" ; then
         SELECT_TYPE="epoll"
+elif test "$ac_cv_func_kqueue" = "yes" ; then
+        SELECT_TYPE="kqueue"
 elif test "$ac_cv_func_poll" = "yes" ; then
-
         SELECT_TYPE="poll"
 elif test "$ac_cv_func_select" = "yes" ; then
-        SELECT_TYPE="select"
+	case "$host_os" in
+	mingw|mingw32)
+	        SELECT_TYPE="select_win32"
+		;;
+	*)
+	        SELECT_TYPE="select"
+		;;
+	esac
 else
-        echo "Eep!  Can't find poll, epoll, or select!"
+        echo "Eep!  Can't find poll, epoll, kqueue or select!"
         echo "I'll try select and hope for the best."
         SELECT_TYPE="select"
 fi
@@ -14644,12 +14716,26 @@
 _ACEOF
 
 	;;
+select_win32)
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_SELECT_WIN32 1
+_ACEOF
+
+	;;
+kqueue)
+
+cat >>confdefs.h <<\_ACEOF
+#define USE_KQUEUE 1
+_ACEOF
+
+	;;
 *)
-	echo "ERROR: Unknown select loop type '$SELECT_TYPE'"
+	echo "ERROR: Unknown IO loop type '$SELECT_TYPE'"
 	exit 1
 esac
 
-echo "Using ${SELECT_TYPE} for select loop."
+echo "Using ${SELECT_TYPE} for the IO loop."
 
 
 if test $SELECT_TYPE = poll; then
@@ -14681,6 +14767,26 @@
 fi
 
 
+
+if test $SELECT_TYPE = select_win32; then
+  USE_SELECT_WIN32_TRUE=
+  USE_SELECT_WIN32_FALSE='#'
+else
+  USE_SELECT_WIN32_TRUE='#'
+  USE_SELECT_WIN32_FALSE=
+fi
+
+
+
+if test $SELECT_TYPE = kqueue; then
+  USE_KQUEUE_TRUE=
+  USE_KQUEUE_FALSE='#'
+else
+  USE_KQUEUE_TRUE='#'
+  USE_KQUEUE_FALSE=
+fi
+
+
 echo "$as_me:$LINENO: checking if setresuid is implemented" >&5
 echo $ECHO_N "checking if setresuid is implemented... $ECHO_C" >&6
 if test "${ac_cv_func_setresuid+set}" = set; then
@@ -16092,7 +16198,7 @@
 
 
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ac_config_files="$ac_config_files Makefile lib/Makefile scripts/Makefile scripts/RunCache scripts/RunAccel src/Makefile src/fs/Makefile src/repl/Makefile src/auth/Makefile contrib/Makefile snmplib/Makefile icons/Makefile errors/Makefile doc/Makefile helpers/Makefile helpers/basic_auth/Makefile helpers/basic_auth/LDAP/Makefile helpers/basic_auth/MSNT/Makefile helpers/basic_auth/NCSA/Makefile helpers/basic_auth/PAM/Makefile helpers/basic_auth/SMB/Makefile helpers/basic_auth/YP/Makefile helpers/basic_auth/getpwnam/Makefile helpers/basic_auth/mswin_sspi/Makefile helpers/basic_auth/multi-domain-NTLM/Makefile helpers/basic_auth/SASL/Makefile helpers/digest_auth/Makefile helpers/digest_auth/password/Makefile helpers/digest_auth/ldap/Makefile helpers/ntlm_auth/Makefile helpers/ntlm_auth/fakeauth/Makefile helpers/ntlm_auth/mswin_sspi/Makefile helpers/ntlm_auth/no_check/Makefile helpers/ntlm_auth/SMB/Makefile helpers/ntlm_auth/SMB/smbval/Makefile helpers/negotiate_auth/Makefile helpers/negotiate_auth/mswin_sspi/Makefile helpers/external_acl/Makefile helpers/external_acl/ip_user/Makefile helpers/external_acl/ldap_group/Makefile helpers/external_acl/mswin_lm_group/Makefile helpers/external_acl/session/Makefile helpers/external_acl/unix_group/Makefile helpers/external_acl/wbinfo_group/Makefile tools/Makefile"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        ac_config_files="$ac_config_files Makefile lib/Makefile scripts/Makefile scripts/RunCache src/Makefile src/fs/Makefile src/repl/Makefile src/auth/Makefile contrib/Makefile snmplib/Makefile icons/Makefile errors/Makefile doc/Makefile helpers/Makefile helpers/basic_auth/Makefile helpers/basic_auth/LDAP/Makefile helpers/basic_auth/MSNT/Makefile helpers/basic_auth/NCSA/Makefile helpers/basic_auth/PAM/Makefile helpers/basic_auth/SMB/Makefile helpers/basic_auth/YP/Makefile helpers/basic_auth/getpwnam/Makefile helpers/basic_auth/mswin_sspi/Makefile helpers/basic_auth/multi-domain-NTLM/Makefile helpers/basic_auth/SASL/Makefile helpers/digest_auth/Makefile helpers/digest_auth/password/Makefile helpers/digest_auth/ldap/Makefile helpers/ntlm_auth/Makefile helpers/ntlm_auth/fakeauth/Makefile helpers/ntlm_auth/mswin_sspi/Makefile helpers/ntlm_auth/no_check/Makefile helpers/ntlm_auth/SMB/Makefile helpers/ntlm_auth/SMB/smbval/Makefile helpers/negotiate_auth/Makefile helpers/negotiate_auth/mswin_sspi/Makefile helpers/external_acl/Makefile helpers/external_acl/ip_user/Makefile helpers/external_acl/ldap_group/Makefile helpers/external_acl/mswin_lm_group/Makefile helpers/external_acl/session/Makefile helpers/external_acl/unix_group/Makefile helpers/external_acl/wbinfo_group/Makefile tools/Makefile"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -16219,6 +16325,13 @@
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${NEED_DISKD_TRUE}" && test -z "${NEED_DISKD_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"NEED_DISKD\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"NEED_DISKD\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${ENABLE_PINGER_TRUE}" && test -z "${ENABLE_PINGER_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"ENABLE_PINGER\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -16366,6 +16479,20 @@
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${USE_SELECT_WIN32_TRUE}" && test -z "${USE_SELECT_WIN32_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"USE_SELECT_WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_SELECT_WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${USE_KQUEUE_TRUE}" && test -z "${USE_KQUEUE_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"USE_KQUEUE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"USE_KQUEUE\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${NEED_OWN_SNPRINTF_TRUE}" && test -z "${NEED_OWN_SNPRINTF_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"NEED_OWN_SNPRINTF\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -16665,7 +16792,7 @@
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by Squid Web Proxy $as_me 2.6.PRE2, which was
+This file was extended by Squid Web Proxy $as_me 2.6.RC1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -16728,7 +16855,7 @@
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-Squid Web Proxy config.status 2.6.PRE2
+Squid Web Proxy config.status 2.6.RC1
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -16842,7 +16969,6 @@
   "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
   "scripts/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
   "scripts/RunCache" ) CONFIG_FILES="$CONFIG_FILES scripts/RunCache" ;;
-  "scripts/RunAccel" ) CONFIG_FILES="$CONFIG_FILES scripts/RunAccel" ;;
   "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
   "src/fs/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/fs/Makefile" ;;
   "src/repl/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/repl/Makefile" ;;
@@ -17030,7 +17156,8 @@
 s,@STORE_OBJS@,$STORE_OBJS,;t t
 s,@STORE_LIBS@,$STORE_LIBS,;t t
 s,@STORE_MODULES@,$STORE_MODULES,;t t
-s,@STORE_MODULE_SUBDIRS@,$STORE_MODULE_SUBDIRS,;t t
+s,@NEED_DISKD_TRUE@,$NEED_DISKD_TRUE,;t t
+s,@NEED_DISKD_FALSE@,$NEED_DISKD_FALSE,;t t
 s,@REPL_POLICIES@,$REPL_POLICIES,;t t
 s,@REPL_OBJS@,$REPL_OBJS,;t t
 s,@REPL_LIBS@,$REPL_LIBS,;t t
@@ -17095,6 +17222,10 @@
 s,@USE_EPOLL_FALSE@,$USE_EPOLL_FALSE,;t t
 s,@USE_SELECT_TRUE@,$USE_SELECT_TRUE,;t t
 s,@USE_SELECT_FALSE@,$USE_SELECT_FALSE,;t t
+s,@USE_SELECT_WIN32_TRUE@,$USE_SELECT_WIN32_TRUE,;t t
+s,@USE_SELECT_WIN32_FALSE@,$USE_SELECT_WIN32_FALSE,;t t
+s,@USE_KQUEUE_TRUE@,$USE_KQUEUE_TRUE,;t t
+s,@USE_KQUEUE_FALSE@,$USE_KQUEUE_FALSE,;t t
 s,@NEED_OWN_SNPRINTF_TRUE@,$NEED_OWN_SNPRINTF_TRUE,;t t
 s,@NEED_OWN_SNPRINTF_FALSE@,$NEED_OWN_SNPRINTF_FALSE,;t t
 s,@NEED_OWN_STRSEP_TRUE@,$NEED_OWN_STRSEP_TRUE,;t t
diff -ruN squid-2.6.PRE2/configure.in squid-2.6.RC1/configure.in
--- squid-2.6.PRE2/configure.in	Tue Jun  6 11:46:18 2006
+++ squid-2.6.RC1/configure.in	Tue Jun 20 15:01:20 2006
@@ -1,17 +1,16 @@
 dnl
 dnl  Configuration input file for Squid
 dnl
-dnl  Duane Wessels, wessels@nlanr.net, February 1996 (autoconf v2.9)
+dnl  $Id: configure.in,v 1.377 2006/06/20 20:51:21 hno Exp $
 dnl
-dnl  $Id: configure.in,v 1.362 2006/06/06 08:20:55 hno Exp $
 dnl
 dnl
-dnl
-AC_INIT(Squid Web Proxy, 2.6.PRE2, http://www.squid-cache.org/bugs/, squid)
+AC_INIT(Squid Web Proxy, 2.6.RC1, http://www.squid-cache.org/bugs/, squid)
+AC_PREREQ(2.52)
 AM_CONFIG_HEADER(include/autoconf.h)
 AC_CONFIG_AUX_DIR(cfgaux)
 AM_INIT_AUTOMAKE
-AC_REVISION($Revision: 1.362 $)dnl
+AC_REVISION($Revision: 1.377 $)dnl
 AC_PREFIX_DEFAULT(/usr/local/squid)
 AM_MAINTAINER_MODE
 
@@ -394,17 +393,17 @@
   fi
 ])
 echo "Store modules built: $STORE_MODULES"
+NEED_DISKD=0
 STORE_OBJS="fs/lib`echo $STORE_MODULES|sed -e 's% %.a fs/lib%g'`.a"
 AC_SUBST(STORE_OBJS)
 STORE_LIBS="`echo $STORE_OBJS|sed -e 's%fs/%%g'`"
 AC_SUBST(STORE_LIBS)
-dnl remove all but diskd - its the only module that needs to recurse
-dnl into the sub directory
+dnl some store implementations need additional stuff built like diskd_daemon
 STORE_MODULE_SUBDIRS=
 for fs in $STORE_MODULES none; do
     case "$fs" in
     diskd)
-        STORE_MODULE_SUBDIRS="$STORE_MODULE_SUBDIRS $fs"
+	NEED_DISKD=1
 	;;
     aufs)
 	if test -z "$with_pthreads"; then
@@ -421,7 +420,7 @@
     esac
 done
 AC_SUBST(STORE_MODULES)
-AC_SUBST(STORE_MODULE_SUBDIRS)
+AM_CONDITIONAL([NEED_DISKD], [test "$NEED_DISKD" = 1])
 
 dnl --enable-heap-replacement compatibility option
 AC_ARG_ENABLE(heap-replacement,
@@ -538,18 +537,21 @@
     USE_WCCP=0
   fi
 ])      
-if test USE_WCCP = 1; then
+if test $USE_WCCP = 1; then
     AC_DEFINE(USE_WCCP, 1, [Define to enable WCCP])
 fi
 
+USE_WCCPv2=1
 AC_ARG_ENABLE(wccpv2,
-[  --enable-wccpv2          Enable Web Cache Coordination V2 Protocol],
-[ if test "$enableval" = "yes" ; then
-    echo "Web Cache Coordination V2 Protocol enabled"
-    AC_DEFINE(USE_WCCPv2, 1, [Define to enable WCCP V2])
+[  --disable-wccpv2        Disable Web Cache Coordination V2 Protocol],
+[ if test "$enableval" = "no" ; then
+    echo "Web Cache Coordination V2 Protocol disabled"
+    USE_WCCPv2=0
   fi
 ])
- 
+if test $USE_WCCPv2 = 1; then
+    AC_DEFINE(USE_WCCPv2, 1, [Define to enable WCCP V2])
+fi
 
 
 AC_ARG_ENABLE(kill-parent-hack,
@@ -790,6 +792,18 @@
    fi
 ])
 
+dnl COSS I/O method
+AC_ARG_ENABLE(coss-aio-ops,
+[  --enable-coss-aio-ops   Enable COSS I/O with Posix AIO (default is aufs I/O) ])
+if test "$enable_coss_aio_ops" = "yes"; then
+      echo "Using Posix AIO method for COSS disk I/O"
+      AC_DEFINE(USE_AUFSOPS, 0, [  Define this if you would like to use the aufs I/O method for
+           disk I/O instead of the POSIX AIO method.])
+else
+      AC_DEFINE(USE_AUFSOPS, 1, [  Define this if you would like to use the aufs I/O method for
+           disk I/O instead of the POSIX AIO method.])
+fi
+
 dnl Enable select()
 AC_ARG_ENABLE(select,
 [  --enable-select         Enable select() support.
@@ -851,6 +865,25 @@
   esac
 ])
 
+dnl Enable kqueue
+AC_ARG_ENABLE(kqueue,
+[  --enable-kqueue         Enable kqueue support.
+  --disable-kqueue        Disable kqueue support. ],
+
+[
+  case "$enableval" in
+  yes)
+    echo "Forcing kqueue to be enabled"
+    SELECT_TYPE="kqueue"
+    ac_cv_func_kqueue='yes'
+    ;;
+  no)
+    echo "Forcing kqueue to be disabled"
+    ac_cv_func_kqueue='no'
+    ;;
+  esac
+])
+
 dnl Disable HTTP violations
 HTTP_VIOLATIONS=1
 AC_ARG_ENABLE(http-violations,
@@ -1421,6 +1454,9 @@
 [ if test "$enableval" = "yes" ; then
     echo "Enabling automatic stack backtraces on fatal errors"
     AC_DEFINE(PRINT_STACK_TRACE, 1, [Print stacktraces on fatal errors])
+    if test "$GCC" = "yes"; then
+	LDFLAGS="$CFLAGS -rdynamic"
+    fi
   fi
 ])
 
@@ -1567,6 +1603,7 @@
 	sys/msg.h \
 	sys/prctl.h \
 	sys/resource.h \
+	sys/poll.h \
 	sys/select.h \
 	sys/stat.h \
 	sys/statvfs.h \
@@ -1576,6 +1613,7 @@
 	sys/un.h \
 	sys/vfs.h \
 	sys/wait.h \
+	sys/event.h \
 	syslog.h \
 	time.h \
 	unistd.h \
@@ -2190,6 +2228,7 @@
 	getpass \
 	getrusage \
 	getspnam \
+	kqueue \
 	lrand48 \
 	mallinfo \
 	mallocblksize \
@@ -2275,13 +2314,21 @@
 	: # Nothing to do
 elif test "$ac_cv_func_epoll_ctl" = "yes" ; then
         SELECT_TYPE="epoll"
+elif test "$ac_cv_func_kqueue" = "yes" ; then
+        SELECT_TYPE="kqueue"
 elif test "$ac_cv_func_poll" = "yes" ; then
-
         SELECT_TYPE="poll"
 elif test "$ac_cv_func_select" = "yes" ; then
-        SELECT_TYPE="select"
+	case "$host_os" in
+	mingw|mingw32)
+	        SELECT_TYPE="select_win32"
+		;;
+	*)
+	        SELECT_TYPE="select"
+		;;
+	esac
 else
-        echo "Eep!  Can't find poll, epoll, or select!"
+        echo "Eep!  Can't find poll, epoll, kqueue or select!"
         echo "I'll try select and hope for the best."
         SELECT_TYPE="select"
 fi
@@ -2298,15 +2345,23 @@
 select)
         AC_DEFINE(USE_SELECT,1,[Use select() for the IO loop])
 	;;
+select_win32)
+	AC_DEFINE(USE_SELECT_WIN32,1,[Use Winsock select() for the IO loop])
+	;;
+kqueue)
+        AC_DEFINE(USE_KQUEUE,1,[Use kqueue() for the IO loop])
+	;;
 *)
-	echo "ERROR: Unknown select loop type '$SELECT_TYPE'"
+	echo "ERROR: Unknown IO loop type '$SELECT_TYPE'"
 	exit 1
 esac
 
-echo "Using ${SELECT_TYPE} for select loop."
+echo "Using ${SELECT_TYPE} for the IO loop."
 AM_CONDITIONAL([USE_POLL], [test $SELECT_TYPE = poll])
 AM_CONDITIONAL([USE_EPOLL], [test $SELECT_TYPE = epoll])
 AM_CONDITIONAL([USE_SELECT], [test $SELECT_TYPE = select])
+AM_CONDITIONAL([USE_SELECT_WIN32], [test $SELECT_TYPE = select_win32])
+AM_CONDITIONAL([USE_KQUEUE], [test $SELECT_TYPE = kqueue])
 
 dnl Yay!  Another Linux brokenness.  Its not good enough
 dnl to know that setresuid() exists, because RedHat 5.0 declares
@@ -2941,19 +2996,11 @@
 dnl done
 
 
-dnl     src/fs/aufs/Makefile \
-dnl     src/fs/coss/Makefile \
-dnl     src/fs/diskd/Makefile \
-dnl     src/fs/null/Makefile \
-dnl     src/fs/ufs/Makefile \
-dnl     src/repl/heap/Makefile \
-dnl     src/repl/lru/Makefile \
 AC_OUTPUT([\
 	Makefile \
 	lib/Makefile \
 	scripts/Makefile \
 	scripts/RunCache \
-	scripts/RunAccel \
 	src/Makefile \
 	src/fs/Makefile \
 	src/repl/Makefile \
diff -ruN squid-2.6.PRE2/contrib/Makefile.in squid-2.6.RC1/contrib/Makefile.in
--- squid-2.6.PRE2/contrib/Makefile.in	Thu May 25 06:42:03 2006
+++ squid-2.6.RC1/contrib/Makefile.in	Mon Jun 12 00:09:42 2006
@@ -127,6 +127,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -159,7 +161,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -169,10 +170,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/doc/Makefile.in squid-2.6.RC1/doc/Makefile.in
--- squid-2.6.PRE2/doc/Makefile.in	Tue May 30 17:52:10 2006
+++ squid-2.6.RC1/doc/Makefile.in	Mon Jun 12 00:09:42 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.23 2006/05/30 23:52:10 hno Exp $
+#  $Id: Makefile.in,v 1.26 2006/06/12 06:09:42 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -134,6 +134,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -166,7 +168,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -176,10 +177,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/errors/Makefile.in squid-2.6.RC1/errors/Makefile.in
--- squid-2.6.PRE2/errors/Makefile.in	Thu May 25 06:42:03 2006
+++ squid-2.6.RC1/errors/Makefile.in	Mon Jun 12 00:09:43 2006
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-# $Id: Makefile.in,v 1.39 2006/05/25 12:42:03 hno Exp $
+# $Id: Makefile.in,v 1.42 2006/06/12 06:09:43 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -126,6 +126,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -158,7 +160,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -168,10 +169,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/Makefile.in squid-2.6.RC1/helpers/Makefile.in
--- squid-2.6.PRE2/helpers/Makefile.in	Thu May 25 06:42:05 2006
+++ squid-2.6.RC1/helpers/Makefile.in	Mon Jun 12 00:09:43 2006
@@ -131,6 +131,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -163,7 +165,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -173,10 +174,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/LDAP/Makefile.in squid-2.6.RC1/helpers/basic_auth/LDAP/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/LDAP/Makefile.in	Thu May 25 06:42:06 2006
+++ squid-2.6.RC1/helpers/basic_auth/LDAP/Makefile.in	Mon Jun 12 00:09:44 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.31 2006/05/25 12:42:06 hno Exp $
+#  $Id: Makefile.in,v 1.34 2006/06/12 06:09:44 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -153,6 +153,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -185,7 +187,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -195,10 +196,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/MSNT/Makefile.in squid-2.6.RC1/helpers/basic_auth/MSNT/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/MSNT/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/MSNT/Makefile.in	Mon Jun 12 00:09:45 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.34 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.37 2006/06/12 06:09:45 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -162,6 +162,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -194,7 +196,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -204,10 +205,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/Makefile.in squid-2.6.RC1/helpers/basic_auth/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/Makefile.in	Sat May 27 02:59:42 2006
+++ squid-2.6.RC1/helpers/basic_auth/Makefile.in	Mon Jun 12 00:09:43 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.30 2006/05/27 08:59:42 serassio Exp $
+#  $Id: Makefile.in,v 1.33 2006/06/12 06:09:43 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -135,6 +135,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -167,7 +169,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -177,10 +178,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/NCSA/Makefile.am squid-2.6.RC1/helpers/basic_auth/NCSA/Makefile.am
--- squid-2.6.PRE2/helpers/basic_auth/NCSA/Makefile.am	Tue May 17 10:56:23 2005
+++ squid-2.6.RC1/helpers/basic_auth/NCSA/Makefile.am	Thu Jun 15 13:30:37 2006
@@ -1,12 +1,12 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.am,v 1.3 2005/05/17 16:56:23 hno Exp $
+#  $Id: Makefile.am,v 1.4 2006/06/15 19:30:37 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
 
 libexec_PROGRAMS	= ncsa_auth
-ncsa_auth_SOURCES	= ncsa_auth.c
-LDADD			= -L$(top_builddir)/lib -lmiscutil $(CRYPTLIB) $(XTRA_LIBS)
+ncsa_auth_SOURCES	= ncsa_auth.c crypt_md5.c crypt_md5.h
+LDADD			= -L$(top_builddir)/lib -lmiscutil $(CRYPTLIB) $(XTRA_LIBS) $(SSLLIB)
 INCLUDES      = -I$(top_srcdir)/include
diff -ruN squid-2.6.PRE2/helpers/basic_auth/NCSA/Makefile.in squid-2.6.RC1/helpers/basic_auth/NCSA/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/NCSA/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/NCSA/Makefile.in	Thu Jun 15 18:12:33 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.29 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.33 2006/06/16 00:12:33 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -58,11 +58,12 @@
 am__installdirs = "$(DESTDIR)$(libexecdir)"
 libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(libexec_PROGRAMS)
-am_ncsa_auth_OBJECTS = ncsa_auth.$(OBJEXT)
+am_ncsa_auth_OBJECTS = ncsa_auth.$(OBJEXT) crypt_md5.$(OBJEXT)
 ncsa_auth_OBJECTS = $(am_ncsa_auth_OBJECTS)
 ncsa_auth_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
-ncsa_auth_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ncsa_auth_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/cfgaux/depcomp
 am__depfiles_maybe = depfiles
@@ -149,6 +150,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -181,7 +184,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -191,10 +193,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
@@ -239,8 +245,8 @@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-ncsa_auth_SOURCES = ncsa_auth.c
-LDADD = -L$(top_builddir)/lib -lmiscutil $(CRYPTLIB) $(XTRA_LIBS)
+ncsa_auth_SOURCES = ncsa_auth.c crypt_md5.c crypt_md5.h
+LDADD = -L$(top_builddir)/lib -lmiscutil $(CRYPTLIB) $(XTRA_LIBS) $(SSLLIB)
 INCLUDES = -I$(top_srcdir)/include
 all: all-am
 
@@ -308,6 +314,7 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crypt_md5.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ncsa_auth.Po@am__quote@
 
 .c.o:
diff -ruN squid-2.6.PRE2/helpers/basic_auth/NCSA/crypt_md5.c squid-2.6.RC1/helpers/basic_auth/NCSA/crypt_md5.c
--- squid-2.6.PRE2/helpers/basic_auth/NCSA/crypt_md5.c	Wed Dec 31 17:00:00 1969
+++ squid-2.6.RC1/helpers/basic_auth/NCSA/crypt_md5.c	Thu Jun 15 13:30:37 2006
@@ -0,0 +1,168 @@
+/*
+ * Shamelessly stolen from linux-pam, and adopted to work with
+ * OpenSSL md5 implementation and any magic string
+ *
+ * Origin2: md5_crypt.c,v 1.1.1.1 2000/01/03 17:34:46 gafton Exp
+ *
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * <phk@login.dknet.dk> wrote this file.  As long as you retain this notice you
+ * can do whatever you want with this stuff. If we meet some day, and you think
+ * this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
+ * ----------------------------------------------------------------------------
+ *
+ * Origin: Id: crypt.c,v 1.3 1995/05/30 05:42:22 rgrimes Exp
+ *
+ */
+
+#include <string.h>
+#include "config.h"
+#include "md5.h"
+
+#include "crypt_md5.h"
+
+static unsigned char itoa64[] =	/* 0 ... 63 => ascii - 64 */
+    "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+static void md5to64(char *s, unsigned long v, int n)
+{
+    while (--n >= 0) {
+	*s++ = itoa64[v & 0x3f];
+	v >>= 6;
+    }
+}
+
+/*
+ * MD5 hash a password
+ *
+ * Use MD5 for what it is best at...
+ *
+ * If salt begins with $ then it is assumed to be on the form
+ *   $magic$salt$...
+ * If not the normal UNIX magic $1$ is used.
+ */
+
+char *crypt_md5(const char *pw, const char *salt)
+{
+    const char *magic = "$1$";
+    int magiclen = 3;
+    static char passwd[120], *p;
+    static const char *sp, *ep;
+    unsigned char final[16];
+    int sl, pl, i, j;
+    MD5_CTX ctx, ctx1;
+    unsigned long l;
+
+    if (*salt == '$') {
+	magic = salt++;
+	while(*salt && *salt != '$')
+	    salt++;
+	if (*salt == '$') {
+	    salt++;
+	    magiclen = salt - magic;
+	} else {
+	    salt = magic;
+	    magic = "$1$";
+	}
+    }
+
+    /* Refine the Salt first */
+    sp = salt;
+
+    /* It stops at the first '$', max 8 chars */
+    for (ep = sp; *ep && *ep != '$' && ep < (sp + 8); ep++)
+	continue;
+
+    /* get the length of the true salt */
+    sl = ep - sp;
+
+    MD5Init(&ctx);
+
+    /* The password first, since that is what is most unknown */
+    MD5Update(&ctx, (unsigned const char *) pw, strlen(pw));
+
+    /* Then our magic string */
+    MD5Update(&ctx, (unsigned const char *) magic, magiclen);
+
+    /* Then the raw salt */
+    MD5Update(&ctx, (unsigned const char *) sp, sl);
+
+    /* Then just as many characters of the MD5(pw,salt,pw) */
+    MD5Init(&ctx1);
+    MD5Update(&ctx1, (unsigned const char *) pw, strlen(pw));
+    MD5Update(&ctx1, (unsigned const char *) sp, sl);
+    MD5Update(&ctx1, (unsigned const char *) pw, strlen(pw));
+    MD5Final(final, &ctx1);
+    for (pl = strlen(pw); pl > 0; pl -= 16)
+	MD5Update(&ctx, (unsigned const char *) final, pl > 16 ? 16 : pl);
+
+    /* Don't leave anything around in vm they could use. */
+    memset(final, 0, sizeof final);
+
+    /* Then something really weird... */
+    for (j = 0, i = strlen(pw); i; i >>= 1)
+	if (i & 1)
+	    MD5Update(&ctx, (unsigned const char *) final + j, 1);
+	else
+	    MD5Update(&ctx, (unsigned const char *) pw + j, 1);
+
+    /* Now make the output string */
+    memset(passwd, 0, sizeof(passwd));
+    strncat(passwd, magic, magiclen);
+    strncat(passwd, sp, sl);
+    strcat(passwd, "$");
+
+    MD5Final(final, &ctx);
+
+    /*
+     * and now, just to make sure things don't run too fast
+     * On a 60 Mhz Pentium this takes 34 msec, so you would
+     * need 30 seconds to build a 1000 entry dictionary...
+     */
+    for (i = 0; i < 1000; i++) {
+	MD5Init(&ctx1);
+	if (i & 1)
+	    MD5Update(&ctx1, (unsigned const char *) pw, strlen(pw));
+	else
+	    MD5Update(&ctx1, (unsigned const char *) final, 16);
+
+	if (i % 3)
+	    MD5Update(&ctx1, (unsigned const char *) sp, sl);
+
+	if (i % 7)
+	    MD5Update(&ctx1, (unsigned const char *) pw, strlen(pw));
+
+	if (i & 1)
+	    MD5Update(&ctx1, (unsigned const char *) final, 16);
+	else
+	    MD5Update(&ctx1, (unsigned const char *) pw, strlen(pw));
+	MD5Final(final, &ctx1);
+    }
+
+    p = passwd + strlen(passwd);
+
+    l = (final[0] << 16) | (final[6] << 8) | final[12];
+    md5to64(p, l, 4);
+    p += 4;
+    l = (final[1] << 16) | (final[7] << 8) | final[13];
+    md5to64(p, l, 4);
+    p += 4;
+    l = (final[2] << 16) | (final[8] << 8) | final[14];
+    md5to64(p, l, 4);
+    p += 4;
+    l = (final[3] << 16) | (final[9] << 8) | final[15];
+    md5to64(p, l, 4);
+    p += 4;
+    l = (final[4] << 16) | (final[10] << 8) | final[5];
+    md5to64(p, l, 4);
+    p += 4;
+    l = final[11];
+    md5to64(p, l, 2);
+    p += 2;
+    *p = '\0';
+
+    /* Don't leave anything around in vm they could use. */
+    memset(final, 0, sizeof final);
+
+    return passwd;
+}
diff -ruN squid-2.6.PRE2/helpers/basic_auth/NCSA/crypt_md5.h squid-2.6.RC1/helpers/basic_auth/NCSA/crypt_md5.h
--- squid-2.6.PRE2/helpers/basic_auth/NCSA/crypt_md5.h	Wed Dec 31 17:00:00 1969
+++ squid-2.6.RC1/helpers/basic_auth/NCSA/crypt_md5.h	Thu Jun 15 13:30:37 2006
@@ -0,0 +1,15 @@
+/*
+ * Creates a MD5 based hash of a password
+ *
+ * To validate a entered password, use the previously calculated
+ * password hash as salt, and then compare the result. If identical
+ * then the password matches.
+ *
+ * While encoding a password the salt should be 8 randomly selected
+ * characters from the base64 alphabet, for example generated as follows:
+ *    char salt[9];
+ *    to64(salt, rand(), 4);
+ *    to64(salt+4, rand(), 4);
+ *    salt[0] = '\0';
+ */
+char *crypt_md5(const char *pw, const char *salt);
diff -ruN squid-2.6.PRE2/helpers/basic_auth/NCSA/ncsa_auth.c squid-2.6.RC1/helpers/basic_auth/NCSA/ncsa_auth.c
--- squid-2.6.PRE2/helpers/basic_auth/NCSA/ncsa_auth.c	Sun May 21 18:37:23 2006
+++ squid-2.6.RC1/helpers/basic_auth/NCSA/ncsa_auth.c	Thu Jun 15 13:30:37 2006
@@ -42,6 +42,7 @@
 
 #include "util.h"
 #include "hash.h"
+#include "crypt_md5.h"
 
 static hash_table *hash = NULL;
 static HASHFREE my_free;
@@ -126,22 +127,25 @@
 		change_time = sb.st_mtime;
 	    }
 	}
-	user = buf;
-	passwd = strchr(buf, ' ');
-	if (!passwd) {
+	if ((user = strtok(buf, " ")) == NULL) {
+	    printf("ERR\n");
+	    continue;
+	}
+	if ((passwd = strtok(NULL, "")) == NULL) {
 	    printf("ERR\n");
 	    continue;
 	}
-	*passwd++ = '\0';
 	rfc1738_unescape(user);
 	rfc1738_unescape(passwd);
-	u = hash_lookup(hash, user);
+	u = (user_data *)hash_lookup(hash, user);
 	if (u == NULL) {
 	    printf("ERR No such user\n");
-	} else if (strcmp(u->passwd, (char *) crypt(passwd, u->passwd))) {
-	    printf("ERR Wrong password\n");
-	} else {
+	} else if (strcmp(u->passwd, (char *) crypt(passwd, u->passwd)) == 0) {
+	    printf("OK\n");
+	} else if (strcmp(u->passwd, (char *) crypt_md5(passwd, u->passwd)) == 0) {
 	    printf("OK\n");
+	} else {
+	    printf("ERR Wrong password\n");
 	}
     }
     exit(0);
diff -ruN squid-2.6.PRE2/helpers/basic_auth/PAM/Makefile.in squid-2.6.RC1/helpers/basic_auth/PAM/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/PAM/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/PAM/Makefile.in	Mon Jun 12 00:09:47 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid PAM authentication helper
 #
-#  $Id: Makefile.in,v 1.30 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.33 2006/06/12 06:09:47 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -152,6 +152,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -184,7 +186,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -194,10 +195,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/SASL/Makefile.in squid-2.6.RC1/helpers/basic_auth/SASL/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/SASL/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/SASL/Makefile.in	Mon Jun 12 00:09:48 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid SASL authentication helper
 #
-#  $Id: Makefile.in,v 1.27 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.30 2006/06/12 06:09:48 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -149,6 +149,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -181,7 +183,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -191,10 +192,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/SMB/Makefile.in squid-2.6.RC1/helpers/basic_auth/SMB/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/SMB/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/SMB/Makefile.in	Mon Jun 12 00:09:48 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.30 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.33 2006/06/12 06:09:48 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -158,6 +158,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -190,7 +192,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -200,10 +201,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/YP/Makefile.in squid-2.6.RC1/helpers/basic_auth/YP/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/YP/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/YP/Makefile.in	Mon Jun 12 00:09:50 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.31 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.34 2006/06/12 06:09:50 hno Exp $
 #
 #
 
@@ -148,6 +148,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -180,7 +182,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -190,10 +191,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/getpwnam/Makefile.in squid-2.6.RC1/helpers/basic_auth/getpwnam/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/getpwnam/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/getpwnam/Makefile.in	Mon Jun 12 00:09:51 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.29 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.32 2006/06/12 06:09:51 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -150,6 +150,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -182,7 +184,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -192,10 +193,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/mswin_sspi/Makefile.in squid-2.6.RC1/helpers/basic_auth/mswin_sspi/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/mswin_sspi/Makefile.in	Sat May 27 03:21:38 2006
+++ squid-2.6.RC1/helpers/basic_auth/mswin_sspi/Makefile.in	Mon Jun 12 00:09:53 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.3 2006/05/27 09:21:38 serassio Exp $
+#  $Id: Makefile.in,v 1.6 2006/06/12 06:09:53 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -149,6 +149,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -181,7 +183,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -191,10 +192,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/basic_auth/multi-domain-NTLM/Makefile.in squid-2.6.RC1/helpers/basic_auth/multi-domain-NTLM/Makefile.in
--- squid-2.6.PRE2/helpers/basic_auth/multi-domain-NTLM/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/basic_auth/multi-domain-NTLM/Makefile.in	Mon Jun 12 00:09:53 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.27 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.30 2006/06/12 06:09:53 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -134,6 +134,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -166,7 +168,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -176,10 +177,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/digest_auth/Makefile.in squid-2.6.RC1/helpers/digest_auth/Makefile.in
--- squid-2.6.PRE2/helpers/digest_auth/Makefile.in	Thu May 25 06:42:07 2006
+++ squid-2.6.RC1/helpers/digest_auth/Makefile.in	Mon Jun 12 00:09:53 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for digest auth helpers in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.27 2006/05/25 12:42:07 hno Exp $
+#  $Id: Makefile.in,v 1.30 2006/06/12 06:09:53 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -135,6 +135,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -167,7 +169,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -177,10 +178,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/digest_auth/ldap/Makefile.in squid-2.6.RC1/helpers/digest_auth/ldap/Makefile.in
--- squid-2.6.PRE2/helpers/digest_auth/ldap/Makefile.in	Thu May 25 06:42:08 2006
+++ squid-2.6.RC1/helpers/digest_auth/ldap/Makefile.in	Mon Jun 12 00:09:53 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.8 2006/05/25 12:42:08 hno Exp $
+#  $Id: Makefile.in,v 1.11 2006/06/12 06:09:53 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -152,6 +152,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -184,7 +186,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -194,10 +195,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/digest_auth/password/Makefile.in squid-2.6.RC1/helpers/digest_auth/password/Makefile.in
--- squid-2.6.PRE2/helpers/digest_auth/password/Makefile.in	Thu May 25 06:42:09 2006
+++ squid-2.6.RC1/helpers/digest_auth/password/Makefile.in	Mon Jun 12 00:09:55 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.29 2006/05/25 12:42:09 hno Exp $
+#  $Id: Makefile.in,v 1.32 2006/06/12 06:09:55 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -151,6 +151,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -183,7 +185,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -193,10 +194,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/Makefile.in squid-2.6.RC1/helpers/external_acl/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/helpers/external_acl/Makefile.in	Mon Jun 12 00:09:55 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.17 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.20 2006/06/12 06:09:55 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -135,6 +135,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -167,7 +169,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -177,10 +178,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/ip_user/Makefile.in squid-2.6.RC1/helpers/external_acl/ip_user/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/ip_user/Makefile.in	Thu May 25 06:42:10 2006
+++ squid-2.6.RC1/helpers/external_acl/ip_user/Makefile.in	Mon Jun 12 00:09:55 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the ip_user external_acl helper by Rodrigo Campos
 #
-#  $Id: Makefile.in,v 1.16 2006/05/25 12:42:10 hno Exp $
+#  $Id: Makefile.in,v 1.19 2006/06/12 06:09:55 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -149,6 +149,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -181,7 +183,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -191,10 +192,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/ldap_group/Makefile.in squid-2.6.RC1/helpers/external_acl/ldap_group/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/ldap_group/Makefile.in	Thu May 25 06:42:12 2006
+++ squid-2.6.RC1/helpers/external_acl/ldap_group/Makefile.in	Mon Jun 12 00:09:59 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.17 2006/05/25 12:42:12 hno Exp $
+#  $Id: Makefile.in,v 1.20 2006/06/12 06:09:59 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -154,6 +154,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -186,7 +188,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -196,10 +197,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/mswin_lm_group/Makefile.in squid-2.6.RC1/helpers/external_acl/mswin_lm_group/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/mswin_lm_group/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/helpers/external_acl/mswin_lm_group/Makefile.in	Mon Jun 12 00:09:59 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.2 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.5 2006/06/12 06:09:59 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -149,6 +149,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -181,7 +183,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -191,10 +192,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/session/Makefile.in squid-2.6.RC1/helpers/external_acl/session/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/session/Makefile.in	Thu May 25 06:42:12 2006
+++ squid-2.6.RC1/helpers/external_acl/session/Makefile.in	Mon Jun 12 00:10:00 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.3 2006/05/25 12:42:12 hno Exp $
+#  $Id: Makefile.in,v 1.6 2006/06/12 06:10:00 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -152,6 +152,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -184,7 +186,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -194,10 +195,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/unix_group/Makefile.in squid-2.6.RC1/helpers/external_acl/unix_group/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/unix_group/Makefile.in	Thu May 25 06:42:14 2006
+++ squid-2.6.RC1/helpers/external_acl/unix_group/Makefile.in	Mon Jun 12 00:10:01 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.16 2006/05/25 12:42:14 hno Exp $
+#  $Id: Makefile.in,v 1.19 2006/06/12 06:10:01 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -151,6 +151,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -183,7 +185,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -193,10 +194,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/external_acl/wbinfo_group/Makefile.in squid-2.6.RC1/helpers/external_acl/wbinfo_group/Makefile.in
--- squid-2.6.PRE2/helpers/external_acl/wbinfo_group/Makefile.in	Thu May 25 06:42:15 2006
+++ squid-2.6.RC1/helpers/external_acl/wbinfo_group/Makefile.in	Mon Jun 12 00:10:04 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid LDAP authentication helper
 #
-#  $Id: Makefile.in,v 1.15 2006/05/25 12:42:15 hno Exp $
+#  $Id: Makefile.in,v 1.18 2006/06/12 06:10:04 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -134,6 +134,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -166,7 +168,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -176,10 +177,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/negotiate_auth/Makefile.in squid-2.6.RC1/helpers/negotiate_auth/Makefile.in
--- squid-2.6.PRE2/helpers/negotiate_auth/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/helpers/negotiate_auth/Makefile.in	Mon Jun 12 00:10:04 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.4 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.7 2006/06/12 06:10:04 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -135,6 +135,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -167,7 +169,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -177,10 +178,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/negotiate_auth/mswin_sspi/Makefile.in squid-2.6.RC1/helpers/negotiate_auth/mswin_sspi/Makefile.in
--- squid-2.6.PRE2/helpers/negotiate_auth/mswin_sspi/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/helpers/negotiate_auth/mswin_sspi/Makefile.in	Mon Jun 12 00:10:06 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.2 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.5 2006/06/12 06:10:06 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -148,6 +148,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -180,7 +182,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -190,10 +191,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/Makefile.in squid-2.6.RC1/helpers/ntlm_auth/Makefile.in
--- squid-2.6.PRE2/helpers/ntlm_auth/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/helpers/ntlm_auth/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.30 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.33 2006/06/12 06:10:08 hno Exp $
 #
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -135,6 +135,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -167,7 +169,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -177,10 +178,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/SMB/Makefile.in squid-2.6.RC1/helpers/ntlm_auth/SMB/Makefile.in
--- squid-2.6.PRE2/helpers/ntlm_auth/SMB/Makefile.in	Thu May 25 06:42:19 2006
+++ squid-2.6.RC1/helpers/ntlm_auth/SMB/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.29 2006/05/25 12:42:19 hno Exp $
+#  $Id: Makefile.in,v 1.32 2006/06/12 06:10:08 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -155,6 +155,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -187,7 +189,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -197,10 +198,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/SMB/smbval/Makefile.in squid-2.6.RC1/helpers/ntlm_auth/SMB/smbval/Makefile.in
--- squid-2.6.PRE2/helpers/ntlm_auth/SMB/smbval/Makefile.in	Thu May 25 06:42:20 2006
+++ squid-2.6.RC1/helpers/ntlm_auth/SMB/smbval/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -143,6 +143,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -175,7 +177,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -185,10 +186,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/fakeauth/Makefile.in squid-2.6.RC1/helpers/ntlm_auth/fakeauth/Makefile.in
--- squid-2.6.PRE2/helpers/ntlm_auth/fakeauth/Makefile.in	Thu May 25 06:42:20 2006
+++ squid-2.6.RC1/helpers/ntlm_auth/fakeauth/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.28 2006/05/25 12:42:20 hno Exp $
+#  $Id: Makefile.in,v 1.31 2006/06/12 06:10:08 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -150,6 +150,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -182,7 +184,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -192,10 +193,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/mswin_sspi/Makefile.in squid-2.6.RC1/helpers/ntlm_auth/mswin_sspi/Makefile.in
--- squid-2.6.PRE2/helpers/ntlm_auth/mswin_sspi/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/helpers/ntlm_auth/mswin_sspi/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.2 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.5 2006/06/12 06:10:08 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -147,6 +147,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -179,7 +181,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -189,10 +190,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/no_check/Makefile.in squid-2.6.RC1/helpers/ntlm_auth/no_check/Makefile.in
--- squid-2.6.PRE2/helpers/ntlm_auth/no_check/Makefile.in	Thu May 25 06:42:21 2006
+++ squid-2.6.RC1/helpers/ntlm_auth/no_check/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.30 2006/05/25 12:42:21 hno Exp $
+#  $Id: Makefile.in,v 1.33 2006/06/12 06:10:08 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -134,6 +134,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -166,7 +168,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -176,10 +177,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/helpers/ntlm_auth/no_check/no_check.pl squid-2.6.RC1/helpers/ntlm_auth/no_check/no_check.pl
--- squid-2.6.PRE2/helpers/ntlm_auth/no_check/no_check.pl	Fri Aug 31 05:19:28 2001
+++ squid-2.6.RC1/helpers/ntlm_auth/no_check/no_check.pl	Sun Jun 11 06:52:42 2006
@@ -15,7 +15,7 @@
 
 while(<STDIN>) {
 	chop;
-	if ($_ eq "YR") {
+	if (substr($_, 2) eq "YR") {
 		print "TT ".encode_base64(&make_ntlm_static_challenge);
 		next;
 	}
diff -ruN squid-2.6.PRE2/icons/Makefile.in squid-2.6.RC1/icons/Makefile.in
--- squid-2.6.PRE2/icons/Makefile.in	Thu May 25 06:42:23 2006
+++ squid-2.6.RC1/icons/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -14,7 +14,7 @@
 
 @SET_MAKE@
 
-# $Id: Makefile.in,v 1.40 2006/05/25 12:42:23 hno Exp $
+# $Id: Makefile.in,v 1.43 2006/06/12 06:10:08 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -135,6 +135,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -167,7 +169,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -177,10 +178,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/include/autoconf.h.in squid-2.6.RC1/include/autoconf.h.in
--- squid-2.6.PRE2/include/autoconf.h.in	Sat Jun  3 21:01:40 2006
+++ squid-2.6.RC1/include/autoconf.h.in	Sun Jun 11 15:00:26 2006
@@ -182,6 +182,9 @@
 /* Define to 1 if you have the <ip_nat.h> header file. */
 #undef HAVE_IP_NAT_H
 
+/* Define to 1 if you have the `kqueue' function. */
+#undef HAVE_KQUEUE
+
 /* Define to 1 if you have the `aio' library (-laio). */
 #undef HAVE_LIBAIO
 
@@ -494,6 +497,9 @@
    */
 #undef HAVE_SYS_DIR_H
 
+/* Define to 1 if you have the <sys/event.h> header file. */
+#undef HAVE_SYS_EVENT_H
+
 /* Define to 1 if you have the <sys/file.h> header file. */
 #undef HAVE_SYS_FILE_H
 
@@ -513,6 +519,9 @@
 /* Define to 1 if you have the <sys/param.h> header file. */
 #undef HAVE_SYS_PARAM_H
 
+/* Define to 1 if you have the <sys/poll.h> header file. */
+#undef HAVE_SYS_POLL_H
+
 /* Define to 1 if you have the <sys/prctl.h> header file. */
 #undef HAVE_SYS_PRCTL_H
 
@@ -730,6 +739,10 @@
    BSD derviations (e.g. FreeBSD, ?). */
 #undef USE_ARP_ACL
 
+/* Define this if you would like to use the aufs I/O method for disk I/O
+   instead of the POSIX AIO method. */
+#undef USE_AUFSOPS
+
 /* Use Cache Digests for locating objects in neighbor caches. This code is
    still semi-experimental. */
 #undef USE_CACHE_DIGESTS
@@ -761,6 +774,9 @@
 /* Compile in support for Ident (RFC 931) lookups? Enabled by default. */
 #undef USE_IDENT
 
+/* Use kqueue() for the IO loop */
+#undef USE_KQUEUE
+
 /* Enable code for assiting in finding memory leaks. Hacker stuff only. */
 #undef USE_LEAKFINDER
 
@@ -778,6 +794,9 @@
 
 /* Use select() for the IO loop */
 #undef USE_SELECT
+
+/* Use Winsock select() for the IO loop */
+#undef USE_SELECT_WIN32
 
 /* Define this to include code for SSL encryption. */
 #undef USE_SSL
diff -ruN squid-2.6.PRE2/include/version.h squid-2.6.RC1/include/version.h
--- squid-2.6.PRE2/include/version.h	Tue Jun  6 11:46:18 2006
+++ squid-2.6.RC1/include/version.h	Tue Jun 20 15:01:20 2006
@@ -9,5 +9,5 @@
  */
 
 #ifndef SQUID_RELEASE_TIME
-#define SQUID_RELEASE_TIME 1149615975
+#define SQUID_RELEASE_TIME 1150837278
 #endif
diff -ruN squid-2.6.PRE2/lib/Makefile.in squid-2.6.RC1/lib/Makefile.in
--- squid-2.6.PRE2/lib/Makefile.in	Sat May 27 02:59:45 2006
+++ squid-2.6.RC1/lib/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -15,7 +15,7 @@
 @SET_MAKE@
 
 #
-#  $Id: Makefile.in,v 1.79 2006/05/27 08:59:45 serassio Exp $
+#  $Id: Makefile.in,v 1.82 2006/06/12 06:10:08 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -178,6 +178,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -210,7 +212,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -220,10 +221,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/scripts/Makefile.am squid-2.6.RC1/scripts/Makefile.am
--- squid-2.6.PRE2/scripts/Makefile.am	Fri Aug 31 05:19:11 2001
+++ squid-2.6.RC1/scripts/Makefile.am	Sat Jun 10 15:21:39 2006
@@ -4,7 +4,7 @@
 #
 
 
-bin_SCRIPTS = RunCache RunAccel
+bin_SCRIPTS = RunCache
 EXTRA_DIST	= AnnounceCache.pl access-log-matrix.pl cache-compare.pl \
 		cachetrace.pl check_cache.pl convert.configure.to.os2 \
 		fileno-to-pathname.pl flag_truncs.pl icp-test.pl \
diff -ruN squid-2.6.PRE2/scripts/Makefile.in squid-2.6.RC1/scripts/Makefile.in
--- squid-2.6.PRE2/scripts/Makefile.in	Thu May 25 06:42:23 2006
+++ squid-2.6.RC1/scripts/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -43,7 +43,7 @@
 host_triplet = @host@
 subdir = scripts
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/RunAccel.in $(srcdir)/RunCache.in
+	$(srcdir)/RunCache.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
 	$(top_srcdir)/configure.in
@@ -51,7 +51,7 @@
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/cfgaux/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/include/autoconf.h
-CONFIG_CLEAN_FILES = RunCache RunAccel
+CONFIG_CLEAN_FILES = RunCache
 am__installdirs = "$(DESTDIR)$(bindir)"
 binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
 SCRIPTS = $(bin_SCRIPTS)
@@ -132,6 +132,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -164,7 +166,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -174,10 +175,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
@@ -222,7 +227,7 @@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
-bin_SCRIPTS = RunCache RunAccel
+bin_SCRIPTS = RunCache
 EXTRA_DIST = AnnounceCache.pl access-log-matrix.pl cache-compare.pl \
 		cachetrace.pl check_cache.pl convert.configure.to.os2 \
 		fileno-to-pathname.pl flag_truncs.pl icp-test.pl \
@@ -261,8 +266,6 @@
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 RunCache: $(top_builddir)/config.status $(srcdir)/RunCache.in
-	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
-RunAccel: $(top_builddir)/config.status $(srcdir)/RunAccel.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 install-binSCRIPTS: $(bin_SCRIPTS)
 	@$(NORMAL_INSTALL)
diff -ruN squid-2.6.PRE2/scripts/RunAccel.in squid-2.6.RC1/scripts/RunAccel.in
--- squid-2.6.PRE2/scripts/RunAccel.in	Tue May 17 10:56:36 2005
+++ squid-2.6.RC1/scripts/RunAccel.in	Wed Dec 31 17:00:00 1969
@@ -1,36 +0,0 @@
-#!/bin/sh
-#
-#  $Id: RunAccel.in,v 1.7 2005/05/17 16:56:36 hno Exp $
-
-# enable HTTP requests on port 80
-port="-a 80"
-
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-logdir=@localstatedir@
-PATH=@sbindir@:/bin:/usr/bin
-export PATH
-
-if test $# = 1 ; then
-	conf="-f $1"
-	shift
-fi
-
-failcount=0
-while : ; do
-	echo "Running: squid $port -s $conf >> $logdir/squid.out 2>&1"
-	start=`date '+%d%H%M%S'`
-	squid -N $port -s $conf >> $logdir/squid.out 2>&1
-	stop=`date '+%d%H%M%S'`
-	t=`expr $stop - $start`
-	if test 0 -le $t -a $t -lt 5 ; then
-		failcount=`expr $failcount + 1`
-	else
-		failcount=0
-	fi
-	if test $failcount -gt 5 ; then
-              echo "RunCache: EXITING DUE TO REPEATED, FREQUENT FAILURES" >&2
-		exit 1
-	fi
-	sleep 10
-done
diff -ruN squid-2.6.PRE2/snmplib/Makefile.in squid-2.6.RC1/snmplib/Makefile.in
--- squid-2.6.PRE2/snmplib/Makefile.in	Thu May 25 06:42:23 2006
+++ squid-2.6.RC1/snmplib/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -141,6 +141,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -173,7 +175,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -183,10 +184,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = 3.4
diff -ruN squid-2.6.PRE2/src/HttpMsg.c squid-2.6.RC1/src/HttpMsg.c
--- squid-2.6.PRE2/src/HttpMsg.c	Tue May 17 10:56:37 2005
+++ squid-2.6.RC1/src/HttpMsg.c	Tue Jun 13 08:12:17 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: HttpMsg.c,v 1.11 2005/05/17 16:56:37 hno Exp $
+ * $Id: HttpMsg.c,v 1.12 2006/06/13 14:12:17 hno Exp $
  *
  * DEBUG: section 74    HTTP Message
  * AUTHOR: Alex Rousskov
@@ -91,13 +91,15 @@
 int
 httpMsgIsPersistent(http_version_t http_ver, const HttpHeader * hdr)
 {
+    if (httpHeaderHasConnDir(hdr, "close"))
+	return 0;
 #if WHEN_SQUID_IS_HTTP1_1
     if ((http_ver.major >= 1) && (http_ver.minor >= 1)) {
 	/*
 	 * for modern versions of HTTP: persistent unless there is
 	 * a "Connection: close" header.
 	 */
-	return !httpHeaderHasConnDir(hdr, "close");
+	return 1;
     } else {
 #else
     {
diff -ruN squid-2.6.PRE2/src/HttpReply.c squid-2.6.RC1/src/HttpReply.c
--- squid-2.6.PRE2/src/HttpReply.c	Mon Jun  5 16:01:22 2006
+++ squid-2.6.RC1/src/HttpReply.c	Sat Jun 10 18:28:19 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: HttpReply.c,v 1.55 2006/06/05 22:01:22 hno Exp $
+ * $Id: HttpReply.c,v 1.56 2006/06/11 00:28:19 hno Exp $
  *
  * DEBUG: section 58    HTTP Reply (Response)
  * AUTHOR: Alex Rousskov
@@ -196,7 +196,7 @@
     packerToStoreInit(&p, e);
     httpReplyPackInto(e->mem_obj->reply, &p);
     packerClean(&p);
-    rep->hdr_sz = e->mem_obj->inmem_hi;
+    rep->hdr_sz = e->mem_obj->inmem_hi - rep->body.mb.size;
 }
 
 #if UNUSED_CODE
diff -ruN squid-2.6.PRE2/src/Makefile.am squid-2.6.RC1/src/Makefile.am
--- squid-2.6.PRE2/src/Makefile.am	Fri Jun  2 06:05:33 2006
+++ squid-2.6.RC1/src/Makefile.am	Sun Jun 11 11:06:25 2006
@@ -1,7 +1,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.am,v 1.47 2006/06/02 12:05:33 serassio Exp $
+#  $Id: Makefile.am,v 1.51 2006/06/11 17:06:25 serassio Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -71,6 +71,12 @@
 if USE_SELECT
 COMMLOOP_SOURCE = comm_select.c
 endif
+if USE_SELECT_WIN32
+COMMLOOP_SOURCE = comm_select_win32.c
+endif
+if USE_KQUEUE
+COMMLOOP_SOURCE = comm_kqueue.c
+endif
 
 SUBDIRS		= fs repl auth
 
@@ -112,6 +118,9 @@
 	comm_epoll.c \
 	comm_poll.c \
 	comm_select.c \
+	comm_select_win32.c \
+	comm_kqueue.c \
+	comm_generic.c \
 	win32.c
 
 squid_SOURCES = \
@@ -298,7 +307,7 @@
 DEFAULT_SWAP_DIR        = $(localstatedir)/cache
 DEFAULT_PINGER		= $(libexecdir)/`echo pinger | sed '$(transform);s/$$/$(EXEEXT)/'`
 DEFAULT_UNLINKD		= $(libexecdir)/`echo unlinkd | sed '$(transform);s/$$/$(EXEEXT)/'`
-DEFAULT_DISKD		= $(libexecdir)/`echo diskd | sed '$(transform);s/$$/$(EXEEXT)/'`
+DEFAULT_DISKD		= $(libexecdir)/`echo diskd_daemon | sed '$(transform);s/$$/$(EXEEXT)/'`
 DEFAULT_ICON_DIR	= $(datadir)/icons
 DEFAULT_ERROR_DIR	= $(datadir)/errors/@ERR_DEFAULT_LANGUAGE@
 DEFAULT_MIB_PATH	= $(datadir)/mib.txt
diff -ruN squid-2.6.PRE2/src/Makefile.in squid-2.6.RC1/src/Makefile.in
--- squid-2.6.PRE2/src/Makefile.in	Fri Jun  2 06:09:55 2006
+++ squid-2.6.RC1/src/Makefile.in	Mon Jun 12 00:10:08 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.267 2006/06/02 12:09:55 serassio Exp $
+#  $Id: Makefile.in,v 1.272 2006/06/12 06:10:08 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -83,27 +83,30 @@
 pinger_DEPENDENCIES =
 am__squid_SOURCES_DIST = access_log.c acl.c asn.c authenticate.c \
 	cache_cf.c CacheDigest.c cache_manager.c carp.c cbdata.c \
-	client_db.c client_side.c comm.c comm_epoll.c comm_poll.c \
-	comm_select.c debug.c defines.h delay_pools.c disk.c \
-	dns_internal.c dns.c enums.h errorpage.c event.c errormap.c \
-	external_acl.c fd.c filemap.c forward.c fqdncache.c ftp.c \
-	globals.h gopher.c helper.c htcp.c http.c HttpStatusLine.c \
-	HttpHdrCc.c HttpHdrRange.c HttpHdrContRange.c HttpHeader.c \
-	HttpHeaderTools.c HttpBody.c HttpMsg.c HttpReply.c \
-	HttpRequest.c icmp.c icp_v2.c icp_v3.c ident.c internal.c \
-	ipc.c ipcache.c leakfinder.c locrewrite.c logfile.c main.c \
-	mem.c MemPool.c MemBuf.c mime.c multicast.c neighbors.c \
-	net_db.c Packer.c pconn.c peer_digest.c peer_monitor.c \
-	peer_select.c peer_sourcehash.c peer_userhash.c protos.h \
-	redirect.c referer.c refresh.c send-announce.c snmp_core.c \
-	snmp_agent.c squid.h ssl.c ssl_support.c stat.c StatHist.c \
-	String.c stmem.c store.c store_io.c store_client.c \
+	client_db.c client_side.c comm.c comm_epoll.c comm_kqueue.c \
+	comm_poll.c comm_select.c comm_select_win32.c debug.c \
+	defines.h delay_pools.c disk.c dns_internal.c dns.c enums.h \
+	errorpage.c event.c errormap.c external_acl.c fd.c filemap.c \
+	forward.c fqdncache.c ftp.c globals.h gopher.c helper.c htcp.c \
+	http.c HttpStatusLine.c HttpHdrCc.c HttpHdrRange.c \
+	HttpHdrContRange.c HttpHeader.c HttpHeaderTools.c HttpBody.c \
+	HttpMsg.c HttpReply.c HttpRequest.c icmp.c icp_v2.c icp_v3.c \
+	ident.c internal.c ipc.c ipcache.c leakfinder.c locrewrite.c \
+	logfile.c main.c mem.c MemPool.c MemBuf.c mime.c multicast.c \
+	neighbors.c net_db.c Packer.c pconn.c peer_digest.c \
+	peer_monitor.c peer_select.c peer_sourcehash.c peer_userhash.c \
+	protos.h redirect.c referer.c refresh.c send-announce.c \
+	snmp_core.c snmp_agent.c squid.h ssl.c ssl_support.c stat.c \
+	StatHist.c String.c stmem.c store.c store_io.c store_client.c \
 	store_digest.c store_dir.c store_key_md5.c store_log.c \
 	store_rebuild.c store_swapin.c store_swapmeta.c \
 	store_swapout.c structs.h tools.c typedefs.h unlinkd.c url.c \
 	urn.c useragent.c wais.c wccp.c wccp2.c whois.c win32.c
-@USE_EPOLL_FALSE@@USE_POLL_FALSE@@USE_SELECT_TRUE@am__objects_1 = comm_select.$(OBJEXT)
-@USE_EPOLL_FALSE@@USE_POLL_TRUE@am__objects_1 = comm_poll.$(OBJEXT)
+@USE_EPOLL_FALSE@@USE_KQUEUE_FALSE@@USE_POLL_FALSE@@USE_SELECT_FALSE@@USE_SELECT_WIN32_TRUE@am__objects_1 = comm_select_win32.$(OBJEXT)
+@USE_EPOLL_FALSE@@USE_KQUEUE_FALSE@@USE_POLL_FALSE@@USE_SELECT_TRUE@am__objects_1 = comm_select.$(OBJEXT)
+@USE_EPOLL_FALSE@@USE_KQUEUE_FALSE@@USE_POLL_TRUE@am__objects_1 = comm_poll.$(OBJEXT)
+@USE_EPOLL_FALSE@@USE_KQUEUE_TRUE@am__objects_1 =  \
+@USE_EPOLL_FALSE@@USE_KQUEUE_TRUE@	comm_kqueue.$(OBJEXT)
 @USE_EPOLL_TRUE@am__objects_1 = comm_epoll.$(OBJEXT)
 @USE_DELAY_POOLS_TRUE@am__objects_2 = delay_pools.$(OBJEXT)
 @USE_DNSSERVER_FALSE@am__objects_3 = dns_internal.$(OBJEXT)
@@ -265,6 +268,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -297,7 +302,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -307,10 +311,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
@@ -377,8 +385,10 @@
 @ENABLE_WIN32SPECIFIC_FALSE@WIN32SOURCE = 
 @ENABLE_WIN32SPECIFIC_TRUE@WIN32SOURCE = win32.c
 @USE_EPOLL_TRUE@COMMLOOP_SOURCE = comm_epoll.c
+@USE_KQUEUE_TRUE@COMMLOOP_SOURCE = comm_kqueue.c
 @USE_POLL_TRUE@COMMLOOP_SOURCE = comm_poll.c
 @USE_SELECT_TRUE@COMMLOOP_SOURCE = comm_select.c
+@USE_SELECT_WIN32_TRUE@COMMLOOP_SOURCE = comm_select_win32.c
 SUBDIRS = fs repl auth
 INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
 cf_gen_SOURCES = cf_gen.c defines.h debug.c
@@ -399,6 +409,9 @@
 	comm_epoll.c \
 	comm_poll.c \
 	comm_select.c \
+	comm_select_win32.c \
+	comm_kqueue.c \
+	comm_generic.c \
 	win32.c
 
 squid_SOURCES = \
@@ -581,7 +594,7 @@
 DEFAULT_SWAP_DIR = $(localstatedir)/cache
 DEFAULT_PINGER = $(libexecdir)/`echo pinger | sed '$(transform);s/$$/$(EXEEXT)/'`
 DEFAULT_UNLINKD = $(libexecdir)/`echo unlinkd | sed '$(transform);s/$$/$(EXEEXT)/'`
-DEFAULT_DISKD = $(libexecdir)/`echo diskd | sed '$(transform);s/$$/$(EXEEXT)/'`
+DEFAULT_DISKD = $(libexecdir)/`echo diskd_daemon | sed '$(transform);s/$$/$(EXEEXT)/'`
 DEFAULT_ICON_DIR = $(datadir)/icons
 DEFAULT_ERROR_DIR = $(datadir)/errors/@ERR_DEFAULT_LANGUAGE@
 DEFAULT_MIB_PATH = $(datadir)/mib.txt
@@ -730,8 +743,11 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client_side.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm_epoll.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm_generic.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm_kqueue.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm_poll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm_select.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/comm_select_win32.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delay_pools.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/disk.Po@am__quote@
diff -ruN squid-2.6.PRE2/src/acl.c squid-2.6.RC1/src/acl.c
--- squid-2.6.PRE2/src/acl.c	Sat Jun  3 20:27:54 2006
+++ squid-2.6.RC1/src/acl.c	Sat Jun 17 17:31:03 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: acl.c,v 1.302 2006/06/04 02:27:54 hno Exp $
+ * $Id: acl.c,v 1.303 2006/06/17 23:31:03 hno Exp $
  *
  * DEBUG: section 28    Access Control
  * AUTHOR: Duane Wessels
@@ -375,6 +375,8 @@
     while ((t = strtokFile())) {
 	q = memAllocate(MEM_INTLIST);
 	q->i = (int) urlParseMethod(t);
+	if (q->i == METHOD_NONE)
+	    self_destruct();
 	*(Tail) = q;
 	Tail = &q->next;
     }
diff -ruN squid-2.6.PRE2/src/auth/Makefile.in squid-2.6.RC1/src/auth/Makefile.in
--- squid-2.6.PRE2/src/auth/Makefile.in	Fri Jun  2 15:35:38 2006
+++ squid-2.6.RC1/src/auth/Makefile.in	Mon Jun 12 00:10:12 2006
@@ -153,6 +153,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -185,7 +187,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -195,10 +196,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
@@ -246,7 +251,7 @@
 
 #  Makefile for authentication modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.29 2006/06/02 21:35:38 hno Exp $
+#  $Id: Makefile.in,v 1.32 2006/06/12 06:10:12 hno Exp $
 #
 AUTOMAKE_OPTIONS = subdir-objects
 EXTRA_LIBRARIES = libbasic.a libdigest.a libntlm.a libnegotiate.a
diff -ruN squid-2.6.PRE2/src/auth/ntlm/auth_ntlm.c squid-2.6.RC1/src/auth/ntlm/auth_ntlm.c
--- squid-2.6.PRE2/src/auth/ntlm/auth_ntlm.c	Sun May 28 09:55:48 2006
+++ squid-2.6.RC1/src/auth/ntlm/auth_ntlm.c	Thu Jun 15 16:13:33 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: auth_ntlm.c,v 1.30 2006/05/28 15:55:48 serassio Exp $
+ * $Id: auth_ntlm.c,v 1.32 2006/06/15 22:13:33 hno Exp $
  *
  * DEBUG: section 29    NTLM Authenticator
  * AUTHOR: Robert Collins
@@ -102,12 +102,10 @@
 	helperStatefulFree(ntlmauthenticators);
     ntlmauthenticators = NULL;
     if (ntlm_request_pool) {
-	assert(memPoolInUseCount(ntlm_request_pool) == 0);
 	memPoolDestroy(ntlm_request_pool);
 	ntlm_request_pool = NULL;
     }
     if (ntlm_user_pool) {
-	assert(memPoolInUseCount(ntlm_user_pool) == 0);
 	memPoolDestroy(ntlm_user_pool);
 	ntlm_user_pool = NULL;
     }
@@ -140,7 +138,6 @@
     storeAppendPrintf(entry, "\n");
     storeAppendPrintf(entry, "%s %s children %d\n", name, "ntlm", config->authenticateChildren);
     storeAppendPrintf(entry, "%s %s keep_alive %s\n", name, "ntlm", config->keep_alive ? "on" : "off");
-    storeAppendPrintf(entry, "%s %s use_ntlm_negotiate %s\n", name, "ntlm", config->use_ntlm_negotiate ? "on" : "off");
 }
 
 static void
@@ -165,8 +162,6 @@
 	parse_int(&ntlmConfig->authenticateChildren);
     } else if (strcasecmp(param_str, "keep_alive") == 0) {
 	parse_onoff(&ntlmConfig->keep_alive);
-    } else if (strcasecmp(param_str, "use_ntlm_negotiate") == 0) {
-	parse_onoff(&ntlmConfig->use_ntlm_negotiate);
     } else {
 	debug(28, 0) ("unrecognised ntlm auth scheme parameter '%s'\n", param_str);
     }
@@ -519,10 +514,7 @@
     r->auth_user_request = auth_user_request;
     authenticateAuthUserRequestLock(r->auth_user_request);
     if (ntlm_request->auth_state == AUTHENTICATE_STATE_INITIAL) {
-	if (ntlmConfig->use_ntlm_negotiate)
-	    snprintf(buf, 8192, "YR %s\n", sent_string);
-	else
-	    snprintf(buf, 8192, "YR\n");
+	snprintf(buf, 8192, "YR %s\n", sent_string);
     } else {
 	snprintf(buf, 8192, "KK %s\n", sent_string);
     }
diff -ruN squid-2.6.PRE2/src/auth/ntlm/auth_ntlm.h squid-2.6.RC1/src/auth/ntlm/auth_ntlm.h
--- squid-2.6.PRE2/src/auth/ntlm/auth_ntlm.h	Mon May 15 16:06:49 2006
+++ squid-2.6.RC1/src/auth/ntlm/auth_ntlm.h	Sat Jun 10 18:27:36 2006
@@ -48,7 +48,6 @@
 struct _auth_ntlm_config {
     int authenticateChildren;
     int keep_alive;
-    int use_ntlm_negotiate;
     wordlist *authenticate;
 };
 
diff -ruN squid-2.6.PRE2/src/cache_cf.c squid-2.6.RC1/src/cache_cf.c
--- squid-2.6.PRE2/src/cache_cf.c	Tue Jun  6 00:37:41 2006
+++ squid-2.6.RC1/src/cache_cf.c	Sat Jun 17 17:29:41 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: cache_cf.c,v 1.442 2006/06/06 06:37:41 hno Exp $
+ * $Id: cache_cf.c,v 1.444 2006/06/17 23:29:41 hno Exp $
  *
  * DEBUG: section 3     Configuration File Parsing
  * AUTHOR: Harvest Derived
@@ -520,7 +520,6 @@
 		Config.effectiveGroup);
 	Config2.effectiveGroupID = grp->gr_gid;
     }
-    urlExtMethodConfigure();
     if (0 == Config.onoff.client_db) {
 	acl *a;
 	for (a = Config.aclList; a; a = a->next) {
@@ -2068,6 +2067,12 @@
 	    storeAppendPrintf(entry, " reload-into-ims");
 	if (head->flags.ignore_reload)
 	    storeAppendPrintf(entry, " ignore-reload");
+	if (head->flags.ignore_no_cache)
+	    storeAppendPrintf(entry, " ignore-no-cache");
+	if (head->flags.ignore_private)
+	    storeAppendPrintf(entry, " ignore-private");
+	if (head->flags.ignore_auth)
+	    storeAppendPrintf(entry, " ignore-auth");
 #endif
 	storeAppendPrintf(entry, "\n");
 	head = head->next;
@@ -2087,6 +2092,9 @@
     int override_lastmod = 0;
     int reload_into_ims = 0;
     int ignore_reload = 0;
+    int ignore_no_cache = 0;
+    int ignore_private = 0;
+    int ignore_auth = 0;
 #endif
     int i;
     refresh_t *t;
@@ -2118,6 +2126,12 @@
 	    override_expire = 1;
 	else if (!strcmp(token, "override-lastmod"))
 	    override_lastmod = 1;
+	else if (!strcmp(token, "ignore-no-cache"))
+	    ignore_no_cache = 1;
+	else if (!strcmp(token, "ignore-private"))
+	    ignore_private = 1;
+	else if (!strcmp(token, "ignore-auth"))
+	    ignore_auth = 1;
 	else if (!strcmp(token, "reload-into-ims")) {
 	    reload_into_ims = 1;
 	    refresh_nocache_hack = 1;
@@ -2159,6 +2173,12 @@
 	t->flags.reload_into_ims = 1;
     if (ignore_reload)
 	t->flags.ignore_reload = 1;
+    if (ignore_no_cache)
+	t->flags.ignore_no_cache = 1;
+    if (ignore_private)
+	t->flags.ignore_private = 1;
+    if (ignore_auth)
+	t->flags.ignore_auth = 1;
 #endif
     t->next = NULL;
     while (*head)
@@ -2694,6 +2714,7 @@
 free_generic_http_port_data(http_port_list * s)
 {
     safe_free(s->name);
+    safe_free(s->protocol);
     safe_free(s->defaultsite);
 }
 
@@ -2778,6 +2799,9 @@
     free_generic_http_port_data(&s->http);
     safe_free(s->cert);
     safe_free(s->key);
+    if (s->sslContext)
+	SSL_CTX_free(s->sslContext);
+    s->sslContext = NULL;
 }
 
 static void
@@ -2900,6 +2924,11 @@
 configFreeMemory(void)
 {
     free_all();
+#if USE_SSL
+    if (Config.ssl_client.sslContext)
+	SSL_CTX_free(Config.ssl_client.sslContext);
+    Config.ssl_client.sslContext = NULL;
+#endif
 }
 
 void
diff -ruN squid-2.6.PRE2/src/cf.data.pre squid-2.6.RC1/src/cf.data.pre
--- squid-2.6.PRE2/src/cf.data.pre	Tue Jun  6 00:37:41 2006
+++ squid-2.6.RC1/src/cf.data.pre	Sat Jun 17 17:31:03 2006
@@ -1,6 +1,6 @@
 
 #
-# $Id: cf.data.pre,v 1.336 2006/06/06 06:37:41 hno Exp $
+# $Id: cf.data.pre,v 1.345 2006/06/17 23:31:03 hno Exp $
 #
 #
 # SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -806,10 +806,27 @@
 DEFAULT: on
 LOC: Config.onoff.cache_vary
 DOC_START
-	A list of ACL elements which, if matched, cause the replies with
-	varying entities (Vary header) to not be cached.
+	Set to off to disable caching of Vary:in objects.
 DOC_END
 
+NAME: broken_vary_encoding
+TYPE: acl_access
+DEFAULT: none
+LOC: Config.accessList.vary_encoding
+DOC_START
+	Many servers have broken support for on-the-fly Content-Encoding,
+	returning the same ETag on both plain and gzip:ed variants.
+	Vary replies matching this access list will have the cache split
+	on the Accept-Encoding header of the request and not trusting the
+	ETag to be unique.
+
+NOCOMMENT_START
+# Apache mod_gzip and mod_deflate known to be broken so don't trust
+# Apache to signal ETag correctly on such responses
+acl Apache rep_header Server ^Apache
+broken_vary_encoding allow apache
+NOCOMMENT_END
+DOC_END
 
 COMMENT_START
  OPTIONS WHICH AFFECT THE CACHE SIZE
@@ -1919,22 +1936,6 @@
 	authenticator processes.
 	auth_param ntlm children 5
 
-	"use_ntlm_negotiate" on|off
-	Enables support for NTLM NEGOTIATE packet exchanges with the helper.
-	The configured ntlm authenticator must be able to handle NTLM
-	NEGOTIATE packet. See the authenticator programs documentation if
-	unsure. ntlm_auth from Samba-3.0.2 or later supports the use of this
-	option.
-	The NEGOTIATE packet is required to support NTLMv2 and a
-	number of other negotiable NTLMSSP options, and also makes it
-	more likely the negotiation is successful. Enabling this parameter
-	will also solve problems encountered when NT domain policies
-	restrict users to access only certain workstations. When this is off,
-	all users must be allowed to log on the proxy servers too, or they'll
-	get "invalid workstation" errors - and access denied - when trying to
-	use Squid's services.
-	auth_param ntlm use_ntlm_negotiate on
-
 	"keep_alive" on|off
 	This option enables the use of keep-alive on the initial
 	authentication request. It has been reported some versions of MSIE
@@ -2199,6 +2200,9 @@
 		 override-lastmod
 		 reload-into-ims
 		 ignore-reload
+		 ignore-no-cache
+		 ignore-private
+		 ignore-auth
 
 		override-expire enforces min age even if the server
 		sent a Expires: header. Doing this VIOLATES the HTTP
@@ -2218,6 +2222,23 @@
 		this feature could make you liable for problems which
 		it causes.
 
+ 		ignore-no-cache ignores any ``Pragma: no-cache'' and
+		``Cache-control: no-cache'' headers received from a server.
+		The HTTP RFC never allows the use of this (Pragma) header 
+		from a server, only a client, though plenty of servers 
+		send it anyway.
+		
+ 		ignore-private ignores any ``Cache-control: private'' 
+ 		headers received from a server. Doing this VIOLATES 
+		the HTTP standard. Enabling this feature could make you 
+		liable for problems which it causes.
+		
+ 		ignore-auth caches responses to requests with authorization,
+		irrespective of ``Cache-control'' headers received from 
+		a server. Doing this VIOLATES the HTTP standard. Enabling
+		this feature could make you liable for problems which
+		it causes.
+		
 	Basically a cached object is:
 
 		FRESH if expires < now, else STALE
@@ -4124,6 +4145,13 @@
 DOC_START
 	Use this option to define your WCCP ``home'' router for
 	Squid.
+
+	wccp_router supports a single WCCP(v1) router
+
+	wccp2_router supports multiple WCCPv2 routers
+
+	only one of the two may be used at the same time and defines
+	which version of WCCP to use.
 DOC_END
 
 NAME: wccp_version
@@ -4132,10 +4160,16 @@
 DEFAULT: 4
 IFDEF: USE_WCCP
 DOC_START
+	This directive is only relevant if you need to set up WCCP(v1)
+	to some very old and end-of-life Cisco routers. In all other
+	setups it must be left unset or at the default setting.
+	It defines an internal version in the WCCP(v1) protocol,
+	with version 4 being the officially documented protocol.
+
 	According to some users, Cisco IOS 11.2 and earlier only
 	support WCCP version 3.  If you're using that or an earlier
-	version of IOS, change this value to 3, otherwise do not specify
-	this parameter.
+	version of IOS, you may need to change this value to 3, otherwise
+	do not specify this parameter.
 DOC_END
 
 NAME: wccp2_forwarding_method
@@ -4180,6 +4214,7 @@
 TYPE: wccp2_service
 LOC: Config.Wccp2.info
 DEFAULT: none
+DEFAULT_IF_NONE: standard 0
 IFDEF: USE_WCCPv2
 DOC_START
 	WCCP2 allows for multiple traffic services. There are two
@@ -4798,8 +4833,8 @@
 DOC_END
 
 NAME: extension_methods
-TYPE: wordlist
-LOC: Config.ext_methods
+TYPE: extension_method
+LOC: RequestMethodStr
 DEFAULT: none
 DOC_START
 	Squid only knows about standardized HTTP request methods.
diff -ruN squid-2.6.PRE2/src/client_side.c squid-2.6.RC1/src/client_side.c
--- squid-2.6.PRE2/src/client_side.c	Mon Jun  5 23:57:55 2006
+++ squid-2.6.RC1/src/client_side.c	Tue Jun 20 14:43:27 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: client_side.c,v 1.646 2006/06/06 05:57:55 hno Exp $
+ * $Id: client_side.c,v 1.648 2006/06/20 20:43:27 hno Exp $
  *
  * DEBUG: section 33    Client-side Routines
  * AUTHOR: Duane Wessels
@@ -679,7 +679,11 @@
     if (mem->reply) {
 	const char *etag = httpHeaderGetStr(&mem->reply->header, HDR_ETAG);
 	if (etag) {
-	    storeAddVary(mem->url, mem->log_url, mem->method, NULL, httpHeaderGetStr(&mem->reply->header, HDR_ETAG), request->vary_hdr, request->vary_headers);
+	    if (request->vary && request->vary->broken_encoding && strBuf(request->vary_encoding)) {
+		request->vary_encoding = httpHeaderGetStrOrList(&request->header, HDR_CONTENT_ENCODING);
+		strCat(request->vary_encoding, "");
+	    }
+	    storeAddVary(mem->url, mem->log_url, mem->method, NULL, httpHeaderGetStr(&mem->reply->header, HDR_ETAG), request->vary_hdr, request->vary_headers, strBuf(request->vary_encoding));
 	}
     }
     request->done_etag = 1;
@@ -792,7 +796,6 @@
     int hit = 0;
     const char *etag;
     debug(33, 3) ("clientProcessExpired: '%s'\n", http->uri);
-    assert(http->entry->lastmod >= 0);
     /*
      * check if we are allowed to contact other servers
      * @?@: Instead of a 504 (Gateway Timeout) reply, we may want to return 
@@ -842,7 +845,12 @@
     /* delay_id is already set on original store client */
     delaySetStoreClient(http->sc, delayClient(http));
 #endif
-    http->request->lastmod = http->old_entry->lastmod;
+    if (http->old_entry->lastmod > 0)
+	http->request->lastmod = http->old_entry->lastmod;
+    else if (http->old_entry->mem_obj && http->old_entry->mem_obj->reply)
+	http->request->lastmod = http->old_entry->mem_obj->reply->date;
+    else
+	http->request->lastmod = -1;
     debug(33, 5) ("clientProcessExpired: lastmod %ld\n", (long int) entry->lastmod);
     http->entry = entry;
     http->out.offset = 0;
@@ -1468,9 +1476,9 @@
 	HttpHeaderPos pos = HttpHeaderInitPos;
 	HttpHeaderEntry *e;
 	request->flags.auth = 1;
-	while ((e = httpHeaderGetEntry(req_hdr, &pos))) {
-	    if (e->id == HDR_AUTHORIZATION || e->id == HDR_PROXY_AUTHORIZATION) {
-		if (!request->flags.no_connection_auth) {
+	if (!request->flags.no_connection_auth) {
+	    while ((e = httpHeaderGetEntry(req_hdr, &pos))) {
+		if (e->id == HDR_AUTHORIZATION || e->id == HDR_PROXY_AUTHORIZATION) {
 		    const char *value = strBuf(e->value);
 		    if (strncasecmp(value, "NTLM ", 5) == 0
 			||
@@ -1482,8 +1490,6 @@
 			/* the pinned connection is set below */
 			break;
 		    }
-		} else {
-		    httpHeaderDelAt(req_hdr, pos);
 		}
 	    }
 	}
@@ -1907,7 +1913,9 @@
 		    if (request->flags.no_connection_auth) {
 			httpHeaderDelAt(hdr, pos);
 			continue;
-		    } else if (!request->flags.accelerated) {
+		    }
+		    request->flags.must_keepalive = 1;
+		    if (!request->flags.accelerated) {
 			httpHeaderPutStr(hdr, HDR_PROXY_SUPPORT, "Session-Based-Authentication");
 			httpHeaderPutStr(hdr, HDR_CONNECTION, "Proxy-support");
 		    }
@@ -1916,6 +1924,32 @@
 	    }
 	}
     }
+    /* Filter unproxyable authentication types */
+    if (http->log_type != LOG_TCP_DENIED &&
+	(httpHeaderHas(hdr, HDR_PROXY_AUTHENTICATE))) {
+	HttpHeaderPos pos = HttpHeaderInitPos;
+	HttpHeaderEntry *e;
+	while ((e = httpHeaderGetEntry(hdr, &pos))) {
+	    if (e->id == HDR_PROXY_AUTHENTICATE) {
+		const char *value = strBuf(e->value);
+		if ((strncasecmp(value, "NTLM", 4) == 0 &&
+			(value[4] == '\0' || value[4] == ' '))
+		    ||
+		    (strncasecmp(value, "Negotiate", 9) == 0 &&
+			(value[9] == '\0' || value[9] == ' '))
+		    ||
+		    (strncasecmp(value, "Kerberos", 8) == 0 &&
+			(value[8] == '\0' || value[8] == ' '))) {
+		    if (request->flags.no_connection_auth) {
+			httpHeaderDelAt(hdr, pos);
+			continue;
+		    }
+		    request->flags.must_keepalive = 1;
+		    break;
+		}
+	    }
+	}
+    }
     /* Handle authentication headers */
     if (request->auth_user_request)
 	authenticateFixHeader(rep, request->auth_user_request, request, http->flags.accel, 0);
@@ -2114,7 +2148,7 @@
 	     * rely on the http structure for this...
 	     */
 	    http->sc = NULL;
-	    storeLocateVary(e, e->mem_obj->reply->hdr_sz, r->vary_headers, clientProcessVary, http);
+	    storeLocateVary(e, e->mem_obj->reply->hdr_sz, r->vary_headers, httpHeaderGetStrOrList(&r->header, HDR_ACCEPT_ENCODING), clientProcessVary, http);
 	    storeClientUnregister(sc, e, http);
 	    storeUnlockObject(e);
 	    /* Note: varyEvalyateMatch updates the request with vary information
@@ -2197,6 +2231,7 @@
 	 * both have a stale version of the object.
 	 */
 	r->flags.need_validation = 1;
+#if 0
 	if (e->lastmod < 0) {
 	    /*
 	     * Previous reply didn't have a Last-Modified header,
@@ -2204,7 +2239,9 @@
 	     */
 	    http->log_type = LOG_TCP_MISS;
 	    clientProcessMiss(http);
-	} else if (r->flags.nocache) {
+	} else
+#endif
+	if (r->flags.nocache) {
 	    /*
 	     * This did not match a refresh pattern that overrides no-cache
 	     * we should honour the client no-cache header.
diff -ruN squid-2.6.PRE2/src/comm.c squid-2.6.RC1/src/comm.c
--- squid-2.6.PRE2/src/comm.c	Mon May 29 10:32:39 2006
+++ squid-2.6.RC1/src/comm.c	Sun Jun 11 11:06:25 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: comm.c,v 1.347 2006/05/29 16:32:39 hno Exp $
+ * $Id: comm.c,v 1.351 2006/06/11 17:06:25 serassio Exp $
  *
  * DEBUG: section 5     Socket Functions
  * AUTHOR: Harvest Derived
@@ -214,7 +214,10 @@
     if ((flags & COMM_REUSEADDR))
 	commSetReuseAddr(new_socket);
     if (port > (u_short) 0) {
-	commSetNoLinger(new_socket);
+#ifdef _SQUID_MSWIN_
+	if (sock_type != SOCK_DGRAM)
+#endif
+	    commSetNoLinger(new_socket);
 	if (opt_reuseaddr)
 	    commSetReuseAddr(new_socket);
     }
@@ -341,6 +344,13 @@
 	    fdAdjustReserved();
 	return 0;
     }
+    /* We are about to close the fd (dup2 over it). Unregister from the event loop */
+    commSetEvents(cs->fd, 0, 0);
+#ifdef _SQUID_MSWIN_
+    /* On Windows dup2() can't work correctly on Sockets, the          */
+    /* workaround is to close the destination Socket before call them. */
+    close(cs->fd);
+#endif
     if (dup2(fd2, cs->fd) < 0) {
 	debug(5, 0) ("commResetFD: dup2: %s\n", xstrerror());
 	if (ENFILE == errno || EMFILE == errno)
@@ -375,10 +385,8 @@
 	commSetTcpNoDelay(cs->fd);
 #endif
 
-    /* If we are using epoll(), we need to notify the kernel about the new
-     * fd instance
-     */
-    commUpdateEvents(cs->fd, 1);
+    /* Register the new FD with the event loop */
+    commUpdateEvents(cs->fd);
     if (Config.tcpRcvBufsz > 0)
 	commSetTcpRcvbuf(cs->fd, Config.tcpRcvBufsz);
     return 1;
@@ -779,16 +787,16 @@
 }
 
 void
-commUpdateEvents(int fd, int force)
+commUpdateEvents(int fd)
 {
     fde *F = &fd_table[fd];
     int need_read = 0;
     int need_write = 0;
 
+    assert(F->flags.open);
+
     if (F->read_handler
-#if USE_EPOLL
-	&& !F->epoll_backoff
-#endif
+	&& !F->backoff
 	) {
 	switch (F->read_pending) {
 	case COMM_PENDING_NORMAL:
@@ -823,7 +831,7 @@
 	    break;
 	}
     }
-    commSetEvents(fd, need_read, need_write, force);
+    commSetEvents(fd, need_read, need_write);
 }
 
 void
@@ -833,7 +841,7 @@
     fd_table[fd].read_data = data;
     if (!handler)
 	fd_table[fd].read_pending = COMM_PENDING_NORMAL;
-    commUpdateEvents(fd, 0);
+    commUpdateEvents(fd);
 }
 
 void
@@ -843,7 +851,7 @@
     fd_table[fd].write_data = data;
     if (!handler)
 	fd_table[fd].write_pending = COMM_PENDING_NORMAL;
-    commUpdateEvents(fd, 0);
+    commUpdateEvents(fd);
 }
 
 void
@@ -931,8 +939,10 @@
 int
 commSetNonBlocking(int fd)
 {
+#ifndef _SQUID_MSWIN_
     int flags;
     int dummy = 0;
+#endif
 #ifdef _SQUID_WIN32_
     int nonblocking = TRUE;
 #ifdef _SQUID_CYGWIN_
@@ -946,6 +956,7 @@
     } else {
 #endif
 #endif
+#ifndef _SQUID_MSWIN_
 	if ((flags = fcntl(fd, F_GETFL, dummy)) < 0) {
 	    debug(50, 0) ("FD %d: fcntl F_GETFL: %s\n", fd, xstrerror());
 	    return COMM_ERROR;
@@ -954,6 +965,7 @@
 	    debug(50, 0) ("commSetNonBlocking: FD %d: %s\n", fd, xstrerror());
 	    return COMM_ERROR;
 	}
+#endif
 #ifdef _SQUID_CYGWIN_
     }
 #endif
@@ -964,6 +976,10 @@
 int
 commUnsetNonBlocking(int fd)
 {
+#ifdef _SQUID_MSWIN_
+    int nonblocking = FALSE;
+    if (ioctlsocket(fd, FIONBIO, (unsigned long *) &nonblocking) < 0) {
+#else
     int flags;
     int dummy = 0;
     if ((flags = fcntl(fd, F_GETFL, dummy)) < 0) {
@@ -971,6 +987,7 @@
 	return COMM_ERROR;
     }
     if (fcntl(fd, F_SETFL, flags & (~SQUID_NONBLOCK)) < 0) {
+#endif
 	debug(50, 0) ("commUnsetNonBlocking: FD %d: %s\n", fd, xstrerror());
 	return COMM_ERROR;
     }
diff -ruN squid-2.6.PRE2/src/comm_epoll.c squid-2.6.RC1/src/comm_epoll.c
--- squid-2.6.PRE2/src/comm_epoll.c	Sat Jun  3 17:19:17 2006
+++ squid-2.6.RC1/src/comm_epoll.c	Thu Jun  8 06:53:20 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: comm_epoll.c,v 1.15 2006/06/03 23:19:17 hno Exp $
+ * $Id: comm_epoll.c,v 1.22 2006/06/08 12:53:20 hno Exp $
  *
  * DEBUG: section 5     Socket Functions
  *
@@ -34,7 +34,7 @@
 
 #include "squid.h"
 
-static int MAX_POLL_TIME = 1000;	/* see also comm_quick_poll_required() */
+#include <sys/epoll.h>
 
 #define MAX_EVENTS	256	/* max events to process in one go */
 
@@ -42,10 +42,9 @@
 static int kdpfd;
 static struct epoll_event events[MAX_EVENTS];
 static int epoll_fds = 0;
+static unsigned *epoll_state;	/* keep track of the epoll state */
 
-static void checkTimeouts(void);
-static int commDeferRead(int fd);
-
+#include "comm_generic.c"
 
 static const char *
 epolltype_atoi(int x)
@@ -66,68 +65,36 @@
     }
 }
 
-/* Defer reads from this fd */
-void
-commDeferFD(int fd)
-{
-    fde *F = &fd_table[fd];
-
-    assert(fd >= 0);
-    assert(F->flags.open);
-
-    if (F->epoll_backoff)
-	return;
-
-    F->epoll_backoff = 1;
-    commUpdateEvents(fd, 0);
-}
-
-/* Resume reading from the given fd */
-void
-commResumeFD(int fd)
-{
-    fde *F = &fd_table[fd];
-
-    assert(fd >= 0);
-    assert(F->flags.open);
-
-    if (!F->epoll_backoff)
-	return;
-
-    F->epoll_backoff = 0;
-    commUpdateEvents(fd, 0);
-}
-
 void
 comm_select_init()
 {
-    kdpfd = epoll_create(SQUID_MAXFD);
+    kdpfd = epoll_create(Squid_MaxFD);
     fd_open(kdpfd, FD_UNKNOWN, "epoll ctl");
     commSetCloseOnExec(kdpfd);
 
     if (kdpfd < 0) {
 	fatalf("comm_select_init: epoll_create(): %s\n", xstrerror());
     }
+    epoll_state = xcalloc(Squid_MaxFD, sizeof(*epoll_state));
 }
 
 void
 comm_select_shutdown()
 {
-    close(kdpfd);
     fd_close(kdpfd);
+    close(kdpfd);
     kdpfd = -1;
+    safe_free(epoll_state);
 }
 
 void
-commSetEvents(int fd, int need_read, int need_write, int force)
+commSetEvents(int fd, int need_read, int need_write)
 {
-    fde *F = &fd_table[fd];
     int epoll_ctl_type = 0;
     struct epoll_event ev;
 
     assert(fd >= 0);
-    assert(F->flags.open);
-    debug(5, 8) ("commUpdateEvents(fd=%d)\n", fd);
+    debug(5, 8) ("commSetEvents(fd=%d)\n", fd);
 
     if (RUNNING_ON_VALGRIND) {
 	/* Keep valgrind happy.. complains about uninitialized bytes otherwise */
@@ -136,7 +103,7 @@
     ev.events = 0;
     ev.data.fd = fd;
 
-    if (need_read & !F->epoll_backoff)
+    if (need_read)
 	ev.events |= EPOLLIN;
 
     if (need_write)
@@ -145,23 +112,21 @@
     if (ev.events)
 	ev.events |= EPOLLHUP | EPOLLERR;
 
-    /* If the type is 0, force adding the fd to the epoll set */
-    if (force)
-	F->epoll_state = 0;
-
-    if (ev.events != F->epoll_state) {
+    if (ev.events != epoll_state[fd]) {
 	/* If the struct is already in epoll MOD or DEL, else ADD */
-	if (F->epoll_state) {
-	    epoll_ctl_type = ev.events ? EPOLL_CTL_MOD : EPOLL_CTL_DEL;
+	if (!ev.events) {
+	    epoll_ctl_type = EPOLL_CTL_DEL;
+	} else if (epoll_state[fd]) {
+	    epoll_ctl_type = EPOLL_CTL_MOD;
 	} else {
 	    epoll_ctl_type = EPOLL_CTL_ADD;
 	}
 
 	/* Update the state */
-	F->epoll_state = ev.events;
+	epoll_state[fd] = ev.events;
 
 	if (epoll_ctl(kdpfd, epoll_ctl_type, fd, &ev) < 0) {
-	    debug(5, 1) ("commSetSelect: epoll_ctl(%s): failed on fd=%d: %s\n",
+	    debug(5, 1) ("commSetEvents: epoll_ctl(%s): failed on fd=%d: %s\n",
 		epolltype_atoi(epoll_ctl_type), fd, xstrerror());
 	}
 	switch (epoll_ctl_type) {
@@ -177,89 +142,6 @@
     }
 }
 
-static void
-comm_call_handlers(int fd, int read_event, int write_event)
-{
-    fde *F = &fd_table[fd];
-    debug(5, 8) ("comm_call_handlers(): got fd=%d read_event=%x write_event=%x F->read_handler=%p F->write_handler=%p\n"
-	,fd, read_event, write_event, F->read_handler, F->write_handler);
-    if (F->read_handler) {
-	int do_read = 0;
-	switch (F->read_pending) {
-	case COMM_PENDING_NORMAL:
-	case COMM_PENDING_WANTS_READ:
-	    do_read = read_event;
-	    break;
-	case COMM_PENDING_WANTS_WRITE:
-	    do_read = write_event;
-	    break;
-	case COMM_PENDING_NOW:
-	    do_read = 1;
-	    break;
-	}
-	if (do_read) {
-	    PF *hdl = F->read_handler;
-	    void *hdl_data = F->read_data;
-	    /* If the descriptor is meant to be deferred, don't handle */
-	    switch (commDeferRead(fd)) {
-	    case 1:
-		if (!(F->epoll_backoff)) {
-		    debug(5, 1) ("comm_epoll(): WARNING defer handler for fd=%d (desc=%s) does not call commDeferFD() - backing off manually\n", fd, F->desc);
-		    commDeferFD(fd);
-		}
-		break;
-	    default:
-		debug(5, 8) ("comm_epoll(): Calling read handler on fd=%d\n", fd);
-#if SIMPLE_COMM_HANDLER
-		commUpdateReadHandler(fd, NULL, NULL);
-		hdl(fd, hdl_data);
-#else
-		/* Optimized version to avoid the fd bouncing in/out of the waited set */
-		F->read_handler = NULL;
-		F->read_data = NULL;
-		F->read_pending = COMM_PENDING_NORMAL;
-		hdl(fd, hdl_data);
-		if (F->flags.open && !F->read_handler)
-		    commUpdateEvents(fd, 0);
-#endif
-		statCounter.select_fds++;
-	    }
-	}
-    }
-    if (F->write_handler) {
-	int do_write = 0;
-	switch (F->write_pending) {
-	case COMM_PENDING_WANTS_READ:
-	    do_write = read_event;
-	    break;
-	case COMM_PENDING_NORMAL:
-	case COMM_PENDING_WANTS_WRITE:
-	    do_write = write_event;
-	    break;
-	case COMM_PENDING_NOW:
-	    do_write = 1;
-	    break;
-	}
-	if (do_write) {
-	    PF *hdl = F->write_handler;
-	    void *hdl_data = F->write_data;
-#if SIMPLE_COMM_HANDLER
-	    commUpdateWriteHandler(fd, NULL, NULL);
-	    hdl(fd, hdl_data);
-#else
-	    /* Optimized version to avoid the fd bouncing in/out of the waited set */
-	    F->write_handler = NULL;
-	    F->write_data = NULL;
-	    F->write_pending = COMM_PENDING_NORMAL;
-	    hdl(fd, hdl_data);
-	    if (F->flags.open)
-		commUpdateEvents(fd, 0);
-#endif
-	    statCounter.select_fds++;
-	}
-    }
-}
-
 int
 comm_select(int msec)
 {
@@ -268,10 +150,10 @@
     int num;
     int fd;
     struct epoll_event *cevents;
-    double timeout;
     double start = current_dtime;
 
-    timeout = current_dtime + (msec / 1000.0);
+    if (msec > MAX_POLL_TIME)
+	msec = MAX_POLL_TIME;
 
     debug(50, 3) ("comm_epoll: timeout %d\n", msec);
 
@@ -314,50 +196,4 @@
 	debug(5, 8) ("comm_epoll: time out: %ld.\n", (long int) squid_curtime);
 	return COMM_TIMEOUT;
     }
-}
-
-static int
-commDeferRead(int fd)
-{
-    fde *F = &fd_table[fd];
-    if (F->defer_check == NULL)
-	return 0;
-    return F->defer_check(fd, F->defer_data);
-}
-
-static void
-checkTimeouts(void)
-{
-    int fd;
-    fde *F = NULL;
-    PF *callback;
-    for (fd = 0; fd <= Biggest_FD; fd++) {
-	F = &fd_table[fd];
-	if (!F->flags.open)
-	    continue;
-	if (F->epoll_backoff)
-	    commResumeFD(fd);
-	if (F->timeout == 0)
-	    continue;
-	if (F->timeout > squid_curtime)
-	    continue;
-	debug(5, 5) ("checkTimeouts: FD %d Expired\n", fd);
-	if (F->timeout_handler) {
-	    debug(5, 5) ("checkTimeouts: FD %d: Call timeout handler\n", fd);
-	    callback = F->timeout_handler;
-	    F->timeout_handler = NULL;
-	    callback(fd, F->timeout_data);
-	} else {
-	    debug(5, 5) ("checkTimeouts: FD %d: Forcing comm_close()\n", fd);
-	    comm_close(fd);
-	}
-    }
-}
-
-
-/* Called by async-io or diskd to speed up the polling */
-void
-comm_quick_poll_required(void)
-{
-    MAX_POLL_TIME = 10;
 }
diff -ruN squid-2.6.PRE2/src/comm_generic.c squid-2.6.RC1/src/comm_generic.c
--- squid-2.6.PRE2/src/comm_generic.c	Wed Dec 31 17:00:00 1969
+++ squid-2.6.RC1/src/comm_generic.c	Thu Jun  8 17:14:22 2006
@@ -0,0 +1,201 @@
+
+/*
+ * $Id: comm_generic.c,v 1.3 2006/06/08 23:14:22 hno Exp $
+ *
+ * DEBUG: section 5     Socket Functions
+ *
+ * SQUID Web Proxy Cache          http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ *  Squid is the result of efforts by numerous individuals from
+ *  the Internet community; see the CONTRIBUTORS file for full
+ *  details.   Many organizations have provided support for Squid's
+ *  development; see the SPONSORS file for full details.  Squid is
+ *  Copyrighted (C) 2001 by the Regents of the University of
+ *  California; see the COPYRIGHT file for full details.  Squid
+ *  incorporates software developed and/or copyrighted by other
+ *  sources; see the CREDITS file for full details.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *  
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *  
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+
+/* This file is not compiled separately. Instead it's included into
+ * the comm loops using it
+ */
+
+static int MAX_POLL_TIME = 1000;	/* see also comm_quick_poll_required() */
+
+/* Defer reads from this fd */
+void
+commDeferFD(int fd)
+{
+    fde *F = &fd_table[fd];
+
+    assert(fd >= 0);
+    assert(F->flags.open);
+
+    if (F->backoff)
+	return;
+
+    F->backoff = 1;
+    commUpdateEvents(fd);
+}
+
+/* Resume reading from the given fd */
+void
+commResumeFD(int fd)
+{
+    fde *F = &fd_table[fd];
+
+    assert(fd >= 0);
+    assert(F->flags.open);
+
+    if (!F->backoff)
+	return;
+
+    F->backoff = 0;
+    commUpdateEvents(fd);
+}
+
+static int
+commDeferRead(int fd)
+{
+    fde *F = &fd_table[fd];
+    if (F->defer_check == NULL)
+	return 0;
+    return F->defer_check(fd, F->defer_data);
+}
+
+static void
+comm_call_handlers(int fd, int read_event, int write_event)
+{
+    fde *F = &fd_table[fd];
+    debug(5, 8) ("comm_call_handlers(): got fd=%d read_event=%x write_event=%x F->read_handler=%p F->write_handler=%p\n"
+	,fd, read_event, write_event, F->read_handler, F->write_handler);
+    if (F->read_handler) {
+	int do_read = 0;
+	switch (F->read_pending) {
+	case COMM_PENDING_NORMAL:
+	case COMM_PENDING_WANTS_READ:
+	    do_read = read_event;
+	    break;
+	case COMM_PENDING_WANTS_WRITE:
+	    do_read = write_event;
+	    break;
+	case COMM_PENDING_NOW:
+	    do_read = 1;
+	    break;
+	}
+	if (do_read) {
+	    PF *hdl = F->read_handler;
+	    void *hdl_data = F->read_data;
+	    /* If the descriptor is meant to be deferred, don't handle */
+	    switch (commDeferRead(fd)) {
+	    case 1:
+		if (!(F->backoff)) {
+		    debug(5, 1) ("comm_call_handlers(): WARNING defer handler for fd=%d (desc=%s) does not call commDeferFD() - backing off manually\n", fd, F->desc);
+		    commDeferFD(fd);
+		}
+		break;
+	    default:
+		debug(5, 8) ("comm_call_handlers(): Calling read handler on fd=%d\n", fd);
+#if SIMPLE_COMM_HANDLER
+		commUpdateReadHandler(fd, NULL, NULL);
+		hdl(fd, hdl_data);
+#else
+		/* Optimized version to avoid the fd bouncing in/out of the waited set */
+		F->read_handler = NULL;
+		F->read_data = NULL;
+		F->read_pending = COMM_PENDING_NORMAL;
+		hdl(fd, hdl_data);
+		if (F->flags.open && !F->read_handler)
+		    commUpdateEvents(fd);
+#endif
+		statCounter.select_fds++;
+	    }
+	}
+    }
+    if (F->write_handler) {
+	int do_write = 0;
+	switch (F->write_pending) {
+	case COMM_PENDING_WANTS_READ:
+	    do_write = read_event;
+	    break;
+	case COMM_PENDING_NORMAL:
+	case COMM_PENDING_WANTS_WRITE:
+	    do_write = write_event;
+	    break;
+	case COMM_PENDING_NOW:
+	    do_write = 1;
+	    break;
+	}
+	if (do_write) {
+	    PF *hdl = F->write_handler;
+	    void *hdl_data = F->write_data;
+#if SIMPLE_COMM_HANDLER
+	    commUpdateWriteHandler(fd, NULL, NULL);
+	    hdl(fd, hdl_data);
+#else
+	    /* Optimized version to avoid the fd bouncing in/out of the waited set */
+	    F->write_handler = NULL;
+	    F->write_data = NULL;
+	    F->write_pending = COMM_PENDING_NORMAL;
+	    hdl(fd, hdl_data);
+	    if (F->flags.open)
+		commUpdateEvents(fd);
+#endif
+	    statCounter.select_fds++;
+	}
+    }
+}
+
+static void
+checkTimeouts(void)
+{
+    int fd;
+    fde *F = NULL;
+    PF *callback;
+    for (fd = 0; fd <= Biggest_FD; fd++) {
+	F = &fd_table[fd];
+	if (!F->flags.open)
+	    continue;
+	if (F->backoff)
+	    commResumeFD(fd);
+	if (F->timeout == 0)
+	    continue;
+	if (F->timeout > squid_curtime)
+	    continue;
+	debug(5, 5) ("checkTimeouts: FD %d Expired\n", fd);
+	if (F->timeout_handler) {
+	    debug(5, 5) ("checkTimeouts: FD %d: Call timeout handler\n", fd);
+	    callback = F->timeout_handler;
+	    F->timeout_handler = NULL;
+	    callback(fd, F->timeout_data);
+	} else {
+	    debug(5, 5) ("checkTimeouts: FD %d: Forcing comm_close()\n", fd);
+	    comm_close(fd);
+	}
+    }
+}
+
+
+/* Called by async-io or diskd to speed up the polling */
+void
+comm_quick_poll_required(void)
+{
+    MAX_POLL_TIME = 10;
+}
diff -ruN squid-2.6.PRE2/src/comm_kqueue.c squid-2.6.RC1/src/comm_kqueue.c
--- squid-2.6.PRE2/src/comm_kqueue.c	Wed Dec 31 17:00:00 1969
+++ squid-2.6.RC1/src/comm_kqueue.c	Thu Jun  8 06:53:20 2006
@@ -0,0 +1,186 @@
+
+/*
+ * $Id: comm_kqueue.c,v 1.5 2006/06/08 12:53:20 hno Exp $
+ *
+ * DEBUG: section 5     Socket Functions
+ *
+ * SQUID Web Proxy Cache          http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ *  Squid is the result of efforts by numerous individuals from
+ *  the Internet community; see the CONTRIBUTORS file for full
+ *  details.   Many organizations have provided support for Squid's
+ *  development; see the SPONSORS file for full details.  Squid is
+ *  Copyrighted (C) 2001 by the Regents of the University of
+ *  California; see the COPYRIGHT file for full details.  Squid
+ *  incorporates software developed and/or copyrighted by other
+ *  sources; see the CREDITS file for full details.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+#include "squid.h"
+#include "comm_generic.c"
+
+#if HAVE_SYS_EVENT_H
+#include <sys/event.h>
+#endif
+
+#define KE_LENGTH       128
+#define STATE_READ      1
+#define STATE_WRITE     2
+
+static int kq;
+static struct timespec zero_timespec;
+static struct kevent *kqlst;	/* kevent buffer */
+static int kqmax;		/* max structs to buffer */
+static int kqoff;		/* offset into the buffer */
+static unsigned *kqueue_state;	/* keep track of the kqueue state */
+
+void
+comm_select_init()
+{
+    kq = kqueue();
+    fd_open(kq, FD_UNKNOWN, "kqueue ctl");
+    commSetCloseOnExec(kq);
+
+    if (kq < 0) {
+	fatalf("comm_select_init: kqueue(): %s\n", xstrerror());
+    }
+    kqmax = getdtablesize();
+    kqlst = xmalloc(sizeof(*kqlst) * kqmax);
+    kqueue_state = xcalloc(Squid_MaxFD, sizeof(*kqueue_state));
+    zero_timespec.tv_sec = 0;
+    zero_timespec.tv_nsec = 0;
+}
+
+void
+comm_select_shutdown()
+{
+    fd_close(kq);
+    close(kq);
+    kq = -1;
+    safe_free(kqueue_state);
+}
+
+void
+commSetEvents(int fd, int need_read, int need_write)
+{
+    struct kevent *kep;
+    int st_read = (kqueue_state[fd] & STATE_READ) != 0;
+    int st_write = (kqueue_state[fd] & STATE_WRITE) != 0;
+
+    assert(fd >= 0);
+    debug(5, 8) ("commSetEvents(fd=%d)\n", fd);
+
+    kep = kqlst + kqoff;
+
+    if (need_read != st_read) {
+	EV_SET(kep, (uintptr_t) fd, EVFILT_READ,
+	    need_read ? EV_ADD : EV_DELETE, 0, 0, 0);
+	kqoff++;
+	kep++;
+    }
+    if (need_write != st_write) {
+	EV_SET(kep, (uintptr_t) fd, EVFILT_WRITE,
+	    need_write ? EV_ADD : EV_DELETE, 0, 0, 0);
+	kqoff++;
+	kep++;
+    }
+    kqueue_state[fd] = (need_read ? STATE_READ : 0) |
+	(need_write ? STATE_WRITE : 0);
+
+    if (kqoff >= kqmax - 2) {
+	if (kevent(kq, kqlst, kqoff, NULL, 0, &zero_timespec) == -1) {
+	    debug(5, 1) ("commSetEvents(): kevent() failed on fd=%d: %s\n",
+		fd, xstrerror());
+	    return;
+	}
+	kqoff = 0;
+    }
+}
+
+int
+comm_select(int msec)
+{
+    static time_t last_timeout = 0;
+    int i;
+    int num;
+    double start = current_dtime;
+    static struct kevent ke[KE_LENGTH];
+    struct timespec timeout;
+
+    if (msec > MAX_POLL_TIME)
+	msec = MAX_POLL_TIME;
+
+    timeout.tv_sec = msec / 1000;
+    timeout.tv_nsec = (msec % 1000) * 1000000;
+
+    debug(50, 3) ("comm_kqueue: timeout %d\n", msec);
+
+    /* Check for disk io callbacks */
+    storeDirCallback();
+
+    /* Check timeouts once per second */
+    if (last_timeout != squid_curtime) {
+	last_timeout = squid_curtime;
+	checkTimeouts();
+    }
+    statCounter.syscalls.polls++;
+    num = kevent(kq, kqlst, kqoff, ke, KE_LENGTH, &timeout);
+    statCounter.select_loops++;
+    kqoff = 0;
+
+    if (num < 0) {
+	getCurrentTime();
+	if (ignoreErrno(errno))
+	    return COMM_OK;
+
+	debug(5, 1) ("comm_kqueue: kevent failure: %s\n", xstrerror());
+	return COMM_ERROR;
+    }
+    if (num == 0) {
+	getCurrentTime();
+	return COMM_TIMEOUT;
+    }
+    statHistCount(&statCounter.select_fds_hist, num);
+
+    for (i = 0; i < num; i++) {
+	int fd = (int) ke[i].ident;
+	if (ke[i].flags & EV_ERROR) {
+	    errno = ke[i].data;
+	    debug(5, 3) ("comm_kqueue: kqueue event error: %s\n",
+		xstrerror());
+	    continue;		/* XXX! */
+	}
+	switch (ke[i].filter) {
+	case EVFILT_READ:
+	    comm_call_handlers(fd, 1, 0);
+	    break;
+	case EVFILT_WRITE:
+	    comm_call_handlers(fd, 0, 1);
+	    break;
+	default:
+	    debug(5, 1) ("comm_kqueue: unexpected event: %d\n",
+		ke[i].filter);
+	    break;
+	}
+    }
+
+    getCurrentTime();
+    statCounter.select_time += (current_dtime - start);
+    return COMM_OK;
+}
diff -ruN squid-2.6.PRE2/src/comm_poll.c squid-2.6.RC1/src/comm_poll.c
--- squid-2.6.PRE2/src/comm_poll.c	Sat Jun  3 14:26:19 2006
+++ squid-2.6.RC1/src/comm_poll.c	Fri Jun  9 13:13:37 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: comm_poll.c,v 1.13 2006/06/03 20:26:19 hno Exp $
+ * $Id: comm_poll.c,v 1.17 2006/06/09 19:13:37 serassio Exp $
  *
  * DEBUG: section 5     Socket Functions
  *
@@ -34,7 +34,11 @@
 
 #include "squid.h"
 
+#if HAVE_SYS_POLL_H
 #include <sys/poll.h>
+#elif HAVE_POLL_H
+#include <poll.h>
+#endif
 
 static int MAX_POLL_TIME = 1000;	/* see also comm_quick_poll_required() */
 
@@ -284,7 +288,7 @@
 {
     struct pollfd pfds[SQUID_MAXFD];
 #if DELAY_POOLS
-    fd_set slowfds;
+    char slowfds[SQUID_MAXFD];
 #endif
     int fd;
     unsigned int i;
@@ -303,7 +307,7 @@
 	/* Handle any fs callbacks that need doing */
 	storeDirCallback();
 #if DELAY_POOLS
-	FD_ZERO(&slowfds);
+	memset(slowfds, 0, Biggest_FD);
 #endif
 	if (commCheckICPIncoming)
 	    comm_poll_icp_incoming();
@@ -329,7 +333,7 @@
 		    break;
 #if DELAY_POOLS
 		case -1:
-		    FD_SET(i, &slowfds);
+		    slowfds[i] = 1;
 		    break;
 #endif
 		default:
@@ -458,7 +462,7 @@
 		if (hdl == NULL)
 		    (void) 0;	/* Nothing to do */
 #if DELAY_POOLS
-		else if (FD_ISSET(fd, &slowfds))
+		else if (slowfds[i])
 		    commAddSlowFd(fd);
 #endif
 		else {
@@ -606,7 +610,7 @@
 }
 
 void
-commSetEvents(int fd, int need_read, int need_write, int force)
+commSetEvents(int fd, int need_read, int need_write)
 {
     /* XXX Here we could optimize the poll arrays quite considerably */
 }
diff -ruN squid-2.6.PRE2/src/comm_select.c squid-2.6.RC1/src/comm_select.c
--- squid-2.6.PRE2/src/comm_select.c	Thu Jun  1 18:07:40 2006
+++ squid-2.6.RC1/src/comm_select.c	Thu Jun  8 06:53:20 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: comm_select.c,v 1.73 2006/06/02 00:07:40 hno Exp $
+ * $Id: comm_select.c,v 1.75 2006/06/08 12:53:20 hno Exp $
  *
  * DEBUG: section 5     Socket Functions
  *
@@ -34,6 +34,10 @@
 
 #include "squid.h"
 
+#if HAVE_SYS_SELECT_H
+#include <sys/select.h>
+#endif
+
 static int MAX_POLL_TIME = 1000;	/* see also comm_quick_poll_required() */
 
 #ifndef        howmany
@@ -656,7 +660,7 @@
 }
 
 void
-commSetEvents(int fd, int need_read, int need_write, int force)
+commSetEvents(int fd, int need_read, int need_write)
 {
     if (need_read && !FD_ISSET(fd, &global_readfds)) {
 	FD_SET(fd, &global_readfds);
diff -ruN squid-2.6.PRE2/src/comm_select_win32.c squid-2.6.RC1/src/comm_select_win32.c
--- squid-2.6.PRE2/src/comm_select_win32.c	Wed Dec 31 17:00:00 1969
+++ squid-2.6.RC1/src/comm_select_win32.c	Sun Jun 11 11:06:25 2006
@@ -0,0 +1,775 @@
+
+/*
+ * $Id: comm_select_win32.c,v 1.1 2006/06/11 17:06:25 serassio Exp $
+ *
+ * DEBUG: section 5     Socket Functions
+ *
+ * SQUID Web Proxy Cache          http://www.squid-cache.org/
+ * ----------------------------------------------------------
+ *
+ *  Squid is the result of efforts by numerous individuals from
+ *  the Internet community; see the CONTRIBUTORS file for full
+ *  details.   Many organizations have provided support for Squid's
+ *  development; see the SPONSORS file for full details.  Squid is
+ *  Copyrighted (C) 2001 by the Regents of the University of
+ *  California; see the COPYRIGHT file for full details.  Squid
+ *  incorporates software developed and/or copyrighted by other
+ *  sources; see the CREDITS file for full details.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *  
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *  
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+ *
+ */
+
+#include "squid.h"
+
+static int MAX_POLL_TIME = 1000;	/* see also comm_quick_poll_required() */
+
+/* STATIC */
+static int examine_select(fd_set *, fd_set *);
+static int fdIsHttp(int fd);
+static int fdIsIcp(int fd);
+static int fdIsDns(int fd);
+static int commDeferRead(int fd);
+static void checkTimeouts(void);
+static OBJH commIncomingStats;
+static int comm_check_incoming_select_handlers(int nfds, int *fds);
+static void comm_select_dns_incoming(void);
+
+static struct timeval zero_tv;
+static fd_set global_readfds;
+static fd_set global_writefds;
+static int nreadfds;
+static int nwritefds;
+
+/*
+ * Automatic tuning for incoming requests:
+ *
+ * INCOMING sockets are the ICP and HTTP ports.  We need to check these
+ * fairly regularly, but how often?  When the load increases, we
+ * want to check the incoming sockets more often.  If we have a lot
+ * of incoming ICP, then we need to check these sockets more than
+ * if we just have HTTP.
+ *
+ * The variables 'incoming_icp_interval' and 'incoming_http_interval' 
+ * determine how many normal I/O events to process before checking
+ * incoming sockets again.  Note we store the incoming_interval
+ * multipled by a factor of (2^INCOMING_FACTOR) to have some
+ * pseudo-floating point precision.
+ *
+ * The variable 'icp_io_events' and 'http_io_events' counts how many normal
+ * I/O events have been processed since the last check on the incoming
+ * sockets.  When io_events > incoming_interval, its time to check incoming
+ * sockets.
+ *
+ * Every time we check incoming sockets, we count how many new messages
+ * or connections were processed.  This is used to adjust the
+ * incoming_interval for the next iteration.  The new incoming_interval
+ * is calculated as the current incoming_interval plus what we would
+ * like to see as an average number of events minus the number of
+ * events just processed.
+ *
+ *  incoming_interval = incoming_interval + target_average - number_of_events_processed
+ *
+ * There are separate incoming_interval counters for both HTTP and ICP events
+ * 
+ * You can see the current values of the incoming_interval's, as well as
+ * a histogram of 'incoming_events' by asking the cache manager
+ * for 'comm_incoming', e.g.:
+ *
+ *      % ./client mgr:comm_incoming
+ *
+ * Caveats:
+ *
+ *      - We have MAX_INCOMING_INTEGER as a magic upper limit on
+ *        incoming_interval for both types of sockets.  At the
+ *        largest value the cache will effectively be idling.
+ *
+ *      - The higher the INCOMING_FACTOR, the slower the algorithm will
+ *        respond to load spikes/increases/decreases in demand. A value
+ *        between 3 and 8 is recommended.
+ */
+
+#define MAX_INCOMING_INTEGER 256
+#define INCOMING_FACTOR 5
+#define MAX_INCOMING_INTERVAL (MAX_INCOMING_INTEGER << INCOMING_FACTOR)
+static int icp_io_events = 0;
+static int dns_io_events = 0;
+static int http_io_events = 0;
+static int incoming_icp_interval = 16 << INCOMING_FACTOR;
+static int incoming_dns_interval = 16 << INCOMING_FACTOR;
+static int incoming_http_interval = 16 << INCOMING_FACTOR;
+#define commCheckICPIncoming (++icp_io_events > (incoming_icp_interval>> INCOMING_FACTOR))
+#define commCheckDNSIncoming (++dns_io_events > (incoming_dns_interval>> INCOMING_FACTOR))
+#define commCheckHTTPIncoming (++http_io_events > (incoming_http_interval>> INCOMING_FACTOR))
+
+static int
+fdIsIcp(int fd)
+{
+    if (fd == theInIcpConnection)
+	return 1;
+    if (fd == theOutIcpConnection)
+	return 1;
+    return 0;
+}
+
+static int
+fdIsDns(int fd)
+{
+    if (fd == DnsSocket)
+	return 1;
+    return 0;
+}
+
+static int
+fdIsHttp(int fd)
+{
+    int j;
+    for (j = 0; j < NHttpSockets; j++) {
+	if (fd == HttpSockets[j])
+	    return 1;
+    }
+    return 0;
+}
+
+#if DELAY_POOLS
+static int slowfdcnt = 0;
+static int slowfdarr[SQUID_MAXFD];
+
+static void
+commAddSlowFd(int fd)
+{
+    assert(slowfdcnt < SQUID_MAXFD);
+    slowfdarr[slowfdcnt++] = fd;
+}
+
+static int
+commGetSlowFd(void)
+{
+    int whichfd, retfd;
+
+    if (!slowfdcnt)
+	return -1;
+    whichfd = squid_random() % slowfdcnt;
+    retfd = slowfdarr[whichfd];
+    slowfdarr[whichfd] = slowfdarr[--slowfdcnt];
+    return retfd;
+}
+#endif
+
+static int
+comm_check_incoming_select_handlers(int nfds, int *fds)
+{
+    int i;
+    int fd;
+    int maxfd = 0;
+    fd_set read_mask;
+    fd_set write_mask;
+    fd_set errfds;
+    FD_ZERO(&errfds);
+    FD_ZERO(&read_mask);
+    FD_ZERO(&write_mask);
+    incoming_sockets_accepted = 0;
+    for (i = 0; i < nfds; i++) {
+	fd = fds[i];
+	if (fd_table[fd].read_handler) {
+	    FD_SET(fd, &read_mask);
+	    if (fd > maxfd)
+		maxfd = fd;
+	}
+	if (fd_table[fd].write_handler) {
+	    FD_SET(fd, &write_mask);
+	    if (fd > maxfd)
+		maxfd = fd;
+	}
+    }
+    if (maxfd++ == 0)
+	return -1;
+    getCurrentTime();
+    statCounter.syscalls.selects++;
+    if (select(maxfd, &read_mask, &write_mask, &errfds, &zero_tv) < 1)
+	return incoming_sockets_accepted;
+    for (i = 0; i < nfds; i++) {
+	fd = fds[i];
+	if (__WSAFDIsSet(fd_table[fd].win32.handle, &read_mask)) {
+	    PF *hdl = fd_table[fd].read_handler;
+	    void *hdl_data = fd_table[fd].read_data;
+	    commUpdateReadHandler(fd, NULL, NULL);
+	    if (hdl)
+		hdl(fd, hdl_data);
+	    else
+		debug(5, 1) ("comm_select_incoming: FD %d NULL read handler\n", fd);
+	}
+	if (__WSAFDIsSet(fd_table[fd].win32.handle, &write_mask)) {
+	    PF *hdl = fd_table[fd].write_handler;
+	    void *hdl_data = fd_table[fd].write_data;
+	    commUpdateWriteHandler(fd, NULL, NULL);
+	    if (hdl)
+		hdl(fd, hdl_data);
+	    else
+		debug(5, 1) ("comm_select_incoming: FD %d NULL write handler\n", fd);
+	}
+    }
+    return incoming_sockets_accepted;
+}
+
+static void
+comm_select_icp_incoming(void)
+{
+    int nfds = 0;
+    int fds[2];
+    int nevents;
+    icp_io_events = 0;
+    if (theInIcpConnection >= 0)
+	fds[nfds++] = theInIcpConnection;
+    if (theInIcpConnection != theOutIcpConnection)
+	if (theOutIcpConnection >= 0)
+	    fds[nfds++] = theOutIcpConnection;
+    if (nfds == 0)
+	return;
+    nevents = comm_check_incoming_select_handlers(nfds, fds);
+    incoming_icp_interval += Config.comm_incoming.icp_average - nevents;
+    if (incoming_icp_interval < 0)
+	incoming_icp_interval = 0;
+    if (incoming_icp_interval > MAX_INCOMING_INTERVAL)
+	incoming_icp_interval = MAX_INCOMING_INTERVAL;
+    if (nevents > INCOMING_ICP_MAX)
+	nevents = INCOMING_ICP_MAX;
+    statHistCount(&statCounter.comm_icp_incoming, nevents);
+}
+
+static void
+comm_select_http_incoming(void)
+{
+    int nfds = 0;
+    int fds[MAXHTTPPORTS];
+    int j;
+    int nevents;
+    http_io_events = 0;
+    for (j = 0; j < NHttpSockets; j++) {
+	if (HttpSockets[j] < 0)
+	    continue;
+	if (commDeferRead(HttpSockets[j]))
+	    continue;
+	fds[nfds++] = HttpSockets[j];
+    }
+    nevents = comm_check_incoming_select_handlers(nfds, fds);
+    incoming_http_interval += Config.comm_incoming.http_average - nevents;
+    if (incoming_http_interval < 0)
+	incoming_http_interval = 0;
+    if (incoming_http_interval > MAX_INCOMING_INTERVAL)
+	incoming_http_interval = MAX_INCOMING_INTERVAL;
+    if (nevents > INCOMING_HTTP_MAX)
+	nevents = INCOMING_HTTP_MAX;
+    statHistCount(&statCounter.comm_http_incoming, nevents);
+}
+
+/* Select on all sockets; call handlers for those that are ready. */
+int
+comm_select(int msec)
+{
+    fd_set readfds;
+    fd_set writefds;
+#if DELAY_POOLS
+    fd_set slowfds;
+#endif
+    int fd;
+    int maxfd;
+    int num;
+    int callicp = 0, callhttp = 0;
+    int calldns = 0;
+    register int j;
+    static time_t last_timeout = 0;
+    struct timeval poll_time;
+    double timeout = current_dtime + (msec / 1000.0);
+    int no_bits;
+    fd_set errfds;
+    FD_ZERO(&errfds);
+    do {
+	double start;
+	getCurrentTime();
+	start = current_dtime;
+#if DELAY_POOLS
+	FD_ZERO(&slowfds);
+#endif
+	/* Handle any fs callbacks that need doing */
+	storeDirCallback();
+	if (commCheckICPIncoming)
+	    comm_select_icp_incoming();
+	if (commCheckDNSIncoming)
+	    comm_select_dns_incoming();
+	if (commCheckHTTPIncoming)
+	    comm_select_http_incoming();
+	callicp = calldns = callhttp = 0;
+	maxfd = Biggest_FD + 1;
+	xmemcpy(&readfds, &global_readfds, sizeof(global_readfds));
+	xmemcpy(&writefds, &global_writefds, sizeof(global_writefds));
+	xmemcpy(&errfds, &global_writefds, sizeof(global_writefds));
+	/* remove stalled FDs, and deal with pending descriptors */
+	for (j = 0; j < (int) readfds.fd_count; j++) {
+	    register int readfds_handle = readfds.fd_array[j];
+	    no_bits = 1;
+	    for (fd = Biggest_FD; fd; fd--) {
+		if (fd_table[fd].win32.handle == readfds_handle) {
+		    if (fd_table[fd].flags.open) {
+			no_bits = 0;
+			break;
+		    }
+		}
+	    }
+	    if (no_bits)
+		continue;
+	    if (fd_table[fd].read_handler) {
+		switch (commDeferRead(fd)) {
+		case 0:
+		    break;
+		case 1:
+		    FD_CLR(fd, &readfds);
+		    /* FD_CLR() decrements readfds.fd_count, so we must */
+		    /*   decrement too the counter j                      */
+		    j--;
+		    if (!fd_table[fd].write_handler)
+			FD_CLR(fd, &writefds);
+		    break;
+#if DELAY_POOLS
+		case -1:
+		    FD_SET(fd, &slowfds);
+		    break;
+#endif
+		default:
+		    fatalf("bad return value from commDeferRead(FD %d)\n", fd);
+		}
+	    }
+	}
+	if (nreadfds + nwritefds == 0) {
+	    assert(shutting_down);
+	    return COMM_SHUTDOWN;
+	}
+	if (msec > MAX_POLL_TIME)
+	    msec = MAX_POLL_TIME;
+	for (;;) {
+	    poll_time.tv_sec = msec / 1000;
+	    poll_time.tv_usec = (msec % 1000) * 1000;
+	    statCounter.syscalls.selects++;
+	    num = select(maxfd, &readfds, &writefds, &errfds, &poll_time);
+	    statCounter.select_loops++;
+	    if (num >= 0)
+		break;
+	    if (ignoreErrno(errno))
+		break;
+	    debug(5, 0) ("comm_select: select failure: %s\n",
+		xstrerror());
+	    examine_select(&readfds, &writefds);
+	    return COMM_ERROR;
+	    /* NOTREACHED */
+	}
+	if (num < 0)
+	    continue;
+	debug(5, num ? 5 : 8) ("comm_select: %d FDs ready at %d\n",
+	    num, (int) squid_curtime);
+	statHistCount(&statCounter.select_fds_hist, num);
+	/* Check lifetime and timeout handlers ONCE each second.
+	 * Replaces brain-dead check every time through the loop! */
+	if (squid_curtime > last_timeout) {
+	    last_timeout = squid_curtime;
+	    checkTimeouts();
+	}
+	if (num == 0)
+	    continue;
+	/* Scan return fd masks for ready for read descriptors */
+	assert(readfds.fd_count <= (unsigned int) Biggest_FD);
+	for (j = 0; j < (int) readfds.fd_count; j++) {
+	    register int readfds_handle = readfds.fd_array[j];
+	    register int osfhandle;
+	    fde *F;
+	    no_bits = 1;
+	    for (fd = Biggest_FD; fd; fd--) {
+		osfhandle = fd_table[fd].win32.handle;
+		if (osfhandle == readfds_handle) {
+		    if (fd_table[fd].flags.open) {
+			no_bits = 0;
+			break;
+		    }
+		}
+	    }
+	    if (no_bits)
+		continue;
+	    if (fdIsIcp(fd)) {
+		callicp = 1;
+		continue;
+	    }
+	    if (fdIsDns(fd)) {
+		calldns = 1;
+		continue;
+	    }
+	    if (fdIsHttp(fd)) {
+		callhttp = 1;
+		continue;
+	    }
+	    F = &fd_table[fd];
+	    debug(5, 6) ("comm_select: FD %d ready for read\n", fd);
+	    if (F->read_handler) {
+		int do_read = 0;
+		switch (F->read_pending) {
+		case COMM_PENDING_NORMAL:
+		case COMM_PENDING_WANTS_READ:
+		    do_read = 1;
+		    break;
+		case COMM_PENDING_WANTS_WRITE:
+		    do_read = __WSAFDIsSet(fd_table[fd].win32.handle, &writefds);
+		    break;
+		case COMM_PENDING_NOW:
+		    do_read = 1;
+		    break;
+		}
+#if DELAY_POOLS
+		if (do_read && __WSAFDIsSet(fd_table[fd].win32.handle, &slowfds))
+		    commAddSlowFd(fd);
+		else
+#endif
+		if (do_read) {
+		    PF *hdl = F->read_handler;
+		    void *hdl_data = F->read_data;
+		    debug(5, 6) ("comm_select: FD %d calling read_handler %p(%p)\n", fd, hdl, hdl_data);
+		    commUpdateReadHandler(fd, NULL, NULL);
+		    hdl(fd, hdl_data);
+		    statCounter.select_fds++;
+		    if (commCheckICPIncoming)
+			comm_select_icp_incoming();
+		    if (commCheckDNSIncoming)
+			comm_select_dns_incoming();
+		    if (commCheckHTTPIncoming)
+			comm_select_http_incoming();
+		}
+	    }
+	}
+	/* Scan return fd masks for error on connect() descriptors */
+	assert(errfds.fd_count <= (unsigned int) Biggest_FD);
+	for (j = 0; j < (int) errfds.fd_count; j++) {
+	    register int errfds_handle = errfds.fd_array[j];
+	    for (fd = Biggest_FD; fd; fd--) {
+		if (fd_table[fd].win32.handle == errfds_handle) {
+		    if (fd_table[fd].flags.open) {
+			fde *F = &fd_table[fd];
+			if (F->write_handler) {
+			    PF *hdl = F->write_handler;
+			    void *hdl_data = F->write_data;
+			    commUpdateWriteHandler(fd, NULL, NULL);
+			    hdl(fd, hdl_data);
+			    statCounter.select_fds++;
+			}
+		    }
+		    break;
+		}
+	    }
+	}
+	/* Scan return fd masks for ready for write descriptors */
+	assert(writefds.fd_count <= (unsigned int) Biggest_FD);
+	for (j = 0; j < (int) writefds.fd_count; j++) {
+	    register int writefds_handle = writefds.fd_array[j];
+	    register int osfhandle;
+	    fde *F;
+	    no_bits = 1;
+	    for (fd = Biggest_FD; fd; fd--) {
+		osfhandle = fd_table[fd].win32.handle;
+		if (osfhandle == writefds_handle) {
+		    if (fd_table[fd].flags.open) {
+			no_bits = 0;
+			break;
+		    }
+		}
+	    }
+	    if (no_bits)
+		continue;
+	    if (fdIsIcp(fd)) {
+		callicp = 1;
+		continue;
+	    }
+	    if (fdIsDns(fd)) {
+		calldns = 1;
+		continue;
+	    }
+	    if (fdIsHttp(fd)) {
+		callhttp = 1;
+		continue;
+	    }
+	    F = &fd_table[fd];
+	    debug(5, 6) ("comm_select: FD %d ready for write\n", fd);
+	    if (F->write_handler) {
+		int do_write = 0;
+		switch (F->write_pending) {
+		case COMM_PENDING_WANTS_READ:
+		    do_write = __WSAFDIsSet(fd_table[fd].win32.handle, &readfds);
+		    break;
+		case COMM_PENDING_NORMAL:
+		case COMM_PENDING_WANTS_WRITE:
+		    do_write = 1;
+		    break;
+		case COMM_PENDING_NOW:
+		    do_write = 1;
+		    break;
+		}
+		if (do_write) {
+		    PF *hdl = F->write_handler;
+		    void *hdl_data = F->write_data;
+		    debug(5, 6) ("comm_select: FD %d calling write_handler %p(%p)\n", fd, hdl, hdl_data);
+		    commUpdateWriteHandler(fd, NULL, NULL);
+		    hdl(fd, hdl_data);
+		    statCounter.select_fds++;
+		    if (commCheckICPIncoming)
+			comm_select_icp_incoming();
+		    if (commCheckDNSIncoming)
+			comm_select_dns_incoming();
+		    if (commCheckHTTPIncoming)
+			comm_select_http_incoming();
+		}
+	    }
+	}
+	if (callicp)
+	    comm_select_icp_incoming();
+	if (calldns)
+	    comm_select_dns_incoming();
+	if (callhttp)
+	    comm_select_http_incoming();
+#if DELAY_POOLS
+	while ((fd = commGetSlowFd()) != -1) {
+	    fde *F = &fd_table[fd];
+	    PF *hdl = F->read_handler;
+	    void *hdl_data = F->read_data;
+	    debug(5, 6) ("comm_select: slow FD %d selected for reading\n", fd);
+	    if (hdl) {
+		commUpdateReadHandler(fd, NULL, NULL);
+		hdl(fd, hdl_data);
+		statCounter.select_fds++;
+		if (commCheckICPIncoming)
+		    comm_select_icp_incoming();
+		if (commCheckDNSIncoming)
+		    comm_select_dns_incoming();
+		if (commCheckHTTPIncoming)
+		    comm_select_http_incoming();
+	    }
+	}
+#endif
+	getCurrentTime();
+	statCounter.select_time += (current_dtime - start);
+	return COMM_OK;
+    }
+    while (timeout > current_dtime);
+    debug(5, 8) ("comm_select: time out: %d\n", (int) squid_curtime);
+    return COMM_TIMEOUT;
+}
+
+static void
+comm_select_dns_incoming(void)
+{
+    int nfds = 0;
+    int fds[2];
+    int nevents;
+    dns_io_events = 0;
+    if (DnsSocket < 0)
+	return;
+    fds[nfds++] = DnsSocket;
+    nevents = comm_check_incoming_select_handlers(nfds, fds);
+    if (nevents < 0)
+	return;
+    incoming_dns_interval += Config.comm_incoming.dns_average - nevents;
+    if (incoming_dns_interval < Config.comm_incoming.dns_min_poll)
+	incoming_dns_interval = Config.comm_incoming.dns_min_poll;
+    if (incoming_dns_interval > MAX_INCOMING_INTERVAL)
+	incoming_dns_interval = MAX_INCOMING_INTERVAL;
+    if (nevents > INCOMING_DNS_MAX)
+	nevents = INCOMING_DNS_MAX;
+    statHistCount(&statCounter.comm_dns_incoming, nevents);
+}
+
+void
+comm_select_init(void)
+{
+    zero_tv.tv_sec = 0;
+    zero_tv.tv_usec = 0;
+    cachemgrRegister("comm_incoming",
+	"comm_incoming() stats",
+	commIncomingStats, 0, 1);
+    FD_ZERO(&global_readfds);
+    FD_ZERO(&global_writefds);
+    nreadfds = nwritefds = 0;
+}
+
+void
+comm_select_shutdown(void)
+{
+}
+
+/*
+ * examine_select - debug routine.
+ *
+ * I spend the day chasing this core dump that occurs when both the client
+ * and the server side of a cache fetch simultaneoulsy abort the
+ * connection.  While I haven't really studied the code to figure out how
+ * it happens, the snippet below may prevent the cache from exitting:
+ * 
+ * Call this from where the select loop fails.
+ */
+static int
+examine_select(fd_set * readfds, fd_set * writefds)
+{
+    int fd = 0;
+    fd_set read_x;
+    fd_set write_x;
+    struct timeval tv;
+    close_handler *ch = NULL;
+    fde *F = NULL;
+    struct stat sb;
+    debug(5, 0) ("examine_select: Examining open file descriptors...\n");
+    for (fd = 0; fd < Squid_MaxFD; fd++) {
+	FD_ZERO(&read_x);
+	FD_ZERO(&write_x);
+	tv.tv_sec = tv.tv_usec = 0;
+	if (__WSAFDIsSet(fd_table[fd].win32.handle, readfds))
+	    FD_SET(fd, &read_x);
+	else if (__WSAFDIsSet(fd_table[fd].win32.handle, writefds))
+	    FD_SET(fd, &write_x);
+	else
+	    continue;
+	statCounter.syscalls.selects++;
+	errno = 0;
+	if (!fstat(fd, &sb)) {
+	    debug(5, 5) ("FD %d is valid.\n", fd);
+	    continue;
+	}
+	F = &fd_table[fd];
+	debug(5, 0) ("FD %d: %s\n", fd, xstrerror());
+	debug(5, 0) ("WARNING: FD %d has handlers, but it's invalid.\n", fd);
+	debug(5, 0) ("FD %d is a %s called '%s'\n",
+	    fd,
+	    fdTypeStr[F->type],
+	    F->desc);
+	debug(5, 0) ("tmout:%p read:%p write:%p\n",
+	    F->timeout_handler,
+	    F->read_handler,
+	    F->write_handler);
+	for (ch = F->close_handler; ch; ch = ch->next)
+	    debug(5, 0) (" close handler: %p\n", ch->handler);
+	if (F->close_handler) {
+	    commCallCloseHandlers(fd);
+	} else if (F->timeout_handler) {
+	    debug(5, 0) ("examine_select: Calling Timeout Handler\n");
+	    F->timeout_handler(fd, F->timeout_data);
+	}
+	F->close_handler = NULL;
+	F->timeout_handler = NULL;
+	F->read_handler = NULL;
+	F->write_handler = NULL;
+	FD_CLR(fd, readfds);
+	FD_CLR(fd, writefds);
+    }
+    return 0;
+}
+
+static void
+commIncomingStats(StoreEntry * sentry)
+{
+    StatCounters *f = &statCounter;
+    storeAppendPrintf(sentry, "Current incoming_icp_interval: %d\n",
+	incoming_icp_interval >> INCOMING_FACTOR);
+    storeAppendPrintf(sentry, "Current incoming_dns_interval: %d\n",
+	incoming_dns_interval >> INCOMING_FACTOR);
+    storeAppendPrintf(sentry, "Current incoming_http_interval: %d\n",
+	incoming_http_interval >> INCOMING_FACTOR);
+    storeAppendPrintf(sentry, "\n");
+    storeAppendPrintf(sentry, "Histogram of events per incoming socket type\n");
+    storeAppendPrintf(sentry, "ICP Messages handled per comm_select_icp_incoming() call:\n");
+    statHistDump(&f->comm_icp_incoming, sentry, statHistIntDumper);
+    storeAppendPrintf(sentry, "DNS Messages handled per comm_select_dns_incoming() call:\n");
+    statHistDump(&f->comm_dns_incoming, sentry, statHistIntDumper);
+    storeAppendPrintf(sentry, "HTTP Messages handled per comm_select_http_incoming() call:\n");
+    statHistDump(&f->comm_http_incoming, sentry, statHistIntDumper);
+}
+
+void
+commSetEvents(int fd, int need_read, int need_write)
+{
+    if (need_read && !__WSAFDIsSet(fd_table[fd].win32.handle, &global_readfds)) {
+	FD_SET(fd, &global_readfds);
+	nreadfds++;
+    } else if (!need_read && __WSAFDIsSet(fd_table[fd].win32.handle, &global_readfds)) {
+	FD_CLR(fd, &global_readfds);
+	nreadfds--;
+    }
+    if (need_write && !__WSAFDIsSet(fd_table[fd].win32.handle, &global_writefds)) {
+	FD_SET(fd, &global_writefds);
+	nwritefds++;
+    } else if (!need_write && __WSAFDIsSet(fd_table[fd].win32.handle, &global_writefds)) {
+	FD_CLR(fd, &global_writefds);
+	nwritefds--;
+    }
+}
+
+static int
+commDeferRead(int fd)
+{
+    fde *F = &fd_table[fd];
+    if (F->defer_check == NULL)
+	return 0;
+    return F->defer_check(fd, F->defer_data);
+}
+
+static void
+checkTimeouts(void)
+{
+    int fd;
+    fde *F = NULL;
+    PF *callback;
+    for (fd = 0; fd <= Biggest_FD; fd++) {
+	F = &fd_table[fd];
+	if (!F->flags.open)
+	    continue;
+	if (F->timeout == 0)
+	    continue;
+	if (F->timeout > squid_curtime)
+	    continue;
+	debug(5, 5) ("checkTimeouts: FD %d Expired\n", fd);
+	if (F->timeout_handler) {
+	    debug(5, 5) ("checkTimeouts: FD %d: Call timeout handler\n", fd);
+	    callback = F->timeout_handler;
+	    F->timeout_handler = NULL;
+	    callback(fd, F->timeout_data);
+	} else {
+	    debug(5, 5) ("checkTimeouts: FD %d: Forcing comm_close()\n", fd);
+	    comm_close(fd);
+	}
+    }
+}
+
+
+/* Called by async-io or diskd to speed up the polling */
+void
+comm_quick_poll_required(void)
+{
+    MAX_POLL_TIME = 10;
+}
+
+/* Defer reads from this fd */
+void
+commDeferFD(int fd)
+{
+    /* Not implemented */
+}
+
+/* Resume reading from the given fd */
+void
+commResumeFD(int fd)
+{
+    /* Not implemented */
+}
diff -ruN squid-2.6.PRE2/src/defines.h squid-2.6.RC1/src/defines.h
--- squid-2.6.PRE2/src/defines.h	Wed May 24 20:48:43 2006
+++ squid-2.6.RC1/src/defines.h	Sat Jun 10 10:08:07 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: defines.h,v 1.114 2006/05/25 02:48:43 hno Exp $
+ * $Id: defines.h,v 1.116 2006/06/10 16:08:07 serassio Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -252,28 +252,16 @@
 /*
  * Max number of ICP messages to receive per call to icpHandleUdp
  */
-#ifdef _SQUID_MSWIN_
-#define INCOMING_ICP_MAX 1
-#else
 #define INCOMING_ICP_MAX 15
-#endif
 /*
  * Max number of DNS messages to receive per call to DNS read handler
  */
-#ifdef _SQUID_MSWIN_
-#define INCOMING_DNS_MAX 1
-#else
 #define INCOMING_DNS_MAX 15
-#endif
 /*
  * Max number of HTTP connections to accept per call to httpAccept
  * and PER HTTP PORT
  */
-#ifdef _SQUID_MSWIN_
-#define INCOMING_HTTP_MAX 1
-#else
 #define INCOMING_HTTP_MAX 10
-#endif
 #define INCOMING_TOTAL_MAX (INCOMING_ICP_MAX+INCOMING_HTTP_MAX)
 
 /*
@@ -307,6 +295,9 @@
 #endif
 #ifndef O_BINARY
 #define O_BINARY 0
+#endif
+#ifndef O_NOATIME
+#define O_NOATIME 0
 #endif
 
 /* Windows Port */
diff -ruN squid-2.6.PRE2/src/delay_pools.c squid-2.6.RC1/src/delay_pools.c
--- squid-2.6.PRE2/src/delay_pools.c	Sat Jun  3 20:27:54 2006
+++ squid-2.6.RC1/src/delay_pools.c	Thu Jun  8 13:36:36 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: delay_pools.c,v 1.30 2006/06/04 02:27:54 hno Exp $
+ * $Id: delay_pools.c,v 1.32 2006/06/08 19:36:36 hno Exp $
  *
  * DEBUG: section 77    Delay Pools
  * AUTHOR: David Luyer <david@luyer.net>
@@ -89,7 +89,7 @@
 typedef union _delayPool delayPool;
 
 static delayPool *delay_data = NULL;
-static fd_set delay_no_delay;
+static char *delay_no_delay;
 static time_t delay_pools_last_update = 0;
 static hash_table *delay_id_ptr_hash = NULL;
 static long memory_used = 0;
@@ -134,7 +134,7 @@
 delayPoolsInit(void)
 {
     delay_pools_last_update = getCurrentTime();
-    FD_ZERO(&delay_no_delay);
+    delay_no_delay = xcalloc(1, Squid_MaxFD);
     cachemgrRegister("delay", "Delay Pool Levels", delayPoolStats, 0, 1);
 }
 
@@ -284,19 +284,19 @@
 void
 delaySetNoDelay(int fd)
 {
-    FD_SET(fd, &delay_no_delay);
+    delay_no_delay[fd] = 1;
 }
 
 void
 delayClearNoDelay(int fd)
 {
-    FD_CLR(fd, &delay_no_delay);
+    delay_no_delay[fd] = 0;
 }
 
 int
 delayIsNoDelay(int fd)
 {
-    return FD_ISSET(fd, &delay_no_delay);
+    return delay_no_delay[fd];
 }
 
 static delay_id
diff -ruN squid-2.6.PRE2/src/enums.h squid-2.6.RC1/src/enums.h
--- squid-2.6.PRE2/src/enums.h	Mon May 22 15:54:56 2006
+++ squid-2.6.RC1/src/enums.h	Sat Jun 17 17:31:03 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: enums.h,v 1.231 2006/05/22 21:54:56 adrian Exp $
+ * $Id: enums.h,v 1.232 2006/06/17 23:31:03 hno Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -413,6 +413,7 @@
     METHOD_UNSUBSCRIBE,
     METHOD_POLL,
     METHOD_REPORT,
+    /* Extension methods must be last, Add any new methods before this line */
     METHOD_EXT00,
     METHOD_EXT01,
     METHOD_EXT02,
diff -ruN squid-2.6.PRE2/src/fd.c squid-2.6.RC1/src/fd.c
--- squid-2.6.PRE2/src/fd.c	Tue May 30 07:05:57 2006
+++ squid-2.6.RC1/src/fd.c	Sun Jun 11 11:06:25 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: fd.c,v 1.50 2006/05/30 13:05:57 hno Exp $
+ * $Id: fd.c,v 1.52 2006/06/11 17:06:25 serassio Exp $
  *
  * DEBUG: section 51    Filedescriptor Functions
  * AUTHOR: Duane Wessels
@@ -37,6 +37,12 @@
 
 int default_read_method(int, char *, int);
 int default_write_method(int, const char *, int);
+#ifdef _SQUID_MSWIN_
+int socket_read_method(int, char *, int);
+int socket_write_method(int, const char *, int);
+int file_read_method(int, char *, int);
+int file_write_method(int, const char *, int);
+#endif
 
 const char *fdTypeStr[] =
 {
@@ -84,7 +90,7 @@
 	assert(F->write_handler == NULL);
     }
     debug(51, 3) ("fd_close FD %d %s\n", fd, F->desc);
-    commSetEvents(fd, 0, 0, 0);
+    commSetEvents(fd, 0, 0);
     F->flags.open = 0;
     fdUpdateBiggest(fd, 0);
     Number_FD--;
@@ -92,6 +98,31 @@
     F->timeout = 0;
 }
 
+#ifdef _SQUID_MSWIN_
+int
+socket_read_method(int fd, char *buf, int len)
+{
+    return (recv(fd, buf, len, 0));
+}
+
+int
+file_read_method(int fd, char *buf, int len)
+{
+    return (_read(fd, buf, len));
+}
+
+int
+socket_write_method(int fd, const char *buf, int len)
+{
+    return (send(fd, buf, len, 0));
+}
+
+file_write_method(int fd, const char *buf, int len)
+{
+    return (_write(fd, buf, len));
+}
+#endif
+
 int
 default_read_method(int fd, char *buf, int len)
 {
@@ -118,8 +149,26 @@
     debug(51, 3) ("fd_open FD %d %s\n", fd, desc);
     F->type = type;
     F->flags.open = 1;
+#ifdef _SQUID_MSWIN_
+    F->win32.handle = _get_osfhandle(fd);
+    switch (type) {
+    case FD_SOCKET:
+    case FD_PIPE:
+	F->read_method = &socket_read_method;
+	F->write_method = &socket_write_method;
+	break;
+    case FD_FILE:
+    case FD_LOG:
+	F->read_method = &file_read_method;
+	F->write_method = &file_write_method;
+	break;
+    default:
+	fatalf("fd_open(): unknown FD type - FD#: %i, type: %u, desc %s\n", fd, type, desc);
+    }
+#else
     F->read_method = &default_read_method;
     F->write_method = &default_write_method;
+#endif
     fdUpdateBiggest(fd, 1);
     if (desc)
 	xstrncpy(F->desc, desc, FD_DESC_SZ);
diff -ruN squid-2.6.PRE2/src/forward.c squid-2.6.RC1/src/forward.c
--- squid-2.6.PRE2/src/forward.c	Mon Jun  5 23:57:55 2006
+++ squid-2.6.RC1/src/forward.c	Mon Jun 19 17:40:53 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: forward.c,v 1.107 2006/06/06 05:57:55 hno Exp $
+ * $Id: forward.c,v 1.109 2006/06/19 23:40:53 hno Exp $
  *
  * DEBUG: section 17    Request Forwarding
  * AUTHOR: Duane Wessels
@@ -189,6 +189,8 @@
     debug(17, 2) ("fwdServerClosed: FD %d %s\n", fd, storeUrl(fwdState->entry));
     assert(fwdState->server_fd == fd);
     fwdState->server_fd = -1;
+    if (EBIT_TEST(fwdState->entry->flags, ENTRY_DEFER_READ))
+	storeResetDefer(fwdState->entry);
     if (fwdCheckRetry(fwdState)) {
 	int originserver = (fwdState->servers->peer == NULL);
 	debug(17, 3) ("fwdServerClosed: re-forwarding (%d tries, %d secs)\n",
@@ -537,6 +539,12 @@
 	    if (!fs->peer)
 		fwdState->origin_tries++;
 	    comm_add_close_handler(fd, fwdServerClosed, fwdState);
+	    if (fs->peer)
+		hierarchyNote(&fwdState->request->hier, fs->code, fs->peer->host);
+	    else if (Config.onoff.log_ip_on_direct && fs->code == HIER_DIRECT)
+		hierarchyNote(&fwdState->request->hier, fs->code, fd_table[fd].ipaddr);
+	    else
+		hierarchyNote(&fwdState->request->hier, fs->code, name);
 	    fwdDispatch(fwdState);
 	    return;
 	} else {
@@ -899,10 +907,11 @@
     else {
 	int i = delayMostBytesWanted(mem, INT_MAX);
 	if (0 == i) {
-	    if (fd >= 0) {
-		mem->serverfd = fd;
-		commDeferFD(fd);
-	    }
+	    /* No storeDeferrRead here as it's not store dependent.
+	     * Will get changed the day delay pools interact nicely
+	     * with the store..
+	     */
+	    commDeferFD(fd);
 	    return 1;
 	}
 	/* was: rc = -(rc != INT_MAX); */
@@ -1001,6 +1010,8 @@
     assert(e->mem_obj->chksum == url_checksum(e->mem_obj->url));
 #endif
     fwdLogReplyStatus(fwdState->n_tries, e->mem_obj->reply->sline.status);
+    if (EBIT_TEST(e->flags, ENTRY_DEFER_READ))
+	storeResumeRead(e);
     if (fwdReforward(fwdState)) {
 	debug(17, 3) ("fwdComplete: re-forwarding %d %s\n",
 	    e->mem_obj->reply->sline.status,
diff -ruN squid-2.6.PRE2/src/fs/Makefile.am squid-2.6.RC1/src/fs/Makefile.am
--- squid-2.6.PRE2/src/fs/Makefile.am	Fri Jun  2 15:35:39 2006
+++ squid-2.6.RC1/src/fs/Makefile.am	Mon Jun 12 00:04:08 2006
@@ -1,6 +1,6 @@
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.am,v 1.6 2006/06/02 21:35:39 hno Exp $
+#  $Id: Makefile.am,v 1.8 2006/06/12 06:04:08 hno Exp $
 #
 
 AUTOMAKE_OPTIONS = subdir-objects
@@ -16,6 +16,18 @@
 	diskd/store_io_diskd.c
 libnull_a_SOURCES = null/store_null.c
 libufs_a_SOURCES = ufs/store_dir_ufs.c ufs/store_io_ufs.c ufs/store_ufs.h
+
+if NEED_DISKD
+DISKD = diskd-daemon
+else
+DISKD = 
+endif
+
+libexec_PROGRAMS = $(DISKD)
+
+diskd_daemon_SOURCES = diskd/diskd.c
+
+LDADD = $(top_builddir)/lib/libmiscutil.a @XTRA_LIBS@
 
 EXTRA_DIST = \
 	coss/coss-notes.txt
diff -ruN squid-2.6.PRE2/src/fs/Makefile.in squid-2.6.RC1/src/fs/Makefile.in
--- squid-2.6.PRE2/src/fs/Makefile.in	Fri Jun  2 15:35:39 2006
+++ squid-2.6.RC1/src/fs/Makefile.in	Mon Jun 12 00:10:12 2006
@@ -16,9 +16,10 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.31 2006/06/02 21:35:39 hno Exp $
+#  $Id: Makefile.in,v 1.35 2006/06/12 06:10:12 hno Exp $
 #
 
+
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
@@ -41,6 +42,7 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
+libexec_PROGRAMS = $(am__EXEEXT_1)
 subdir = src/fs
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -78,6 +80,14 @@
 am_libufs_a_OBJECTS = ufs/store_dir_ufs.$(OBJEXT) \
 	ufs/store_io_ufs.$(OBJEXT)
 libufs_a_OBJECTS = $(am_libufs_a_OBJECTS)
+@NEED_DISKD_TRUE@am__EXEEXT_1 = diskd-daemon$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(libexecdir)"
+libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(libexec_PROGRAMS)
+am_diskd_daemon_OBJECTS = diskd/diskd.$(OBJEXT)
+diskd_daemon_OBJECTS = $(am_diskd_daemon_OBJECTS)
+diskd_daemon_LDADD = $(LDADD)
+diskd_daemon_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/cfgaux/depcomp
 am__depfiles_maybe = depfiles
@@ -86,9 +96,11 @@
 CCLD = $(CC)
 LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(libaufs_a_SOURCES) $(libcoss_a_SOURCES) \
-	$(libdiskd_a_SOURCES) $(libnull_a_SOURCES) $(libufs_a_SOURCES)
+	$(libdiskd_a_SOURCES) $(libnull_a_SOURCES) $(libufs_a_SOURCES) \
+	$(diskd_daemon_SOURCES)
 DIST_SOURCES = $(libaufs_a_SOURCES) $(libcoss_a_SOURCES) \
-	$(libdiskd_a_SOURCES) $(libnull_a_SOURCES) $(libufs_a_SOURCES)
+	$(libdiskd_a_SOURCES) $(libnull_a_SOURCES) $(libufs_a_SOURCES) \
+	$(diskd_daemon_SOURCES)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -166,6 +178,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -198,7 +212,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -208,10 +221,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
@@ -270,6 +287,10 @@
 
 libnull_a_SOURCES = null/store_null.c
 libufs_a_SOURCES = ufs/store_dir_ufs.c ufs/store_io_ufs.c ufs/store_ufs.h
+@NEED_DISKD_FALSE@DISKD = 
+@NEED_DISKD_TRUE@DISKD = diskd-daemon
+diskd_daemon_SOURCES = diskd/diskd.c
+LDADD = $(top_builddir)/lib/libmiscutil.a @XTRA_LIBS@
 EXTRA_DIST = \
 	coss/coss-notes.txt
 
@@ -388,6 +409,32 @@
 	-rm -f libufs.a
 	$(libufs_a_AR) libufs.a $(libufs_a_OBJECTS) $(libufs_a_LIBADD)
 	$(RANLIB) libufs.a
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(libexecdir)" || $(mkdir_p) "$(DESTDIR)$(libexecdir)"
+	@list='$(libexec_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(libexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(libexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecdir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-libexecPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(libexec_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(libexecdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(libexecdir)/$$f"; \
+	done
+
+clean-libexecPROGRAMS:
+	-test -z "$(libexec_PROGRAMS)" || rm -f $(libexec_PROGRAMS)
+diskd-daemon$(EXEEXT): $(diskd_daemon_OBJECTS) $(diskd_daemon_DEPENDENCIES) 
+	@rm -f diskd-daemon$(EXEEXT)
+	$(LINK) $(diskd_daemon_LDFLAGS) $(diskd_daemon_OBJECTS) $(diskd_daemon_LDADD) $(LIBS)
 
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
@@ -517,8 +564,11 @@
 	done
 check-am: all-am
 check: check-am
-all-am: Makefile $(LIBRARIES)
+all-am: Makefile $(LIBRARIES) $(PROGRAMS)
 installdirs:
+	for dir in "$(DESTDIR)$(libexecdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
 install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
@@ -555,7 +605,8 @@
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+clean-am: clean-generic clean-libexecPROGRAMS clean-noinstLIBRARIES \
+	mostlyclean-am
 
 distclean: distclean-am
 	-rm -rf aufs/$(DEPDIR) coss/$(DEPDIR) diskd/$(DEPDIR) null/$(DEPDIR) ufs/$(DEPDIR)
@@ -575,7 +626,7 @@
 
 install-data-am:
 
-install-exec-am:
+install-exec-am: install-libexecPROGRAMS
 
 install-info: install-info-am
 
@@ -600,18 +651,19 @@
 
 ps-am:
 
-uninstall-am: uninstall-info-am
+uninstall-am: uninstall-info-am uninstall-libexecPROGRAMS
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-	clean-noinstLIBRARIES ctags distclean distclean-compile \
-	distclean-generic distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
-	uninstall-am uninstall-info-am
+	clean-libexecPROGRAMS clean-noinstLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-libexecPROGRAMS \
+	install-man install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+	ps ps-am tags uninstall uninstall-am uninstall-info-am \
+	uninstall-libexecPROGRAMS
 
 
 aufs/all: libaufs.a
diff -ruN squid-2.6.PRE2/src/fs/aufs/store_io_aufs.c squid-2.6.RC1/src/fs/aufs/store_io_aufs.c
--- squid-2.6.PRE2/src/fs/aufs/store_io_aufs.c	Sat May 27 08:47:03 2006
+++ squid-2.6.RC1/src/fs/aufs/store_io_aufs.c	Wed Jun  7 16:55:45 2006
@@ -48,7 +48,7 @@
 	return NULL;
 #endif
 #if !ASYNC_OPEN
-    fd = file_open(path, O_RDONLY | O_BINARY);
+    fd = file_open(path, O_RDONLY | O_BINARY | O_NOATIME);
     if (fd < 0) {
 	debug(79, 3) ("storeAufsOpen: got failure (%d)\n", errno);
 	return NULL;
@@ -69,7 +69,7 @@
     Opening_FD++;
     statCounter.syscalls.disk.opens++;
 #if ASYNC_OPEN
-    aioOpen(path, O_RDONLY | O_BINARY, 0644, storeAufsOpenDone, sio);
+    aioOpen(path, O_RDONLY | O_BINARY | O_NOATIME, 0644, storeAufsOpenDone, sio);
 #else
     storeAufsOpenDone(fd, sio, fd, 0);
 #endif
diff -ruN squid-2.6.PRE2/src/fs/coss/store_coss.h squid-2.6.RC1/src/fs/coss/store_coss.h
--- squid-2.6.PRE2/src/fs/coss/store_coss.h	Sat May 20 06:23:50 2006
+++ squid-2.6.RC1/src/fs/coss/store_coss.h	Sun Jun 11 14:59:09 2006
@@ -22,12 +22,6 @@
 #define COSS_ALLOC_ALLOCATE		1
 #define COSS_ALLOC_REALLOC		2
 
-/*
- * Define this if you would like to use the aufs IO method for
- * disk IO instead of the POSIX AIO method.
- */
-#define	USE_AUFSOPS 1
-
 #if USE_AUFSOPS
 /* XXX a hack; the async ops should be broken out! */
 typedef void AIOCB(int fd, void *cbdata, const char *buf,
@@ -136,7 +130,7 @@
     dlink_list pending_ops;
     int pending_reloc_count;
     int count;
-#if ! USE_AUFSOPS
+#if !USE_AUFSOPS
     async_queue_t aq;
 #endif
     dlink_node *walk_current;
diff -ruN squid-2.6.PRE2/src/fs/diskd/store_io_diskd.c squid-2.6.RC1/src/fs/diskd/store_io_diskd.c
--- squid-2.6.PRE2/src/fs/diskd/store_io_diskd.c	Mon Jun  5 01:48:04 2006
+++ squid-2.6.RC1/src/fs/diskd/store_io_diskd.c	Wed Jun  7 16:55:45 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_diskd.c,v 1.30 2006/06/05 07:48:04 hno Exp $
+ * $Id: store_io_diskd.c,v 1.31 2006/06/07 22:55:45 hno Exp $
  *
  * DEBUG: section 79    Squid-side DISKD I/O functions.
  * AUTHOR: Duane Wessels
@@ -76,7 +76,7 @@
 
     sio->swap_filen = f;
     sio->swap_dirn = SD->index;
-    sio->mode = O_RDONLY | O_BINARY;
+    sio->mode = O_RDONLY | O_BINARY | O_NOATIME;
     sio->callback = callback;
     sio->callback_data = callback_data;
     sio->e = e;
diff -ruN squid-2.6.PRE2/src/fs/null/store_null.c squid-2.6.RC1/src/fs/null/store_null.c
--- squid-2.6.PRE2/src/fs/null/store_null.c	Thu May 18 06:57:11 2006
+++ squid-2.6.RC1/src/fs/null/store_null.c	Thu Jun  8 07:39:52 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_null.c,v 1.6 2006/05/18 12:57:11 hno Exp $
+ * $Id: store_null.c,v 1.7 2006/06/08 13:39:52 hno Exp $
  *
  * DEBUG: section 47    Store Directory Routines
  * AUTHOR: Duane Wessels
@@ -78,6 +78,15 @@
 	NULL, 0.0, 1);
 }
 
+/*
+ * Only "free" the filesystem specific stuff here
+ */
+static void
+storeNullDirFree(SwapDir * s)
+{
+}
+
+
 static void
 storeNullDirRebuildComplete(void *unused)
 {
@@ -121,6 +130,7 @@
     sd->path = xstrdup(path);
     sd->statfs = storeNullDirStats;
     sd->init = storeNullDirInit;
+    sd->freefs = storeNullDirFree;
     sd->checkobj = storeNullDirCheckObj;
     sd->checkload = storeNullDirCheckLoadAv;
     sd->log.clean.start = storeNullDirWriteCleanStart;
diff -ruN squid-2.6.PRE2/src/fs/ufs/store_io_ufs.c squid-2.6.RC1/src/fs/ufs/store_io_ufs.c
--- squid-2.6.PRE2/src/fs/ufs/store_io_ufs.c	Tue May 17 10:56:43 2005
+++ squid-2.6.RC1/src/fs/ufs/store_io_ufs.c	Wed Jun  7 16:55:45 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_io_ufs.c,v 1.13 2005/05/17 16:56:43 hno Exp $
+ * $Id: store_io_ufs.c,v 1.14 2006/06/07 22:55:45 hno Exp $
  *
  * DEBUG: section 79    Storage Manager UFS Interface
  * AUTHOR: Duane Wessels
@@ -57,7 +57,7 @@
     struct stat sb;
     int fd;
     debug(79, 3) ("storeUfsOpen: fileno %08X\n", f);
-    fd = file_open(path, O_RDONLY | O_BINARY);
+    fd = file_open(path, O_RDONLY | O_BINARY | O_NOATIME);
     if (fd < 0) {
 	debug(79, 3) ("storeUfsOpen: got failure (%d)\n", errno);
 	return NULL;
diff -ruN squid-2.6.PRE2/src/htcp.c squid-2.6.RC1/src/htcp.c
--- squid-2.6.PRE2/src/htcp.c	Tue Jun  6 00:37:41 2006
+++ squid-2.6.RC1/src/htcp.c	Mon Jun 12 11:44:41 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: htcp.c,v 1.51 2006/06/06 06:37:41 hno Exp $
+ * $Id: htcp.c,v 1.52 2006/06/12 17:44:41 hno Exp $
  *
  * DEBUG: section 31    Hypertext Caching Protocol
  * AUTHOR: Duane Wesssels
@@ -176,7 +176,8 @@
 static u_num32 msg_id_counter = 0;
 static int htcpInSocket = -1;
 static int htcpOutSocket = -1;
-#define N_QUERIED_KEYS 256
+#define N_QUERIED_KEYS 8192
+static u_num32 queried_id[N_QUERIED_KEYS];
 static cache_key queried_keys[N_QUERIED_KEYS][MD5_DIGEST_CHARS];
 static struct sockaddr_in queried_addr[N_QUERIED_KEYS];
 static MemPool *htcpSpecifierPool = NULL;
@@ -446,7 +447,7 @@
 	buf,
 	len);
     if (x < 0)
-	debug(31, 0) ("htcpSend: FD %d sendto: %s\n", htcpOutSocket, xstrerror());
+	debug(31, 1) ("htcpSend: FD %d sendto: %s\n", htcpOutSocket, xstrerror());
 }
 
 /*
@@ -696,7 +697,7 @@
     safe_free(stuff.D.entity_hdrs);
     safe_free(stuff.D.cache_hdrs);
     if (!pktlen) {
-	debug(31, 0) ("htcpTstReply: htcpBuildPacket() failed\n");
+	debug(31, 1) ("htcpTstReply: htcpBuildPacket() failed\n");
 	return;
     }
     htcpSend(pkt, (int) pktlen, from);
@@ -722,7 +723,7 @@
     stuff.msg_id = dhdr->msg_id;
     pktlen = htcpBuildPacket(pkt, sizeof(pkt), &stuff);
     if (pktlen == 0) {
-	debug(31, 0) ("htcpClrReply: htcpBuildPacket() failed\n");
+	debug(31, 1) ("htcpClrReply: htcpBuildPacket() failed\n");
 	return;
     }
     htcpSend(pkt, (int) pktlen, from);
@@ -829,9 +830,13 @@
     htcpDetail *d = NULL;
     char *t;
 
+    if (queried_id[hdr->msg_id % N_QUERIED_KEYS] != hdr->msg_id) {
+	debug(31, 2) ("htcpHandleTstResponse: No matching query id '%d' (expected %d) from '%s'\n", hdr->msg_id, queried_id[hdr->msg_id % N_QUERIED_KEYS], inet_ntoa(from->sin_addr));
+	return;
+    }
     key = queried_keys[hdr->msg_id % N_QUERIED_KEYS];
     if (!key) {
-	debug(31, 2) ("htcpHandleTstResponse: No matching query id '%d' from '%s'\n", hdr->msg_id, inet_ntoa(from->sin_addr));
+	debug(31, 1) ("htcpHandleTstResponse: No query key for response id '%d' from '%s'\n", hdr->msg_id, inet_ntoa(from->sin_addr));
 	return;
     }
     peer = &queried_addr[hdr->msg_id % N_QUERIED_KEYS];
@@ -864,7 +869,6 @@
 	if ((t = d->cache_hdrs))
 	    httpHeaderParse(&htcpReply.hdr, t, t + strlen(t));
     }
-    key = queried_keys[htcpReply.msg_id % N_QUERIED_KEYS];
     debug(31, 3) ("htcpHandleTstResponse: key (%p) %s\n", key, storeKeyText(key));
     neighborsHtcpReply(key, &htcpReply, from);
     httpHeaderClean(&htcpReply.hdr);
@@ -976,7 +980,7 @@
 {
     htcpDataHeader hdr;
     if (sz < sizeof(htcpDataHeader)) {
-	debug(31, 0) ("htcpHandleData: msg size less than htcpDataHeader size\n");
+	debug(31, 1) ("htcpHandleData: msg size less than htcpDataHeader size\n");
 	return;
     }
     if (!old_squid_format) {
@@ -997,7 +1001,7 @@
     debug(31, 3) ("htcpHandleData: sz = %d\n", sz);
     debug(31, 3) ("htcpHandleData: length = %d\n", (int) hdr.length);
     if (hdr.opcode >= HTCP_END) {
-	debug(31, 0) ("htcpHandleData: client %s, opcode %d out of range\n",
+	debug(31, 1) ("htcpHandleData: client %s, opcode %d out of range\n",
 	    inet_ntoa(from->sin_addr),
 	    (int) hdr.opcode);
 	return;
@@ -1009,11 +1013,7 @@
     debug(31, 3) ("htcpHandleData: RR = %d\n", (int) hdr.RR);
     debug(31, 3) ("htcpHandleData: msg_id = %d\n", (int) hdr.msg_id);
     if (sz < hdr.length) {
-	debug(31, 0) ("htcpHandle: sz < hdr.length\n");
-	return;
-    }
-    if (hdr.length + sizeof(htcpDataHeader) > sz) {
-	debug(31, 1) ("htcpHandleData: Invalid HTCP packet from %s\n", inet_ntoa(from->sin_addr));
+	debug(31, 1) ("htcpHandleData: sz < hdr.length\n");
 	return;
     }
     /*
@@ -1051,7 +1051,7 @@
 {
     htcpHeader htcpHdr;
     if (sz < sizeof(htcpHeader)) {
-	debug(31, 0) ("htcpHandle: msg size less than htcpHeader size\n");
+	debug(31, 1) ("htcpHandle: msg size less than htcpHeader size\n");
 	return;
     }
     htcpHexdump("htcpHandle", buf, sz);
@@ -1186,10 +1186,11 @@
     pktlen = htcpBuildPacket(pkt, sizeof(pkt), &stuff);
     memBufClean(&mb);
     if (!pktlen) {
-	debug(31, 0) ("htcpQuery: htcpBuildPacket() failed\n");
+	debug(31, 1) ("htcpQuery: htcpBuildPacket() failed\n");
 	return;
     }
     htcpSend(pkt, (int) pktlen, &p->in_addr);
+    queried_id[stuff.msg_id % N_QUERIED_KEYS] = stuff.msg_id;
     save_key = queried_keys[stuff.msg_id % N_QUERIED_KEYS];
     storeKeyCopy(save_key, e->hash.key);
     queried_addr[stuff.msg_id % N_QUERIED_KEYS] = p->in_addr;
diff -ruN squid-2.6.PRE2/src/http.c squid-2.6.RC1/src/http.c
--- squid-2.6.PRE2/src/http.c	Mon Jun  5 23:57:55 2006
+++ squid-2.6.RC1/src/http.c	Wed Jun  7 13:43:51 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: http.c,v 1.407 2006/06/06 05:57:55 hno Exp $
+ * $Id: http.c,v 1.409 2006/06/07 19:43:51 hno Exp $
  *
  * DEBUG: section 11    Hypertext Transfer Protocol (HTTP)
  * AUTHOR: Harvest Derived
@@ -224,9 +224,21 @@
     HttpHeader *hdr = &rep->header;
     const int cc_mask = (rep->cache_control) ? rep->cache_control->mask : 0;
     const char *v;
-    if (EBIT_TEST(cc_mask, CC_PRIVATE))
+#if HTTP_VIOLATIONS
+    const refresh_t *R = NULL;
+    /* This strange looking define first looks up the frefresh pattern
+     * and then checks if the specified flag is set. The main purpose
+     * of this is to simplify the refresh pattern lookup
+     */
+#define REFRESH_OVERRIDE(flag) \
+	((R = (R ? R : refreshLimits(httpState->entry->mem_obj->url))) , \
+	(R && R->flags.flag))
+#else
+#define REFRESH_OVERRIDE(field)	0
+#endif
+    if (EBIT_TEST(cc_mask, CC_PRIVATE) && !REFRESH_OVERRIDE(ignore_private))
 	return 0;
-    if (EBIT_TEST(cc_mask, CC_NO_CACHE))
+    if (EBIT_TEST(cc_mask, CC_NO_CACHE) && !REFRESH_OVERRIDE(ignore_no_cache))
 	return 0;
     if (EBIT_TEST(cc_mask, CC_NO_STORE))
 	return 0;
@@ -236,7 +248,7 @@
 	 * only if a Cache-Control: public reply header is present.
 	 * RFC 2068, sec 14.9.4
 	 */
-	if (!EBIT_TEST(cc_mask, CC_PUBLIC))
+	if (!EBIT_TEST(cc_mask, CC_PUBLIC) && !REFRESH_OVERRIDE(ignore_auth))
 	    return 0;
     }
     /* Pragma: no-cache in _replies_ is not documented in HTTP,
@@ -245,7 +257,7 @@
 	String s = httpHeaderGetList(hdr, HDR_PRAGMA);
 	const int no_cache = strListIsMember(&s, "no-cache", ',');
 	stringClean(&s);
-	if (no_cache)
+	if (no_cache && !REFRESH_OVERRIDE(ignore_no_cache))
 	    return 0;
     }
     /*
@@ -354,6 +366,17 @@
 	char *name = xmalloc(ilen + 1);
 	xstrncpy(name, item, ilen + 1);
 	Tolower(name);
+	if (strcmp(name, "accept-encoding") == 0) {
+	    aclCheck_t checklist;
+	    memset(&checklist, 0, sizeof(checklist));
+	    checklist.request = request;
+	    checklist.reply = reply;
+	    if (aclCheckFast(Config.accessList.vary_encoding, &checklist)) {
+		stringClean(&request->vary_encoding);
+		request->vary_encoding = httpHeaderGetStrOrList(&request->header, HDR_ACCEPT_ENCODING);
+		strCat(request->vary_encoding, "");
+	    }
+	}
 	if (strcmp(name, "*") == 0) {
 	    /* Can not handle "Vary: *" efficiently, bail out making the response not cached */
 	    safe_free(name);
@@ -466,6 +489,9 @@
 	    goto no_cache;
 	}
 	entry->mem_obj->vary_headers = xstrdup(vary);
+	safe_free(entry->mem_obj->vary_encoding);
+	if (strBuf(httpState->orig_request->vary_encoding))
+	    entry->mem_obj->vary_encoding = xstrdup(strBuf(httpState->orig_request->vary_encoding));
     }
     switch (httpCachableReply(httpState)) {
     case 1:
diff -ruN squid-2.6.PRE2/src/ipc.c squid-2.6.RC1/src/ipc.c
--- squid-2.6.PRE2/src/ipc.c	Mon May 29 08:48:29 2006
+++ squid-2.6.RC1/src/ipc.c	Fri Jun  9 08:22:38 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: ipc.c,v 1.34 2006/05/29 14:48:29 hno Exp $
+ * $Id: ipc.c,v 1.36 2006/06/09 14:22:38 hno Exp $
  *
  * DEBUG: section 54    Interprocess Communication
  * AUTHOR: Duane Wessels
@@ -229,13 +229,8 @@
 	    *wfd = pwfd;
 	fd_table[prfd].flags.ipc = 1;
 	fd_table[pwfd].flags.ipc = 1;
-	if (Config.sleep_after_fork) {
-	    /* XXX emulation of usleep() */
-	    struct timeval sl;
-	    sl.tv_sec = Config.sleep_after_fork / 1000000;
-	    sl.tv_usec = Config.sleep_after_fork % 1000000;
-	    select(0, NULL, NULL, NULL, &sl);
-	}
+	if (Config.sleep_after_fork)
+	    xusleep(Config.sleep_after_fork);
 	return pid;
     }
     /* child */
@@ -303,7 +298,7 @@
     close(t3);
 #if 0
     /* Make sure all other filedescriptors are closed */
-    for (x = 3; x < SQUID_MAXFD; x++)
+    for (x = 3; x < Squid_MaxFD; x++)
 	close(x);
 #endif
 #if HAVE_SETSID
diff -ruN squid-2.6.PRE2/src/main.c squid-2.6.RC1/src/main.c
--- squid-2.6.PRE2/src/main.c	Mon Jun  5 06:44:33 2006
+++ squid-2.6.RC1/src/main.c	Sun Jun 11 11:06:25 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: main.c,v 1.379 2006/06/05 12:44:33 hno Exp $
+ * $Id: main.c,v 1.383 2006/06/11 17:06:25 serassio Exp $
  *
  * DEBUG: section 1     Startup and Main Loop
  * AUTHOR: Harvest Derived
@@ -37,8 +37,6 @@
 #ifdef LINUX_TPROXY
 #include <linux/capability.h>
 #include <sys/prctl.h>
-#undef __FD_SETSIZE
-#define __FD_SETSIZE SQUID_MAXFD
 #endif
 
 #if defined(USE_WIN32_SERVICE) && defined(_SQUID_WIN32_)
@@ -96,11 +94,10 @@
 {
     fprintf(stderr,
 #if defined(USE_WIN32_SERVICE) && defined(_SQUID_WIN32_)
-	"Usage: %s [-dhirvzCDFRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal] [-n name] [-O CommandLine]\n"
+	"Usage: %s [-hirvzCDFRYX] [-d level] [-s | -l facility] [-f config-file] [-u port] [-k signal] [-n name] [-O command-line]\n"
 #else
-	"Usage: %s [-dhvzCDFNRVYX] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]\n"
+	"Usage: %s [-hvzCDFNRYX] [-d level] [-s | -l facility] [-f config-file] [-u port] [-k signal]\n"
 #endif
-	"       -a port   Specify HTTP port number (default: %d).\n"
 	"       -d level  Write debugging to stderr also.\n"
 	"       -f file   Use given config-file instead of\n"
 	"                 %s\n"
@@ -131,10 +128,9 @@
 #endif
 	"       -R        Do not set REUSEADDR on port.\n"
 	"       -S        Double-check swap during rebuild.\n"
-	"       -V        Virtual host httpd-accelerator.\n"
 	"       -X        Force full debugging.\n"
 	"       -Y        Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload.\n",
-	appname, CACHE_HTTP_PORT, DefaultConfigFile, CACHE_ICP_PORT);
+	appname, DefaultConfigFile, CACHE_ICP_PORT);
     exit(1);
 }
 
@@ -561,6 +557,11 @@
 #endif
     debug(1, 1) ("Process ID %d\n", (int) getpid());
     debug(1, 1) ("With %d file descriptors available\n", Squid_MaxFD);
+#ifdef _SQUID_MSWIN_
+    debug(1, 1) ("With %d CRT stdio descriptors available\n", _getmaxstdio());
+    if (WIN32_Socks_initialized)
+	debug(1, 1) ("Windows sockets initialized\n");
+#endif
 
     if (!configured_once)
 	disk_init();		/* disk_init must go before ipcache_init() */
@@ -1131,7 +1132,6 @@
     mimeFreeMemory();
     errorClean();
 #endif
-    comm_select_shutdown();
 #if !XMALLOC_TRACE
     if (opt_no_daemon) {
 	fd_close(0);
@@ -1139,6 +1139,7 @@
 	fd_close(2);
     }
 #endif
+    comm_select_shutdown();
     fdDumpOpen();
     fdFreeMemory();
     memClean();
diff -ruN squid-2.6.PRE2/src/protos.h squid-2.6.RC1/src/protos.h
--- squid-2.6.PRE2/src/protos.h	Tue Jun  6 11:40:02 2006
+++ squid-2.6.RC1/src/protos.h	Mon Jun 19 17:01:11 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: protos.h,v 1.493 2006/06/06 17:40:02 hno Exp $
+ * $Id: protos.h,v 1.500 2006/06/19 23:01:11 hno Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -186,8 +186,8 @@
 extern void comm_select_init(void);
 extern void comm_select_shutdown(void);
 extern int comm_select(int);
-extern void commUpdateEvents(int fd, int force);
-extern void commSetEvents(int fd, int need_read, int need_write, int force);
+extern void commUpdateEvents(int fd);
+extern void commSetEvents(int fd, int need_read, int need_write);
 extern void commUpdateReadHandler(int, PF *, void *);
 extern void commUpdateWriteHandler(int, PF *, void *);
 extern void comm_quick_poll_required(void);
@@ -782,6 +782,7 @@
 extern int refreshCheckDigest(const StoreEntry *, time_t delta);
 extern time_t getMaxAge(const char *url);
 extern void refreshInit(void);
+extern const refresh_t *refreshLimits(const char *url);
 
 extern void serverConnectionsClose(void);
 extern void shut_down(int);
@@ -939,6 +940,7 @@
 extern void storeReplAdd(const char *, REMOVALPOLICYCREATE *);
 void storeDeferRead(StoreEntry *, int fd);
 void storeResumeRead(StoreEntry *);
+void storeResetDefer(StoreEntry *);
 
 /* store_modules.c */
 extern void storeFsSetup(void);
@@ -1125,7 +1127,9 @@
 extern int urlDefaultPort(protocol_t p);
 extern char *urlCanonicalClean(const request_t *);
 extern char *urlHostname(const char *url);
-extern void urlExtMethodConfigure(void);
+extern void parse_extension_method(const char *(*methods)[]);
+extern void free_extension_method(const char *(*_methods)[]);
+extern void dump_extension_method(StoreEntry * entry, const char *name, const char **methods);
 
 extern void useragentOpenLog(void);
 extern void useragentRotateLog(void);
@@ -1180,6 +1184,7 @@
 void strwordquote(MemBuf * mb, const char *str);
 
 void setUmask(mode_t mask);
+int xusleep(unsigned int usec);
 
 #if USE_HTCP
 extern void htcpInit(void);
@@ -1377,6 +1382,7 @@
 extern void parse_wccp2_service(void *v);
 extern void free_wccp2_service(void *v);
 extern void dump_wccp2_service(StoreEntry * e, const char *label, void *v);
+extern int check_null_wccp2_service(void *v);
 
 extern void parse_wccp2_service_info(void *v);
 extern void free_wccp2_service_info(void *v);
@@ -1393,7 +1399,7 @@
 
 /* ETag support */
 void storeLocateVaryDone(VaryData * data);
-void storeLocateVary(StoreEntry * e, int offset, const char *vary_data, STLVCB * callback, void *cbdata);
-void storeAddVary(const char *url, const char *log_url, const method_t method, const cache_key * key, const char *etag, const char *vary, const char *vary_headers);
+void storeLocateVary(StoreEntry * e, int offset, const char *vary_data, String accept_encoding, STLVCB * callback, void *cbdata);
+void storeAddVary(const char *url, const char *log_url, const method_t method, const cache_key * key, const char *etag, const char *vary, const char *vary_headers, const char *accept_encoding);
 
 #endif /* SQUID_PROTOS_H */
diff -ruN squid-2.6.PRE2/src/refresh.c squid-2.6.RC1/src/refresh.c
--- squid-2.6.PRE2/src/refresh.c	Thu May 18 17:11:12 2006
+++ squid-2.6.RC1/src/refresh.c	Wed Jun  7 07:03:41 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: refresh.c,v 1.59 2006/05/18 23:11:12 hno Exp $
+ * $Id: refresh.c,v 1.60 2006/06/07 13:03:41 hno Exp $
  *
  * DEBUG: section 22    Refresh Calculation
  * AUTHOR: Harvest Derived
@@ -99,14 +99,13 @@
 #define REFRESH_DEFAULT_PCT	0.20
 #define REFRESH_DEFAULT_MAX	(time_t)259200
 
-static const refresh_t *refreshLimits(const char *);
 static const refresh_t *refreshUncompiledPattern(const char *);
 static OBJH refreshStats;
 static int refreshStaleness(const StoreEntry *, time_t, time_t, const refresh_t *, stale_flags *);
 
 static refresh_t DefaultRefresh;
 
-static const refresh_t *
+const refresh_t *
 refreshLimits(const char *url)
 {
     const refresh_t *R;
diff -ruN squid-2.6.PRE2/src/repl/Makefile.in squid-2.6.RC1/src/repl/Makefile.in
--- squid-2.6.PRE2/src/repl/Makefile.in	Fri Jun  2 15:35:41 2006
+++ squid-2.6.RC1/src/repl/Makefile.in	Mon Jun 12 00:10:12 2006
@@ -16,7 +16,7 @@
 
 #  Makefile for storage modules in the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.29 2006/06/02 21:35:41 hno Exp $
+#  $Id: Makefile.in,v 1.32 2006/06/12 06:10:12 hno Exp $
 #
 
 srcdir = @srcdir@
@@ -149,6 +149,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -181,7 +183,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -191,10 +192,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
diff -ruN squid-2.6.PRE2/src/squid.h squid-2.6.RC1/src/squid.h
--- squid-2.6.PRE2/src/squid.h	Sun Jun  4 02:24:33 2006
+++ squid-2.6.RC1/src/squid.h	Thu Jun  8 06:53:20 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: squid.h,v 1.240 2006/06/04 08:24:33 serassio Exp $
+ * $Id: squid.h,v 1.242 2006/06/08 12:53:20 hno Exp $
  *
  * AUTHOR: Duane Wessels
  *
@@ -205,9 +205,6 @@
 #if HAVE_BSTRING_H
 #include <bstring.h>
 #endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
 #if HAVE_GETOPT_H
 #include <getopt.h>
 #endif
@@ -241,25 +238,6 @@
 
 #if HAVE_SYS_MOUNT_H
 #include <sys/mount.h>
-#endif
-
-/*
- * We require poll.h before using poll().  If the symbols used
- * by poll() are defined elsewhere, we will need to make this
- * a more sophisticated test.
- *  -- Oskar Pearson <oskar@is.co.za>
- *  -- Stewart Forster <slf@connect.com.au>
- */
-#if USE_POLL
-#if HAVE_POLL_H
-#include <poll.h>
-#else /* HAVE_POLL_H */
-#undef HAVE_POLL
-#endif /* HAVE_POLL_H */
-#endif /* USE_POLL */
-
-#if USE_EPOLL
-#include <sys/epoll.h>
 #endif
 
 #if defined(HAVE_STDARG_H)
diff -ruN squid-2.6.PRE2/src/store.c squid-2.6.RC1/src/store.c
--- squid-2.6.PRE2/src/store.c	Mon Jun  5 16:47:01 2006
+++ squid-2.6.RC1/src/store.c	Mon Jun 19 17:01:11 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store.c,v 1.555 2006/06/05 22:47:01 hno Exp $
+ * $Id: store.c,v 1.558 2006/06/19 23:01:11 hno Exp $
  *
  * DEBUG: section 20    Storage Manager
  * AUTHOR: Harvest Derived
@@ -172,6 +172,7 @@
     safe_free(mem->url);
     safe_free(mem->log_url);	/* XXX account log_url */
     safe_free(mem->vary_headers);
+    safe_free(mem->vary_encoding);
     memFree(mem, MEM_MEMOBJECT);
 }
 
@@ -393,6 +394,7 @@
     char *url;
     char *key;
     char *vary_headers;
+    char *accept_encoding;
     char *etag;
     squid_off_t seen_offset;
     char *buf;
@@ -402,6 +404,7 @@
     struct {
 	char *key;
 	char *etag;
+	char *accept_encoding;
 	int this_key:1;
 	int key_used:1;
 	int ignore:1;
@@ -416,6 +419,8 @@
     debug(11, 2) ("free_AddVaryState: %p\n", data);
     if (!state->done && state->key) {
 	storeAppendPrintf(state->e, "Key: %s\n", state->key);
+	if (state->accept_encoding)
+	    storeAppendPrintf(state->e, "Accept-Encoding: %s\n", state->accept_encoding);
 	if (state->etag)
 	    storeAppendPrintf(state->e, "ETag: %s\n", state->etag);
 	storeAppendPrintf(state->e, "VaryData: %s\n", state->vary_headers);
@@ -437,9 +442,11 @@
     safe_free(state->url);
     safe_free(state->key);
     safe_free(state->vary_headers);
+    safe_free(state->accept_encoding);
     safe_free(state->etag);
     safe_free(state->current.key);
     safe_free(state->current.etag);
+    safe_free(state->current.accept_encoding);
     if (state->buf) {
 	memFreeBuf(state->buf_size, state->buf);
 	state->buf = NULL;
@@ -474,6 +481,8 @@
 	    storeAppendPrintf(state->e, "Key: %s\n", state->current.key);
 	else
 	    storeAppendPrintf(state->e, "Key: %s\n", state->key);
+	if (state->accept_encoding)
+	    storeAppendPrintf(state->e, "Accept-Encoding: %s\n", state->accept_encoding);
 	if (state->etag)
 	    storeAppendPrintf(state->e, "ETag: %s\n", state->etag);
 	storeAppendPrintf(state->e, "VaryData: %s\n", state->vary_headers);
@@ -482,6 +491,8 @@
     } else if (state->current.key) {
 	storeAppendPrintf(state->e, "Key: %s\n", state->current.key);
 	safe_free(state->current.key);
+	if (state->current.accept_encoding)
+	    storeAppendPrintf(state->e, "Accept-Encoding: %s\n", state->current.accept_encoding);
 	if (state->current.etag) {
 	    storeAppendPrintf(state->e, "ETag: %s\n", state->current.etag);
 	    safe_free(state->current.etag);
@@ -490,6 +501,18 @@
     }
 }
 
+static int
+strcmpnull(const char *a, const char *b)
+{
+    if (a && b)
+	return strcmp(a, b);
+    else if (a)
+	return 1;
+    else if (b)
+	return -1;
+    return 0;
+}
+
 static void
 storeAddVaryReadOld(void *data, char *buf, ssize_t size)
 {
@@ -540,14 +563,14 @@
 	    }
 	    safe_free(state->current.key);
 	    safe_free(state->current.etag);
+	    safe_free(state->current.accept_encoding);
 	    memset(&state->current, 0, sizeof(state->current));
 	    state->current.key = xmalloc(l2 + 1);
 	    memcpy(state->current.key, p2, l2);
 	    state->current.key[l2] = '\0';
 	    if (state->key) {
-		if (strcmp(state->current.key, state->key) == 0) {
+		if (strcmp(state->current.key, state->key) == 0)
 		    state->current.this_key = 1;
-		}
 	    }
 	    debug(11, 3) ("storeAddVaryReadOld: Key: %s%s\n", state->current.key, state->current.this_key ? " (THIS)" : "");
 	} else if (strmatchbeg(p, "ETag: ", l) == 0) {
@@ -558,8 +581,10 @@
 	    state->current.etag = xmalloc(l2 + 1);
 	    memcpy(state->current.etag, p2, l2);
 	    state->current.etag[l2] = '\0';
-	    if (state->etag && strcmp(state->current.etag, state->etag) == 0) {
-		if (!state->key) {
+	    if (state->etag && strcmp(state->current.etag, state->etag)) {
+		if (strcmpnull(state->accept_encoding, state->current.accept_encoding) != 0) {
+		    /* Skip this match. It's not ours */
+		} else if (!state->key) {
 		    state->current.this_key = 1;
 		} else {
 		    const cache_key *oldkey = storeKeyScan(state->current.key);
@@ -585,6 +610,13 @@
 		storeAppend(state->e, p, e - p + 1);
 		debug(11, 3) ("storeAddVaryReadOld: %s\n", p);
 	    }
+	} else if (strmatchbeg(p, "Accept-Encoding: ", l) == 0) {
+	    p2 = p + 17;
+	    l2 = e - p2;
+	    safe_free(state->current.accept_encoding);
+	    state->current.accept_encoding = xmalloc(l2 + 1);
+	    memcpy(state->current.accept_encoding, p2, l2);
+	    state->current.accept_encoding[l2] = '\0';
 	}
 	e += 1;
 	l -= e - p;
@@ -624,7 +656,7 @@
  * At leas one of key or etag must be specified, preferably both.
  */
 void
-storeAddVary(const char *url, const char *log_url, const method_t method, const cache_key * key, const char *etag, const char *vary, const char *vary_headers)
+storeAddVary(const char *url, const char *log_url, const method_t method, const cache_key * key, const char *etag, const char *vary, const char *vary_headers, const char *accept_encoding)
 {
     AddVaryState *state;
     http_version_t version;
@@ -635,6 +667,8 @@
     if (key)
 	state->key = xstrdup(storeKeyText(key));
     state->vary_headers = xstrdup(vary_headers);
+    if (accept_encoding)
+	state->accept_encoding = xstrdup(accept_encoding);
     if (etag)
 	state->etag = xstrdup(etag);
     state->oe = storeGetPublic(url, method);
@@ -710,8 +744,10 @@
     size_t buf_size;
     size_t buf_offset;
     char *vary_data;
+    char *accept_encoding;
     squid_off_t seen_offset;
     struct {
+	int ignore;
 	char *key;
 	char *etag;
     } current;
@@ -738,6 +774,7 @@
     }
     state->current.etag = NULL;	/* shared by data->entries[x] */
     safe_free(state->vary_data);
+    safe_free(state->accept_encoding);
     safe_free(state->current.key);
     if (state->sc) {
 	storeClientUnregister(state->sc, state->e, state);
@@ -778,11 +815,15 @@
 	    safe_free(state->current.key);
 	    state->current.etag = NULL;
 	    safe_free(state->current.etag);
+	    state->current.ignore = 0;
+	    state->data->broken_encoding = 0;
 	    memset(&state->current, 0, sizeof(state->current));
 	    state->current.key = xmalloc(l2 + 1);
 	    memcpy(state->current.key, p2, l2);
 	    state->current.key[l2] = '\0';
 	    debug(11, 3) ("storeLocateVaryRead: Key: %s\n", state->current.key);
+	} else if (state->current.ignore) {
+	    /* Skip this entry */
 	} else if (strmatchbeg(p, "ETag: ", l) == 0) {
 	    /* etag field */
 	    char *etag;
@@ -805,6 +846,15 @@
 		state->data->etag = state->current.etag;
 		debug(11, 2) ("storeLocateVaryRead: MATCH! %s %s\n", state->current.key, state->current.etag);
 	    }
+	} else if (strmatchbeg(p, "Accept-Encoding: ", l) == 0) {
+	    p2 = p + 17;
+	    l2 = e - p2;
+	    if (!state->accept_encoding)
+		state->current.ignore = 1;
+	    else if (strncmp(state->accept_encoding, p2, l2) == 0 && !state->accept_encoding[l2])
+		state->data->broken_encoding = 1;
+	    else
+		state->current.ignore = 1;
 	}
 	e += 1;
 	l -= e - p;
@@ -840,7 +890,7 @@
 }
 
 void
-storeLocateVary(StoreEntry * e, int offset, const char *vary_data, STLVCB * callback, void *cbdata)
+storeLocateVary(StoreEntry * e, int offset, const char *vary_data, String accept_encoding, STLVCB * callback, void *cbdata)
 {
     LocateVaryState *state;
     debug(11, 2) ("storeLocateVary: %s\n", vary_data);
@@ -849,7 +899,10 @@
 	VaryData_pool = memPoolCreate("VaryData", sizeof(VaryData));
     state = cbdataAlloc(LocateVaryState);
     state->vary_data = xstrdup(vary_data);
+    if (strBuf(accept_encoding))
+	state->accept_encoding = xstrdup(strBuf(accept_encoding));
     state->data = memPoolAlloc(VaryData_pool);
+    stringClean(&accept_encoding);
     state->e = e;
     storeLockObject(state->e);
     state->callback_data = cbdata;
@@ -930,7 +983,7 @@
 		strListAdd(&vary, strBuf(varyhdr), ',');
 	    stringClean(&varyhdr);
 #endif
-	    storeAddVary(mem->url, mem->log_url, mem->method, newkey, httpHeaderGetStr(&mem->reply->header, HDR_ETAG), strBuf(vary), mem->vary_headers);
+	    storeAddVary(mem->url, mem->log_url, mem->method, newkey, httpHeaderGetStr(&mem->reply->header, HDR_ETAG), strBuf(vary), mem->vary_headers, mem->vary_encoding);
 	    stringClean(&vary);
 	}
     } else {
@@ -1891,4 +1944,13 @@
 	commResumeFD(mem->serverfd);
 	mem->serverfd = 0;
     }
+}
+
+/* Reset defer state when FD goes away under our feets */
+void
+storeResetDefer(StoreEntry * e)
+{
+    EBIT_CLR(e->flags, ENTRY_DEFER_READ);
+    if (e->mem_obj)
+	e->mem_obj->serverfd = 0;
 }
diff -ruN squid-2.6.PRE2/src/store_key_md5.c squid-2.6.RC1/src/store_key_md5.c
--- squid-2.6.PRE2/src/store_key_md5.c	Mon May 15 19:08:31 2006
+++ squid-2.6.RC1/src/store_key_md5.c	Wed Jun  7 13:43:51 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: store_key_md5.c,v 1.27 2006/05/16 01:08:31 hno Exp $
+ * $Id: store_key_md5.c,v 1.29 2006/06/07 19:43:51 hno Exp $
  *
  * DEBUG: section 20    Storage Manager MD5 Cache Keys
  * AUTHOR: Duane Wessels
@@ -136,10 +136,16 @@
     MD5Init(&M);
     MD5Update(&M, &m, sizeof(m));
     MD5Update(&M, (unsigned char *) url, strlen(url));
-    if (request->vary_headers)
+    if (request->vary_headers) {
+	MD5Update(&M, (unsigned char *) "\0V", 2);
 	MD5Update(&M, (unsigned char *) request->vary_headers, strlen(request->vary_headers));
+	if (strBuf(request->vary_encoding)) {
+	    MD5Update(&M, (unsigned char *) "\0E", 2);
+	    MD5Update(&M, (unsigned char *) strBuf(request->vary_encoding), strLen(request->vary_encoding));
+	}
+    }
     if (request->urlgroup) {
-	MD5Update(&M, (unsigned char *) " ", 1);
+	MD5Update(&M, (unsigned char *) "\0G", 2);
 	MD5Update(&M, (unsigned char *) request->urlgroup, strlen(request->urlgroup));
     }
     MD5Final(digest, &M);
diff -ruN squid-2.6.PRE2/src/structs.h squid-2.6.RC1/src/structs.h
--- squid-2.6.PRE2/src/structs.h	Tue Jun  6 11:40:02 2006
+++ squid-2.6.RC1/src/structs.h	Sat Jun 17 17:31:03 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: structs.h,v 1.476 2006/06/06 17:40:02 hno Exp $
+ * $Id: structs.h,v 1.481 2006/06/17 23:31:03 hno Exp $
  *
  *
  * SQUID Web Proxy Cache          http://www.squid-cache.org/
@@ -707,6 +707,7 @@
 #if FOLLOW_X_FORWARDED_FOR
 	acl_access *followXFF;
 #endif
+	acl_access *vary_encoding;
     } accessList;
     acl_deny_info_list *denyInfoList;
     struct _authConfig {
@@ -780,7 +781,6 @@
 	char *ssl_engine;
     } SSL;
 #endif
-    wordlist *ext_methods;
     struct {
 	int high_rptm;
 	int high_pf;
@@ -877,10 +877,7 @@
     squid_off_t bytes_read;
     squid_off_t bytes_written;
     int uses;			/* ie # req's over persistent conn */
-#if USE_EPOLL
-    unsigned epoll_state;	/* keep track of the epoll state */
-    unsigned epoll_backoff;	/* keep track of whether the fd is backed off */
-#endif
+    int backoff;		/* keep track of whether the fd is backed off */
     struct _fde_disk {
 	DWCB *wrt_handle;
 	void *wrt_handle_data;
@@ -1687,6 +1684,7 @@
 #endif
     const char *vary_hdr;
     const char *vary_headers;
+    const char *vary_encoding;
     StoreEntry *ims_entry;
     time_t refresh_timestamp;
 };
@@ -1853,6 +1851,7 @@
     time_t lastmod;		/* Used on refreshes */
     char *vary_hdr;		/* Used when varying entities are detected. Changes how the store key is calculated */
     char *vary_headers;		/* Used when varying entities are detected. Changes how the store key is calculated */
+    String vary_encoding;	/* Used when varying entities are detected. Changes how the store key is calculated. */
     VaryData *vary;
     Array *etags;		/* possible known entity tags (Vary MISS) */
     char *etag;			/* current entity tag, cache validation */
@@ -1893,6 +1892,9 @@
 	unsigned int override_lastmod:1;
 	unsigned int reload_into_ims:1;
 	unsigned int ignore_reload:1;
+	unsigned int ignore_no_cache:1;
+	unsigned int ignore_private:1;
+	unsigned int ignore_auth:1;
 #endif
     } flags;
 };
@@ -2449,6 +2451,7 @@
 };
 
 struct _VaryData {
+    int broken_encoding:1;
     char *key;
     char *etag;
     Array etags;
diff -ruN squid-2.6.PRE2/src/tools.c squid-2.6.RC1/src/tools.c
--- squid-2.6.PRE2/src/tools.c	Tue Jun  6 01:28:59 2006
+++ squid-2.6.RC1/src/tools.c	Fri Jun  9 08:22:38 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: tools.c,v 1.240 2006/06/06 07:28:59 hno Exp $
+ * $Id: tools.c,v 1.241 2006/06/09 14:22:38 hno Exp $
  *
  * DEBUG: section 21    Misc Functions
  * AUTHOR: Harvest Derived
@@ -1278,4 +1278,17 @@
 	orig_umask = umask(mask);
     }
     umask(mask | orig_umask);
+}
+
+/*
+ * xusleep, as usleep but accepts longer pauses
+ */
+int
+xusleep(unsigned int usec)
+{
+    /* XXX emulation of usleep() */
+    struct timeval sl;
+    sl.tv_sec = usec / 1000000;
+    sl.tv_usec = usec % 1000000;
+    return select(0, NULL, NULL, NULL, &sl);
 }
diff -ruN squid-2.6.PRE2/src/unlinkd.c squid-2.6.RC1/src/unlinkd.c
--- squid-2.6.PRE2/src/unlinkd.c	Mon May 15 19:12:35 2006
+++ squid-2.6.RC1/src/unlinkd.c	Fri Jun  9 08:22:38 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: unlinkd.c,v 1.50 2006/05/16 01:12:35 hno Exp $
+ * $Id: unlinkd.c,v 1.51 2006/06/09 14:22:38 hno Exp $
  *
  * DEBUG: section 2     Unlink Daemon
  * AUTHOR: Duane Wessels
@@ -90,19 +90,12 @@
     }
     /*
      * If the queue length is greater than our limit, then
-     * we pause for up to 100ms, hoping that unlinkd
+     * we pause for up to 10ms, hoping that unlinkd
      * has some feedback for us.  Maybe it just needs a slice
      * of the CPU's time.
      */
-    if (queuelen >= UNLINKD_QUEUE_LIMIT) {
-	struct timeval to;
-	fd_set R;
-	FD_ZERO(&R);
-	FD_SET(unlinkd_rfd, &R);
-	to.tv_sec = 0;
-	to.tv_usec = 100000;
-	select(unlinkd_rfd + 1, &R, NULL, NULL, &to);
-    }
+    if (queuelen >= UNLINKD_QUEUE_LIMIT)
+	xusleep(10000);
     /*
      * If there is at least one outstanding unlink request, then
      * try to read a response.  If there's nothing to read we'll
diff -ruN squid-2.6.PRE2/src/url.c squid-2.6.RC1/src/url.c
--- squid-2.6.PRE2/src/url.c	Sun May 28 16:24:51 2006
+++ squid-2.6.RC1/src/url.c	Sat Jun 17 17:31:03 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: url.c,v 1.143 2006/05/28 22:24:51 hno Exp $
+ * $Id: url.c,v 1.144 2006/06/17 23:31:03 hno Exp $
  *
  * DEBUG: section 23    URL Parsing
  * AUTHOR: Duane Wessels
@@ -618,6 +618,8 @@
 	if (0 != strncmp("%EXT", RequestMethodStr[method], 4))
 	    continue;
 	/* Don't free statically allocated "%EXTnn" string */
+	if (0 == strncmp("%EXT_", RequestMethodStr[method], 5))
+	    safe_free(RequestMethodStr[method]);
 	RequestMethodStr[method] = xstrdup(mstr);
 	debug(23, 1) ("Extension method '%s' added, enum=%d\n", mstr, (int) method);
 	return;
@@ -626,14 +628,37 @@
 }
 
 void
-urlExtMethodConfigure(void)
+parse_extension_method(const char *(*_methods)[])
 {
-    wordlist *w = Config.ext_methods;
-    while (w) {
-	char *s;
-	for (s = w->key; *s; s++)
-	    *s = xtoupper(*s);
-	urlExtMethodAdd(w->key);
-	w = w->next;
+    char *token;
+    char *t = strtok(NULL, "");
+    while ((token = strwordtok(NULL, &t))) {
+	urlExtMethodAdd(token);
+    }
+}
+
+void
+free_extension_method(const char *(*_methods)[])
+{
+    method_t method;
+    char **methods = (char **) _methods;
+    for (method = METHOD_EXT00; method < METHOD_ENUM_END; method++) {
+	if (*methods[method] != '%') {
+	    char buf[32];
+	    snprintf(buf, sizeof(buf), "%%EXT_%02d", method - METHOD_EXT00);
+	    safe_free(methods[method]);
+	    methods[method] = xstrdup(buf);
+	}
+    }
+}
+
+void
+dump_extension_method(StoreEntry * entry, const char *name, const char **methods)
+{
+    method_t method;
+    for (method = METHOD_EXT00; method < METHOD_ENUM_END; method++) {
+	if (*methods[method] != '%') {
+	    storeAppendPrintf(entry, "%s %s\n", name, methods[method]);
+	}
     }
 }
diff -ruN squid-2.6.PRE2/src/wccp.c squid-2.6.RC1/src/wccp.c
--- squid-2.6.PRE2/src/wccp.c	Wed May 24 23:18:32 2006
+++ squid-2.6.RC1/src/wccp.c	Sat Jun 10 18:11:48 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: wccp.c,v 1.29 2006/05/25 05:18:32 hno Exp $
+ * $Id: wccp.c,v 1.30 2006/06/11 00:11:48 hno Exp $
  *
  * DEBUG: section 80    WCCP Support
  * AUTHOR: Glenn Chisholm
@@ -78,7 +78,6 @@
     int number;
 };
 
-static int theWccpConnection = -1;
 static int theWccpConnection = -1;
 static struct wccp_here_i_am_t wccp_here_i_am;
 static struct wccp_i_see_you_t wccp_i_see_you;
diff -ruN squid-2.6.PRE2/src/wccp2.c squid-2.6.RC1/src/wccp2.c
--- squid-2.6.PRE2/src/wccp2.c	Sat Jun  3 20:54:29 2006
+++ squid-2.6.RC1/src/wccp2.c	Sat Jun 10 18:12:39 2006
@@ -1,6 +1,6 @@
 
 /*
- * $Id: wccp2.c,v 1.12 2006/06/04 02:54:29 hno Exp $
+ * $Id: wccp2.c,v 1.13 2006/06/11 00:12:39 hno Exp $
  *
  * DEBUG: section 80    WCCP Support
  * AUTHOR: Steven WIlton
@@ -1307,6 +1307,12 @@
 void
 free_wccp2_service(void *v)
 {
+}
+
+int
+check_null_wccp2_service(void *v)
+{
+    return !wccp2_service_list_head;
 }
 
 /*
diff -ruN squid-2.6.PRE2/tools/Makefile.in squid-2.6.RC1/tools/Makefile.in
--- squid-2.6.PRE2/tools/Makefile.in	Thu May 25 06:42:27 2006
+++ squid-2.6.RC1/tools/Makefile.in	Mon Jun 12 00:10:12 2006
@@ -17,7 +17,7 @@
 #
 #  Makefile for the Squid Object Cache server
 #
-#  $Id: Makefile.in,v 1.2 2006/05/25 12:42:27 hno Exp $
+#  $Id: Makefile.in,v 1.5 2006/06/12 06:10:12 hno Exp $
 #
 #  Uncomment and customize the following to suit your needs:
 #
@@ -163,6 +163,8 @@
 MAKE_LEAKFINDER_TRUE = @MAKE_LEAKFINDER_TRUE@
 MKDIR = @MKDIR@
 MV = @MV@
+NEED_DISKD_FALSE = @NEED_DISKD_FALSE@
+NEED_DISKD_TRUE = @NEED_DISKD_TRUE@
 NEED_OWN_MD5_FALSE = @NEED_OWN_MD5_FALSE@
 NEED_OWN_MD5_TRUE = @NEED_OWN_MD5_TRUE@
 NEED_OWN_SNPRINTF_FALSE = @NEED_OWN_SNPRINTF_FALSE@
@@ -195,7 +197,6 @@
 SSLLIB = @SSLLIB@
 STORE_LIBS = @STORE_LIBS@
 STORE_MODULES = @STORE_MODULES@
-STORE_MODULE_SUBDIRS = @STORE_MODULE_SUBDIRS@
 STORE_OBJS = @STORE_OBJS@
 STRIP = @STRIP@
 TRUE = @TRUE@
@@ -205,10 +206,14 @@
 USE_DNSSERVER_TRUE = @USE_DNSSERVER_TRUE@
 USE_EPOLL_FALSE = @USE_EPOLL_FALSE@
 USE_EPOLL_TRUE = @USE_EPOLL_TRUE@
+USE_KQUEUE_FALSE = @USE_KQUEUE_FALSE@
+USE_KQUEUE_TRUE = @USE_KQUEUE_TRUE@
 USE_POLL_FALSE = @USE_POLL_FALSE@
 USE_POLL_TRUE = @USE_POLL_TRUE@
 USE_SELECT_FALSE = @USE_SELECT_FALSE@
 USE_SELECT_TRUE = @USE_SELECT_TRUE@
+USE_SELECT_WIN32_FALSE = @USE_SELECT_WIN32_FALSE@
+USE_SELECT_WIN32_TRUE = @USE_SELECT_WIN32_TRUE@
 USE_SNMP_FALSE = @USE_SNMP_FALSE@
 USE_SNMP_TRUE = @USE_SNMP_TRUE@
 VERSION = @VERSION@
