(hopefully) fix dsl driver, add linux-atm package
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 12 Aug 2005 18:23:01 +0000 (18:23 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Fri, 12 Aug 2005 18:23:01 +0000 (18:23 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@1614 3c298f89-4303-0410-b956-a3cf2f4a3e73

openwrt/package/Config.in
openwrt/package/Makefile
openwrt/package/linux-atm/Config.in [new file with mode: 0644]
openwrt/package/linux-atm/Makefile [new file with mode: 0644]
openwrt/package/linux-atm/ipkg/linux-atm.control [new file with mode: 0644]
openwrt/package/linux-atm/patches/000-debian_16.patch [new file with mode: 0644]
openwrt/package/linux-atm/patches/100-br2684.patch [new file with mode: 0644]
openwrt/package/linux-atm/patches/200-no_libfl.patch [new file with mode: 0644]
openwrt/target/linux/linux-2.4/patches/ar7/004-atm_driver.patch

index 4ac9550..8493012 100644 (file)
@@ -57,6 +57,7 @@ source "package/iproute2/Config.in"
 source "package/kismet/Config.in"
 source "package/l2tpd/Config.in"
 source "package/lighttpd/Config.in"
+source "package/linux-atm/Config.in"
 source "package/maradns/Config.in"
 source "package/mini_httpd/Config.in"
 source "package/mini_sendmail/Config.in"
index ceb7b72..7ee1512 100644 (file)
@@ -71,6 +71,7 @@ package-$(BR2_PACKAGE_LIBTASN1) += libtasn1
 package-$(BR2_PACKAGE_LIBTOOL) += libtool
 package-$(BR2_PACKAGE_LIBUSB) += libusb
 package-$(BR2_PACKAGE_LIGHTTPD) += lighttpd
+package-$(BR2_PACKAGE_LINUX_ATM) += linux-atm
 package-$(BR2_PACKAGE_LUA) += lua
 package-$(BR2_PACKAGE_LZO) += lzo
 package-$(BR2_PACKAGE_MARADNS) += maradns
diff --git a/openwrt/package/linux-atm/Config.in b/openwrt/package/linux-atm/Config.in
new file mode 100644 (file)
index 0000000..8d75c9d
--- /dev/null
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_LINUX_ATM
+       tristate "linux-atm - ATM Library/Utilities for Linux"
+       default y if BR2_LINUX_2_4_AR7
+       help
+         ATM Library/Utilities for linux
+         
+         http://ftp.debian.org/debian/pool/main/l/linux-atm/
diff --git a/openwrt/package/linux-atm/Makefile b/openwrt/package/linux-atm/Makefile
new file mode 100644 (file)
index 0000000..ac36e39
--- /dev/null
@@ -0,0 +1,66 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=linux-atm
+PKG_VERSION:=2.4.1
+PKG_RELEASE:=1
+PKG_MD5SUM:=84fef49cc39ff2605204246666f65864
+
+PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/l/linux-atm/
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
+PKG_CAT:=zcat
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(TOPDIR)/package/rules.mk
+
+ifneq ($(BOARD),ar7)
+BR2_PACKAGE_LINUX_ATM:=m
+endif
+
+$(eval $(call PKG_template,LINUX_ATM,linux-atm,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+       (cd $(PKG_BUILD_DIR); rm -rf config.{cache,status} ; \
+               autoconf; \
+               $(TARGET_CONFIGURE_OPTS) \
+               ./configure \
+                 --target=$(GNU_TARGET_NAME) \
+                 --host=$(GNU_TARGET_NAME) \
+                 --build=$(GNU_HOST_NAME) \
+                 --program-prefix="" \
+                 --program-suffix="" \
+                 --prefix=/usr \
+                 --exec-prefix=/usr \
+                 --bindir=/usr/bin \
+                 --datadir=/usr/share \
+                 --includedir=/usr/src/openwrt/build_mipsel/linux/include/ \
+                 --infodir=/usr/share/info \
+                 --libdir=/usr/lib \
+                 --libexecdir=/usr/lib \
+                 --localstatedir=/var \
+                 --mandir=/usr/share/man \
+                 --sbindir=/usr/sbin \
+                 --sysconfdir=/etc \
+       )
+       touch $@
+
+$(PKG_BUILD_DIR)/.built:
+       $(MAKE) -C $(PKG_BUILD_DIR) 
+       touch $@
+
+$(IPKG_LINUX_ATM): 
+       mkdir -p $(IDIR_LINUX_ATM)/usr/sbin
+       mkdir -p $(IDIR_LINUX_ATM)/lib
+       cp $(PKG_BUILD_DIR)/src/br2684/.libs/br2684ctl $(IDIR_LINUX_ATM)/usr/sbin/
+       cp $(PKG_BUILD_DIR)/src/lib/.libs/libatm.1.0.0 $(IDIR_LINUX_ATM)/lib
+       ln -sf libatm.1.0.0 $(IDIR_LINUX_ATM)/lib/libatm
+       ln -sf libatm.1.0.0 $(IDIR_LINUX_ATM)/lib/libatm.1
+       $(RSTRIP) $(IDIR_LINUX_ATM)/
+       $(IPKG_BUILD) $(IDIR_LINUX_ATM) $(PACKAGE_DIR)
+
+mostlyclean:
+       $(MAKE) -C $(PKG_BUILD_DIR) clean
+       rm -f $(PKG_BUILD_DIR)/.built
+
diff --git a/openwrt/package/linux-atm/ipkg/linux-atm.control b/openwrt/package/linux-atm/ipkg/linux-atm.control
new file mode 100644 (file)
index 0000000..b465792
--- /dev/null
@@ -0,0 +1,6 @@
+Package: linux-atm
+Priority: optional
+Section: net
+Maintainer: nobody
+Source: buildroot internal
+Description: ATM library and utilities for linux
diff --git a/openwrt/package/linux-atm/patches/000-debian_16.patch b/openwrt/package/linux-atm/patches/000-debian_16.patch
new file mode 100644 (file)
index 0000000..41dc437
--- /dev/null
@@ -0,0 +1,35073 @@
+--- linux-atm-2.4.1.orig/Makefile.in
++++ linux-atm-2.4.1/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -100,14 +100,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -225,7 +225,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP))
+ mostlyclean-tags:
+@@ -274,6 +274,11 @@
+       -rm -rf $(distdir)
+       mkdir $(distdir)
+       -chmod 777 $(distdir)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/aclocal.m4
++++ linux-atm-2.4.1/aclocal.m4
+@@ -1,4 +1,4 @@
+-dnl aclocal.m4 generated automatically by aclocal 1.4-p5
++dnl aclocal.m4 generated automatically by aclocal 1.4-p6
+ dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+@@ -43,7 +43,8 @@
+ dnl AM_INIT_AUTOMAKE(package,version, [no-define])
+ AC_DEFUN([AM_INIT_AUTOMAKE],
+-[AC_REQUIRE([AC_PROG_INSTALL])
++[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
++AC_REQUIRE([AC_PROG_INSTALL])
+ PACKAGE=[$1]
+ AC_SUBST(PACKAGE)
+ VERSION=[$2]
+@@ -59,13 +60,42 @@
+ AC_REQUIRE([AC_ARG_PROGRAM])
+ dnl FIXME This is truly gross.
+ missing_dir=`cd $ac_aux_dir && pwd`
+-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
+ AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
+-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
+ AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
+ AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
+ AC_REQUIRE([AC_PROG_MAKE_SET])])
++# Copyright 2002  Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2, 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
++
++# AM_AUTOMAKE_VERSION(VERSION)
++# ----------------------------
++# Automake X.Y traces this macro to ensure aclocal.m4 has been
++# generated from the m4 files accompanying Automake X.Y.
++AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
++
++# AM_SET_CURRENT_AUTOMAKE_VERSION
++# -------------------------------
++# Call AM_AUTOMAKE_VERSION so it can be traced.
++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
++       [AM_AUTOMAKE_VERSION([1.4-p6])])
++
+ #
+ # Check to make sure that the build environment is sane.
+ #
+@@ -130,13 +160,14 @@
+ dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT
+ AC_DEFUN([AM_PROG_LEX],
+ [missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1)
+-AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex")
++AC_CHECK_PROGS(LEX, flex lex, $missing_dir/missing flex)
+ AC_PROG_LEX
+ AC_DECL_YYTEXT])
+ # libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-
+ # serial 46 AC_PROG_LIBTOOL
++
+ AC_DEFUN([AC_PROG_LIBTOOL],
+ [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+@@ -162,6 +193,8 @@
+ AC_REQUIRE([AC_PROG_LD])dnl
+ AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+ AC_REQUIRE([AC_PROG_NM])dnl
++AC_REQUIRE([LT_AC_PROG_SED])dnl
++
+ AC_REQUIRE([AC_PROG_LN_S])dnl
+ AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+ AC_REQUIRE([AC_OBJEXT])dnl
+@@ -262,9 +295,30 @@
+ ])
++# AC_LIBTOOL_HEADER_ASSERT
++# ------------------------
++AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT],
++[AC_CACHE_CHECK([whether $CC supports assert without backlinking],
++    [lt_cv_func_assert_works],
++    [case $host in
++    *-*-solaris*)
++      if test "$GCC" = yes && test "$with_gnu_ld" != yes; then
++        case `$CC --version 2>/dev/null` in
++        [[12]].*) lt_cv_func_assert_works=no ;;
++        *)        lt_cv_func_assert_works=yes ;;
++        esac
++      fi
++      ;;
++    esac])
++
++if test "x$lt_cv_func_assert_works" = xyes; then
++  AC_CHECK_HEADERS(assert.h)
++fi
++])# AC_LIBTOOL_HEADER_ASSERT
++
+ # _LT_AC_CHECK_DLFCN
+ # --------------------
+-AC_DEFUN(_LT_AC_CHECK_DLFCN,
++AC_DEFUN([_LT_AC_CHECK_DLFCN],
+ [AC_CHECK_HEADERS(dlfcn.h)
+ ])# _LT_AC_CHECK_DLFCN
+@@ -282,10 +336,10 @@
+ # [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+ # Character class describing NM global symbol codes.
+-[symcode='[BCDEGRST]']
++symcode='[[BCDEGRST]]'
+ # Regexp to match symbols that can be accessed directly from C.
+-[sympat='\([_A-Za-z][_A-Za-z0-9]*\)']
++sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+ # Transform the above into a raw symbol and a C symbol.
+ symxfrm='\1 \2\3 \3'
+@@ -293,25 +347,32 @@
+ # Transform an extracted symbol line into a proper C declaration
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
++# Transform an extracted symbol line into symbol name and symbol address
++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
++
+ # Define system-specific variables.
+ case $host_os in
+ aix*)
+-  [symcode='[BCDT]']
++  symcode='[[BCDT]]'
+   ;;
+ cygwin* | mingw* | pw32*)
+-  [symcode='[ABCDGISTW]']
++  symcode='[[ABCDGISTW]]'
+   ;;
+ hpux*) # Its linker distinguishes data from code symbols
+   lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
++  lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
++  ;;
++irix* | nonstopux*)
++  symcode='[[BCDEGRST]]'
+   ;;
+-irix*)
+-  [symcode='[BCDEGRST]']
++osf*)
++  symcode='[[BCDEGQRST]]'
+   ;;
+ solaris* | sysv5*)
+-  [symcode='[BDT]']
++  symcode='[[BDT]]'
+   ;;
+ sysv4)
+-  [symcode='[DFNSTU]']
++  symcode='[[DFNSTU]]'
+   ;;
+ esac
+@@ -325,14 +386,14 @@
+ # If we're using GNU nm, then use its standard symbol codes.
+ if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then
+-  [symcode='[ABCDGISTW]']
++  symcode='[[ABCDGISTW]]'
+ fi
+ # Try without a prefix undercore, then with it.
+ for ac_symprfx in "" "_"; do
+   # Write the raw and C identifiers.
+-[lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[      ]\($symcode$symcode*\)[         ][      ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"]
++lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[      ]]\($symcode$symcode*\)[[       ]][[    ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+   # Check to see that the pipe works correctly.
+   pipe_works=no
+@@ -374,23 +435,23 @@
+         cat <<EOF >> conftest.$ac_ext
+ #if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
++# define lt_ptr void *
+ #else
+-# define lt_ptr_t char *
++# define lt_ptr char *
+ # define const
+ #endif
+ /* The mapping between symbol names and symbols. */
+ const struct {
+   const char *name;
+-  lt_ptr_t address;
++  lt_ptr address;
+ }
+-[lt_preloaded_symbols[] =]
++lt_preloaded_symbols[[]] =
+ {
+ EOF
+-        sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" >> conftest.$ac_ext
++        sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+         cat <<\EOF >> conftest.$ac_ext
+-  {0, (lt_ptr_t) 0}
++  {0, (lt_ptr) 0}
+ };
+ #ifdef __cplusplus
+@@ -403,7 +464,7 @@
+         save_CFLAGS="$CFLAGS"
+         LIBS="conftstm.$ac_objext"
+         CFLAGS="$CFLAGS$no_builtin_flag"
+-        if AC_TRY_EVAL(ac_link) && test -s conftest; then
++        if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+           pipe_works=yes
+         fi
+         LIBS="$save_LIBS"
+@@ -434,10 +495,13 @@
+ global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+ if test -z "$lt_cv_sys_global_symbol_pipe"; then
+   global_symbol_to_cdecl=
++  global_symbol_to_c_name_address=
+ else
+   global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
++  global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+ fi
+-if test -z "$global_symbol_pipe$global_symbol_to_cdecl"; then
++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
++then
+   AC_MSG_RESULT(failed)
+ else
+   AC_MSG_RESULT(ok)
+@@ -455,16 +519,17 @@
+     *-DOS) lt_cv_sys_path_separator=';' ;;
+     *)     lt_cv_sys_path_separator=':' ;;
+   esac
++  PATH_SEPARATOR=$lt_cv_sys_path_separator
+ fi
+ ])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+ # _LT_AC_PROG_ECHO_BACKSLASH
+ # --------------------------
+ # Add some code to the start of the generated configure script which
+-# will find an echo command which doesn;t interpret backslashes.
++# will find an echo command which doesn't interpret backslashes.
+ AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+ [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+-                              [AC_DIVERT_PUSH(NOTICE)])
++                            [AC_DIVERT_PUSH(NOTICE)])
+ _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR
+ # Check that we are running under the correct shell.
+@@ -530,7 +595,7 @@
+   #
+   # So, first we look for a working echo in the user's PATH.
+-  IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
++  IFS="${IFS=         }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+   for dir in $PATH /usr/ucb; do
+     if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+        test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+@@ -619,7 +684,7 @@
+ # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+ #                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+ # ------------------------------------------------------------------
+-AC_DEFUN(_LT_AC_TRY_DLOPEN_SELF,
++AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+ [if test "$cross_compiling" = yes; then :
+   [$4]
+ else
+@@ -706,7 +771,7 @@
+ # AC_LIBTOOL_DLOPEN_SELF
+ # -------------------
+-AC_DEFUN(AC_LIBTOOL_DLOPEN_SELF,
++AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+ [if test "x$enable_dlopen" != xyes; then
+   enable_dlopen=unknown
+   enable_dlopen_self=unknown
+@@ -728,16 +793,22 @@
+    ;;
+   *)
+-    AC_CHECK_LIB(dl, dlopen,  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+-      [AC_CHECK_FUNC(dlopen, lt_cv_dlopen="dlopen",
+-        [AC_CHECK_FUNC(shl_load, lt_cv_dlopen="shl_load",
+-          [AC_CHECK_LIB(svld, dlopen,
+-          [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+-            [AC_CHECK_LIB(dld, shl_load,
+-              [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
++    AC_CHECK_FUNC([shl_load],
++          [lt_cv_dlopen="shl_load"],
++      [AC_CHECK_LIB([dld], [shl_load],
++            [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
++      [AC_CHECK_FUNC([dlopen],
++            [lt_cv_dlopen="dlopen"],
++        [AC_CHECK_LIB([dl], [dlopen],
++              [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
++          [AC_CHECK_LIB([svld], [dlopen],
++                [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
++            [AC_CHECK_LIB([dld], [dld_link],
++                  [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
++            ])
+           ])
+-          ])
+-        ])
++        ])
++      ])
+       ])
+     ;;
+   esac
+@@ -800,10 +871,10 @@
+ # Sed substitution that helps us do robust quoting.  It backslashifies
+ # metacharacters that are still active within double-quoted strings.
+ Xsed='sed -e s/^X//'
+-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
++sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g'
+ # Same as above, but do not quote variable references.
+-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
++double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g'
+ # Sed substitution to delay expansion of an escaped shell variable in a
+ # double_quote_subst'ed string.
+@@ -872,8 +943,15 @@
+ old_postuninstall_cmds=
+ if test -n "$RANLIB"; then
++  case $host_os in
++  openbsd*)
++    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
++    ;;
++  *)
++    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
++    ;;
++  esac
+   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+-  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ fi
+ # Allow CC to be a program name with arguments.
+@@ -893,7 +971,7 @@
+ AC_MSG_RESULT($objdir)
+-AC_ARG_WITH(pic, 
++AC_ARG_WITH(pic,
+ [  --with-pic              try to use only PIC/non-PIC objects [default=use both]],
+ pic_mode="$withval", pic_mode=default)
+ test -z "$pic_mode" && pic_mode=default
+@@ -921,7 +999,7 @@
+       # libC (AIX C++ library), which obviously doesn't included in libraries
+       # list by gcc. This cause undefined symbols with -static flags.
+       # This hack allows C programs to be linked with "-static -ldl", but
+-      # we not sure about C++ programs.
++      # not sure about C++ programs.
+       lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+       ;;
+     amigaos*)
+@@ -930,7 +1008,7 @@
+       # like `-m68040'.
+       lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+       ;;
+-    beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
++    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+       # PIC is the default for these OSes.
+       ;;
+     darwin* | rhapsody*)
+@@ -956,13 +1034,13 @@
+     # PORTME Check for PIC flags for the system compiler.
+     case $host_os in
+     aix3* | aix4* | aix5*)
++      lt_cv_prog_cc_wl='-Wl,'
+       # All AIX code is PIC.
+       if test "$host_cpu" = ia64; then
+-        # AIX 5 now supports IA64 processor
+-        lt_cv_prog_cc_static='-Bstatic'
+-        lt_cv_prog_cc_wl='-Wl,'
++      # AIX 5 now supports IA64 processor
++      lt_cv_prog_cc_static='-Bstatic'
+       else
+-        lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
++      lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+       fi
+       ;;
+@@ -973,7 +1051,7 @@
+       lt_cv_prog_cc_pic='+Z'
+       ;;
+-    irix5* | irix6*)
++    irix5* | irix6* | nonstopux*)
+       lt_cv_prog_cc_wl='-Wl,'
+       lt_cv_prog_cc_static='-non_shared'
+       # PIC (with -KPIC) is the default.
+@@ -1017,11 +1095,7 @@
+     sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+       lt_cv_prog_cc_pic='-KPIC'
+       lt_cv_prog_cc_static='-Bstatic'
+-      if test "x$host_vendor" = xsni; then
+-        lt_cv_prog_cc_wl='-LD'
+-      else
+-        lt_cv_prog_cc_wl='-Wl,'
+-      fi
++      lt_cv_prog_cc_wl='-Wl,'
+       ;;
+     uts4*)
+@@ -1087,7 +1161,7 @@
+ # Check for any special shared library compilation flags.
+ if test -n "$lt_cv_prog_cc_shlib"; then
+   AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries])
+-  if echo "$old_CC $old_CFLAGS " | [egrep -e "[       ]$lt_cv_prog_cc_shlib[  ]"] >/dev/null; then :
++  if echo "$old_CC $old_CFLAGS " | egrep -e "[[       ]]$lt_cv_prog_cc_shlib[[        ]]" >/dev/null; then :
+   else
+    AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure])
+     lt_cv_prog_cc_can_build_shared=no
+@@ -1163,6 +1237,8 @@
+   lt_cv_compiler_o_lo=no
+   save_CFLAGS="$CFLAGS"
+   CFLAGS="$CFLAGS -c -o conftest.lo"
++  save_objext="$ac_objext"
++  ac_objext=lo
+   AC_TRY_COMPILE([], [int some_variable = 0;], [dnl
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+@@ -1172,6 +1248,7 @@
+       lt_cv_compiler_o_lo=yes
+     fi
+   ])
++  ac_objext="$save_objext"
+   CFLAGS="$save_CFLAGS"
+   ])
+   compiler_o_lo=$lt_cv_compiler_o_lo
+@@ -1268,7 +1345,7 @@
+ extract_expsyms_cmds=
+ case $host_os in
+-cygwin* | mingw* | pw32* )
++cygwin* | mingw* | pw32*)
+   # FIXME: the MSVC++ port hasn't been tested in a loooong time
+   # When not using gcc, we currently assume that we are using
+   # Microsoft Visual C++.
+@@ -1276,7 +1353,9 @@
+     with_gnu_ld=no
+   fi
+   ;;
+-
++openbsd*)
++  with_gnu_ld=no
++  ;;
+ esac
+ ld_shlibs=yes
+@@ -1363,7 +1442,7 @@
+     # can override, but on older systems we have to supply one (in ltdll.c)
+     if test "x$lt_cv_need_dllmain" = "xyes"; then
+       ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+-      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < [$]0 > $output_objdir/$soname-ltdll.c~
++      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+       test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+     else
+       ltdll_obj=
+@@ -1376,24 +1455,25 @@
+     # Be careful not to strip the DATA tag left be newer dlltools.
+     export_symbols_cmds="$ltdll_cmds"'
+       $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~
+-      [sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//"] < $output_objdir/$soname-def > $export_symbols'
++      sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols'
+     # If the export-symbols file already is a .def file (1st line
+     # is EXPORTS), use it as is.
+     # If DATA tags from a recent dlltool are present, honour them!
+-    archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
+-        cp $export_symbols $output_objdir/$soname-def;
++    archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then
++      cp $export_symbols $output_objdir/$soname-def;
+       else
+-        echo EXPORTS > $output_objdir/$soname-def;
+-        _lt_hint=1;
+-        cat $export_symbols | while read symbol; do
+-         set dummy \$symbol;
+-         case \[$]# in
+-           2) echo "   \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+-           *) echo "     \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;;
+-         esac;
+-         _lt_hint=`expr 1 + \$_lt_hint`;
+-        done;
++      echo EXPORTS > $output_objdir/$soname-def;
++      _lt_hint=1;
++      cat $export_symbols | while read symbol; do
++       set dummy \$symbol;
++       case \[$]# in
++         2) echo "   \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
++         4) echo "   \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;;
++         *) echo "     \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;;
++       esac;
++       _lt_hint=`expr 1 + \$_lt_hint`;
++      done;
+       fi~
+       '"$ltdll_cmds"'
+       $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+@@ -1488,80 +1568,98 @@
+     ;;
+   aix4* | aix5*)
++    if test "$host_cpu" = ia64; then
++      # On IA64, the linker does run time linking by default, so we don't
++      # have to do anything special.
++      aix_use_runtimelinking=no
++      exp_sym_flag='-Bexport'
++      no_entry_flag=""
++    else
++      aix_use_runtimelinking=no
++
++      # Test if we are trying to use run time linking or normal
++      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
++      # need to do runtime linking.
++      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
++      for ld_flag in $LDFLAGS; do
++        case $ld_flag in
++        *-brtl*)
++          aix_use_runtimelinking=yes
++          break
++        ;;
++        esac
++      done
++      esac
++
++      exp_sym_flag='-bexport'
++      no_entry_flag='-bnoentry'
++    fi
++
+     # When large executables or shared objects are built, AIX ld can
+     # have problems creating the table of contents.  If linking a library
+     # or program results in "error TOC overflow" add -mminimal-toc to
+     # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+     # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
++    hardcode_direct=yes
+     archive_cmds=''
+     hardcode_libdir_separator=':'
+     if test "$GCC" = yes; then
+-      collect2name=`${CC} -print-prog-name=collect2`
+-      if test -f "$collect2name" && \
+-       strings "$collect2name" | grep resolve_lib_name >/dev/null
+-      then
+-      # We have reworked collect2
+-      hardcode_direct=yes
+-      else
+-        # We have old collect2
+-        hardcode_direct=unsupported
+-        # It fails to find uninstalled libraries when the uninstalled
+-        # path is not listed in the libpath.  Setting hardcode_minus_L
+-        # to unsupported forces relinking
+-        hardcode_minus_L=yes
+-        hardcode_libdir_flag_spec='-L$libdir'
+-        hardcode_libdir_separator=
+-      fi
++      case $host_os in aix4.[[012]]|aix4.[[012]].*)
++      collect2name=`${CC} -print-prog-name=collect2`
++      if test -f "$collect2name" && \
++        strings "$collect2name" | grep resolve_lib_name >/dev/null
++      then
++        # We have reworked collect2
++        hardcode_direct=yes
++      else
++        # We have old collect2
++        hardcode_direct=unsupported
++        # It fails to find uninstalled libraries when the uninstalled
++        # path is not listed in the libpath.  Setting hardcode_minus_L
++        # to unsupported forces relinking
++        hardcode_minus_L=yes
++        hardcode_libdir_flag_spec='-L$libdir'
++        hardcode_libdir_separator=
++      fi
++      esac
++
+       shared_flag='-shared'
+     else
++      # not using gcc
+       if test "$host_cpu" = ia64; then
+-        shared_flag='-G'
++      shared_flag='${wl}-G'
+       else
+-        shared_flag='${wl}-bM:SRE'
++      if test "$aix_use_runtimelinking" = yes; then
++        shared_flag='${wl}-G'
++      else
++        shared_flag='${wl}-bM:SRE'
++      fi
+       fi
+-      hardcode_direct=yes
+     fi
+-    if test "$host_cpu" = ia64; then
+-      # On IA64, the linker does run time linking by default, so we don't
+-      # have to do anything special.
+-      aix_use_runtimelinking=no
+-      exp_sym_flag='-Bexport'
+-      no_entry_flag=""
+-    else
+-      # Test if we are trying to use run time linking, or normal AIX style linking.
+-      # If -brtl is somewhere in LDFLAGS, we need to do run time linking.
+-      aix_use_runtimelinking=no
+-      for ld_flag in $LDFLAGS; do
+-        if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
+-          aix_use_runtimelinking=yes
+-          break
+-        fi
+-      done
+-      exp_sym_flag='-bexport'
+-      no_entry_flag='-bnoentry'
+-    fi
+     # It seems that -bexpall can do strange things, so it is better to
+     # generate a list of symbols to export.
+     always_export_symbols=yes
+     if test "$aix_use_runtimelinking" = yes; then
++      # Warning - without using the other runtime loading flags (-brtl),
++      # -berok will link without error, but may produce a broken library.
++      allow_undefined_flag='-berok'
+       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+-      allow_undefined_flag=' -Wl,-G'
+-      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++      archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+       if test "$host_cpu" = ia64; then
+-        hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+-       allow_undefined_flag="-znodefs"
+-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++      hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
++      allow_undefined_flag="-z nodefs"
++      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+       else
+-        hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+-        # Warning - without using the other run time loading flags, -berok will
+-        #           link without error, but may produce a broken library.
+-        allow_undefined_flag='${wl}-berok'
+-        # This is a bit strange, but is similar to how AIX traditionally builds
+-        # it's shared libraries.
+-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
++      hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
++      # Warning - without using the other run time loading flags,
++      # -berok will link without error, but may produce a broken library.
++      allow_undefined_flag='${wl}-berok'
++      # This is a bit strange, but is similar to how AIX traditionally builds
++      # it's shared libraries.
++      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname'
+       fi
+     fi
+     ;;
+@@ -1593,11 +1691,19 @@
+     ;;
+   darwin* | rhapsody*)
+-    allow_undefined_flag='-undefined suppress'
++    case "$host_os" in
++    rhapsody* | darwin1.[[012]])
++      allow_undefined_flag='-undefined suppress'
++      ;;
++    *) # Darwin 1.3 on
++      allow_undefined_flag='-flat_namespace -undefined suppress'
++      ;;
++    esac
+     # FIXME: Relying on posixy $() will cause problems for
+     #        cross-compilation, but unfortunately the echo tests do not
+-    #        yet detect zsh echo's removal of \ escapes.
+-    archive_cmds='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linkopts -install_name $rpath/$soname $(test -n "$verstring" -a x$verstring != x0.0 && echo $verstring)'
++    #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
++    #      `"' quotes if we put them in here... so don't!
++    archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
+     # We need to add '_' to the symbols in $export_symbols first
+     #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+     hardcode_direct=yes
+@@ -1649,13 +1755,14 @@
+     export_dynamic_flag_spec='${wl}-E'
+     ;;
+-  irix5* | irix6*)
++  irix5* | irix6* | nonstopux*)
+     if test "$GCC" = yes; then
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+     else
+       archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
++      hardcode_libdir_flag_spec='-rpath $libdir'
+     fi
+-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+     hardcode_libdir_separator=:
+     link_all_deplibs=yes
+     ;;
+@@ -1672,7 +1779,7 @@
+     ;;
+   newsos6)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
++    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+     hardcode_direct=yes
+     hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+     hardcode_libdir_separator=:
+@@ -1680,10 +1787,24 @@
+     ;;
+   openbsd*)
+-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+-    hardcode_libdir_flag_spec='-R$libdir'
+     hardcode_direct=yes
+     hardcode_shlibpath_var=no
++    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
++      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++      export_dynamic_flag_spec='${wl}-E'
++    else
++      case "$host_os" in
++      openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
++      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
++      hardcode_libdir_flag_spec='-R$libdir'
++        ;;
++      *)
++        archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
++        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++        ;;
++      esac
++    fi
+     ;;
+   os2*)
+@@ -1728,10 +1849,39 @@
+     hardcode_shlibpath_var=no
+     runpath_var=LD_RUN_PATH
+     hardcode_runpath_var=yes
++    export_dynamic_flag_spec='${wl}-Bexport'
+     ;;
+   solaris*)
++    # gcc --version < 3.0 without binutils cannot create self contained
++    # shared libraries reliably, requiring libgcc.a to resolve some of
++    # the object symbols generated in some cases.  Libraries that use
++    # assert need libgcc.a to resolve __eprintf, for example.  Linking
++    # a copy of libgcc.a into every shared library to guarantee resolving
++    # such symbols causes other problems:  According to Tim Van Holder
++    # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
++    # (to the application) exception stack for one thing.
+     no_undefined_flag=' -z defs'
++    if test "$GCC" = yes; then
++      case `$CC --version 2>/dev/null` in
++      [[12]].*)
++      cat <<EOF 1>&2
++
++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
++*** create self contained shared libraries on Solaris systems, without
++*** introducing a dependency on libgcc.a.  Therefore, libtool is disabling
++*** -no-undefined support, which will at least allow you to build shared
++*** libraries.  However, you may find that when you link such libraries
++*** into an application without using GCC, you have to manually add
++*** \`gcc --print-libgcc-file-name\` to the link command.  We urge you to
++*** upgrade to a newer version of GCC.  Another option is to rebuild your
++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
++
++EOF
++        no_undefined_flag=
++      ;;
++      esac
++    fi
+     # $CC -shared without GNU ld will not create a library from C++
+     # object files and a static libstdc++, better avoid it by now
+     archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+@@ -1740,7 +1890,7 @@
+     hardcode_libdir_flag_spec='-R$libdir'
+     hardcode_shlibpath_var=no
+     case $host_os in
+-    [solaris2.[0-5] | solaris2.[0-5].*]) ;;
++    solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+     *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+       whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+     esac
+@@ -1762,13 +1912,23 @@
+     ;;
+   sysv4)
+-    if test "x$host_vendor" = xsno; then
+-      archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linkopts'
+-      hardcode_direct=yes # is this really true???
+-    else
+-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-      hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+-    fi
++    case $host_vendor in
++      sni)
++        archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
++        hardcode_direct=yes # is this really true???
++        ;;
++      siemens)
++        ## LD is ld it makes a PLAMLIB
++        ## CC just makes a GrossModule.
++        archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
++        reload_cmds='$CC -r -o $output$reload_objs'
++        hardcode_direct=no
++        ;;
++      motorola)
++        archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
++        hardcode_direct=no #Motorola manual says yes, but my tests say they lie
++        ;;
++    esac
+     runpath_var='LD_RUN_PATH'
+     hardcode_shlibpath_var=no
+     ;;
+@@ -1909,6 +2069,9 @@
+ aix4* | aix5*)
+   version_type=linux
++  need_lib_prefix=no
++  need_version=no
++  hardcode_into_libs=yes
+   if test "$host_cpu" = ia64; then
+     # AIX 5 supports IA64
+     library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+@@ -1920,22 +2083,24 @@
+     # depend on `.', always an invalid library.  This was fixed in
+     # development snapshots of GCC prior to 3.0.
+     case $host_os in
+-      [ aix4 | aix4.[01] | aix4.[01].*)]
+-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+-           echo ' yes '
+-           echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+-        :
+-      else
+-        can_build_shared=no
+-      fi
+-      ;;
++      aix4 | aix4.[[01]] | aix4.[[01]].*)
++      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
++           echo ' yes '
++           echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
++        :
++      else
++        can_build_shared=no
++      fi
++      ;;
+     esac
+-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+-    # soname into executable. Probably we can add versioning support to
+-    # collect2, so additional links can be useful in future.
++    # AIX (on Power*) has no versioning support, so currently we can
++    # not hardcode correct soname into executable. Probably we can
++    # add versioning support to collect2, so additional links can
++    # be useful in future.
+     if test "$aix_use_runtimelinking" = yes; then
+-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
+-      # lib<name>.a to let people know that these are not typical AIX shared libraries.
++      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
++      # instead of lib<name>.a to let people know that these are not
++      # typical AIX shared libraries.
+       library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+     else
+       # We preserve .a as extension for shared libraries through AIX4.2
+@@ -1944,14 +2109,14 @@
+       soname_spec='${libname}${release}.so$major'
+     fi
+     shlibpath_var=LIBPATH
+-    deplibs_check_method=pass_all
+   fi
++  hardcode_into_libs=yes
+   ;;
+ amigaos*)
+   library_names_spec='$libname.ixlibrary $libname.a'
+   # Create ${libname}_ixlibrary.a entries in /sys/libs.
+-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | [$Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\'']`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
++  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+   ;;
+ beos*)
+@@ -1982,7 +2147,7 @@
+   case $GCC,$host_os in
+   yes,cygwin*)
+     library_names_spec='$libname.dll.a'
+-    soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll'
++    soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll'
+     postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~
+       dldir=$destdir/`dirname \$dlpath`~
+       test -d \$dldir || mkdir -p \$dldir~
+@@ -1992,14 +2157,14 @@
+        $rm \$dlpath'
+     ;;
+   yes,mingw*)
+-    library_names_spec='${libname}`echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll'
+-    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
++    library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll'
++    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"`
+     ;;
+   yes,pw32*)
+     library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+     ;;
+   *)
+-    library_names_spec='${libname}`echo ${release} | [sed -e 's/[.]/-/g']`${versuffix}.dll $libname.lib'
++    library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib'
+     ;;
+   esac
+   dynamic_linker='Win32 ld.exe'
+@@ -2025,6 +2190,18 @@
+   dynamic_linker=no
+   ;;
++freebsd*-gnu*)
++  version_type=linux
++  need_lib_prefix=no
++  need_version=no
++  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
++  soname_spec='${libname}${release}.so$major'
++  shlibpath_var=LD_LIBRARY_PATH
++  shlibpath_overrides_runpath=no
++  hardcode_into_libs=yes
++  dynamic_linker='GNU/FreeBSD ld.so'
++  ;;
++
+ freebsd*)
+   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+   version_type=freebsd-$objformat
+@@ -2076,14 +2253,17 @@
+   postinstall_cmds='chmod 555 $lib'
+   ;;
+-irix5* | irix6*)
+-  version_type=irix
++irix5* | irix6* | nonstopux*)
++  case $host_os in
++    nonstopux*) version_type=nonstopux ;;
++    *)          version_type=irix ;;
++  esac
+   need_lib_prefix=no
+   need_version=no
+   soname_spec='${libname}${release}.so$major'
+   library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+   case $host_os in
+-  irix5*)
++  irix5* | nonstopux*)
+     libsuff= shlibsuff=
+     ;;
+   *)
+@@ -2157,9 +2337,19 @@
+ openbsd*)
+   version_type=sunos
+-  if test "$with_gnu_ld" = yes; then
+-    need_lib_prefix=no
+-    need_version=no
++  need_lib_prefix=no
++  need_version=no
++  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++    case "$host_os" in
++    openbsd2.[[89]] | openbsd2.[[89]].*)
++      shlibpath_overrides_runpath=no
++      ;;
++    *)
++      shlibpath_overrides_runpath=yes
++      ;;
++    esac
++  else
++    shlibpath_overrides_runpath=yes
+   fi
+   library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+@@ -2177,11 +2367,13 @@
+ osf3* | osf4* | osf5*)
+   version_type=osf
+   need_version=no
+-  soname_spec='${libname}${release}.so'
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
++  need_lib_prefix=no
++  soname_spec='${libname}${release}.so$major'
++  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+   shlibpath_var=LD_LIBRARY_PATH
+   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
++  hardcode_into_libs=yes
+   ;;
+ sco3.2v5*)
+@@ -2224,6 +2416,12 @@
+   case $host_vendor in
+     sni)
+       shlibpath_overrides_runpath=no
++      need_lib_prefix=no
++      export_dynamic_flag_spec='${wl}-Blargedynsym'
++      runpath_var=LD_RUN_PATH
++      ;;
++    siemens)
++      need_lib_prefix=no
+       ;;
+     motorola)
+       need_lib_prefix=no
+@@ -2270,6 +2468,33 @@
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
++AC_MSG_CHECKING([whether to build shared libraries])
++test "$can_build_shared" = "no" && enable_shared=no
++
++# On AIX, shared libraries and static libraries use the same namespace, and
++# are all built from PIC.
++case "$host_os" in
++aix3*)
++  test "$enable_shared" = yes && enable_static=no
++  if test -n "$RANLIB"; then
++    archive_cmds="$archive_cmds~\$RANLIB \$lib"
++    postinstall_cmds='$RANLIB $lib'
++  fi
++  ;;
++
++aix4*)
++  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
++    test "$enable_shared" = yes && enable_static=no
++  fi
++  ;;
++esac
++AC_MSG_RESULT([$enable_shared])
++
++AC_MSG_CHECKING([whether to build static libraries])
++# Make sure either enable_shared or enable_static is yes.
++test "$enable_shared" = yes || enable_static=yes
++AC_MSG_RESULT([$enable_static])
++
+ if test "$hardcode_action" = relink; then
+   # Fast installation is not supported
+   enable_fast_install=no
+@@ -2351,7 +2576,7 @@
+   # Now quote all the things that may contain metacharacters while being
+   # careful not to overquote the AC_SUBSTed values.  We take copies of the
+   # variables and quote the copies for generation of the libtool script.
+-  for var in echo old_CC old_CFLAGS \
++  for var in echo old_CC old_CFLAGS SED \
+     AR AR_FLAGS CC LD LN_S NM SHELL \
+     reload_flag reload_cmds wl \
+     pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+@@ -2363,6 +2588,7 @@
+     old_striplib striplib file_magic_cmd export_symbols_cmds \
+     deplibs_check_method allow_undefined_flag no_undefined_flag \
+     finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
++    global_symbol_to_c_name_address \
+     hardcode_libdir_flag_spec hardcode_libdir_separator  \
+     sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+     compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+@@ -2412,8 +2638,11 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
++# A sed that does not truncate output.
++SED=$lt_SED
++
+ # Sed that helps us avoid accidentally triggering echo(1) options like -n.
+-Xsed="sed -e s/^X//"
++Xsed="${SED} -e s/^X//"
+ # The HP-UX ksh and POSIX shell print the target directory to stdout
+ # if CDPATH is set.
+@@ -2429,12 +2658,12 @@
+ # Whether or not to build shared libraries.
+ build_libtool_libs=$enable_shared
+-# Whether or not to add -lc for building shared libraries.
+-build_libtool_need_lc=$need_lc
+-
+ # Whether or not to build static libraries.
+ build_old_libs=$enable_static
++# Whether or not to add -lc for building shared libraries.
++build_libtool_need_lc=$need_lc
++
+ # Whether or not to optimize for fast installation.
+ fast_install=$enable_fast_install
+@@ -2600,6 +2829,9 @@
+ # Transform the output of nm in a proper C declaration
+ global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
++# Transform the output of nm in a C name address pair
++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
++
+ # This is the shared library runtime path variable.
+ runpath_var=$runpath_var
+@@ -2722,9 +2954,9 @@
+ #   return TRUE;
+ # }
+ # /* ltdll.c ends here */
+-        # This is a source program that is used to create import libraries
+-        # on Windows for dlls which lack them. Don't remove nor modify the
+-        # starting and closing comments
++      # This is a source program that is used to create import libraries
++      # on Windows for dlls which lack them. Don't remove nor modify the
++      # starting and closing comments
+ # /* impgen.c starts here */
+ # /*   Copyright (C) 1999-2000 Free Software Foundation, Inc.
+ #
+@@ -3079,6 +3311,7 @@
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([AC_CANONICAL_BUILD])dnl
++AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
+ ac_prog=ld
+ if test "$GCC" = yes; then
+   # Check if gcc -print-prog-name=ld gives a path.
+@@ -3092,8 +3325,8 @@
+   esac
+   case $ac_prog in
+     # Accept absolute paths.
+-    [[\\/]* | [A-Za-z]:[\\/]*)]
+-      [re_direlt='/[^/][^/]*/\.\./']
++    [[\\/]]* | [[A-Za-z]]:[[\\/]]*)
++      re_direlt='/[[^/]][[^/]]*/\.\./'
+       # Canonicalize the path of ld
+       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+@@ -3117,7 +3350,7 @@
+ fi
+ AC_CACHE_VAL(lt_cv_path_LD,
+ [if test -z "$LD"; then
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
++  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+   for ac_dir in $PATH; do
+     test -z "$ac_dir" && ac_dir=.
+     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+@@ -3170,7 +3403,7 @@
+ # AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
+ #  -- PORTME fill in with the dynamic library characteristics
+ AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+-[AC_CACHE_CHECK([how to recognise dependant libraries],
++[AC_CACHE_CHECK([how to recognise dependent libraries],
+ lt_cv_deplibs_check_method,
+ [lt_cv_file_magic_cmd='$MAGIC_CMD'
+ lt_cv_file_magic_test_file=
+@@ -3181,7 +3414,7 @@
+ # `unknown' -- same as none, but documents that we really don't know.
+ # 'pass_all' -- all dependencies passed with no checks.
+ # 'test_compile' -- check by making test program.
+-# ['file_magic [regex]'] -- check by looking for files in library path
++# 'file_magic [[regex]]' -- check by looking for files in library path
+ # which responds to the $file_magic_cmd with a given egrep regex.
+ # If you have `file' or equivalent on your system and you're not sure
+ # whether `pass_all' will *always* work, you probably want this one.
+@@ -3196,7 +3429,7 @@
+   ;;
+ bsdi4*)
+-  [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)']
++  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+   lt_cv_file_magic_cmd='/usr/bin/file -L'
+   lt_cv_file_magic_test_file=/shlib/libc.so
+   ;;
+@@ -3210,7 +3443,7 @@
+   lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+   lt_cv_file_magic_cmd='/usr/bin/file -L'
+   case "$host_os" in
+-  rhapsody* | darwin1.[012])
++  rhapsody* | darwin1.[[012]])
+     lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+     ;;
+   *) # Darwin 1.3 on
+@@ -3225,7 +3458,7 @@
+     i*86 )
+       # Not sure whether the presence of OpenBSD here was a mistake.
+       # Let's accept both of them until this is cleared up.
+-      [lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library']
++      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+       lt_cv_file_magic_cmd=/usr/bin/file
+       lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+       ;;
+@@ -3240,14 +3473,14 @@
+   ;;
+ hpux10.20*|hpux11*)
+-  [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library']
++  lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+   lt_cv_file_magic_cmd=/usr/bin/file
+   lt_cv_file_magic_test_file=/usr/lib/libc.sl
+   ;;
+-irix5* | irix6*)
++irix5* | irix6* | nonstopux*)
+   case $host_os in
+-  irix5*)
++  irix5* | nonstopux*)
+     # this will be overridden with pass_all, but let us keep it just in case
+     lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+     ;;
+@@ -3259,7 +3492,7 @@
+     *) libmagic=never-match;;
+     esac
+     # this will be overridden with pass_all, but let us keep it just in case
+-    [lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"]
++    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+     ;;
+   esac
+   lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+@@ -3269,29 +3502,39 @@
+ # This must be Linux ELF.
+ linux-gnu*)
+   case $host_cpu in
+-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* )
++  alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k)
+     lt_cv_deplibs_check_method=pass_all ;;
+   *)
+     # glibc up to 2.1.1 does not perform some relocations on ARM
+-    [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;]
++    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+   esac
+   lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+   ;;
+ netbsd*)
+   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+-    [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
++    lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$'
+   else
+-    [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$']
++    lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$'
+   fi
+   ;;
+ newos6*)
+-  [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)']
++  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+   lt_cv_file_magic_cmd=/usr/bin/file
+   lt_cv_file_magic_test_file=/usr/lib/libnls.so
+   ;;
++openbsd*)
++  lt_cv_file_magic_cmd=/usr/bin/file
++  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
++  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
++  else
++    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
++  fi
++  ;;
++
+ osf3* | osf4* | osf5*)
+   # this will be overridden with pass_all, but let us keep it just in case
+   lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+@@ -3308,14 +3551,14 @@
+   lt_cv_file_magic_test_file=/lib/libc.so
+   ;;
+-[sysv5uw[78]* | sysv4*uw2*)]
++sysv5uw[[78]]* | sysv4*uw2*)
+   lt_cv_deplibs_check_method=pass_all
+   ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+   case $host_vendor in
+   motorola)
+-    [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]']
++    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+     lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+     ;;
+   ncr)
+@@ -3323,13 +3566,16 @@
+     ;;
+   sequent)
+     lt_cv_file_magic_cmd='/bin/file'
+-    [lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )']
++    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+     ;;
+   sni)
+     lt_cv_file_magic_cmd='/bin/file'
+-    [lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"]
++    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+     lt_cv_file_magic_test_file=/lib/libc.so
+     ;;
++  siemens)
++    lt_cv_deplibs_check_method=pass_all
++    ;;
+   esac
+   ;;
+ esac
+@@ -3341,13 +3587,14 @@
+ # AC_PROG_NM - find the path to a BSD-compatible name lister
+ AC_DEFUN([AC_PROG_NM],
+-[AC_MSG_CHECKING([for BSD-compatible nm])
++[AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl
++AC_MSG_CHECKING([for BSD-compatible nm])
+ AC_CACHE_VAL(lt_cv_path_NM,
+ [if test -n "$NM"; then
+   # Let the user override the test.
+   lt_cv_path_NM="$NM"
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
++  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+     test -z "$ac_dir" && ac_dir=.
+     tmp_nm=$ac_dir/${ac_tool_prefix}nm
+@@ -3394,12 +3641,12 @@
+ ])
+ # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
+-# the libltdl convenience library and INCLTDL to the include flags for
++# the libltdl convenience library and LTDLINCL to the include flags for
+ # the libltdl header and adds --enable-ltdl-convenience to the
+-# configure arguments.  Note that LIBLTDL and INCLTDL are not
++# configure arguments.  Note that LIBLTDL and LTDLINCL are not
+ # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If DIR is not
+ # provided, it is assumed to be `libltdl'.  LIBLTDL will be prefixed
+-# with '${top_builddir}/' and INCLTDL will be prefixed with
++# with '${top_builddir}/' and LTDLINCL will be prefixed with
+ # '${top_srcdir}/' (note the single quotes!).  If your package is not
+ # flat and you're not using automake, define top_builddir and
+ # top_srcdir appropriately in the Makefiles.
+@@ -3411,16 +3658,18 @@
+       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+   esac
+   LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+-  INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
++  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
++  # For backwards non-gettext consistent compatibility...
++  INCLTDL="$LTDLINCL"
+ ])
+ # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
+-# the libltdl installable library and INCLTDL to the include flags for
++# the libltdl installable library and LTDLINCL to the include flags for
+ # the libltdl header and adds --enable-ltdl-install to the configure
+-# arguments.  Note that LIBLTDL and INCLTDL are not AC_SUBSTed, nor is
++# arguments.  Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is
+ # AC_CONFIG_SUBDIRS called.  If DIR is not provided and an installed
+ # libltdl is not found, it is assumed to be `libltdl'.  LIBLTDL will
+-# be prefixed with '${top_builddir}/' and INCLTDL will be prefixed
++# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed
+ # with '${top_srcdir}/' (note the single quotes!).  If your package is
+ # not flat and you're not using automake, define top_builddir and
+ # top_srcdir appropriately in the Makefiles.
+@@ -3438,12 +3687,14 @@
+   if test x"$enable_ltdl_install" = x"yes"; then
+     ac_configure_args="$ac_configure_args --enable-ltdl-install"
+     LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+-    INCLTDL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
++    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+   else
+     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+     LIBLTDL="-lltdl"
+-    INCLTDL=
++    LTDLINCL=
+   fi
++  # For backwards non-gettext consistent compatibility...
++  INCLTDL="$LTDLINCL"
+ ])
+ # old names
+@@ -3458,3 +3709,92 @@
+ # This is just to silence aclocal about the macro not being used
+ ifelse([AC_DISABLE_FAST_INSTALL])
++# NOTE: This macro has been submitted for inclusion into   #
++#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
++#  a released version of Autoconf we should remove this    #
++#  macro and use it instead.                               #
++# LT_AC_PROG_SED
++# --------------
++# Check for a fully-functional sed program, that truncates
++# as few characters as possible.  Prefer GNU sed if found.
++AC_DEFUN([LT_AC_PROG_SED],
++[AC_MSG_CHECKING([for a sed that does not truncate output])
++AC_CACHE_VAL(lt_cv_path_SED,
++[# Loop through the user's path and test for sed and gsed.
++# Then use that list of sed's as ones to test for truncation.
++as_executable_p="test -f"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_prog in sed gsed; do
++    for ac_exec_ext in '' $ac_executable_extensions; do
++      if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
++        _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
++      fi
++    done
++  done
++done
++
++  # Create a temporary directory, and hook for its removal unless debugging.
++$debug ||
++{
++  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
++  trap '{ (exit 1); exit 1; }' 1 2 13 15
++}
++
++# Create a (secure) tmp directory for tmp files.
++: ${TMPDIR=/tmp}
++{
++  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` &&
++  test -n "$tmp" && test -d "$tmp"
++}  ||
++{
++  tmp=$TMPDIR/sed$$-$RANDOM
++  (umask 077 && mkdir $tmp)
++} ||
++{
++   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
++   { (exit 1); exit 1; }
++}
++  _max=0
++  _count=0
++  # Add /usr/xpg4/bin/sed as it is typically found on Solaris
++  # along with /bin/sed that truncates output.
++  for _sed in $_sed_list /usr/xpg4/bin/sed; do
++    test ! -f ${_sed} && break
++    cat /dev/null > "$tmp/sed.in"
++    _count=0
++    echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in"
++    # Check for GNU sed and select it if it is found.
++    if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then
++      lt_cv_path_SED=${_sed}
++      break
++    fi
++    while true; do
++      cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
++      mv "$tmp/sed.tmp" "$tmp/sed.in"
++      cp "$tmp/sed.in" "$tmp/sed.nl"
++      echo >>"$tmp/sed.nl"
++      ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break
++      cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
++      # 40000 chars as input seems more than enough
++      test $_count -gt 10 && break
++      _count=`expr $_count + 1`
++      if test $_count -gt $_max; then
++        _max=$_count
++        lt_cv_path_SED=$_sed
++      fi
++    done
++  done
++  rm -rf "$tmp"
++])
++if test "X$SED" != "X"; then
++  lt_cv_path_SED=$SED
++else
++  SED=$lt_cv_path_SED
++fi
++AC_MSG_RESULT([$SED])
++])
++
+--- linux-atm-2.4.1.orig/config.guess
++++ linux-atm-2.4.1/config.guess
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Attempt to guess a canonical system name.
+-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+-#   Free Software Foundation, Inc.
++#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
++#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+-timestamp='2001-04-20'
++timestamp='2003-05-19'
+ # This file is free software; you can redistribute it and/or modify it
+ # under the terms of the GNU General Public License as published by
+@@ -24,8 +24,9 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+-# Written by Per Bothner <bothner@cygnus.com>.
+-# Please send patches to <config-patches@gnu.org>.
++# Originally written by Per Bothner <per@bothner.com>.
++# Please send patches to <config-patches@gnu.org>.  Submit a context
++# diff and a properly formatted ChangeLog entry.
+ #
+ # This script attempts to guess a canonical system name similar to
+ # config.sub.  If it succeeds, it prints the system name on stdout, and
+@@ -52,7 +53,7 @@
+ GNU config.guess ($timestamp)
+ Originally written by Per Bothner.
+-Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+ Free Software Foundation, Inc.
+ This is free software; see the source for copying conditions.  There is NO
+@@ -87,33 +88,44 @@
+   exit 1
+ fi
++trap 'exit 1' 1 2 15
+-dummy=dummy-$$
+-trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
++# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
++# compiler to aid in system detection is discouraged as it requires
++# temporary files to be created and, as you can see below, it is a
++# headache to deal with in a portable fashion.
+-# CC_FOR_BUILD -- compiler used by this script.
+ # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+ # use `HOST_CC' if defined, but it is deprecated.
++# Portable tmp directory creation inspired by the Autoconf team.
++
++set_cc_for_build='
++trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
++trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
++: ${TMPDIR=/tmp} ;
++ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
++ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
++ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
++dummy=$tmp/dummy ;
++tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+ case $CC_FOR_BUILD,$HOST_CC,$CC in
+- ,,)    echo "int dummy(){}" > $dummy.c
+-      for c in cc gcc c89 ; do
+-        ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
+-        if test $? = 0 ; then
+-           CC_FOR_BUILD="$c"; break
+-        fi
+-      done
+-      rm -f $dummy.c $dummy.o $dummy.rel
++ ,,)    echo "int x;" > $dummy.c ;
++      for c in cc gcc c89 c99 ; do
++        if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
++           CC_FOR_BUILD="$c"; break ;
++        fi ;
++      done ;
+       if test x"$CC_FOR_BUILD" = x ; then
+-        CC_FOR_BUILD=no_compiler_found
++        CC_FOR_BUILD=no_compiler_found ;
+       fi
+       ;;
+  ,,*)   CC_FOR_BUILD=$CC ;;
+  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+-esac
++esac ;'
+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+-# (ghazi@noc.rutgers.edu 8/24/94.)
++# (ghazi@noc.rutgers.edu 1994-08-24)
+ if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+       PATH=$PATH:/.attbin ; export PATH
+ fi
+@@ -127,29 +139,31 @@
+ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+     *:NetBSD:*:*)
+-      # Netbsd (nbsd) targets should (where applicable) match one or
++      # NetBSD (nbsd) targets should (where applicable) match one or
+       # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+       # *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+       # switched to ELF, *-*-netbsd* would select the old
+       # object file format.  This provides both forward
+       # compatibility and a consistent mechanism for selecting the
+       # object file format.
+-      # Determine the machine/vendor (is the vendor relevant).
+-      case "${UNAME_MACHINE}" in
+-          amiga) machine=m68k-unknown ;;
+-          arm32) machine=arm-unknown ;;
+-          atari*) machine=m68k-atari ;;
+-          sun3*) machine=m68k-sun ;;
+-          mac68k) machine=m68k-apple ;;
+-          macppc) machine=powerpc-apple ;;
+-          hp3[0-9][05]) machine=m68k-hp ;;
+-          ibmrt|romp-ibm) machine=romp-ibm ;;
+-          *) machine=${UNAME_MACHINE}-unknown ;;
++      #
++      # Note: NetBSD doesn't particularly care about the vendor
++      # portion of the name.  We always set it to "unknown".
++      sysctl="sysctl -n hw.machine_arch"
++      UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
++          /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
++      case "${UNAME_MACHINE_ARCH}" in
++          armeb) machine=armeb-unknown ;;
++          arm*) machine=arm-unknown ;;
++          sh3el) machine=shl-unknown ;;
++          sh3eb) machine=sh-unknown ;;
++          *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+       esac
+       # The Operating System including object format, if it has switched
+       # to ELF recently, or will in the future.
+-      case "${UNAME_MACHINE}" in
+-          i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
++      case "${UNAME_MACHINE_ARCH}" in
++          arm*|i386|m68k|ns32k|sh3*|sparc|vax)
++              eval $set_cc_for_build
+               if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+                       | grep __ELF__ >/dev/null
+               then
+@@ -165,69 +179,107 @@
+               ;;
+       esac
+       # The OS release
+-      release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++      # Debian GNU/NetBSD machines have a different userland, and
++      # thus, need a distinct triplet. However, they do not need
++      # kernel version information, so it can be replaced with a
++      # suitable tag, in the style of linux-gnu.
++      case "${UNAME_VERSION}" in
++          Debian*)
++              release='-gnu'
++              ;;
++          *)
++              release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++              ;;
++      esac
+       # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+       # contains redundant information, the shorter form:
+       # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+       echo "${machine}-${os}${release}"
+       exit 0 ;;
++    amiga:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    arc:OpenBSD:*:*)
++      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    hp300:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    mac68k:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    macppc:OpenBSD:*:*)
++      echo powerpc-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    mvme68k:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    mvme88k:OpenBSD:*:*)
++      echo m88k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    mvmeppc:OpenBSD:*:*)
++      echo powerpc-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    pmax:OpenBSD:*:*)
++      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    sgi:OpenBSD:*:*)
++      echo mipseb-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    sun3:OpenBSD:*:*)
++      echo m68k-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    wgrisc:OpenBSD:*:*)
++      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
++    *:OpenBSD:*:*)
++      echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
++      exit 0 ;;
+     alpha:OSF1:*:*)
+       if test $UNAME_RELEASE = "V4.0"; then
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+       fi
++      # According to Compaq, /usr/sbin/psrinfo has been available on
++      # OSF/1 and Tru64 systems produced since 1995.  I hope that
++      # covers most systems running today.  This code pipes the CPU
++      # types through head -n 1, so we only detect the type of CPU 0.
++      ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
++      case "$ALPHA_CPU_TYPE" in
++          "EV4 (21064)")
++              UNAME_MACHINE="alpha" ;;
++          "EV4.5 (21064)")
++              UNAME_MACHINE="alpha" ;;
++          "LCA4 (21066/21068)")
++              UNAME_MACHINE="alpha" ;;
++          "EV5 (21164)")
++              UNAME_MACHINE="alphaev5" ;;
++          "EV5.6 (21164A)")
++              UNAME_MACHINE="alphaev56" ;;
++          "EV5.6 (21164PC)")
++              UNAME_MACHINE="alphapca56" ;;
++          "EV5.7 (21164PC)")
++              UNAME_MACHINE="alphapca57" ;;
++          "EV6 (21264)")
++              UNAME_MACHINE="alphaev6" ;;
++          "EV6.7 (21264A)")
++              UNAME_MACHINE="alphaev67" ;;
++          "EV6.8CB (21264C)")
++              UNAME_MACHINE="alphaev68" ;;
++          "EV6.8AL (21264B)")
++              UNAME_MACHINE="alphaev68" ;;
++          "EV6.8CX (21264D)")
++              UNAME_MACHINE="alphaev68" ;;
++          "EV6.9A (21264/EV69A)")
++              UNAME_MACHINE="alphaev69" ;;
++          "EV7 (21364)")
++              UNAME_MACHINE="alphaev7" ;;
++          "EV7.9 (21364A)")
++              UNAME_MACHINE="alphaev79" ;;
++      esac
+       # A Vn.n version is a released version.
+       # A Tn.n version is a released field test version.
+       # A Xn.n version is an unreleased experimental baselevel.
+       # 1.2 uses "1.2" for uname -r.
+-      cat <<EOF >$dummy.s
+-      .data
+-\$Lformat:
+-      .byte 37,100,45,37,120,10,0     # "%d-%x\n"
+-
+-      .text
+-      .globl main
+-      .align 4
+-      .ent main
+-main:
+-      .frame \$30,16,\$26,0
+-      ldgp \$29,0(\$27)
+-      .prologue 1
+-      .long 0x47e03d80 # implver \$0
+-      lda \$2,-1
+-      .long 0x47e20c21 # amask \$2,\$1
+-      lda \$16,\$Lformat
+-      mov \$0,\$17
+-      not \$1,\$18
+-      jsr \$26,printf
+-      ldgp \$29,0(\$26)
+-      mov 0,\$16
+-      jsr \$26,exit
+-      .end main
+-EOF
+-      $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+-      if test "$?" = 0 ; then
+-              case `./$dummy` in
+-                      0-0)
+-                              UNAME_MACHINE="alpha"
+-                              ;;
+-                      1-0)
+-                              UNAME_MACHINE="alphaev5"
+-                              ;;
+-                      1-1)
+-                              UNAME_MACHINE="alphaev56"
+-                              ;;
+-                      1-101)
+-                              UNAME_MACHINE="alphapca56"
+-                              ;;
+-                      2-303)
+-                              UNAME_MACHINE="alphaev6"
+-                              ;;
+-                      2-307)
+-                              UNAME_MACHINE="alphaev67"
+-                              ;;
+-              esac
+-      fi
+-      rm -f $dummy.s $dummy
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       exit 0 ;;
+     Alpha\ *:Windows_NT*:*)
+@@ -242,29 +294,11 @@
+     Amiga*:UNIX_System_V:4.0:*)
+       echo m68k-unknown-sysv4
+       exit 0;;
+-    amiga:OpenBSD:*:*)
+-      echo m68k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+     *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit 0 ;;
+-    arc64:OpenBSD:*:*)
+-      echo mips64el-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    arc:OpenBSD:*:*)
+-      echo mipsel-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    hkmips:OpenBSD:*:*)
+-      echo mips-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    pmax:OpenBSD:*:*)
+-      echo mipsel-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    sgi:OpenBSD:*:*)
+-      echo mips-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    wgrisc:OpenBSD:*:*)
+-      echo mipsel-unknown-openbsd${UNAME_RELEASE}
++    *:[Mm]orph[Oo][Ss]:*:*)
++      echo ${UNAME_MACHINE}-unknown-morphos
+       exit 0 ;;
+     *:OS/390:*:*)
+       echo i370-ibm-openedition
+@@ -286,6 +320,10 @@
+     NILE*:*:*:dcosx)
+       echo pyramid-pyramid-svr4
+       exit 0 ;;
++    DRS?6000:UNIX_SV:4.2*:7*)
++      case `/usr/bin/uname -p` in
++          sparc) echo sparc-icl-nx7 && exit 0 ;;
++      esac ;;
+     sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
+@@ -314,7 +352,7 @@
+       echo m68k-sun-sunos${UNAME_RELEASE}
+       exit 0 ;;
+     sun*:*:4.2BSD:*)
+-      UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
++      UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+@@ -328,9 +366,6 @@
+     aushp:SunOS:*:*)
+       echo sparc-auspex-sunos${UNAME_RELEASE}
+       exit 0 ;;
+-    atari*:OpenBSD:*:*)
+-      echo m68k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+     # The situation for MiNT is a little confusing.  The machine name
+     # can be virtually everything (everything which is not
+     # "atarist" or "atariste" at least should have a processor
+@@ -357,18 +392,6 @@
+     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+         echo m68k-unknown-mint${UNAME_RELEASE}
+         exit 0 ;;
+-    sun3*:OpenBSD:*:*)
+-      echo m68k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    mac68k:OpenBSD:*:*)
+-      echo m68k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    mvme68k:OpenBSD:*:*)
+-      echo m68k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+-    mvme88k:OpenBSD:*:*)
+-      echo m88k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+     powerpc:machten:*:*)
+       echo powerpc-apple-machten${UNAME_RELEASE}
+       exit 0 ;;
+@@ -385,6 +408,7 @@
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit 0 ;;
+     mips:*:*:UMIPS | mips:*:*:RISCos)
++      eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+ #ifdef __cplusplus
+ #include <stdio.h>  /* for printf() prototype */
+@@ -406,15 +430,20 @@
+         exit (-1);
+       }
+ EOF
+-      $CC_FOR_BUILD $dummy.c -o $dummy \
+-        && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+-        && rm -f $dummy.c $dummy && exit 0
+-      rm -f $dummy.c $dummy
++      $CC_FOR_BUILD -o $dummy $dummy.c \
++        && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
++        && exit 0
+       echo mips-mips-riscos${UNAME_RELEASE}
+       exit 0 ;;
+     Motorola:PowerMAX_OS:*:*)
+       echo powerpc-motorola-powermax
+       exit 0 ;;
++    Motorola:*:4.3:PL8-*)
++      echo powerpc-harris-powermax
++      exit 0 ;;
++    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
++      echo powerpc-harris-powermax
++      exit 0 ;;
+     Night_Hawk:Power_UNIX:*:*)
+       echo powerpc-harris-powerunix
+       exit 0 ;;
+@@ -475,6 +504,7 @@
+       exit 0 ;;
+     *:AIX:2:3)
+       if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
++              eval $set_cc_for_build
+               sed 's/^                //' << EOF >$dummy.c
+               #include <sys/systemcfg.h>
+@@ -486,8 +516,7 @@
+                       exit(0);
+                       }
+ EOF
+-              $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
+-              rm -f $dummy.c $dummy
++              $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+               echo rs6000-ibm-aix3.2.5
+       elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+               echo rs6000-ibm-aix3.2.4
+@@ -496,7 +525,7 @@
+       fi
+       exit 0 ;;
+     *:AIX:*:[45])
+-      IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
++      IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+               IBM_ARCH=rs6000
+       else
+@@ -536,10 +565,8 @@
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/[678][0-9][0-9])
+-              case "${HPUX_REV}" in
+-                11.[0-9][0-9])
+-                  if [ -x /usr/bin/getconf ]; then
+-                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
++              if [ -x /usr/bin/getconf ]; then
++                  sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                     sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                     case "${sc_cpu_version}" in
+                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+@@ -548,12 +575,13 @@
+                         case "${sc_kernel_bits}" in
+                           32) HP_ARCH="hppa2.0n" ;;
+                           64) HP_ARCH="hppa2.0w" ;;
++                        '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                         esac ;;
+                     esac
+-                  fi ;;
+-              esac
+-              if [ "${HP_ARCH}" = "" ]; then
+-              sed 's/^              //' << EOF >$dummy.c
++              fi
++              if [ "${HP_ARCH}" = "" ]; then
++                  eval $set_cc_for_build
++                  sed 's/^              //' << EOF >$dummy.c
+               #define _HPUX_SOURCE
+               #include <stdlib.h>
+@@ -586,11 +614,21 @@
+                   exit (0);
+               }
+ EOF
+-      (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+-      if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
+-      rm -f $dummy.c $dummy
+-      fi ;;
++                  (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
++                  test -z "$HP_ARCH" && HP_ARCH=hppa
++              fi ;;
+       esac
++      if [ ${HP_ARCH} = "hppa2.0w" ]
++      then
++          # avoid double evaluation of $set_cc_for_build
++          test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
++          if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
++          then
++              HP_ARCH="hppa2.0w"
++          else
++              HP_ARCH="hppa64"
++          fi
++      fi
+       echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+       exit 0 ;;
+     ia64:HP-UX:*:*)
+@@ -598,6 +636,7 @@
+       echo ia64-hp-hpux${HPUX_REV}
+       exit 0 ;;
+     3050*:HI-UX:*:*)
++      eval $set_cc_for_build
+       sed 's/^        //' << EOF >$dummy.c
+       #include <unistd.h>
+       int
+@@ -623,8 +662,7 @@
+         exit (0);
+       }
+ EOF
+-      $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
+-      rm -f $dummy.c $dummy
++      $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+       echo unknown-hitachi-hiuxwe2
+       exit 0 ;;
+     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+@@ -633,7 +671,7 @@
+     9000/8??:4.3bsd:*:*)
+       echo hppa1.0-hp-bsd
+       exit 0 ;;
+-    *9??*:MPE/iX:*:*)
++    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+       echo hppa1.0-hp-mpeix
+       exit 0 ;;
+     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+@@ -652,9 +690,6 @@
+     parisc*:Lites*:*:*)
+       echo hppa1.1-hp-lites
+       exit 0 ;;
+-    hppa*:OpenBSD:*:*)
+-      echo hppa-unknown-openbsd
+-      exit 0 ;;
+     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+       echo c1-convex-bsd
+         exit 0 ;;
+@@ -673,41 +708,33 @@
+     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+       echo c4-convex-bsd
+         exit 0 ;;
+-    CRAY*X-MP:*:*:*)
+-      echo xmp-cray-unicos
+-        exit 0 ;;
+     CRAY*Y-MP:*:*:*)
+-      echo ymp-cray-unicos${UNAME_RELEASE}
++      echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+     CRAY*[A-Z]90:*:*:*)
+       echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+       | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+-            -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
++            -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
++            -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+     CRAY*TS:*:*:*)
+       echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+-    CRAY*T3D:*:*:*)
+-      echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+-      exit 0 ;;
+     CRAY*T3E:*:*:*)
+       echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+     CRAY*SV1:*:*:*)
+       echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+       exit 0 ;;
+-    CRAY-2:*:*:*)
+-      echo cray2-cray-unicos
+-        exit 0 ;;
++    *:UNICOS/mp:*:*)
++      echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
++      exit 0 ;;
+     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+         exit 0 ;;
+-    hp300:OpenBSD:*:*)
+-      echo m68k-unknown-openbsd${UNAME_RELEASE}
+-      exit 0 ;;
+     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+       echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+@@ -717,11 +744,19 @@
+     *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+-    *:FreeBSD:*:*)
+-      echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+-      exit 0 ;;
+-    *:OpenBSD:*:*)
+-      echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
++    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
++      # Determine whether the default compiler uses glibc.
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++      #include <features.h>
++      #if __GLIBC__ >= 2
++      LIBC=gnu
++      #else
++      LIBC=
++      #endif
++EOF
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
++      echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
+       exit 0 ;;
+     i*:CYGWIN*:*)
+       echo ${UNAME_MACHINE}-pc-cygwin
+@@ -732,11 +767,17 @@
+     i*:PW*:*)
+       echo ${UNAME_MACHINE}-pc-pw32
+       exit 0 ;;
++    x86:Interix*:3*)
++      echo i586-pc-interix3
++      exit 0 ;;
++    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
++      echo i${UNAME_MACHINE}-pc-mks
++      exit 0 ;;
+     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+       # How do we know it's Interix rather than the generic POSIX subsystem?
+       # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+       # UNAME_MACHINE based on the output of uname instead of i386?
+-      echo i386-pc-interix
++      echo i586-pc-interix
+       exit 0 ;;
+     i*:UWIN*:*)
+       echo ${UNAME_MACHINE}-pc-uwin
+@@ -756,104 +797,71 @@
+     arm*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
++    cris:Linux:*:*)
++      echo cris-axis-linux-gnu
++      exit 0 ;;
+     ia64:Linux:*:*)
+-      echo ${UNAME_MACHINE}-unknown-linux
++      echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+     m68*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       exit 0 ;;
+     mips:Linux:*:*)
+-      cat >$dummy.c <<EOF
+-#ifdef __cplusplus
+-#include <stdio.h>  /* for printf() prototype */
+-int main (int argc, char *argv[]) {
+-#else
+-int main (argc, argv) int argc; char *argv[]; {
+-#endif
+-#ifdef __MIPSEB__
+-  printf ("%s-unknown-linux-gnu\n", argv[1]);
+-#endif
+-#ifdef __MIPSEL__
+-  printf ("%sel-unknown-linux-gnu\n", argv[1]);
+-#endif
+-  return 0;
+-}
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++      #undef CPU
++      #undef mips
++      #undef mipsel
++      #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++      CPU=mipsel
++      #else
++      #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++      CPU=mips
++      #else
++      CPU=
++      #endif
++      #endif
+ EOF
+-      $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
+-      rm -f $dummy.c $dummy
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
++      test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+       ;;
+-    ppc:Linux:*:*)
+-      # Determine Lib Version
+-      cat >$dummy.c <<EOF
+-#include <features.h>
+-#if defined(__GLIBC__)
+-extern char __libc_version[];
+-extern char __libc_release[];
+-#endif
+-main(argc, argv)
+-     int argc;
+-     char *argv[];
+-{
+-#if defined(__GLIBC__)
+-  printf("%s %s\n", __libc_version, __libc_release);
+-#else
+-  printf("unknown\n");
+-#endif
+-  return 0;
+-}
++    mips64:Linux:*:*)
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++      #undef CPU
++      #undef mips64
++      #undef mips64el
++      #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
++      CPU=mips64el
++      #else
++      #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
++      CPU=mips64
++      #else
++      CPU=
++      #endif
++      #endif
+ EOF
+-      LIBC=""
+-      $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
+-      if test "$?" = 0 ; then
+-              ./$dummy | grep 1\.99 > /dev/null
+-              if test "$?" = 0 ; then LIBC="libc1" ; fi
+-      fi
+-      rm -f $dummy.c $dummy
+-      echo powerpc-unknown-linux-gnu${LIBC}
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
++      test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
++      ;;
++    ppc:Linux:*:*)
++      echo powerpc-unknown-linux-gnu
++      exit 0 ;;
++    ppc64:Linux:*:*)
++      echo powerpc64-unknown-linux-gnu
+       exit 0 ;;
+     alpha:Linux:*:*)
+-      cat <<EOF >$dummy.s
+-        .data
+-        \$Lformat:
+-              .byte 37,100,45,37,120,10,0     # "%d-%x\n"
+-         .text
+-              .globl main
+-              .align 4
+-              .ent main
+-          main:
+-              .frame \$30,16,\$26,0
+-              ldgp \$29,0(\$27)
+-              .prologue 1
+-              .long 0x47e03d80 # implver \$0
+-              lda \$2,-1
+-              .long 0x47e20c21 # amask \$2,\$1
+-              lda \$16,\$Lformat
+-              mov \$0,\$17
+-              not \$1,\$18
+-              jsr \$26,printf
+-              ldgp \$29,0(\$26)
+-              mov 0,\$16
+-              jsr \$26,exit
+-              .end main
+-EOF
+-      LIBC=""
+-      $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+-      if test "$?" = 0 ; then
+-              case `./$dummy` in
+-              0-0)    UNAME_MACHINE="alpha" ;;
+-              1-0)    UNAME_MACHINE="alphaev5" ;;
+-              1-1)    UNAME_MACHINE="alphaev56" ;;
+-              1-101)  UNAME_MACHINE="alphapca56" ;;
+-              2-303)  UNAME_MACHINE="alphaev6" ;;
+-              2-307)  UNAME_MACHINE="alphaev67" ;;
+-              esac
+-              objdump --private-headers $dummy | \
+-                grep ld.so.1 > /dev/null
+-              if test "$?" = 0 ; then
+-                      LIBC="libc1"
+-              fi
+-      fi
+-      rm -f $dummy.s $dummy
++      case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
++        EV5)   UNAME_MACHINE=alphaev5 ;;
++        EV56)  UNAME_MACHINE=alphaev56 ;;
++        PCA56) UNAME_MACHINE=alphapca56 ;;
++        PCA57) UNAME_MACHINE=alphapca56 ;;
++        EV6)   UNAME_MACHINE=alphaev6 ;;
++        EV67)  UNAME_MACHINE=alphaev67 ;;
++        EV68*) UNAME_MACHINE=alphaev68 ;;
++        esac
++      objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
++      if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+       echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+       exit 0 ;;
+     parisc:Linux:*:* | hppa:Linux:*:*)
+@@ -883,71 +891,59 @@
+       # The BFD linker knows what the default object file format is, so
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+-      ld_supported_emulations=`cd /; ld --help 2>&1 \
+-                       | sed -ne '/supported emulations:/!d
++      # Set LC_ALL=C to ensure ld outputs messages in English.
++      ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
++                       | sed -ne '/supported targets:/!d
+                                   s/[         ][      ]*/ /g
+-                                  s/.*supported emulations: *//
++                                  s/.*supported targets: *//
+                                   s/ .*//
+                                   p'`
+-        case "$ld_supported_emulations" in
+-        i*86linux)
+-              echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+-              exit 0
+-              ;;
+-        elf_i*86)
++        case "$ld_supported_targets" in
++        elf32-i386)
+               TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+               ;;
+-        i*86coff)
++        a.out-i386-linux)
++              echo "${UNAME_MACHINE}-pc-linux-gnuaout"
++              exit 0 ;;
++        coff-i386)
+               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+-              exit 0
+-              ;;
+-      esac
+-      # Either a pre-BFD a.out linker (linux-gnuoldld)
+-      # or one that does not give us useful --help.
+-      # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
+-      # If ld does not provide *any* "supported emulations:"
+-      # that means it is gnuoldld.
+-      test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+-      case "${UNAME_MACHINE}" in
+-      i*86)
+-        VENDOR=pc;
+-        ;;
+-      *)
+-        VENDOR=unknown;
+-        ;;
++              exit 0 ;;
++        "")
++              # Either a pre-BFD a.out linker (linux-gnuoldld) or
++              # one that does not give us useful --help.
++              echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
++              exit 0 ;;
+       esac
+       # Determine whether the default compiler is a.out or elf
+-      cat >$dummy.c <<EOF
+-#include <features.h>
+-#ifdef __cplusplus
+-#include <stdio.h>  /* for printf() prototype */
+-      int main (int argc, char *argv[]) {
+-#else
+-      int main (argc, argv) int argc; char *argv[]; {
+-#endif
+-#ifdef __ELF__
+-# ifdef __GLIBC__
+-#  if __GLIBC__ >= 2
+-    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
+-#  else
+-    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+-#  endif
+-# else
+-   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+-# endif
+-#else
+-  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
+-#endif
+-  return 0;
+-}
++      eval $set_cc_for_build
++      sed 's/^        //' << EOF >$dummy.c
++      #include <features.h>
++      #ifdef __ELF__
++      # ifdef __GLIBC__
++      #  if __GLIBC__ >= 2
++      LIBC=gnu
++      #  else
++      LIBC=gnulibc1
++      #  endif
++      # else
++      LIBC=gnulibc1
++      # endif
++      #else
++      #ifdef __INTEL_COMPILER
++      LIBC=gnu
++      #else
++      LIBC=gnuaout
++      #endif
++      #endif
+ EOF
+-      $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
+-      rm -f $dummy.c $dummy
++      eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
++      test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+       test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+       ;;
+-# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
+-# are messed up and put the nodename in both sysname and nodename.
+     i*86:DYNIX/ptx:4*:*)
++      # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
++      # earlier versions are messed up and put the nodename in both
++      # sysname and nodename.
+       echo i386-sequent-sysv4
+       exit 0 ;;
+     i*86:UNIX_SV:4.2MP:2.*)
+@@ -958,6 +954,23 @@
+         # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit 0 ;;
++    i*86:OS/2:*:*)
++      # If we were able to find `uname', then EMX Unix compatibility
++      # is probably installed.
++      echo ${UNAME_MACHINE}-pc-os2-emx
++      exit 0 ;;
++    i*86:XTS-300:*:STOP)
++      echo ${UNAME_MACHINE}-unknown-stop
++      exit 0 ;;
++    i*86:atheos:*:*)
++      echo ${UNAME_MACHINE}-unknown-atheos
++      exit 0 ;;
++    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
++      echo i386-unknown-lynxos${UNAME_RELEASE}
++      exit 0 ;;
++    i*86:*DOS:*:*)
++      echo ${UNAME_MACHINE}-pc-msdosdjgpp
++      exit 0 ;;
+     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+       UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+       if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+@@ -966,36 +979,32 @@
+               echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+       fi
+       exit 0 ;;
+-    i*86:*:5:7*)
+-        # Fixed at (any) Pentium or better
+-        UNAME_MACHINE=i586
+-        if [ ${UNAME_SYSTEM} = "UnixWare" ] ; then
+-          echo ${UNAME_MACHINE}-sco-sysv${UNAME_RELEASE}uw${UNAME_VERSION}
+-      else
+-          echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
+-      fi
++    i*86:*:5:[78]*)
++      case `/bin/uname -X | grep "^Machine"` in
++          *486*)           UNAME_MACHINE=i486 ;;
++          *Pentium)        UNAME_MACHINE=i586 ;;
++          *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
++      esac
++      echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       exit 0 ;;
+     i*86:*:3.2:*)
+       if test -f /usr/options/cb.name; then
+               UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+               echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+       elif /bin/uname -X 2>/dev/null >/dev/null ; then
+-              UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
+-              (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
+-              (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
++              UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
++              (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
++              (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+                       && UNAME_MACHINE=i586
+-              (/bin/uname -X|egrep '^Machine.*Pent ?II' >/dev/null) \
++              (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+                       && UNAME_MACHINE=i686
+-              (/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
++              (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+                       && UNAME_MACHINE=i686
+               echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+       else
+               echo ${UNAME_MACHINE}-pc-sysv32
+       fi
+       exit 0 ;;
+-    i*86:*DOS:*:*)
+-      echo ${UNAME_MACHINE}-pc-msdosdjgpp
+-      exit 0 ;;
+     pc:*:*:*)
+       # Left here for compatibility:
+         # uname -m prints for DJGPP always 'pc', but it prints nothing about
+@@ -1019,9 +1028,15 @@
+       # "miniframe"
+       echo m68010-convergent-sysv
+       exit 0 ;;
++    mc68k:UNIX:SYSTEM5:3.51m)
++      echo m68k-convergent-sysv
++      exit 0 ;;
++    M680?0:D-NIX:5.3:*)
++      echo m68k-diab-dnix
++      exit 0 ;;
+     M68*:*:R3V[567]*:*)
+       test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
++    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+       OS_REL=''
+       test -r /etc/.relid \
+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+@@ -1038,9 +1053,6 @@
+     mc68030:UNIX_System_V:4.*:*)
+       echo m68k-atari-sysv4
+       exit 0 ;;
+-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+-      echo i386-unknown-lynxos${UNAME_RELEASE}
+-      exit 0 ;;
+     TSUNAMI:LynxOS:2.*:*)
+       echo sparc-unknown-lynxos${UNAME_RELEASE}
+       exit 0 ;;
+@@ -1067,8 +1079,8 @@
+               echo ns32k-sni-sysv
+       fi
+       exit 0 ;;
+-    PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+-                           # says <Richard.M.Bartel@ccMail.Census.GOV>
++    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
++                      # says <Richard.M.Bartel@ccMail.Census.GOV>
+         echo i586-unisys-sysv4
+         exit 0 ;;
+     *:UNIX_System_V:4*:FTX*)
+@@ -1080,6 +1092,10 @@
+       # From seanf@swdc.stratus.com.
+       echo i860-stratus-sysv4
+       exit 0 ;;
++    *:VOS:*:*)
++      # From Paul.Green@stratus.com.
++      echo hppa1.1-stratus-vos
++      exit 0 ;;
+     mc68*:A/UX:*:*)
+       echo m68k-apple-aux${UNAME_RELEASE}
+       exit 0 ;;
+@@ -1108,6 +1124,9 @@
+     SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
++    SX-6:SUPER-UX:*:*)
++      echo sx6-nec-superux${UNAME_RELEASE}
++      exit 0 ;;
+     Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+@@ -1115,18 +1134,24 @@
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+     *:Darwin:*:*)
+-      echo `uname -p`-apple-darwin${UNAME_RELEASE}
++      case `uname -p` in
++          *86) UNAME_PROCESSOR=i686 ;;
++          powerpc) UNAME_PROCESSOR=powerpc ;;
++      esac
++      echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+       exit 0 ;;
+     *:procnto*:*:* | *:QNX:[0123456789]*:*)
+-      if test "${UNAME_MACHINE}" = "x86pc"; then
++      UNAME_PROCESSOR=`uname -p`
++      if test "$UNAME_PROCESSOR" = "x86"; then
++              UNAME_PROCESSOR=i386
+               UNAME_MACHINE=pc
+       fi
+-      echo `uname -p`-${UNAME_MACHINE}-nto-qnx
++      echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+       exit 0 ;;
+     *:QNX:*:4*)
+       echo i386-pc-qnx
+       exit 0 ;;
+-    NSR-[KW]:NONSTOP_KERNEL:*:*)
++    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
+       echo nsr-tandem-nsk${UNAME_RELEASE}
+       exit 0 ;;
+     *:NonStop-UX:*:*)
+@@ -1149,11 +1174,6 @@
+       fi
+       echo ${UNAME_MACHINE}-unknown-plan9
+       exit 0 ;;
+-    i*86:OS/2:*:*)
+-      # If we were able to find `uname', then EMX Unix compatibility
+-      # is probably installed.
+-      echo ${UNAME_MACHINE}-pc-os2-emx
+-      exit 0 ;;
+     *:TOPS-10:*:*)
+       echo pdp10-unknown-tops10
+       exit 0 ;;
+@@ -1177,6 +1197,7 @@
+ #echo '(No uname command or uname output not recognized.)' 1>&2
+ #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
++eval $set_cc_for_build
+ cat >$dummy.c <<EOF
+ #ifdef _SEQUENT_
+ # include <sys/types.h>
+@@ -1291,8 +1312,7 @@
+ }
+ EOF
+-$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
+-rm -f $dummy.c $dummy
++$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+ # Apollos put the system type in the environment.
+--- linux-atm-2.4.1.orig/config.h.in
++++ linux-atm-2.4.1/config.h.in
+@@ -1,4 +1,4 @@
+-/* config.h.in.  Generated automatically from configure.in by autoheader.  */
++/* config.h.in.  Generated automatically from configure.in by autoheader 2.13.  */
+ #ifndef _ATM_CONFIG_H
+ #define _ATM_CONFIG_H
+--- linux-atm-2.4.1.orig/config.sub
++++ linux-atm-2.4.1/config.sub
+@@ -1,9 +1,9 @@
+ #! /bin/sh
+ # Configuration validation subroutine script.
+-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+-#   Free Software Foundation, Inc.
++#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
++#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+-timestamp='2001-04-20'
++timestamp='2003-05-09'
+ # This file is (in principle) common to ALL GNU software.
+ # The presence of a machine in this file suggests that SOME GNU software
+@@ -29,7 +29,8 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
+-# Please send patches to <config-patches@gnu.org>.
++# Please send patches to <config-patches@gnu.org>.  Submit a context
++# diff and a properly formatted ChangeLog entry.
+ #
+ # Configuration subroutine to validate and canonicalize a configuration type.
+ # Supply the specified configuration type as an argument.
+@@ -117,7 +118,7 @@
+ # Here we must recognize all the valid KERNEL-OS combinations.
+ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+ case $maybe_os in
+-  nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
++  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+     os=-$maybe_os
+     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+     ;;
+@@ -157,6 +158,14 @@
+               os=-vxworks
+               basic_machine=$1
+               ;;
++      -chorusos*)
++              os=-chorusos
++              basic_machine=$1
++              ;;
++      -chorusrdb)
++              os=-chorusrdb
++              basic_machine=$1
++              ;;
+       -hiux*)
+               os=-hiuxwe2
+               ;;
+@@ -215,26 +224,48 @@
+ case $basic_machine in
+       # Recognize the basic CPU types without company name.
+       # Some are omitted here because they have special meanings below.
+-      tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
+-              | arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
+-              | pyramid | mn10200 | mn10300 | tron | a29k \
+-              | 580 | i960 | h8300 \
+-              | x86 | ppcbe | mipsbe | mipsle | shbe | shle \
+-              | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
+-              | hppa64 \
+-              | alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
+-              | alphaev6[78] \
+-              | we32k | ns16k | clipper | i370 | sh | sh[34] \
+-              | powerpc | powerpcle \
+-              | 1750a | dsp16xx | pdp10 | pdp11 \
+-              | mips16 | mips64 | mipsel | mips64el \
+-              | mips64orion | mips64orionel | mipstx39 | mipstx39el \
+-              | mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
+-              | mips64vr5000 | miprs64vr5000el | mcore | s390 | s390x \
+-              | sparc | sparclet | sparclite | sparc64 | sparcv9 | sparcv9b \
+-              | v850 | c4x \
+-              | thumb | d10v | d30v | fr30 | avr | openrisc | tic80 \
+-              | pj | pjl | h8500)
++      1750a | 580 \
++      | a29k \
++      | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
++      | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
++      | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
++      | clipper \
++      | d10v | d30v | dlx | dsp16xx \
++      | fr30 | frv \
++      | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
++      | i370 | i860 | i960 | ia64 \
++      | ip2k \
++      | m32r | m68000 | m68k | m88k | mcore \
++      | mips | mipsbe | mipseb | mipsel | mipsle \
++      | mips16 \
++      | mips64 | mips64el \
++      | mips64vr | mips64vrel \
++      | mips64orion | mips64orionel \
++      | mips64vr4100 | mips64vr4100el \
++      | mips64vr4300 | mips64vr4300el \
++      | mips64vr5000 | mips64vr5000el \
++      | mipsisa32 | mipsisa32el \
++      | mipsisa32r2 | mipsisa32r2el \
++      | mipsisa64 | mipsisa64el \
++      | mipsisa64sb1 | mipsisa64sb1el \
++      | mipsisa64sr71k | mipsisa64sr71kel \
++      | mipstx39 | mipstx39el \
++      | mn10200 | mn10300 \
++      | msp430 \
++      | ns16k | ns32k \
++      | openrisc | or32 \
++      | pdp10 | pdp11 | pj | pjl \
++      | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
++      | pyramid \
++      | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
++      | sh64 | sh64le \
++      | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
++      | strongarm \
++      | tahoe | thumb | tic80 | tron \
++      | v850 | v850e \
++      | we32k \
++      | x86 | xscale | xstormy16 | xtensa \
++      | z8k)
+               basic_machine=$basic_machine-unknown
+               ;;
+       m6811 | m68hc11 | m6812 | m68hc12)
+@@ -242,7 +273,7 @@
+               basic_machine=$basic_machine-unknown
+               os=-none
+               ;;
+-      m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | z8k | v70 | w65)
++      m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+               ;;
+       # We use `pc' rather than `unknown'
+@@ -257,31 +288,60 @@
+               exit 1
+               ;;
+       # Recognize the basic CPU types with company name.
+-      # FIXME: clean up the formatting here.
+-      vax-* | tahoe-* | i*86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
+-            | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
+-            | arm-*  | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
+-            | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+-            | power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
+-            | xmp-* | ymp-* \
+-            | x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
+-            | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
+-            | hppa2.0n-* | hppa64-* \
+-            | alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
+-            | alphaev6[78]-* \
+-            | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
+-            | clipper-* | orion-* \
+-            | sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+-            | sparc64-* | sparcv9-* | sparcv9b-* | sparc86x-* \
+-            | mips16-* | mips64-* | mipsel-* \
+-            | mips64el-* | mips64orion-* | mips64orionel-* \
+-            | mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
+-            | mipstx39-* | mipstx39el-* | mcore-* \
+-            | f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
+-            | [cjt]90-* \
+-            | m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
+-            | thumb-* | v850-* | d30v-* | tic30-* | tic80-* | c30-* | fr30-* \
+-            | bs2000-* | tic54x-* | c54x-* | x86_64-* | pj-* | pjl-*)
++      580-* \
++      | a29k-* \
++      | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
++      | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
++      | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
++      | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
++      | avr-* \
++      | bs2000-* \
++      | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
++      | clipper-* | cydra-* \
++      | d10v-* | d30v-* | dlx-* \
++      | elxsi-* \
++      | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
++      | h8300-* | h8500-* \
++      | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
++      | i*86-* | i860-* | i960-* | ia64-* \
++      | ip2k-* \
++      | m32r-* \
++      | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
++      | m88110-* | m88k-* | mcore-* \
++      | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
++      | mips16-* \
++      | mips64-* | mips64el-* \
++      | mips64vr-* | mips64vrel-* \
++      | mips64orion-* | mips64orionel-* \
++      | mips64vr4100-* | mips64vr4100el-* \
++      | mips64vr4300-* | mips64vr4300el-* \
++      | mips64vr5000-* | mips64vr5000el-* \
++      | mipsisa32-* | mipsisa32el-* \
++      | mipsisa32r2-* | mipsisa32r2el-* \
++      | mipsisa64-* | mipsisa64el-* \
++      | mipsisa64sb1-* | mipsisa64sb1el-* \
++      | mipsisa64sr71k-* | mipsisa64sr71kel-* \
++      | mipstx39-* | mipstx39el-* \
++      | msp430-* \
++      | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
++      | orion-* \
++      | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
++      | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
++      | pyramid-* \
++      | romp-* | rs6000-* \
++      | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
++      | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
++      | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
++      | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
++      | tahoe-* | thumb-* \
++      | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
++      | tron-* \
++      | v850-* | v850e-* | vax-* \
++      | we32k-* \
++      | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
++      | xtensa-* \
++      | ymp-* \
++      | z8k-*)
+               ;;
+       # Recognize the various machine names and aliases which stand
+       # for a CPU type and a company and sometimes even an OS.
+@@ -313,6 +373,9 @@
+               basic_machine=a29k-none
+               os=-bsd
+               ;;
++      amd64)
++              basic_machine=x86_64-pc
++              ;;
+       amdahl)
+               basic_machine=580-amdahl
+               os=-sysv
+@@ -344,6 +407,10 @@
+               basic_machine=ns32k-sequent
+               os=-dynix
+               ;;
++      c90)
++              basic_machine=c90-cray
++              os=-unicos
++              ;;
+       convex-c1)
+               basic_machine=c1-convex
+               os=-bsd
+@@ -364,16 +431,8 @@
+               basic_machine=c38-convex
+               os=-bsd
+               ;;
+-      cray | ymp)
+-              basic_machine=ymp-cray
+-              os=-unicos
+-              ;;
+-      cray2)
+-              basic_machine=cray2-cray
+-              os=-unicos
+-              ;;
+-      [cjt]90)
+-              basic_machine=${basic_machine}-cray
++      cray | j90)
++              basic_machine=j90-cray
+               os=-unicos
+               ;;
+       crds | unos)
+@@ -388,6 +447,14 @@
+       decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+               basic_machine=mips-dec
+               ;;
++      decsystem10* | dec10*)
++              basic_machine=pdp10-dec
++              os=-tops10
++              ;;
++      decsystem20* | dec20*)
++              basic_machine=pdp10-dec
++              os=-tops20
++              ;;
+       delta | 3300 | motorola-3300 | motorola-delta \
+             | 3300-motorola | delta-motorola)
+               basic_machine=m68k-motorola
+@@ -568,14 +635,6 @@
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+-      mipsel*-linux*)
+-              basic_machine=mipsel-unknown
+-              os=-linux-gnu
+-              ;;
+-      mips*-linux*)
+-              basic_machine=mips-unknown
+-              os=-linux-gnu
+-              ;;
+       mips3*-*)
+               basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+               ;;
+@@ -590,6 +649,10 @@
+               basic_machine=m68k-rom68k
+               os=-coff
+               ;;
++      morphos)
++              basic_machine=powerpc-unknown
++              os=-morphos
++              ;;
+       msdos)
+               basic_machine=i386-pc
+               os=-msdos
+@@ -662,6 +725,10 @@
+       np1)
+               basic_machine=np1-gould
+               ;;
++      nv1)
++              basic_machine=nv1-cray
++              os=-unicosmp
++              ;;
+       nsr-tandem)
+               basic_machine=nsr-tandem
+               ;;
+@@ -669,6 +736,10 @@
+               basic_machine=hppa1.1-oki
+               os=-proelf
+               ;;
++      or32 | or32-*)
++              basic_machine=or32-unknown
++              os=-coff
++              ;;
+       OSE68000 | ose68000)
+               basic_machine=m68000-ericsson
+               os=-ose
+@@ -691,19 +762,19 @@
+       pbb)
+               basic_machine=m68k-tti
+               ;;
+-        pc532 | pc532-*)
++      pc532 | pc532-*)
+               basic_machine=ns32k-pc532
+               ;;
+-      pentium | p5 | k5 | k6 | nexgen)
++      pentium | p5 | k5 | k6 | nexgen | viac3)
+               basic_machine=i586-pc
+               ;;
+-      pentiumpro | p6 | 6x86 | athlon)
++      pentiumpro | p6 | 6x86 | athlon | athlon_*)
+               basic_machine=i686-pc
+               ;;
+       pentiumii | pentium2)
+               basic_machine=i686-pc
+               ;;
+-      pentium-* | p5-* | k5-* | k6-* | nexgen-*)
++      pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       pentiumpro-* | p6-* | 6x86-* | athlon-*)
+@@ -718,15 +789,25 @@
+       power)  basic_machine=power-ibm
+               ;;
+       ppc)    basic_machine=powerpc-unknown
+-              ;;
++              ;;
+       ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
+       ppcle | powerpclittle | ppc-le | powerpc-little)
+               basic_machine=powerpcle-unknown
+-              ;;
++              ;;
+       ppcle-* | powerpclittle-*)
+               basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+               ;;
++      ppc64)  basic_machine=powerpc64-unknown
++              ;;
++      ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
++      ppc64le | powerpc64little | ppc64-le | powerpc64-little)
++              basic_machine=powerpc64le-unknown
++              ;;
++      ppc64le-* | powerpc64little-*)
++              basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
++              ;;
+       ps2)
+               basic_machine=i386-ibm
+               ;;
+@@ -744,10 +825,22 @@
+       rtpc | rtpc-*)
+               basic_machine=romp-ibm
+               ;;
++      s390 | s390-*)
++              basic_machine=s390-ibm
++              ;;
++      s390x | s390x-*)
++              basic_machine=s390x-ibm
++              ;;
+       sa29200)
+               basic_machine=a29k-amd
+               os=-udi
+               ;;
++      sb1)
++              basic_machine=mipsisa64sb1-unknown
++              ;;
++      sb1el)
++              basic_machine=mipsisa64sb1el-unknown
++              ;;
+       sequent)
+               basic_machine=i386-sequent
+               ;;
+@@ -755,7 +848,7 @@
+               basic_machine=sh-hitachi
+               os=-hms
+               ;;
+-      sparclite-wrs)
++      sparclite-wrs | simso-wrs)
+               basic_machine=sparclite-wrs
+               os=-vxworks
+               ;;
+@@ -822,19 +915,39 @@
+               os=-dynix
+               ;;
+       t3e)
+-              basic_machine=t3e-cray
++              basic_machine=alphaev5-cray
+               os=-unicos
+               ;;
++      t90)
++              basic_machine=t90-cray
++              os=-unicos
++              ;;
++        tic4x | c4x*)
++              basic_machine=tic4x-unknown
++              os=-coff
++              ;;
+       tic54x | c54x*)
+               basic_machine=tic54x-unknown
+               os=-coff
+               ;;
++      tic55x | c55x*)
++              basic_machine=tic55x-unknown
++              os=-coff
++              ;;
++      tic6x | c6x*)
++              basic_machine=tic6x-unknown
++              os=-coff
++              ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
++      toad1)
++              basic_machine=pdp10-xkl
++              os=-tops20
++              ;;
+       tower | tower-32)
+               basic_machine=m68k-ncr
+               ;;
+@@ -859,8 +972,8 @@
+               os=-vms
+               ;;
+       vpp*|vx|vx-*)
+-               basic_machine=f301-fujitsu
+-               ;;
++              basic_machine=f301-fujitsu
++              ;;
+       vxworks960)
+               basic_machine=i960-wrs
+               os=-vxworks
+@@ -881,13 +994,13 @@
+               basic_machine=hppa1.1-winbond
+               os=-proelf
+               ;;
+-      xmp)
+-              basic_machine=xmp-cray
+-              os=-unicos
+-              ;;
+-        xps | xps100)
++      xps | xps100)
+               basic_machine=xps100-honeywell
+               ;;
++      ymp)
++              basic_machine=ymp-cray
++              os=-unicos
++              ;;
+       z8k-*-coff)
+               basic_machine=z8k-unknown
+               os=-sim
+@@ -908,13 +1021,6 @@
+       op60c)
+               basic_machine=hppa1.1-oki
+               ;;
+-      mips)
+-              if [ x$os = x-linux-gnu ]; then
+-                      basic_machine=mips-unknown
+-              else
+-                      basic_machine=mips-mips
+-              fi
+-              ;;
+       romp)
+               basic_machine=romp-ibm
+               ;;
+@@ -934,13 +1040,16 @@
+       we32k)
+               basic_machine=we32k-att
+               ;;
+-      sh3 | sh4)
++      sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+               basic_machine=sh-unknown
+               ;;
++      sh64)
++              basic_machine=sh64-unknown
++              ;;
+       sparc | sparcv9 | sparcv9b)
+               basic_machine=sparc-sun
+               ;;
+-        cydra)
++      cydra)
+               basic_machine=cydra-cydrome
+               ;;
+       orion)
+@@ -955,10 +1064,6 @@
+       pmac | pmac-mpw)
+               basic_machine=powerpc-apple
+               ;;
+-      c4x*)
+-              basic_machine=c4x-none
+-              os=-coff
+-              ;;
+       *-unknown)
+               # Make sure to match an already-canonicalized machine name.
+               ;;
+@@ -1018,11 +1123,15 @@
+             | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+             | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+             | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
++            | -chorusos* | -chorusrdb* \
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
+-            | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
++            | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+-            | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
++            | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
++            | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
++            | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
++            | -powermax* | -dnix*)
+       # Remember, each alternative MUST END IN *, to match a version number.
+               ;;
+       -qnx*)
+@@ -1034,8 +1143,10 @@
+                       ;;
+               esac
+               ;;
++      -nto-qnx*)
++              ;;
+       -nto*)
+-              os=-nto-qnx
++              os=`echo $os | sed -e 's|nto|nto-qnx|'`
+               ;;
+       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+             | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+@@ -1074,14 +1185,20 @@
+       -acis*)
+               os=-aos
+               ;;
++      -atheos*)
++              os=-atheos
++              ;;
+       -386bsd)
+               os=-bsd
+               ;;
+       -ctix* | -uts*)
+               os=-sysv
+               ;;
++      -nova*)
++              os=-rtmk-nova
++              ;;
+       -ns2 )
+-              os=-nextstep2
++              os=-nextstep2
+               ;;
+       -nsk*)
+               os=-nsk
+@@ -1120,8 +1237,14 @@
+       -xenix)
+               os=-xenix
+               ;;
+-        -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+-              os=-mint
++      -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
++              os=-mint
++              ;;
++      -aros*)
++              os=-aros
++              ;;
++      -kaos*)
++              os=-kaos
+               ;;
+       -none)
+               ;;
+@@ -1154,10 +1277,11 @@
+       arm*-semi)
+               os=-aout
+               ;;
++      # This must come before the *-dec entry.
+       pdp10-*)
+               os=-tops20
+               ;;
+-        pdp11-*)
++      pdp11-*)
+               os=-none
+               ;;
+       *-dec | vax-*)
+@@ -1184,6 +1308,9 @@
+       mips*-*)
+               os=-elf
+               ;;
++      or32-*)
++              os=-coff
++              ;;
+       *-tti)  # must be before sparc entry or we get the wrong os.
+               os=-sysv3
+               ;;
+@@ -1247,19 +1374,19 @@
+       *-next)
+               os=-nextstep3
+               ;;
+-        *-gould)
++      *-gould)
+               os=-sysv
+               ;;
+-        *-highlevel)
++      *-highlevel)
+               os=-bsd
+               ;;
+       *-encore)
+               os=-bsd
+               ;;
+-        *-sgi)
++      *-sgi)
+               os=-irix
+               ;;
+-        *-siemens)
++      *-siemens)
+               os=-sysv4
+               ;;
+       *-masscomp)
+@@ -1331,7 +1458,7 @@
+                       -ptx*)
+                               vendor=sequent
+                               ;;
+-                      -vxsim* | -vxworks*)
++                      -vxsim* | -vxworks* | -windiss*)
+                               vendor=wrs
+                               ;;
+                       -aux*)
+@@ -1346,6 +1473,9 @@
+                       -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+                               vendor=atari
+                               ;;
++                      -vos*)
++                              vendor=stratus
++                              ;;
+               esac
+               basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+               ;;
+--- linux-atm-2.4.1.orig/configure
++++ linux-atm-2.4.1/configure
+@@ -1,24 +1,244 @@
+ #! /bin/sh
+-
+ # Guess values for system-dependent variables and create Makefiles.
+-# Generated automatically using autoconf version 2.13 
+-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
++# Generated by GNU Autoconf 2.57.
+ #
++# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
++# Free Software Foundation, Inc.
+ # This configure script is free software; the Free Software Foundation
+ # gives unlimited permission to copy, distribute and modify it.
++## --------------------- ##
++## M4sh Initialization.  ##
++## --------------------- ##
++
++# Be Bourne compatible
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
++  emulate sh
++  NULLCMD=:
++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
++  # is contrary to our usage.  Disable this feature.
++  alias -g '${1+"$@"}'='"$@"'
++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
++  set -o posix
++fi
++
++# Support unset when possible.
++if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
++  as_unset=unset
++else
++  as_unset=false
++fi
++
++
++# Work around bugs in pre-3.0 UWIN ksh.
++$as_unset ENV MAIL MAILPATH
++PS1='$ '
++PS2='> '
++PS4='+ '
++
++# NLS nuisances.
++for as_var in \
++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++  LC_TELEPHONE LC_TIME
++do
++  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
++    eval $as_var=C; export $as_var
++  else
++    $as_unset $as_var
++  fi
++done
++
++# Required to use basename.
++if expr a : '\(a\)' >/dev/null 2>&1; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
++  as_basename=basename
++else
++  as_basename=false
++fi
++
++
++# Name of the executable.
++as_me=`$as_basename "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++       X"$0" : 'X\(//\)$' \| \
++       X"$0" : 'X\(/\)$' \| \
++       .     : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++        /^X\/\(\/\/\)$/{ s//\1/; q; }
++        /^X\/\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++  echo "#! /bin/sh" >conf$$.sh
++  echo  "exit 0"   >>conf$$.sh
++  chmod +x conf$$.sh
++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
++    PATH_SEPARATOR=';'
++  else
++    PATH_SEPARATOR=:
++  fi
++  rm -f conf$$.sh
++fi
++
++
++  as_lineno_1=$LINENO
++  as_lineno_2=$LINENO
++  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++  test "x$as_lineno_1" != "x$as_lineno_2" &&
++  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
++  # Find who we are.  Look in the path if we contain no path at all
++  # relative or not.
++  case $0 in
++    *[\\/]* ) as_myself=$0 ;;
++    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++       ;;
++  esac
++  # We did not find ourselves, most probably we were run as `sh COMMAND'
++  # in which case we are not to be found in the path.
++  if test "x$as_myself" = x; then
++    as_myself=$0
++  fi
++  if test ! -f "$as_myself"; then
++    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
++   { (exit 1); exit 1; }; }
++  fi
++  case $CONFIG_SHELL in
++  '')
++    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for as_base in sh bash ksh sh5; do
++       case $as_dir in
++       /*)
++         if ("$as_dir/$as_base" -c '
++  as_lineno_1=$LINENO
++  as_lineno_2=$LINENO
++  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++  test "x$as_lineno_1" != "x$as_lineno_2" &&
++  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
++           $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
++           $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
++           CONFIG_SHELL=$as_dir/$as_base
++           export CONFIG_SHELL
++           exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++         fi;;
++       esac
++       done
++done
++;;
++  esac
++
++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++  # uniformly replaced by the line number.  The first 'sed' inserts a
++  # line-number line before each line; the second 'sed' does the real
++  # work.  The second script uses 'N' to pair each line-number line
++  # with the numbered line, and appends trailing '-' during
++  # substitution so that $LINENO is not a special case at line end.
++  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
++  sed '=' <$as_myself |
++    sed '
++      N
++      s,$,-,
++      : loop
++      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++      t loop
++      s,-$,,
++      s,^['$as_cr_digits']*\n,,
++    ' >$as_me.lineno &&
++  chmod +x $as_me.lineno ||
++    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
++   { (exit 1); exit 1; }; }
++
++  # Don't try to exec as it changes $[0], causing all sort of problems
++  # (the dirname of $[0] is not the place where we might find the
++  # original and so on.  Autoconf is especially sensible to this).
++  . ./$as_me.lineno
++  # Exit status is that of the last command.
++  exit
++}
++
++
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++  *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T='    ' ;;
++  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
++
++if expr a : '\(a\)' >/dev/null 2>&1; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++rm -f conf$$ conf$$.exe conf$$.file
++echo >conf$$.file
++if ln -s conf$$.file conf$$ 2>/dev/null; then
++  # We could just check for DJGPP; but this test a) works b) is more generic
++  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
++  if test -f conf$$.exe; then
++    # Don't use ln at all; we don't have any links
++    as_ln_s='cp -p'
++  else
++    as_ln_s='ln -s'
++  fi
++elif ln conf$$.file conf$$ 2>/dev/null; then
++  as_ln_s=ln
++else
++  as_ln_s='cp -p'
++fi
++rm -f conf$$ conf$$.exe conf$$.file
++
++if mkdir -p . 2>/dev/null; then
++  as_mkdir_p=:
++else
++  as_mkdir_p=false
++fi
++
++as_executable_p="test -f"
++
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
++
++
++# IFS
++# We need space, tab and new line, in precisely that order.
++as_nl='
++'
++IFS="         $as_nl"
++
++# CDPATH.
++$as_unset CDPATH
+-# Defaults:
+-ac_help=
+-ac_default_prefix=/usr/local
+-# Any additions from configure.in:
+-ac_help="$ac_help
+-  --enable-shared[=PKGS]  build shared libraries [default=yes]"
+-ac_help="$ac_help
+-  --enable-static[=PKGS]  build static libraries [default=yes]"
+-ac_help="$ac_help
+-  --enable-fast-install[=PKGS]  optimize for fast installation [default=yes]"
+-ac_help="$ac_help
+-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]"
+ # Find the correct PATH separator.  Usually this is `:', but
+ # DJGPP uses `;' like DOS.
+@@ -28,6 +248,7 @@
+     *-DOS) lt_cv_sys_path_separator=';' ;;
+     *)     lt_cv_sys_path_separator=':' ;;
+   esac
++  PATH_SEPARATOR=$lt_cv_sys_path_separator
+ fi
+@@ -94,7 +315,7 @@
+   #
+   # So, first we look for a working echo in the user's PATH.
+-  IFS="${IFS=         }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
++  IFS="${IFS=         }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+   for dir in $PATH /usr/ucb; do
+     if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+        test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+@@ -177,34 +398,86 @@
+ fi
+-ac_help="$ac_help
+-  --disable-libtool-lock  avoid locking (might break parallel builds)"
+-ac_help="$ac_help
+-  --with-pic              try to use only PIC/non-PIC objects [default=use both]"
+-ac_help="$ac_help
+-  --with-uni=VERSION      UNI version to use (3.0,3.1,4.0) [default=dynamic]"
+-ac_help="$ac_help
+-  --enable-allow_uni30    Allow UNI 3.0 backwards-compatible extensions (if using UNI 3.1)"
+-ac_help="$ac_help
+-  --enable-q2963_1        Enable peak cell rate modification as specified in Q.2963.1 (if using UNI 4.0)"
+-ac_help="$ac_help
+-  --enable-cisco          Enable work around for point-to-multipoint signaling bug in Cisco LS100 or LS7010 switches"
+-ac_help="$ac_help
+-  --enable-thomflex       Some versions of the Thomson Thomflex 5000 won't do any signaling before they get a RESTART.  Enable sending of a RESTART whenever SAAL comes up."
+-ac_help="$ac_help
+-  --enable-mpoa_1_1       Enable proposed MPOA 1.1 features"
+-ac_help="$ac_help
+-  --enable-mpr            Enable memory debugging (if MPR is installed)"
++
++# Name of the host.
++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
++# so uname gets run too.
++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
++
++exec 6>&1
++
++#
++# Initializations.
++#
++ac_default_prefix=/usr/local
++ac_config_libobj_dir=.
++cross_compiling=no
++subdirs=
++MFLAGS=
++MAKEFLAGS=
++SHELL=${CONFIG_SHELL-/bin/sh}
++
++# Maximum number of lines to put in a shell here document.
++# This variable seems obsolete.  It should probably be removed, and
++# only ac_max_sed_lines should be used.
++: ${ac_max_here_lines=38}
++
++# Identity of this package.
++PACKAGE_NAME=
++PACKAGE_TARNAME=
++PACKAGE_VERSION=
++PACKAGE_STRING=
++PACKAGE_BUGREPORT=
++
++ac_unique_file="src/include/atm.h"
++# Factoring default headers for most tests.
++ac_includes_default="\
++#include <stdio.h>
++#if HAVE_SYS_TYPES_H
++# include <sys/types.h>
++#endif
++#if HAVE_SYS_STAT_H
++# include <sys/stat.h>
++#endif
++#if STDC_HEADERS
++# include <stdlib.h>
++# include <stddef.h>
++#else
++# if HAVE_STDLIB_H
++#  include <stdlib.h>
++# endif
++#endif
++#if HAVE_STRING_H
++# if !STDC_HEADERS && HAVE_MEMORY_H
++#  include <memory.h>
++# endif
++# include <string.h>
++#endif
++#if HAVE_STRINGS_H
++# include <strings.h>
++#endif
++#if HAVE_INTTYPES_H
++# include <inttypes.h>
++#else
++# if HAVE_STDINT_H
++#  include <stdint.h>
++# endif
++#endif
++#if HAVE_UNISTD_H
++# include <unistd.h>
++#endif"
++
++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO SET_MAKE LIBVER_CURRENT LIBVER_REVISION LIBVER_AGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT LEX LEXLIB LEX_OUTPUT_ROOT YACC LN_S ECHO RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP CPP EGREP LIBTOOL LIBTOOL_DEPS PERL LIBOBJS LTLIBOBJS'
++ac_subst_files=''
+ # Initialize some variables set by options.
++ac_init_help=
++ac_init_version=false
+ # The variables have the same names as the options, with
+ # dashes changed to underlines.
+-build=NONE
+-cache_file=./config.cache
++cache_file=/dev/null
+ exec_prefix=NONE
+-host=NONE
+ no_create=
+-nonopt=NONE
+ no_recursion=
+ prefix=NONE
+ program_prefix=NONE
+@@ -213,10 +486,15 @@
+ silent=
+ site=
+ srcdir=
+-target=NONE
+ verbose=
+ x_includes=NONE
+ x_libraries=NONE
++
++# Installation directory options.
++# These are left unexpanded so users can "make install exec_prefix=/foo"
++# and all the variables that are supposed to be based on exec_prefix
++# by default will actually change.
++# Use braces instead of parens because sh, perl, etc. also accept them.
+ bindir='${exec_prefix}/bin'
+ sbindir='${exec_prefix}/sbin'
+ libexecdir='${exec_prefix}/libexec'
+@@ -230,17 +508,9 @@
+ infodir='${prefix}/info'
+ mandir='${prefix}/man'
+-# Initialize some other variables.
+-subdirs=
+-MFLAGS= MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-# Maximum number of lines to put in a shell here document.
+-ac_max_here_lines=12
+-
+ ac_prev=
+ for ac_option
+ do
+-
+   # If the previous option needs an argument, assign it.
+   if test -n "$ac_prev"; then
+     eval "$ac_prev=\$ac_option"
+@@ -248,59 +518,59 @@
+     continue
+   fi
+-  case "$ac_option" in
+-  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+-  *) ac_optarg= ;;
+-  esac
++  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+   # Accept the important Cygnus configure options, so we can diagnose typos.
+-  case "$ac_option" in
++  case $ac_option in
+   -bindir | --bindir | --bindi | --bind | --bin | --bi)
+     ac_prev=bindir ;;
+   -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+-    bindir="$ac_optarg" ;;
++    bindir=$ac_optarg ;;
+   -build | --build | --buil | --bui | --bu)
+-    ac_prev=build ;;
++    ac_prev=build_alias ;;
+   -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+-    build="$ac_optarg" ;;
++    build_alias=$ac_optarg ;;
+   -cache-file | --cache-file | --cache-fil | --cache-fi \
+   | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+     ac_prev=cache_file ;;
+   -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+   | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+-    cache_file="$ac_optarg" ;;
++    cache_file=$ac_optarg ;;
++
++  --config-cache | -C)
++    cache_file=config.cache ;;
+   -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+     ac_prev=datadir ;;
+   -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+   | --da=*)
+-    datadir="$ac_optarg" ;;
++    datadir=$ac_optarg ;;
+   -disable-* | --disable-*)
+-    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
++    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+     # Reject names that are not valid shell variable names.
+-    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+-    fi
+-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+-    eval "enable_${ac_feature}=no" ;;
++    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
++   { (exit 1); exit 1; }; }
++    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
++    eval "enable_$ac_feature=no" ;;
+   -enable-* | --enable-*)
+-    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
++    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+     # Reject names that are not valid shell variable names.
+-    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+-      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+-    fi
+-    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+-    case "$ac_option" in
+-      *=*) ;;
++    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
++   { (exit 1); exit 1; }; }
++    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
++    case $ac_option in
++      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+       *) ac_optarg=yes ;;
+     esac
+-    eval "enable_${ac_feature}='$ac_optarg'" ;;
++    eval "enable_$ac_feature='$ac_optarg'" ;;
+   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+@@ -309,95 +579,47 @@
+   -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+   | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+   | --exec=* | --exe=* | --ex=*)
+-    exec_prefix="$ac_optarg" ;;
++    exec_prefix=$ac_optarg ;;
+   -gas | --gas | --ga | --g)
+     # Obsolete; use --with-gas.
+     with_gas=yes ;;
+-  -help | --help | --hel | --he)
+-    # 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 << EOF
+-Usage: configure [options] [host]
+-Options: [defaults in brackets after descriptions]
+-Configuration:
+-  --cache-file=FILE       cache test results in FILE
+-  --help                  print this message
+-  --no-create             do not create output files
+-  --quiet, --silent       do not print \`checking...' messages
+-  --version               print the version of autoconf that created configure
+-Directory and file names:
+-  --prefix=PREFIX         install architecture-independent files in PREFIX
+-                          [$ac_default_prefix]
+-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+-                          [same as prefix]
+-  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+-  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+-  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+-  --datadir=DIR           read-only architecture-independent data in DIR
+-                          [PREFIX/share]
+-  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+-  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+-                          [PREFIX/com]
+-  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+-  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+-  --includedir=DIR        C header files in DIR [PREFIX/include]
+-  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+-  --infodir=DIR           info documentation in DIR [PREFIX/info]
+-  --mandir=DIR            man documentation in DIR [PREFIX/man]
+-  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+-  --program-prefix=PREFIX prepend PREFIX to installed program names
+-  --program-suffix=SUFFIX append SUFFIX to installed program names
+-  --program-transform-name=PROGRAM
+-                          run sed PROGRAM on installed program names
+-EOF
+-    cat << EOF
+-Host type:
+-  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+-  --host=HOST             configure for HOST [guessed]
+-  --target=TARGET         configure for TARGET [TARGET=HOST]
+-Features and packages:
+-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+-  --x-includes=DIR        X include files are in DIR
+-  --x-libraries=DIR       X library files are in DIR
+-EOF
+-    if test -n "$ac_help"; then
+-      echo "--enable and --with options recognized:$ac_help"
+-    fi
+-    exit 0 ;;
++  -help | --help | --hel | --he | -h)
++    ac_init_help=long ;;
++  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
++    ac_init_help=recursive ;;
++  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
++    ac_init_help=short ;;
+   -host | --host | --hos | --ho)
+-    ac_prev=host ;;
++    ac_prev=host_alias ;;
+   -host=* | --host=* | --hos=* | --ho=*)
+-    host="$ac_optarg" ;;
++    host_alias=$ac_optarg ;;
+   -includedir | --includedir | --includedi | --included | --include \
+   | --includ | --inclu | --incl | --inc)
+     ac_prev=includedir ;;
+   -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+   | --includ=* | --inclu=* | --incl=* | --inc=*)
+-    includedir="$ac_optarg" ;;
++    includedir=$ac_optarg ;;
+   -infodir | --infodir | --infodi | --infod | --info | --inf)
+     ac_prev=infodir ;;
+   -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+-    infodir="$ac_optarg" ;;
++    infodir=$ac_optarg ;;
+   -libdir | --libdir | --libdi | --libd)
+     ac_prev=libdir ;;
+   -libdir=* | --libdir=* | --libdi=* | --libd=*)
+-    libdir="$ac_optarg" ;;
++    libdir=$ac_optarg ;;
+   -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+   | --libexe | --libex | --libe)
+     ac_prev=libexecdir ;;
+   -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+   | --libexe=* | --libex=* | --libe=*)
+-    libexecdir="$ac_optarg" ;;
++    libexecdir=$ac_optarg ;;
+   -localstatedir | --localstatedir | --localstatedi | --localstated \
+   | --localstate | --localstat | --localsta | --localst \
+@@ -406,19 +628,19 @@
+   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+   | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+   | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+-    localstatedir="$ac_optarg" ;;
++    localstatedir=$ac_optarg ;;
+   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+     ac_prev=mandir ;;
+   -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+-    mandir="$ac_optarg" ;;
++    mandir=$ac_optarg ;;
+   -nfp | --nfp | --nf)
+     # Obsolete; use --without-fp.
+     with_fp=no ;;
+   -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+-  | --no-cr | --no-c)
++  | --no-cr | --no-c | -n)
+     no_create=yes ;;
+   -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+@@ -432,26 +654,26 @@
+   -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+   | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+   | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+-    oldincludedir="$ac_optarg" ;;
++    oldincludedir=$ac_optarg ;;
+   -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+     ac_prev=prefix ;;
+   -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+-    prefix="$ac_optarg" ;;
++    prefix=$ac_optarg ;;
+   -program-prefix | --program-prefix | --program-prefi | --program-pref \
+   | --program-pre | --program-pr | --program-p)
+     ac_prev=program_prefix ;;
+   -program-prefix=* | --program-prefix=* | --program-prefi=* \
+   | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+-    program_prefix="$ac_optarg" ;;
++    program_prefix=$ac_optarg ;;
+   -program-suffix | --program-suffix | --program-suffi | --program-suff \
+   | --program-suf | --program-su | --program-s)
+     ac_prev=program_suffix ;;
+   -program-suffix=* | --program-suffix=* | --program-suffi=* \
+   | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+-    program_suffix="$ac_optarg" ;;
++    program_suffix=$ac_optarg ;;
+   -program-transform-name | --program-transform-name \
+   | --program-transform-nam | --program-transform-na \
+@@ -468,7 +690,7 @@
+   | --program-transfo=* | --program-transf=* \
+   | --program-trans=* | --program-tran=* \
+   | --progr-tra=* | --program-tr=* | --program-t=*)
+-    program_transform_name="$ac_optarg" ;;
++    program_transform_name=$ac_optarg ;;
+   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+   | -silent | --silent | --silen | --sile | --sil)
+@@ -478,7 +700,7 @@
+     ac_prev=sbindir ;;
+   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+   | --sbi=* | --sb=*)
+-    sbindir="$ac_optarg" ;;
++    sbindir=$ac_optarg ;;
+   -sharedstatedir | --sharedstatedir | --sharedstatedi \
+   | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+@@ -489,58 +711,57 @@
+   | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+   | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+   | --sha=* | --sh=*)
+-    sharedstatedir="$ac_optarg" ;;
++    sharedstatedir=$ac_optarg ;;
+   -site | --site | --sit)
+     ac_prev=site ;;
+   -site=* | --site=* | --sit=*)
+-    site="$ac_optarg" ;;
++    site=$ac_optarg ;;
+   -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+     ac_prev=srcdir ;;
+   -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+-    srcdir="$ac_optarg" ;;
++    srcdir=$ac_optarg ;;
+   -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+   | --syscon | --sysco | --sysc | --sys | --sy)
+     ac_prev=sysconfdir ;;
+   -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+   | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+-    sysconfdir="$ac_optarg" ;;
++    sysconfdir=$ac_optarg ;;
+   -target | --target | --targe | --targ | --tar | --ta | --t)
+-    ac_prev=target ;;
++    ac_prev=target_alias ;;
+   -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+-    target="$ac_optarg" ;;
++    target_alias=$ac_optarg ;;
+   -v | -verbose | --verbose | --verbos | --verbo | --verb)
+     verbose=yes ;;
+-  -version | --version | --versio | --versi | --vers)
+-    echo "configure generated by autoconf version 2.13"
+-    exit 0 ;;
++  -version | --version | --versio | --versi | --vers | -V)
++    ac_init_version=: ;;
+   -with-* | --with-*)
+-    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
++    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+     # Reject names that are not valid shell variable names.
+-    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+-    fi
++    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++      { echo "$as_me: error: invalid package name: $ac_package" >&2
++   { (exit 1); exit 1; }; }
+     ac_package=`echo $ac_package| sed 's/-/_/g'`
+-    case "$ac_option" in
+-      *=*) ;;
++    case $ac_option in
++      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+       *) ac_optarg=yes ;;
+     esac
+-    eval "with_${ac_package}='$ac_optarg'" ;;
++    eval "with_$ac_package='$ac_optarg'" ;;
+   -without-* | --without-*)
+-    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
++    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+     # Reject names that are not valid shell variable names.
+-    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+-      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+-    fi
+-    ac_package=`echo $ac_package| sed 's/-/_/g'`
+-    eval "with_${ac_package}=no" ;;
++    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
++      { echo "$as_me: error: invalid package name: $ac_package" >&2
++   { (exit 1); exit 1; }; }
++    ac_package=`echo $ac_package | sed 's/-/_/g'`
++    eval "with_$ac_package=no" ;;
+   --x)
+     # Obsolete; use --with-x.
+@@ -551,99 +772,110 @@
+     ac_prev=x_includes ;;
+   -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+   | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+-    x_includes="$ac_optarg" ;;
++    x_includes=$ac_optarg ;;
+   -x-libraries | --x-libraries | --x-librarie | --x-librari \
+   | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+     ac_prev=x_libraries ;;
+   -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+-    x_libraries="$ac_optarg" ;;
++    x_libraries=$ac_optarg ;;
+-  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
++  -*) { echo "$as_me: error: unrecognized option: $ac_option
++Try \`$0 --help' for more information." >&2
++   { (exit 1); exit 1; }; }
+     ;;
++  *=*)
++    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
++    # Reject names that are not valid shell variable names.
++    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
++      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
++   { (exit 1); exit 1; }; }
++    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
++    eval "$ac_envvar='$ac_optarg'"
++    export $ac_envvar ;;
++
+   *)
+-    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+-      echo "configure: warning: $ac_option: invalid host type" 1>&2
+-    fi
+-    if test "x$nonopt" != xNONE; then
+-      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+-    fi
+-    nonopt="$ac_option"
++    # FIXME: should be removed in autoconf 3.0.
++    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
++    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
++      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
++    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+     ;;
+   esac
+ done
+ if test -n "$ac_prev"; then
+-  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+-fi
+-
+-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+-
+-# File descriptor usage:
+-# 0 standard input
+-# 1 file creation
+-# 2 errors and warnings
+-# 3 some systems may open it to /dev/tty
+-# 4 used on the Kubota Titan
+-# 6 checking for... messages and results
+-# 5 compiler messages saved in config.log
+-if test "$silent" = yes; then
+-  exec 6>/dev/null
+-else
+-  exec 6>&1
++  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
++  { echo "$as_me: error: missing argument to $ac_option" >&2
++   { (exit 1); exit 1; }; }
+ fi
+-exec 5>./config.log
+-echo "\
+-This file contains any messages produced by compilers while
+-running configure, to aid debugging if configure makes a mistake.
+-" 1>&5
++# Be sure to have absolute paths.
++for ac_var in exec_prefix prefix
++do
++  eval ac_val=$`echo $ac_var`
++  case $ac_val in
++    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
++    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
++   { (exit 1); exit 1; }; };;
++  esac
++done
+-# Strip out --no-create and --no-recursion so they do not pile up.
+-# Also quote any args containing shell metacharacters.
+-ac_configure_args=
+-for ac_arg
++# Be sure to have absolute paths.
++for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
++              localstatedir libdir includedir oldincludedir infodir mandir
+ do
+-  case "$ac_arg" in
+-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+-  | --no-cr | --no-c) ;;
+-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+-  *" "*|*"    "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+-  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+-  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
++  eval ac_val=$`echo $ac_var`
++  case $ac_val in
++    [\\/$]* | ?:[\\/]* ) ;;
++    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
++   { (exit 1); exit 1; }; };;
+   esac
+ done
+-# NLS nuisances.
+-# Only set these to C if already set.  These must not be set unconditionally
+-# because not all systems understand e.g. LANG=C (notably SCO).
+-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+-# Non-C LC_CTYPE values break the ctype check.
+-if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+-if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
++# There might be people who depend on the old broken behavior: `$host'
++# used to hold the argument of --host etc.
++# FIXME: To remove some day.
++build=$build_alias
++host=$host_alias
++target=$target_alias
++
++# FIXME: To remove some day.
++if test "x$host_alias" != x; then
++  if test "x$build_alias" = x; then
++    cross_compiling=maybe
++    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
++    If a cross compiler is detected then cross compile mode will be used." >&2
++  elif test "x$build_alias" != "x$host_alias"; then
++    cross_compiling=yes
++  fi
++fi
+-# confdefs.h avoids OS command line length limits that DEFS can exceed.
+-rm -rf conftest* confdefs.h
+-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+-echo > confdefs.h
++ac_tool_prefix=
++test -n "$host_alias" && ac_tool_prefix=$host_alias-
++
++test "$silent" = yes && exec 6>/dev/null
+-# A filename unique to this package, relative to the directory that
+-# configure is in, which we can look for to find out if srcdir is correct.
+-ac_unique_file=src/include/atm.h
+ # Find the source files, if location was not specified.
+ if test -z "$srcdir"; then
+   ac_srcdir_defaulted=yes
+   # Try the directory containing this script, then its parent.
+-  ac_prog=$0
+-  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+-  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
++  ac_confdir=`(dirname "$0") 2>/dev/null ||
++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++         X"$0" : 'X\(//\)[^/]' \| \
++         X"$0" : 'X\(//\)$' \| \
++         X"$0" : 'X\(/\)' \| \
++         .     : '\(.\)' 2>/dev/null ||
++echo X"$0" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++        /^X\(\/\/\)$/{ s//\1/; q; }
++        /^X\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
+   srcdir=$ac_confdir
+   if test ! -r $srcdir/$ac_unique_file; then
+     srcdir=..
+@@ -653,13 +885,453 @@
+ fi
+ if test ! -r $srcdir/$ac_unique_file; then
+   if test "$ac_srcdir_defaulted" = yes; then
+-    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
++    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
++   { (exit 1); exit 1; }; }
+   else
+-    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
++    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
++   { (exit 1); exit 1; }; }
+   fi
+ fi
+-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
++(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
++  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
++   { (exit 1); exit 1; }; }
++srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
++ac_env_build_alias_set=${build_alias+set}
++ac_env_build_alias_value=$build_alias
++ac_cv_env_build_alias_set=${build_alias+set}
++ac_cv_env_build_alias_value=$build_alias
++ac_env_host_alias_set=${host_alias+set}
++ac_env_host_alias_value=$host_alias
++ac_cv_env_host_alias_set=${host_alias+set}
++ac_cv_env_host_alias_value=$host_alias
++ac_env_target_alias_set=${target_alias+set}
++ac_env_target_alias_value=$target_alias
++ac_cv_env_target_alias_set=${target_alias+set}
++ac_cv_env_target_alias_value=$target_alias
++ac_env_CC_set=${CC+set}
++ac_env_CC_value=$CC
++ac_cv_env_CC_set=${CC+set}
++ac_cv_env_CC_value=$CC
++ac_env_CFLAGS_set=${CFLAGS+set}
++ac_env_CFLAGS_value=$CFLAGS
++ac_cv_env_CFLAGS_set=${CFLAGS+set}
++ac_cv_env_CFLAGS_value=$CFLAGS
++ac_env_LDFLAGS_set=${LDFLAGS+set}
++ac_env_LDFLAGS_value=$LDFLAGS
++ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
++ac_cv_env_LDFLAGS_value=$LDFLAGS
++ac_env_CPPFLAGS_set=${CPPFLAGS+set}
++ac_env_CPPFLAGS_value=$CPPFLAGS
++ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
++ac_cv_env_CPPFLAGS_value=$CPPFLAGS
++ac_env_CPP_set=${CPP+set}
++ac_env_CPP_value=$CPP
++ac_cv_env_CPP_set=${CPP+set}
++ac_cv_env_CPP_value=$CPP
++
++#
++# Report the --help message.
++#
++if test "$ac_init_help" = "long"; then
++  # Omit some internal or obsolete options to make the list less imposing.
++  # This message is too long to be a string in the A/UX 3.1 sh.
++  cat <<_ACEOF
++\`configure' configures this package to adapt to many kinds of systems.
++
++Usage: $0 [OPTION]... [VAR=VALUE]...
++
++To assign environment variables (e.g., CC, CFLAGS...), specify them as
++VAR=VALUE.  See below for descriptions of some of the useful variables.
++
++Defaults for the options are specified in brackets.
++
++Configuration:
++  -h, --help              display this help and exit
++      --help=short        display options specific to this package
++      --help=recursive    display the short help of all the included packages
++  -V, --version           display version information and exit
++  -q, --quiet, --silent   do not print \`checking...' messages
++      --cache-file=FILE   cache test results in FILE [disabled]
++  -C, --config-cache      alias for \`--cache-file=config.cache'
++  -n, --no-create         do not create output files
++      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
++
++_ACEOF
++
++  cat <<_ACEOF
++Installation directories:
++  --prefix=PREFIX         install architecture-independent files in PREFIX
++                          [$ac_default_prefix]
++  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
++                          [PREFIX]
++
++By default, \`make install' will install all the files in
++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
++an installation prefix other than \`$ac_default_prefix' using \`--prefix',
++for instance \`--prefix=\$HOME'.
++
++For better control, use the options below.
++
++Fine tuning of the installation directories:
++  --bindir=DIR           user executables [EPREFIX/bin]
++  --sbindir=DIR          system admin executables [EPREFIX/sbin]
++  --libexecdir=DIR       program executables [EPREFIX/libexec]
++  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
++  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
++  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
++  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
++  --libdir=DIR           object code libraries [EPREFIX/lib]
++  --includedir=DIR       C header files [PREFIX/include]
++  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
++  --infodir=DIR          info documentation [PREFIX/info]
++  --mandir=DIR           man documentation [PREFIX/man]
++_ACEOF
++
++  cat <<\_ACEOF
++
++Program names:
++  --program-prefix=PREFIX            prepend PREFIX to installed program names
++  --program-suffix=SUFFIX            append SUFFIX to installed program names
++  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
++
++System types:
++  --build=BUILD     configure for building on BUILD [guessed]
++  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
++  --target=TARGET   configure for building compilers for TARGET [HOST]
++_ACEOF
++fi
++
++if test -n "$ac_init_help"; then
++
++  cat <<\_ACEOF
++
++Optional Features:
++  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
++  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
++  --enable-shared=PKGS  build shared libraries default=yes
++  --enable-static=PKGS  build static libraries default=yes
++  --enable-fast-install=PKGS  optimize for fast installation default=yes
++  --disable-libtool-lock  avoid locking (might break parallel builds)
++  --enable-allow_uni30    Allow UNI 3.0 backwards-compatible extensions (if using UNI 3.1)
++  --enable-q2963_1        Enable peak cell rate modification as specified in Q.2963.1 (if using UNI 4.0)
++  --enable-cisco          Enable work around for point-to-multipoint signaling bug in Cisco LS100 or LS7010 switches
++  --enable-thomflex       Some versions of the Thomson Thomflex 5000 won't do any signaling before they get a RESTART.  Enable sending of a RESTART whenever SAAL comes up.
++  --enable-mpoa_1_1       Enable proposed MPOA 1.1 features
++  --enable-mpr            Enable memory debugging (if MPR is installed)
++
++Optional Packages:
++  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
++  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
++  --with-gnu-ld           assume the C compiler uses GNU ld default=no
++  --with-pic              try to use only PIC/non-PIC objects default=use both
++  --with-uni=VERSION      UNI version to use (3.0,3.1,4.0) default=dynamic
++
++Some influential environment variables:
++  CC          C compiler command
++  CFLAGS      C compiler flags
++  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
++              nonstandard directory <lib dir>
++  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
++              headers in a nonstandard directory <include dir>
++  CPP         C preprocessor
++
++Use these variables to override the choices made by `configure' or to help
++it to find libraries and programs with nonstandard names/locations.
++
++_ACEOF
++fi
++
++if test "$ac_init_help" = "recursive"; then
++  # If there are subdirs, report their specific --help.
++  ac_popdir=`pwd`
++  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
++    test -d $ac_dir || continue
++    ac_builddir=.
++
++if test "$ac_dir" != .; then
++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
++  # A "../" for each directory in $ac_dir_suffix.
++  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
++else
++  ac_dir_suffix= ac_top_builddir=
++fi
++
++case $srcdir in
++  .)  # No --srcdir option.  We are building in place.
++    ac_srcdir=.
++    if test -z "$ac_top_builddir"; then
++       ac_top_srcdir=.
++    else
++       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
++    fi ;;
++  [\\/]* | ?:[\\/]* )  # Absolute path.
++    ac_srcdir=$srcdir$ac_dir_suffix;
++    ac_top_srcdir=$srcdir ;;
++  *) # Relative path.
++    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
++    ac_top_srcdir=$ac_top_builddir$srcdir ;;
++esac
++# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
++# absolute.
++ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
++ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
++ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
++ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
++
++    cd $ac_dir
++    # Check for guested configure; otherwise get Cygnus style configure.
++    if test -f $ac_srcdir/configure.gnu; then
++      echo
++      $SHELL $ac_srcdir/configure.gnu  --help=recursive
++    elif test -f $ac_srcdir/configure; then
++      echo
++      $SHELL $ac_srcdir/configure  --help=recursive
++    elif test -f $ac_srcdir/configure.ac ||
++           test -f $ac_srcdir/configure.in; then
++      echo
++      $ac_configure --help
++    else
++      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
++    fi
++    cd $ac_popdir
++  done
++fi
++
++test -n "$ac_init_help" && exit 0
++if $ac_init_version; then
++  cat <<\_ACEOF
++
++Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
++Free Software Foundation, Inc.
++This configure script is free software; the Free Software Foundation
++gives unlimited permission to copy, distribute and modify it.
++_ACEOF
++  exit 0
++fi
++exec 5>config.log
++cat >&5 <<_ACEOF
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++
++It was created by $as_me, which was
++generated by GNU Autoconf 2.57.  Invocation command line was
++
++  $ $0 $@
++
++_ACEOF
++{
++cat <<_ASUNAME
++## --------- ##
++## Platform. ##
++## --------- ##
++
++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
++uname -m = `(uname -m) 2>/dev/null || echo unknown`
++uname -r = `(uname -r) 2>/dev/null || echo unknown`
++uname -s = `(uname -s) 2>/dev/null || echo unknown`
++uname -v = `(uname -v) 2>/dev/null || echo unknown`
++
++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
++/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
++
++/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
++/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
++hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
++/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
++/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
++/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
++
++_ASUNAME
++
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  echo "PATH: $as_dir"
++done
++
++} >&5
++
++cat >&5 <<_ACEOF
++
++
++## ----------- ##
++## Core tests. ##
++## ----------- ##
++
++_ACEOF
++
++
++# Keep a trace of the command line.
++# Strip out --no-create and --no-recursion so they do not pile up.
++# Strip out --silent because we don't want to record it for future runs.
++# Also quote any args containing shell meta-characters.
++# Make two passes to allow for proper duplicate-argument suppression.
++ac_configure_args=
++ac_configure_args0=
++ac_configure_args1=
++ac_sep=
++ac_must_keep_next=false
++for ac_pass in 1 2
++do
++  for ac_arg
++  do
++    case $ac_arg in
++    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
++    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++    | -silent | --silent | --silen | --sile | --sil)
++      continue ;;
++    *" "*|*"  "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
++      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
++    esac
++    case $ac_pass in
++    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
++    2)
++      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
++      if test $ac_must_keep_next = true; then
++        ac_must_keep_next=false # Got value, back to normal.
++      else
++        case $ac_arg in
++          *=* | --config-cache | -C | -disable-* | --disable-* \
++          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
++          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
++          | -with-* | --with-* | -without-* | --without-* | --x)
++            case "$ac_configure_args0 " in
++              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
++            esac
++            ;;
++          -* ) ac_must_keep_next=true ;;
++        esac
++      fi
++      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
++      # Get rid of the leading space.
++      ac_sep=" "
++      ;;
++    esac
++  done
++done
++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
++
++# When interrupted or exit'd, cleanup temporary files, and complete
++# config.log.  We remove comments because anyway the quotes in there
++# would cause problems or look ugly.
++# WARNING: Be sure not to use single quotes in there, as some shells,
++# such as our DU 5.0 friend, will then `close' the trap.
++trap 'exit_status=$?
++  # Save into config.log some information that might help in debugging.
++  {
++    echo
++
++    cat <<\_ASBOX
++## ---------------- ##
++## Cache variables. ##
++## ---------------- ##
++_ASBOX
++    echo
++    # The following way of writing the cache mishandles newlines in values,
++{
++  (set) 2>&1 |
++    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
++    *ac_space=\ *)
++      sed -n \
++        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
++        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
++      ;;
++    *)
++      sed -n \
++        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
++      ;;
++    esac;
++}
++    echo
++
++    cat <<\_ASBOX
++## ----------------- ##
++## Output variables. ##
++## ----------------- ##
++_ASBOX
++    echo
++    for ac_var in $ac_subst_vars
++    do
++      eval ac_val=$`echo $ac_var`
++      echo "$ac_var='"'"'$ac_val'"'"'"
++    done | sort
++    echo
++
++    if test -n "$ac_subst_files"; then
++      cat <<\_ASBOX
++## ------------- ##
++## Output files. ##
++## ------------- ##
++_ASBOX
++      echo
++      for ac_var in $ac_subst_files
++      do
++      eval ac_val=$`echo $ac_var`
++        echo "$ac_var='"'"'$ac_val'"'"'"
++      done | sort
++      echo
++    fi
++
++    if test -s confdefs.h; then
++      cat <<\_ASBOX
++## ----------- ##
++## confdefs.h. ##
++## ----------- ##
++_ASBOX
++      echo
++      sed "/^$/d" confdefs.h | sort
++      echo
++    fi
++    test "$ac_signal" != 0 &&
++      echo "$as_me: caught signal $ac_signal"
++    echo "$as_me: exit $exit_status"
++  } >&5
++  rm -f core *.core &&
++  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
++    exit $exit_status
++     ' 0
++for ac_signal in 1 2 13 15; do
++  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
++done
++ac_signal=0
++
++# confdefs.h avoids OS command line length limits that DEFS can exceed.
++rm -rf conftest* confdefs.h
++# AIX cpp loses on an empty file, so make sure it contains at least a newline.
++echo >confdefs.h
++
++# Predefined preprocessor variables.
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_NAME "$PACKAGE_NAME"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_VERSION "$PACKAGE_VERSION"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_STRING "$PACKAGE_STRING"
++_ACEOF
++
++
++cat >>confdefs.h <<_ACEOF
++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
++_ACEOF
++
++
++# Let the site file select an alternate cache file if it wants to.
+ # Prefer explicitly selected file to automatically selected ones.
+ if test -z "$CONFIG_SITE"; then
+   if test "x$prefix" != xNONE; then
+@@ -670,45 +1342,111 @@
+ fi
+ for ac_site_file in $CONFIG_SITE; do
+   if test -r "$ac_site_file"; then
+-    echo "loading site script $ac_site_file"
++    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
++echo "$as_me: loading site script $ac_site_file" >&6;}
++    sed 's/^/| /' "$ac_site_file" >&5
+     . "$ac_site_file"
+   fi
+ done
+ if test -r "$cache_file"; then
+-  echo "loading cache $cache_file"
+-  . $cache_file
++  # Some versions of bash will fail to source /dev/null (special
++  # files actually), so we avoid doing that.
++  if test -f "$cache_file"; then
++    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
++echo "$as_me: loading cache $cache_file" >&6;}
++    case $cache_file in
++      [\\/]* | ?:[\\/]* ) . $cache_file;;
++      *)                      . ./$cache_file;;
++    esac
++  fi
+ else
+-  echo "creating cache $cache_file"
+-  > $cache_file
++  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
++echo "$as_me: creating cache $cache_file" >&6;}
++  >$cache_file
++fi
++
++# Check that the precious variables saved in the cache have kept the same
++# value.
++ac_cache_corrupted=false
++for ac_var in `(set) 2>&1 |
++               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
++  eval ac_old_set=\$ac_cv_env_${ac_var}_set
++  eval ac_new_set=\$ac_env_${ac_var}_set
++  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
++  eval ac_new_val="\$ac_env_${ac_var}_value"
++  case $ac_old_set,$ac_new_set in
++    set,)
++      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
++echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
++      ac_cache_corrupted=: ;;
++    ,set)
++      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
++echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
++      ac_cache_corrupted=: ;;
++    ,);;
++    *)
++      if test "x$ac_old_val" != "x$ac_new_val"; then
++        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
++echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
++        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
++echo "$as_me:   former value:  $ac_old_val" >&2;}
++        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
++echo "$as_me:   current value: $ac_new_val" >&2;}
++        ac_cache_corrupted=:
++      fi;;
++  esac
++  # Pass precious variables to config.status.
++  if test "$ac_new_set" = set; then
++    case $ac_new_val in
++    *" "*|*"  "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
++      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
++    *) ac_arg=$ac_var=$ac_new_val ;;
++    esac
++    case " $ac_configure_args " in
++      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
++      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
++    esac
++  fi
++done
++if $ac_cache_corrupted; then
++  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
++echo "$as_me: error: changes in the environment can compromise the build" >&2;}
++  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
++echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+ ac_ext=c
+-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-cross_compiling=$ac_cv_prog_cc_cross
+-
+-ac_exeext=
+-ac_objext=o
+-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+-  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+-  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+-    ac_n= ac_c='
+-' ac_t='      '
+-  else
+-    ac_n=-n ac_c= ac_t=
+-  fi
+-else
+-  ac_n= ac_c='\c' ac_t=
+-fi
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++          ac_config_headers="$ac_config_headers config.h"
++
++          ac_config_commands="$ac_config_commands default-1"
++
++
+ ac_aux_dir=
+ for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+   if test -f $ac_dir/install-sh; then
+@@ -719,105 +1457,105 @@
+     ac_aux_dir=$ac_dir
+     ac_install_sh="$ac_aux_dir/install.sh -c"
+     break
++  elif test -f $ac_dir/shtool; then
++    ac_aux_dir=$ac_dir
++    ac_install_sh="$ac_aux_dir/shtool install -c"
++    break
+   fi
+ done
+ if test -z "$ac_aux_dir"; then
+-  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+-fi
+-ac_config_guess=$ac_aux_dir/config.guess
+-ac_config_sub=$ac_aux_dir/config.sub
+-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+-
+-
+-# Do some error checking and defaulting for the host and target type.
+-# The inputs are:
+-#    configure --host=HOST --target=TARGET --build=BUILD NONOPT
+-#
+-# The rules are:
+-# 1. You are not allowed to specify --host, --target, and nonopt at the
+-#    same time.
+-# 2. Host defaults to nonopt.
+-# 3. If nonopt is not specified, then host defaults to the current host,
+-#    as determined by config.guess.
+-# 4. Target and build default to nonopt.
+-# 5. If nonopt is not specified, then target and build default to host.
+-
+-# The aliases save the names the user supplied, while $host etc.
+-# will get canonicalized.
+-case $host---$target---$nonopt in
+-NONE---*---* | *---NONE---* | *---*---NONE) ;;
+-*) { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } ;;
+-esac
+-
++  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
++echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
++   { (exit 1); exit 1; }; }
++fi
++ac_config_guess="$SHELL $ac_aux_dir/config.guess"
++ac_config_sub="$SHELL $ac_aux_dir/config.sub"
++ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+ # Make sure we can run config.sub.
+-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+-fi
++$ac_config_sub sun4 >/dev/null 2>&1 ||
++  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
++echo "$as_me: error: cannot run $ac_config_sub" >&2;}
++   { (exit 1); exit 1; }; }
++
++echo "$as_me:$LINENO: checking build system type" >&5
++echo $ECHO_N "checking build system type... $ECHO_C" >&6
++if test "${ac_cv_build+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_build_alias=$build_alias
++test -z "$ac_cv_build_alias" &&
++  ac_cv_build_alias=`$ac_config_guess`
++test -z "$ac_cv_build_alias" &&
++  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
++echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
++   { (exit 1); exit 1; }; }
++ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
++  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
++echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
++   { (exit 1); exit 1; }; }
++
++fi
++echo "$as_me:$LINENO: result: $ac_cv_build" >&5
++echo "${ECHO_T}$ac_cv_build" >&6
++build=$ac_cv_build
++build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++
++
++echo "$as_me:$LINENO: checking host system type" >&5
++echo $ECHO_N "checking host system type... $ECHO_C" >&6
++if test "${ac_cv_host+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_host_alias=$host_alias
++test -z "$ac_cv_host_alias" &&
++  ac_cv_host_alias=$ac_cv_build_alias
++ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
++  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
++echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
++   { (exit 1); exit 1; }; }
++
++fi
++echo "$as_me:$LINENO: result: $ac_cv_host" >&5
++echo "${ECHO_T}$ac_cv_host" >&6
++host=$ac_cv_host
++host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
++
++
++echo "$as_me:$LINENO: checking target system type" >&5
++echo $ECHO_N "checking target system type... $ECHO_C" >&6
++if test "${ac_cv_target+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_target_alias=$target_alias
++test "x$ac_cv_target_alias" = "x" &&
++  ac_cv_target_alias=$ac_cv_host_alias
++ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
++  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
++echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
++   { (exit 1); exit 1; }; }
++
++fi
++echo "$as_me:$LINENO: result: $ac_cv_target" >&5
++echo "${ECHO_T}$ac_cv_target" >&6
++target=$ac_cv_target
++target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
++target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
++target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-echo $ac_n "checking host system type""... $ac_c" 1>&6
+-echo "configure:760: checking host system type" >&5
+-host_alias=$host
+-case "$host_alias" in
+-NONE)
+-  case $nonopt in
+-  NONE)
+-    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
+-    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+-    fi ;;
+-  *) host_alias=$nonopt ;;
+-  esac ;;
+-esac
+-
+-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
+-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-echo "$ac_t""$host" 1>&6
+-
+-echo $ac_n "checking target system type""... $ac_c" 1>&6
+-echo "configure:781: checking target system type" >&5
+-
+-target_alias=$target
+-case "$target_alias" in
+-NONE)
+-  case $nonopt in
+-  NONE) target_alias=$host_alias ;;
+-  *) target_alias=$nonopt ;;
+-  esac ;;
+-esac
+-
+-target=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $target_alias`
+-target_cpu=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-target_vendor=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-echo "$ac_t""$target" 1>&6
+-
+-echo $ac_n "checking build system type""... $ac_c" 1>&6
+-echo "configure:799: checking build system type" >&5
+-
+-build_alias=$build
+-case "$build_alias" in
+-NONE)
+-  case $nonopt in
+-  NONE) build_alias=$host_alias ;;
+-  *) build_alias=$nonopt ;;
+-  esac ;;
+-esac
+-
+-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-echo "$ac_t""$build" 1>&6
+-
+-test "$host_alias" != "$target_alias" &&
++# The aliases save the names the user supplied, while $host etc.
++# will get canonicalized.
++test -n "$target_alias" &&
+   test "$program_prefix$program_suffix$program_transform_name" = \
+     NONENONEs,x,x, &&
+   program_prefix=${target_alias}-
+-
++am__api_version="1.4"
+ # Find a good install program.  We prefer a C program (faster),
+ # so one script is as good as another.  But avoid the broken or
+ # incompatible versions:
+@@ -825,65 +1563,78 @@
+ # SunOS /usr/etc/install
+ # IRIX /sbin/install
+ # AIX /bin/install
++# AmigaOS /C/install, which installs bootblocks on floppy discs
+ # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+-echo "configure:834: checking for a BSD compatible install" >&5
++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++if test "${ac_cv_path_install+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-    IFS="${IFS=       }"; ac_save_IFS="$IFS"; IFS=":"
+-  for ac_dir in $PATH; do
+-    # Account for people who put trailing slashes in PATH elements.
+-    case "$ac_dir/" in
+-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+-    *)
+-      # OSF1 and SCO ODT 3.0 have their own names for install.
+-      # Don't use installbsd from OSF since it installs stuff as root
+-      # by default.
+-      for ac_prog in ginstall scoinst install; do
+-        if test -f $ac_dir/$ac_prog; then
+-        if test $ac_prog = install &&
+-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+-          # AIX install.  It has an incompatible calling convention.
+-          :
+-        else
+-          ac_cv_path_install="$ac_dir/$ac_prog -c"
+-          break 2
+-        fi
+-      fi
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  # Account for people who put trailing slashes in PATH elements.
++case $as_dir/ in
++  ./ | .// | /cC/* | \
++  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
++  /usr/ucb/* ) ;;
++  *)
++    # OSF1 and SCO ODT 3.0 have their own names for install.
++    # Don't use installbsd from OSF since it installs stuff as root
++    # by default.
++    for ac_prog in ginstall scoinst install; do
++      for ac_exec_ext in '' $ac_executable_extensions; do
++        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
++          if test $ac_prog = install &&
++            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++            # AIX install.  It has an incompatible calling convention.
++            :
++          elif test $ac_prog = install &&
++            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++            # program-specific install script used by HP pwplus--don't use.
++            :
++          else
++            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
++            break 3
++          fi
++        fi
+       done
+-      ;;
+-    esac
+-  done
+-  IFS="$ac_save_IFS"
++    done
++    ;;
++esac
++done
++
+ fi
+   if test "${ac_cv_path_install+set}" = set; then
+-    INSTALL="$ac_cv_path_install"
++    INSTALL=$ac_cv_path_install
+   else
+     # As a last resort, use the slow shell script.  We don't cache a
+     # path for INSTALL within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the path is relative.
+-    INSTALL="$ac_install_sh"
++    INSTALL=$ac_install_sh
+   fi
+ fi
+-echo "$ac_t""$INSTALL" 1>&6
++echo "$as_me:$LINENO: result: $INSTALL" >&5
++echo "${ECHO_T}$INSTALL" >&6
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+ # It thinks the first close brace ends the variable substitution.
+ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+-echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
+-echo "configure:887: checking whether build environment is sane" >&5
++echo "$as_me:$LINENO: checking whether build environment is sane" >&5
++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+ # Just in case
+ sleep 1
+ echo timestamp > conftestfile
+@@ -905,8 +1656,11 @@
+       # if, for instance, CONFIG_SHELL is bash and it inherits a
+       # broken ls alias from the environment.  This has actually
+       # happened.  Such a system could not be considered "sane".
+-      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
+-alias in your environment" 1>&2; exit 1; }
++      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
++alias in your environment" >&5
++echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
++alias in your environment" >&2;}
++   { (exit 1); exit 1; }; }
+    fi
+    test "$2" = conftestfile
+@@ -915,54 +1669,54 @@
+    # Ok.
+    :
+ else
+-   { echo "configure: error: newly created file is older than distributed files!
+-Check your system clock" 1>&2; exit 1; }
++   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
++Check your system clock" >&5
++echo "$as_me: error: newly created file is older than distributed files!
++Check your system clock" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+ rm -f conftest*
+-echo "$ac_t""yes" 1>&6
+-if test "$program_transform_name" = s,x,x,; then
+-  program_transform_name=
+-else
+-  # Double any \ or $.  echo might interpret backslashes.
+-  cat <<\EOF_SED > conftestsed
+-s,\\,\\\\,g; s,\$,$$,g
+-EOF_SED
+-  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+-  rm -f conftestsed
+-fi
++echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+ test "$program_prefix" != NONE &&
+-  program_transform_name="s,^,${program_prefix},; $program_transform_name"
++  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+ # Use a double $ so make ignores it.
+ test "$program_suffix" != NONE &&
+-  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+-
+-# sed with no file args requires a program.
+-test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+-
+-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+-echo "configure:944: checking whether ${MAKE-make} sets \${MAKE}" >&5
+-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
++# Double any \ or $.  echo might interpret backslashes.
++# By default was `s,x,x', remove it if useless.
++cat <<\_ACEOF >conftest.sed
++s/[\\$]/&&/g;s/;s,x,x,$//
++_ACEOF
++program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
++rm conftest.sed
++
++echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
++if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  cat > conftestmake <<\EOF
++  cat >conftest.make <<\_ACEOF
+ all:
+-      @echo 'ac_maketemp="${MAKE}"'
+-EOF
++      @echo 'ac_maketemp="$(MAKE)"'
++_ACEOF
+ # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
++eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+ if test -n "$ac_maketemp"; then
+   eval ac_cv_prog_make_${ac_make}_set=yes
+ else
+   eval ac_cv_prog_make_${ac_make}_set=no
+ fi
+-rm -f conftestmake
++rm -f conftest.make
+ fi
+ if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
++  echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+   SET_MAKE=
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+   SET_MAKE="MAKE=${MAKE-make}"
+ fi
+@@ -972,82 +1726,96 @@
+ VERSION=2.4.1
+ if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+-  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
++  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
++echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+-cat >> confdefs.h <<EOF
++
++cat >>confdefs.h <<_ACEOF
+ #define PACKAGE "$PACKAGE"
+-EOF
++_ACEOF
+-cat >> confdefs.h <<EOF
++
++cat >>confdefs.h <<_ACEOF
+ #define VERSION "$VERSION"
+-EOF
++_ACEOF
+ missing_dir=`cd $ac_aux_dir && pwd`
+-echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
+-echo "configure:990: checking for working aclocal" >&5
++echo "$as_me:$LINENO: checking for working aclocal-${am__api_version}" >&5
++echo $ECHO_N "checking for working aclocal-${am__api_version}... $ECHO_C" >&6
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf.  Sigh.
+-if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+-   ACLOCAL=aclocal
+-   echo "$ac_t""found" 1>&6
+-else
+-   ACLOCAL="$missing_dir/missing aclocal"
+-   echo "$ac_t""missing" 1>&6
++if (aclocal-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
++   ACLOCAL=aclocal-${am__api_version}
++   echo "$as_me:$LINENO: result: found" >&5
++echo "${ECHO_T}found" >&6
++else
++   ACLOCAL="$missing_dir/missing aclocal-${am__api_version}"
++   echo "$as_me:$LINENO: result: missing" >&5
++echo "${ECHO_T}missing" >&6
+ fi
+-echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
+-echo "configure:1003: checking for working autoconf" >&5
++echo "$as_me:$LINENO: checking for working autoconf" >&5
++echo $ECHO_N "checking for working autoconf... $ECHO_C" >&6
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf.  Sigh.
+ if (autoconf --version) < /dev/null > /dev/null 2>&1; then
+    AUTOCONF=autoconf
+-   echo "$ac_t""found" 1>&6
++   echo "$as_me:$LINENO: result: found" >&5
++echo "${ECHO_T}found" >&6
+ else
+    AUTOCONF="$missing_dir/missing autoconf"
+-   echo "$ac_t""missing" 1>&6
++   echo "$as_me:$LINENO: result: missing" >&5
++echo "${ECHO_T}missing" >&6
+ fi
+-echo $ac_n "checking for working automake""... $ac_c" 1>&6
+-echo "configure:1016: checking for working automake" >&5
++echo "$as_me:$LINENO: checking for working automake-${am__api_version}" >&5
++echo $ECHO_N "checking for working automake-${am__api_version}... $ECHO_C" >&6
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf.  Sigh.
+-if (automake --version) < /dev/null > /dev/null 2>&1; then
+-   AUTOMAKE=automake
+-   echo "$ac_t""found" 1>&6
+-else
+-   AUTOMAKE="$missing_dir/missing automake"
+-   echo "$ac_t""missing" 1>&6
++if (automake-${am__api_version} --version) < /dev/null > /dev/null 2>&1; then
++   AUTOMAKE=automake-${am__api_version}
++   echo "$as_me:$LINENO: result: found" >&5
++echo "${ECHO_T}found" >&6
++else
++   AUTOMAKE="$missing_dir/missing automake-${am__api_version}"
++   echo "$as_me:$LINENO: result: missing" >&5
++echo "${ECHO_T}missing" >&6
+ fi
+-echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
+-echo "configure:1029: checking for working autoheader" >&5
++echo "$as_me:$LINENO: checking for working autoheader" >&5
++echo $ECHO_N "checking for working autoheader... $ECHO_C" >&6
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf.  Sigh.
+ if (autoheader --version) < /dev/null > /dev/null 2>&1; then
+    AUTOHEADER=autoheader
+-   echo "$ac_t""found" 1>&6
++   echo "$as_me:$LINENO: result: found" >&5
++echo "${ECHO_T}found" >&6
+ else
+    AUTOHEADER="$missing_dir/missing autoheader"
+-   echo "$ac_t""missing" 1>&6
++   echo "$as_me:$LINENO: result: missing" >&5
++echo "${ECHO_T}missing" >&6
+ fi
+-echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
+-echo "configure:1042: checking for working makeinfo" >&5
++echo "$as_me:$LINENO: checking for working makeinfo" >&5
++echo $ECHO_N "checking for working makeinfo... $ECHO_C" >&6
+ # Run test in a subshell; some versions of sh will print an error if
+ # an executable is not found, even if stderr is redirected.
+ # Redirect stdin to placate older versions of autoconf.  Sigh.
+ if (makeinfo --version) < /dev/null > /dev/null 2>&1; then
+    MAKEINFO=makeinfo
+-   echo "$ac_t""found" 1>&6
++   echo "$as_me:$LINENO: result: found" >&5
++echo "${ECHO_T}found" >&6
+ else
+    MAKEINFO="$missing_dir/missing makeinfo"
+-   echo "$ac_t""missing" 1>&6
++   echo "$as_me:$LINENO: result: missing" >&5
++echo "${ECHO_T}missing" >&6
+ fi
+@@ -1059,214 +1827,643 @@
+-# Extract the first word of "gcc", so it can be a program name with args.
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
++set dummy ${ac_tool_prefix}gcc; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$CC"; then
++  ac_cv_prog_CC="$CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_CC="${ac_tool_prefix}gcc"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
++fi
++fi
++CC=$ac_cv_prog_CC
++if test -n "$CC"; then
++  echo "$as_me:$LINENO: result: $CC" >&5
++echo "${ECHO_T}$CC" >&6
++else
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_CC"; then
++  ac_ct_CC=$CC
++  # Extract the first word of "gcc", so it can be a program name with args.
+ set dummy gcc; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1066: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$ac_ct_CC"; then
++  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_CC="gcc"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
++fi
++fi
++ac_ct_CC=$ac_cv_prog_ac_ct_CC
++if test -n "$ac_ct_CC"; then
++  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
++echo "${ECHO_T}$ac_ct_CC" >&6
++else
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++  CC=$ac_ct_CC
++else
++  CC="$ac_cv_prog_CC"
++fi
++
++if test -z "$CC"; then
++  if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
++set dummy ${ac_tool_prefix}cc; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_CC="gcc"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_CC="${ac_tool_prefix}cc"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-CC="$ac_cv_prog_CC"
++CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$ac_t""$CC" 1>&6
++  echo "$as_me:$LINENO: result: $CC" >&5
++echo "${ECHO_T}$CC" >&6
++else
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++fi
++if test -z "$ac_cv_prog_CC"; then
++  ac_ct_CC=$CC
++  # Extract the first word of "cc", so it can be a program name with args.
++set dummy cc; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$ac_ct_CC"; then
++  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_CC="cc"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
++fi
++fi
++ac_ct_CC=$ac_cv_prog_ac_ct_CC
++if test -n "$ac_ct_CC"; then
++  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
++echo "${ECHO_T}$ac_ct_CC" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
++  CC=$ac_ct_CC
++else
++  CC="$ac_cv_prog_CC"
++fi
++
++fi
+ if test -z "$CC"; then
+   # Extract the first word of "cc", so it can be a program name with args.
+ set dummy cc; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1096: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+   ac_prog_rejected=no
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+-        ac_prog_rejected=yes
+-      continue
+-      fi
+-      ac_cv_prog_CC="cc"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
++       ac_prog_rejected=yes
++       continue
++     fi
++    ac_cv_prog_CC="cc"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ if test $ac_prog_rejected = yes; then
+   # We found a bogon in the path, so make sure we never use it.
+   set dummy $ac_cv_prog_CC
+   shift
+-  if test $# -gt 0; then
++  if test $# != 0; then
+     # We chose a different compiler from the bogus one.
+     # However, it has the same basename, so the bogon will be chosen
+     # first if we set CC to just the basename; use the full file name.
+     shift
+-    set dummy "$ac_dir/$ac_word" "$@"
+-    shift
+-    ac_cv_prog_CC="$@"
++    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+   fi
+ fi
+ fi
+ fi
+-CC="$ac_cv_prog_CC"
++CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$ac_t""$CC" 1>&6
++  echo "$as_me:$LINENO: result: $CC" >&5
++echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-  if test -z "$CC"; then
+-    case "`uname -s`" in
+-    *win32* | *WIN32*)
+-      # Extract the first word of "cl", so it can be a program name with args.
+-set dummy cl; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1147: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++fi
++if test -z "$CC"; then
++  if test -n "$ac_tool_prefix"; then
++  for ac_prog in cl
++  do
++    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
++set dummy $ac_tool_prefix$ac_prog; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$CC"; then
+   ac_cv_prog_CC="$CC" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_CC="cl"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-CC="$ac_cv_prog_CC"
++CC=$ac_cv_prog_CC
+ if test -n "$CC"; then
+-  echo "$ac_t""$CC" 1>&6
++  echo "$as_me:$LINENO: result: $CC" >&5
++echo "${ECHO_T}$CC" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+- ;;
+-    esac
++
++    test -n "$CC" && break
++  done
++fi
++if test -z "$CC"; then
++  ac_ct_CC=$CC
++  for ac_prog in cl
++do
++  # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if test -n "$ac_ct_CC"; then
++  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
++else
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_CC="$ac_prog"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
+   fi
+-  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
++done
++done
++
+ fi
++fi
++ac_ct_CC=$ac_cv_prog_ac_ct_CC
++if test -n "$ac_ct_CC"; then
++  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
++echo "${ECHO_T}$ac_ct_CC" >&6
++else
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
++fi
++
++  test -n "$ac_ct_CC" && break
++done
+-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+-echo "configure:1179: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
++  CC=$ac_ct_CC
++fi
+-ac_ext=c
+-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-cross_compiling=$ac_cv_prog_cc_cross
++fi
+-cat > conftest.$ac_ext << EOF
+-#line 1190 "configure"
+-#include "confdefs.h"
++test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
++See \`config.log' for more details." >&5
++echo "$as_me: error: no acceptable C compiler found in \$PATH
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }
++
++# Provide some information about the compiler.
++echo "$as_me:$LINENO:" \
++     "checking for C compiler version" >&5
++ac_compiler=`set X $ac_compile; echo $2`
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
++  (eval $ac_compiler --version </dev/null >&5) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
++  (eval $ac_compiler -v </dev/null >&5) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }
++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
++  (eval $ac_compiler -V </dev/null >&5) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }
++
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-main(){return(0);}
+-EOF
+-if { (eval echo configure:1195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  ac_cv_prog_cc_works=yes
+-  # If we can't run a trivial program, we are probably using a cross compiler.
+-  if (./conftest; exit) 2>/dev/null; then
+-    ac_cv_prog_cc_cross=no
+-  else
+-    ac_cv_prog_cc_cross=yes
+-  fi
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++ac_clean_files_save=$ac_clean_files
++ac_clean_files="$ac_clean_files a.out a.exe b.out"
++# Try to create an executable without -o first, disregard a.out.
++# It will help us diagnose broken compilers, and finding out an intuition
++# of exeext.
++echo "$as_me:$LINENO: checking for C compiler default output" >&5
++echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
++ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
++if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
++  (eval $ac_link_default) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; then
++  # Find the output, starting from the most likely.  This scheme is
++# not robust to junk in `.', hence go to wildcards (a.*) only as a last
++# resort.
++
++# Be careful to initialize this variable, since it used to be cached.
++# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
++ac_cv_exeext=
++# b.out is created by i960 compilers.
++for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
++do
++  test -f "$ac_file" || continue
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
++        ;;
++    conftest.$ac_ext )
++        # This is the source file.
++        ;;
++    [ab].out )
++        # We found the default executable, but exeext='' is most
++        # certainly right.
++        break;;
++    *.* )
++        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
++        # FIXME: I believe we export ac_cv_exeext for Libtool,
++        # but it would be cool to find out if it's true.  Does anybody
++        # maintain Libtool? --akim.
++        export ac_cv_exeext
++        break;;
++    * )
++        break;;
++  esac
++done
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  ac_cv_prog_cc_works=no
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
++See \`config.log' for more details." >&5
++echo "$as_me: error: C compiler cannot create executables
++See \`config.log' for more details." >&2;}
++   { (exit 77); exit 77; }; }
++fi
++
++ac_exeext=$ac_cv_exeext
++echo "$as_me:$LINENO: result: $ac_file" >&5
++echo "${ECHO_T}$ac_file" >&6
++
++# Check the compiler produces executables we can run.  If not, either
++# the compiler is broken, or we cross compile.
++echo "$as_me:$LINENO: checking whether the C compiler works" >&5
++echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
++# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
++# If not cross compiling, check that we can run a simple program.
++if test "$cross_compiling" != yes; then
++  if { ac_try='./$ac_file'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++    cross_compiling=no
++  else
++    if test "$cross_compiling" = maybe; then
++      cross_compiling=yes
++    else
++      { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
++If you meant to cross compile, use \`--host'.
++See \`config.log' for more details." >&5
++echo "$as_me: error: cannot run C compiled programs.
++If you meant to cross compile, use \`--host'.
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }
++    fi
++  fi
+ fi
+-rm -fr conftest*
+-ac_ext=c
+-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-cross_compiling=$ac_cv_prog_cc_cross
+-
+-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+-if test $ac_cv_prog_cc_works = no; then
+-  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+-fi
+-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+-echo "configure:1221: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+-cross_compiling=$ac_cv_prog_cc_cross
+-
+-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+-echo "configure:1226: checking whether we are using GNU C" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.c <<EOF
+-#ifdef __GNUC__
+-  yes;
+-#endif
+-EOF
+-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+-  ac_cv_prog_gcc=yes
++echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
++
++rm -f a.out a.exe conftest$ac_cv_exeext b.out
++ac_clean_files=$ac_clean_files_save
++# Check the compiler produces executables we can run.  If not, either
++# the compiler is broken, or we cross compile.
++echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
++echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
++echo "$as_me:$LINENO: result: $cross_compiling" >&5
++echo "${ECHO_T}$cross_compiling" >&6
++
++echo "$as_me:$LINENO: checking for suffix of executables" >&5
++echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; then
++  # If both `conftest.exe' and `conftest' are `present' (well, observable)
++# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
++# work properly (i.e., refer to `conftest.exe'), while it won't with
++# `rm'.
++for ac_file in conftest.exe conftest conftest.*; do
++  test -f "$ac_file" || continue
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
++    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
++          export ac_cv_exeext
++          break;;
++    * ) break;;
++  esac
++done
+ else
+-  ac_cv_prog_gcc=no
+-fi
++  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
++See \`config.log' for more details." >&5
++echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
++rm -f conftest$ac_cv_exeext
++echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
++echo "${ECHO_T}$ac_cv_exeext" >&6
++
++rm -f conftest.$ac_ext
++EXEEXT=$ac_cv_exeext
++ac_exeext=$EXEEXT
++echo "$as_me:$LINENO: checking for suffix of object files" >&5
++echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
++if test "${ac_cv_objext+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++int
++main ()
++{
+-if test $ac_cv_prog_gcc = yes; then
+-  GCC=yes
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.o conftest.obj
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; then
++  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
++  case $ac_file in
++    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
++    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
++       break;;
++  esac
++done
+ else
+-  GCC=
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
++See \`config.log' for more details." >&5
++echo "$as_me: error: cannot compute suffix of object files: cannot compile
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+-ac_test_CFLAGS="${CFLAGS+set}"
+-ac_save_CFLAGS="$CFLAGS"
+-CFLAGS=
+-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+-echo "configure:1254: checking whether ${CC-cc} accepts -g" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  echo 'void f(){}' > conftest.c
+-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
++rm -f conftest.$ac_cv_objext conftest.$ac_ext
++fi
++echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
++echo "${ECHO_T}$ac_cv_objext" >&6
++OBJEXT=$ac_cv_objext
++ac_objext=$OBJEXT
++echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
++echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
++if test "${ac_cv_c_compiler_gnu+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++int
++main ()
++{
++#ifndef __GNUC__
++       choke me
++#endif
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_compiler_gnu=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_compiler_gnu=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++ac_cv_c_compiler_gnu=$ac_compiler_gnu
++
++fi
++echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
++GCC=`test $ac_compiler_gnu = yes && echo yes`
++ac_test_CFLAGS=${CFLAGS+set}
++ac_save_CFLAGS=$CFLAGS
++CFLAGS="-g"
++echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
++if test "${ac_cv_prog_cc_g+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+   ac_cv_prog_cc_g=yes
+ else
+-  ac_cv_prog_cc_g=no
+-fi
+-rm -f conftest*
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++ac_cv_prog_cc_g=no
+ fi
+-
+-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+ if test "$ac_test_CFLAGS" = set; then
+-  CFLAGS="$ac_save_CFLAGS"
++  CFLAGS=$ac_save_CFLAGS
+ elif test $ac_cv_prog_cc_g = yes; then
+   if test "$GCC" = yes; then
+     CFLAGS="-g -O2"
+@@ -1280,295 +2477,548 @@
+     CFLAGS=
+   fi
+ fi
++echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
++echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
++if test "${ac_cv_prog_cc_stdc+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_prog_cc_stdc=no
++ac_save_CC=$CC
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <stdarg.h>
++#include <stdio.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
++struct buf { int x; };
++FILE * (*rcsopen) (struct buf *, struct stat *, int);
++static char *e (p, i)
++     char **p;
++     int i;
++{
++  return p[i];
++}
++static char *f (char * (*g) (char **, int), char **p, ...)
++{
++  char *s;
++  va_list v;
++  va_start (v,p);
++  s = g (p, va_arg (v,int));
++  va_end (v);
++  return s;
++}
++int test (int i, double x);
++struct s1 {int (*f) (int a);};
++struct s2 {int (*f) (double a);};
++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
++int argc;
++char **argv;
++int
++main ()
++{
++return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
++  ;
++  return 0;
++}
++_ACEOF
++# Don't try gcc -ansi; that turns off useful extensions and
++# breaks some systems' header files.
++# AIX                 -qlanglvl=ansi
++# Ultrix and OSF/1    -std1
++# HP-UX 10.20 and later       -Ae
++# HP-UX older versions        -Aa -D_HPUX_SOURCE
++# SVR4                        -Xc -D__EXTENSIONS__
++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
++do
++  CC="$ac_save_CC $ac_arg"
++  rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_prog_cc_stdc=$ac_arg
++break
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++fi
++rm -f conftest.$ac_objext
++done
++rm -f conftest.$ac_ext conftest.$ac_objext
++CC=$ac_save_CC
+-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+-echo "configure:1286: checking how to run the C preprocessor" >&5
+-# On Suns, sometimes $CPP names a directory.
+-if test -n "$CPP" && test -d "$CPP"; then
+-  CPP=
+ fi
+-if test -z "$CPP"; then
+-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-    # This must be in double quotes, not single quotes, because CPP may get
+-  # substituted into the Makefile and "${CC-cc}" will confuse make.
+-  CPP="${CC-cc} -E"
+-  # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp.
+-  cat > conftest.$ac_ext <<EOF
+-#line 1301 "configure"
+-#include "confdefs.h"
+-#include <assert.h>
+-Syntax Error
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1307: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+-  :
+-else
+-  echo "$ac_err" >&5
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  CPP="${CC-cc} -E -traditional-cpp"
+-  cat > conftest.$ac_ext <<EOF
+-#line 1318 "configure"
+-#include "confdefs.h"
+-#include <assert.h>
+-Syntax Error
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1324: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+-  :
+-else
+-  echo "$ac_err" >&5
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  CPP="${CC-cc} -nologo -E"
+-  cat > conftest.$ac_ext <<EOF
+-#line 1335 "configure"
+-#include "confdefs.h"
+-#include <assert.h>
+-Syntax Error
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:1341: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
++
++case "x$ac_cv_prog_cc_stdc" in
++  x|xno)
++    echo "$as_me:$LINENO: result: none needed" >&5
++echo "${ECHO_T}none needed" >&6 ;;
++  *)
++    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
++    CC="$CC $ac_cv_prog_cc_stdc" ;;
++esac
++
++# Some people use a C++ compiler to compile C.  Since we use `exit',
++# in C++ we need to declare it.  In case someone uses the same compiler
++# for both compiling C and C++ we need to have the C++ compiler decide
++# the declaration of exit, since it's the most demanding environment.
++cat >conftest.$ac_ext <<_ACEOF
++#ifndef __cplusplus
++  choke me
++#endif
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  for ac_declaration in \
++   '' \
++   'extern "C" void std::exit (int) throw (); using std::exit;' \
++   'extern "C" void std::exit (int); using std::exit;' \
++   'extern "C" void exit (int) throw ();' \
++   'extern "C" void exit (int);' \
++   'void exit (int);'
++do
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_declaration
++#include <stdlib.h>
++int
++main ()
++{
++exit (42);
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+   :
+ else
+-  echo "$ac_err" >&5
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  CPP=/lib/cpp
+-fi
+-rm -f conftest*
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++continue
+ fi
+-rm -f conftest*
++rm -f conftest.$ac_objext conftest.$ac_ext
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_declaration
++int
++main ()
++{
++exit (42);
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  break
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
+ fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++done
+ rm -f conftest*
+-  ac_cv_prog_CPP="$CPP"
++if test -n "$ac_declaration"; then
++  echo '#ifdef __cplusplus' >>confdefs.h
++  echo $ac_declaration      >>confdefs.h
++  echo '#endif'             >>confdefs.h
+ fi
+-  CPP="$ac_cv_prog_CPP"
++
+ else
+-  ac_cv_prog_CPP="$CPP"
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
+ fi
+-echo "$ac_t""$CPP" 1>&6
++rm -f conftest.$ac_objext conftest.$ac_ext
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
+ missing_dir=`cd $ac_aux_dir && pwd`
+ for ac_prog in flex lex
+ do
+-# Extract the first word of "$ac_prog", so it can be a program name with args.
++  # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1371: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_LEX+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$LEX"; then
+   ac_cv_prog_LEX="$LEX" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_LEX="$ac_prog"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_LEX="$ac_prog"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-LEX="$ac_cv_prog_LEX"
++LEX=$ac_cv_prog_LEX
+ if test -n "$LEX"; then
+-  echo "$ac_t""$LEX" 1>&6
++  echo "$as_me:$LINENO: result: $LEX" >&5
++echo "${ECHO_T}$LEX" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-test -n "$LEX" && break
++  test -n "$LEX" && break
+ done
+-test -n "$LEX" || LEX=""$missing_dir/missing flex""
++test -n "$LEX" || LEX="$missing_dir/missing flex"
+-# Extract the first word of "flex", so it can be a program name with args.
+-set dummy flex; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1404: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++for ac_prog in flex lex
++do
++  # Extract the first word of "$ac_prog", so it can be a program name with args.
++set dummy $ac_prog; ac_word=$2
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_LEX+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$LEX"; then
+   ac_cv_prog_LEX="$LEX" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_LEX="flex"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
+-  test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_LEX="$ac_prog"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-LEX="$ac_cv_prog_LEX"
++LEX=$ac_cv_prog_LEX
+ if test -n "$LEX"; then
+-  echo "$ac_t""$LEX" 1>&6
++  echo "$as_me:$LINENO: result: $LEX" >&5
++echo "${ECHO_T}$LEX" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
++  test -n "$LEX" && break
++done
++test -n "$LEX" || LEX=":"
++
+ if test -z "$LEXLIB"
+ then
+-  case "$LEX" in
+-  flex*) ac_lib=fl ;;
+-  *) ac_lib=l ;;
+-  esac
+-  echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
+-echo "configure:1438: checking for yywrap in -l$ac_lib" >&5
+-ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  ac_save_LIBS="$LIBS"
+-LIBS="-l$ac_lib  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 1446 "configure"
+-#include "confdefs.h"
++  echo "$as_me:$LINENO: checking for yywrap in -lfl" >&5
++echo $ECHO_N "checking for yywrap in -lfl... $ECHO_C" >&6
++if test "${ac_cv_lib_fl_yywrap+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-lfl  $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
+ /* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
+ /* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-char yywrap();
++   builtin and then its argument prototype would still apply.  */
++char yywrap ();
++int
++main ()
++{
++yywrap ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_fl_yywrap=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_fl_yywrap=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_fl_yywrap" >&5
++echo "${ECHO_T}$ac_cv_lib_fl_yywrap" >&6
++if test $ac_cv_lib_fl_yywrap = yes; then
++  LEXLIB="-lfl"
++else
++  echo "$as_me:$LINENO: checking for yywrap in -ll" >&5
++echo $ECHO_N "checking for yywrap in -ll... $ECHO_C" >&6
++if test "${ac_cv_lib_l_yywrap+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-ll  $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
+-yywrap()
+-; return 0; }
+-EOF
+-if { (eval echo configure:1457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
++/* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++   builtin and then its argument prototype would still apply.  */
++char yywrap ();
++int
++main ()
++{
++yywrap ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_l_yywrap=yes
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++ac_cv_lib_l_yywrap=no
+ fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  LEXLIB="-l$ac_lib"
+-else
+-  echo "$ac_t""no" 1>&6
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_l_yywrap" >&5
++echo "${ECHO_T}$ac_cv_lib_l_yywrap" >&6
++if test $ac_cv_lib_l_yywrap = yes; then
++  LEXLIB="-ll"
++fi
++
+ fi
+ fi
+-echo $ac_n "checking lex output file root""... $ac_c" 1>&6
+-echo "configure:1480: checking lex output file root" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++if test "x$LEX" != "x:"; then
++  echo "$as_me:$LINENO: checking lex output file root" >&5
++echo $ECHO_N "checking lex output file root... $ECHO_C" >&6
++if test "${ac_cv_prog_lex_root+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   # The minimal lex program is just a single line: %%.  But some broken lexes
+ # (Solaris, I think it was) want two %% lines, so accommodate them.
+-echo '%%
+-%%' | $LEX
++cat >conftest.l <<_ACEOF
++%%
++%%
++_ACEOF
++{ (eval echo "$as_me:$LINENO: \"$LEX conftest.l\"") >&5
++  (eval $LEX conftest.l) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }
+ if test -f lex.yy.c; then
+   ac_cv_prog_lex_root=lex.yy
+ elif test -f lexyy.c; then
+   ac_cv_prog_lex_root=lexyy
+ else
+-  { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; }
++  { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
++echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+ fi
+-
+-echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
++echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
++echo "${ECHO_T}$ac_cv_prog_lex_root" >&6
++rm -f conftest.l
+ LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
+-echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
+-echo "configure:1501: checking whether yytext is a pointer" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
++echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6
++if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   # POSIX says lex can declare yytext either as a pointer or an array; the
+ # default is implementation-dependent. Figure out which it is, since
+ # not all implementations provide the %pointer and %array declarations.
+ ac_cv_prog_lex_yytext_pointer=no
+ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
+-ac_save_LIBS="$LIBS"
++ac_save_LIBS=$LIBS
+ LIBS="$LIBS $LEXLIB"
+-cat > conftest.$ac_ext <<EOF
+-#line 1513 "configure"
+-#include "confdefs.h"
++cat >conftest.$ac_ext <<_ACEOF
+ `cat $LEX_OUTPUT_ROOT.c`
+-int main() {
+-
+-; return 0; }
+-EOF
+-if { (eval echo configure:1520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+   ac_cv_prog_lex_yytext_pointer=yes
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
+ fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_save_LIBS
+ rm -f "${LEX_OUTPUT_ROOT}.c"
+ fi
+-
+-echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6
++echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
++echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6
+ if test $ac_cv_prog_lex_yytext_pointer = yes; then
+-  cat >> confdefs.h <<\EOF
++
++cat >>confdefs.h <<\_ACEOF
+ #define YYTEXT_POINTER 1
+-EOF
++_ACEOF
++
++fi
+ fi
+ for ac_prog in 'bison -y' byacc
+ do
+-# Extract the first word of "$ac_prog", so it can be a program name with args.
++  # Extract the first word of "$ac_prog", so it can be a program name with args.
+ set dummy $ac_prog; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:1546: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_YACC+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$YACC"; then
+   ac_cv_prog_YACC="$YACC" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_YACC="$ac_prog"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_YACC="$ac_prog"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-YACC="$ac_cv_prog_YACC"
++YACC=$ac_cv_prog_YACC
+ if test -n "$YACC"; then
+-  echo "$ac_t""$YACC" 1>&6
++  echo "$as_me:$LINENO: result: $YACC" >&5
++echo "${ECHO_T}$YACC" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-test -n "$YACC" && break
++  test -n "$YACC" && break
+ done
+ test -n "$YACC" || YACC="yacc"
+@@ -1579,126 +3029,77 @@
+ # SunOS /usr/etc/install
+ # IRIX /sbin/install
+ # AIX /bin/install
++# AmigaOS /C/install, which installs bootblocks on floppy discs
+ # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+ # AFS /usr/afsws/bin/install, which mishandles nonexistent args
+ # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+ # ./install, which can be erroneously created by make from ./install.sh.
+-echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+-echo "configure:1588: checking for a BSD compatible install" >&5
++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+ if test -z "$INSTALL"; then
+-if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++if test "${ac_cv_path_install+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-    IFS="${IFS=       }"; ac_save_IFS="$IFS"; IFS=":"
+-  for ac_dir in $PATH; do
+-    # Account for people who put trailing slashes in PATH elements.
+-    case "$ac_dir/" in
+-    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
+-    *)
+-      # OSF1 and SCO ODT 3.0 have their own names for install.
+-      # Don't use installbsd from OSF since it installs stuff as root
+-      # by default.
+-      for ac_prog in ginstall scoinst install; do
+-        if test -f $ac_dir/$ac_prog; then
+-        if test $ac_prog = install &&
+-            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+-          # AIX install.  It has an incompatible calling convention.
+-          :
+-        else
+-          ac_cv_path_install="$ac_dir/$ac_prog -c"
+-          break 2
+-        fi
+-      fi
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  # Account for people who put trailing slashes in PATH elements.
++case $as_dir/ in
++  ./ | .// | /cC/* | \
++  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
++  /usr/ucb/* ) ;;
++  *)
++    # OSF1 and SCO ODT 3.0 have their own names for install.
++    # Don't use installbsd from OSF since it installs stuff as root
++    # by default.
++    for ac_prog in ginstall scoinst install; do
++      for ac_exec_ext in '' $ac_executable_extensions; do
++        if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
++          if test $ac_prog = install &&
++            grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++            # AIX install.  It has an incompatible calling convention.
++            :
++          elif test $ac_prog = install &&
++            grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
++            # program-specific install script used by HP pwplus--don't use.
++            :
++          else
++            ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
++            break 3
++          fi
++        fi
+       done
+-      ;;
+-    esac
+-  done
+-  IFS="$ac_save_IFS"
++    done
++    ;;
++esac
++done
++
+ fi
+   if test "${ac_cv_path_install+set}" = set; then
+-    INSTALL="$ac_cv_path_install"
++    INSTALL=$ac_cv_path_install
+   else
+     # As a last resort, use the slow shell script.  We don't cache a
+     # path for INSTALL within a source directory, because that will
+     # break other packages using the cache if that directory is
+     # removed, or if the path is relative.
+-    INSTALL="$ac_install_sh"
++    INSTALL=$ac_install_sh
+   fi
+ fi
+-echo "$ac_t""$INSTALL" 1>&6
++echo "$as_me:$LINENO: result: $INSTALL" >&5
++echo "${ECHO_T}$INSTALL" >&6
+ # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+ # It thinks the first close brace ends the variable substitution.
+ test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+-echo "configure:1642: checking for Cygwin environment" >&5
+-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 1647 "configure"
+-#include "confdefs.h"
+-
+-int main() {
+-
+-#ifndef __CYGWIN__
+-#define __CYGWIN__ __CYGWIN32__
+-#endif
+-return __CYGWIN__;
+-; return 0; }
+-EOF
+-if { (eval echo configure:1658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
+-  ac_cv_cygwin=yes
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  ac_cv_cygwin=no
+-fi
+-rm -f conftest*
+-rm -f conftest*
+-fi
+-
+-echo "$ac_t""$ac_cv_cygwin" 1>&6
+-CYGWIN=
+-test "$ac_cv_cygwin" = yes && CYGWIN=yes
+-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+-echo "configure:1675: checking for mingw32 environment" >&5
+-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 1680 "configure"
+-#include "confdefs.h"
+-
+-int main() {
+-return __MINGW32__;
+-; return 0; }
+-EOF
+-if { (eval echo configure:1687: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
+-  ac_cv_mingw32=yes
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  ac_cv_mingw32=no
+-fi
+-rm -f conftest*
+-rm -f conftest*
+-fi
+-
+-echo "$ac_t""$ac_cv_mingw32" 1>&6
+-MINGW32=
+-test "$ac_cv_mingw32" = yes && MINGW32=yes
+ # Check whether --enable-shared or --disable-shared was given.
+ if test "${enable_shared+set}" = set; then
+   enableval="$enable_shared"
+@@ -1720,8 +3121,7 @@
+ esac
+ else
+   enable_shared=yes
+-fi
+-
++fi;
+ # Check whether --enable-static or --disable-static was given.
+ if test "${enable_static+set}" = set; then
+   enableval="$enable_static"
+@@ -1743,8 +3143,7 @@
+ esac
+ else
+   enable_static=yes
+-fi
+-
++fi;
+ # Check whether --enable-fast-install or --disable-fast-install was given.
+ if test "${enable_fast_install+set}" = set; then
+   enableval="$enable_fast_install"
+@@ -1766,21 +3165,31 @@
+ esac
+ else
+   enable_fast_install=yes
++fi;
++# Find the correct PATH separator.  Usually this is `:', but
++# DJGPP uses `;' like DOS.
++if test "X${PATH_SEPARATOR+set}" != Xset; then
++  UNAME=${UNAME-`uname 2>/dev/null`}
++  case X$UNAME in
++    *-DOS) lt_cv_sys_path_separator=';' ;;
++    *)     lt_cv_sys_path_separator=':' ;;
++  esac
++  PATH_SEPARATOR=$lt_cv_sys_path_separator
+ fi
++
+ # Check whether --with-gnu-ld or --without-gnu-ld was given.
+ if test "${with_gnu_ld+set}" = set; then
+   withval="$with_gnu_ld"
+   test "$withval" = no || with_gnu_ld=yes
+ else
+   with_gnu_ld=no
+-fi
+-
++fi;
+ ac_prog=ld
+ if test "$GCC" = yes; then
+   # Check if gcc -print-prog-name=ld gives a path.
+-  echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
+-echo "configure:1784: checking for ld used by GCC" >&5
++  echo "$as_me:$LINENO: checking for ld used by GCC" >&5
++echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6
+   case $host in
+   *-*-mingw*)
+     # gcc leaves a trailing carriage return which upsets mingw
+@@ -1809,17 +3218,17 @@
+     ;;
+   esac
+ elif test "$with_gnu_ld" = yes; then
+-  echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
+-echo "configure:1814: checking for GNU ld" >&5
++  echo "$as_me:$LINENO: checking for GNU ld" >&5
++echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+ else
+-  echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
+-echo "configure:1817: checking for non-GNU ld" >&5
++  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
++echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+ fi
+-if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++if test "${lt_cv_path_LD+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -z "$LD"; then
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
++  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+   for ac_dir in $PATH; do
+     test -z "$ac_dir" && ac_dir=.
+     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+@@ -1842,15 +3251,19 @@
+ LD="$lt_cv_path_LD"
+ if test -n "$LD"; then
+-  echo "$ac_t""$LD" 1>&6
++  echo "$as_me:$LINENO: result: $LD" >&5
++echo "${ECHO_T}$LD" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
+-echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
+-echo "configure:1852: checking if the linker ($LD) is GNU ld" >&5
+-if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
++echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
++   { (exit 1); exit 1; }; }
++echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
++echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
++if test "${lt_cv_prog_gnu_ld+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+ if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
+@@ -1859,33 +3272,33 @@
+   lt_cv_prog_gnu_ld=no
+ fi
+ fi
+-
+-echo "$ac_t""$lt_cv_prog_gnu_ld" 1>&6
++echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
++echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+ with_gnu_ld=$lt_cv_prog_gnu_ld
+-echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
+-echo "configure:1869: checking for $LD option to reload object files" >&5
+-if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
++echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
++if test "${lt_cv_ld_reload_flag+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   lt_cv_ld_reload_flag='-r'
+ fi
+-
+-echo "$ac_t""$lt_cv_ld_reload_flag" 1>&6
++echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
++echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+ reload_flag=$lt_cv_ld_reload_flag
+ test -n "$reload_flag" && reload_flag=" $reload_flag"
+-echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
+-echo "configure:1881: checking for BSD-compatible nm" >&5
+-if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
++echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
++if test "${lt_cv_path_NM+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$NM"; then
+   # Let the user override the test.
+   lt_cv_path_NM="$NM"
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
++  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+     test -z "$ac_dir" && ac_dir=.
+     tmp_nm=$ac_dir/${ac_tool_prefix}nm
+@@ -1912,33 +3325,109 @@
+ fi
+ NM="$lt_cv_path_NM"
+-echo "$ac_t""$NM" 1>&6
++echo "$as_me:$LINENO: result: $NM" >&5
++echo "${ECHO_T}$NM" >&6
++
++echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
++echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
++if test "${lt_cv_path_SED+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  # Loop through the user's path and test for sed and gsed.
++# Then use that list of sed's as ones to test for truncation.
++as_executable_p="test -f"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_prog in sed gsed; do
++    for ac_exec_ext in '' $ac_executable_extensions; do
++      if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
++        _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
++      fi
++    done
++  done
++done
++
++  # Create a temporary directory, and hook for its removal unless debugging.
++$debug ||
++{
++  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
++  trap '{ (exit 1); exit 1; }' 1 2 13 15
++}
++
++# Create a (secure) tmp directory for tmp files.
++: ${TMPDIR=/tmp}
++{
++  tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` &&
++  test -n "$tmp" && test -d "$tmp"
++}  ||
++{
++  tmp=$TMPDIR/sed$$-$RANDOM
++  (umask 077 && mkdir $tmp)
++} ||
++{
++   echo "$me: cannot create a temporary directory in $TMPDIR" >&2
++   { (exit 1); exit 1; }
++}
++  _max=0
++  _count=0
++  # Add /usr/xpg4/bin/sed as it is typically found on Solaris
++  # along with /bin/sed that truncates output.
++  for _sed in $_sed_list /usr/xpg4/bin/sed; do
++    test ! -f ${_sed} && break
++    cat /dev/null > "$tmp/sed.in"
++    _count=0
++    echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in"
++    # Check for GNU sed and select it if it is found.
++    if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then
++      lt_cv_path_SED=${_sed}
++      break
++    fi
++    while true; do
++      cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
++      mv "$tmp/sed.tmp" "$tmp/sed.in"
++      cp "$tmp/sed.in" "$tmp/sed.nl"
++      echo >>"$tmp/sed.nl"
++      ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break
++      cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
++      # 40000 chars as input seems more than enough
++      test $_count -gt 10 && break
++      _count=`expr $_count + 1`
++      if test $_count -gt $_max; then
++        _max=$_count
++        lt_cv_path_SED=$_sed
++      fi
++    done
++  done
++  rm -rf "$tmp"
+-echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+-echo "configure:1919: checking whether ln -s works" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  rm -f conftestdata
+-if ln -s X conftestdata 2>/dev/null
+-then
+-  rm -f conftestdata
+-  ac_cv_prog_LN_S="ln -s"
+-else
+-  ac_cv_prog_LN_S=ln
+ fi
++
++if test "X$SED" != "X"; then
++  lt_cv_path_SED=$SED
++else
++  SED=$lt_cv_path_SED
+ fi
+-LN_S="$ac_cv_prog_LN_S"
+-if test "$ac_cv_prog_LN_S" = "ln -s"; then
+-  echo "$ac_t""yes" 1>&6
++echo "$as_me:$LINENO: result: $SED" >&5
++echo "${ECHO_T}$SED" >&6
++
++echo "$as_me:$LINENO: checking whether ln -s works" >&5
++echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
++LN_S=$as_ln_s
++if test "$LN_S" = "ln -s"; then
++  echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
++echo "${ECHO_T}no, using $LN_S" >&6
+ fi
+-echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6
+-echo "configure:1940: checking how to recognise dependant libraries" >&5
+-if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
++echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
++if test "${lt_cv_deplibs_check_method+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   lt_cv_file_magic_cmd='$MAGIC_CMD'
+ lt_cv_file_magic_test_file=
+@@ -1949,7 +3438,7 @@
+ # `unknown' -- same as none, but documents that we really don't know.
+ # 'pass_all' -- all dependencies passed with no checks.
+ # 'test_compile' -- check by making test program.
+-# ['file_magic [regex]'] -- check by looking for files in library path
++# 'file_magic [[regex]]' -- check by looking for files in library path
+ # which responds to the $file_magic_cmd with a given egrep regex.
+ # If you have `file' or equivalent on your system and you're not sure
+ # whether `pass_all' will *always* work, you probably want this one.
+@@ -1978,7 +3467,7 @@
+   lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+   lt_cv_file_magic_cmd='/usr/bin/file -L'
+   case "$host_os" in
+-  rhapsody* | darwin1.012)
++  rhapsody* | darwin1.[012])
+     lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1`
+     ;;
+   *) # Darwin 1.3 on
+@@ -2013,9 +3502,9 @@
+   lt_cv_file_magic_test_file=/usr/lib/libc.sl
+   ;;
+-irix5* | irix6*)
++irix5* | irix6* | nonstopux*)
+   case $host_os in
+-  irix5*)
++  irix5* | nonstopux*)
+     # this will be overridden with pass_all, but let us keep it just in case
+     lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+     ;;
+@@ -2037,7 +3526,7 @@
+ # This must be Linux ELF.
+ linux-gnu*)
+   case $host_cpu in
+-  alpha* | hppa* | i*86 | powerpc* | sparc* | ia64* | s390* )
++  alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64* | arm* | m68k)
+     lt_cv_deplibs_check_method=pass_all ;;
+   *)
+     # glibc up to 2.1.1 does not perform some relocations on ARM
+@@ -2060,6 +3549,16 @@
+   lt_cv_file_magic_test_file=/usr/lib/libnls.so
+   ;;
++openbsd*)
++  lt_cv_file_magic_cmd=/usr/bin/file
++  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
++  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
++  else
++    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
++  fi
++  ;;
++
+ osf3* | osf4* | osf5*)
+   # this will be overridden with pass_all, but let us keep it just in case
+   lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+@@ -2098,89 +3597,32 @@
+     lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+     lt_cv_file_magic_test_file=/lib/libc.so
+     ;;
++  siemens)
++    lt_cv_deplibs_check_method=pass_all
++    ;;
+   esac
+   ;;
+ esac
+ fi
+-
+-echo "$ac_t""$lt_cv_deplibs_check_method" 1>&6
++echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
++echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+ file_magic_cmd=$lt_cv_file_magic_cmd
+ deplibs_check_method=$lt_cv_deplibs_check_method
+-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+-echo "configure:2113: checking for object suffix" >&5
+-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  rm -f conftest*
+-echo 'int i = 1;' > conftest.$ac_ext
+-if { (eval echo configure:2119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  for ac_file in conftest.*; do
+-    case $ac_file in
+-    *.c) ;;
+-    *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+-    esac
+-  done
+-else
+-  { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
+-fi
+-rm -f conftest*
+-fi
+-
+-echo "$ac_t""$ac_cv_objext" 1>&6
+-OBJEXT=$ac_cv_objext
+-ac_objext=$ac_cv_objext
+-
+-
+-
+-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+-echo "configure:2139: checking for executable suffix" >&5
+-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+-  ac_cv_exeext=.exe
+-else
+-  rm -f conftest*
+-  echo 'int main () { return 0; }' > conftest.$ac_ext
+-  ac_cv_exeext=
+-  if { (eval echo configure:2149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+-    for file in conftest.*; do
+-      case $file in
+-      *.c | *.o | *.obj) ;;
+-      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+-      esac
+-    done
+-  else
+-    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+-  fi
+-  rm -f conftest*
+-  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+-fi
+-fi
+-EXEEXT=""
+-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+-echo "$ac_t""${ac_cv_exeext}" 1>&6
+-ac_exeext=$EXEEXT
+-if test $host != $build; then
+-  ac_tool_prefix=${host_alias}-
+-else
+-  ac_tool_prefix=
+-fi
+ # Check for command to grab the raw symbol name followed by C symbol from nm.
+-echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6
+-echo "configure:2180: checking command to parse $NM output" >&5
+-if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking command to parse $NM output" >&5
++echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6
++if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  
++
+ # These are sane defaults that work on at least a few old systems.
+ # [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+@@ -2196,6 +3638,9 @@
+ # Transform an extracted symbol line into a proper C declaration
+ lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'"
++# Transform an extracted symbol line into symbol name and symbol address
++lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
++
+ # Define system-specific variables.
+ case $host_os in
+ aix*)
+@@ -2206,10 +3651,14 @@
+   ;;
+ hpux*) # Its linker distinguishes data from code symbols
+   lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
++  lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+   ;;
+-irix*)
++irix* | nonstopux*)
+   symcode='[BCDEGRST]'
+   ;;
++osf*)
++  symcode='[BCDEGQRST]'
++  ;;
+ solaris* | sysv5*)
+   symcode='[BDT]'
+   ;;
+@@ -2252,10 +3701,18 @@
+ int main(){nm_test_var='a';nm_test_func();return(0);}
+ EOF
+-  if { (eval echo configure:2256: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; then
+     # Now try to grab the symbols.
+     nlist=conftest.nm
+-    if { (eval echo configure:2259: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then
++    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
++  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && test -s "$nlist"; then
+       # Try sorting and uniquifying the output.
+       if sort "$nlist" | uniq > "$nlist"T; then
+       mv -f "$nlist"T "$nlist"
+@@ -2277,23 +3734,23 @@
+         cat <<EOF >> conftest.$ac_ext
+ #if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
++# define lt_ptr void *
+ #else
+-# define lt_ptr_t char *
++# define lt_ptr char *
+ # define const
+ #endif
+ /* The mapping between symbol names and symbols. */
+ const struct {
+   const char *name;
+-  lt_ptr_t address;
++  lt_ptr address;
+ }
+ lt_preloaded_symbols[] =
+ {
+ EOF
+-        sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" >> conftest.$ac_ext
++        sed "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext
+         cat <<\EOF >> conftest.$ac_ext
+-  {0, (lt_ptr_t) 0}
++  {0, (lt_ptr) 0}
+ };
+ #ifdef __cplusplus
+@@ -2306,7 +3763,11 @@
+         save_CFLAGS="$CFLAGS"
+         LIBS="conftstm.$ac_objext"
+         CFLAGS="$CFLAGS$no_builtin_flag"
+-        if { (eval echo configure:2310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
++        if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && test -s conftest$ac_exeext; then
+           pipe_works=yes
+         fi
+         LIBS="$save_LIBS"
+@@ -2339,84 +3800,665 @@
+ global_symbol_pipe="$lt_cv_sys_global_symbol_pipe"
+ if test -z "$lt_cv_sys_global_symbol_pipe"; then
+   global_symbol_to_cdecl=
++  global_symbol_to_c_name_address=
+ else
+   global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl"
++  global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address"
+ fi
+-if test -z "$global_symbol_pipe$global_symbol_to_cdecl"; then
+-  echo "$ac_t""failed" 1>&6
++if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address";
++then
++  echo "$as_me:$LINENO: result: failed" >&5
++echo "${ECHO_T}failed" >&6
+ else
+-  echo "$ac_t""ok" 1>&6
++  echo "$as_me:$LINENO: result: ok" >&5
++echo "${ECHO_T}ok" >&6
+ fi
+-for ac_hdr in dlfcn.h
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
++# On Suns, sometimes $CPP names a directory.
++if test -n "$CPP" && test -d "$CPP"; then
++  CPP=
++fi
++if test -z "$CPP"; then
++  if test "${ac_cv_prog_CPP+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++      # Double quotes because CPP needs to be expanded
++    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
++    do
++      ac_preproc_ok=false
++for ac_c_preproc_warn_flag in '' yes
+ do
+-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+-echo "configure:2356: checking for $ac_hdr" >&5
+-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  # Use a header file that comes with gcc, so configuring glibc
++  # with a fresh cross-compiler works.
++  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++  # <limits.h> exists even on freestanding compilers.
++  # On the NeXT, cc -E runs the code through the compiler's parser,
++  # not just through cpp. "Syntax error" is here to catch this case.
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
++                     Syntax error
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
+ else
+-  cat > conftest.$ac_ext <<EOF
+-#line 2361 "configure"
+-#include "confdefs.h"
+-#include <$ac_hdr>
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:2366: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=yes"
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  :
+ else
+-  echo "$ac_err" >&5
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=no"
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  # Broken: fails on valid input.
++continue
+ fi
+-rm -f conftest*
++rm -f conftest.err conftest.$ac_ext
++
++  # OK, works on sane cases.  Now check whether non-existent headers
++  # can be detected and how.
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <ac_nonexistent.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
+ fi
+-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+-  cat >> confdefs.h <<EOF
+-#define $ac_tr_hdr 1
+-EOF
+- 
++if test -z "$ac_cpp_err"; then
++  # Broken: success on invalid input.
++continue
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  # Passes both tests.
++ac_preproc_ok=:
++break
+ fi
++rm -f conftest.err conftest.$ac_ext
++
+ done
++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
++rm -f conftest.err conftest.$ac_ext
++if $ac_preproc_ok; then
++  break
++fi
++    done
++    ac_cv_prog_CPP=$CPP
++
++fi
++  CPP=$ac_cv_prog_CPP
++else
++  ac_cv_prog_CPP=$CPP
++fi
++echo "$as_me:$LINENO: result: $CPP" >&5
++echo "${ECHO_T}$CPP" >&6
++ac_preproc_ok=false
++for ac_c_preproc_warn_flag in '' yes
++do
++  # Use a header file that comes with gcc, so configuring glibc
++  # with a fresh cross-compiler works.
++  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++  # <limits.h> exists even on freestanding compilers.
++  # On the NeXT, cc -E runs the code through the compiler's parser,
++  # not just through cpp. "Syntax error" is here to catch this case.
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
++                     Syntax error
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  :
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++  # Broken: fails on valid input.
++continue
++fi
++rm -f conftest.err conftest.$ac_ext
++  # OK, works on sane cases.  Now check whether non-existent headers
++  # can be detected and how.
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <ac_nonexistent.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  # Broken: success on invalid input.
++continue
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++  # Passes both tests.
++ac_preproc_ok=:
++break
++fi
++rm -f conftest.err conftest.$ac_ext
+-# Only perform the check for file, if the check method requires it
+-case $deplibs_check_method in
+-file_magic*)
+-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+-    echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
+-echo "configure:2401: checking for ${ac_tool_prefix}file" >&5
+-if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++done
++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
++rm -f conftest.err conftest.$ac_ext
++if $ac_preproc_ok; then
++  :
+ else
+-  case $MAGIC_CMD in
+-  /*)
+-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+-  ;;
+-  ?:/*)
+-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
+-  ;;
+-  *)
+-  ac_save_MAGIC_CMD="$MAGIC_CMD"
+-  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="/usr/bin:$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/${ac_tool_prefix}file; then
+-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+-      if test -n "$file_magic_test_file"; then
++  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
++See \`config.log' for more details." >&5
++echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }
++fi
++
++ac_ext=c
++ac_cpp='$CPP $CPPFLAGS'
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++
++echo "$as_me:$LINENO: checking for egrep" >&5
++echo $ECHO_N "checking for egrep... $ECHO_C" >&6
++if test "${ac_cv_prog_egrep+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
++    then ac_cv_prog_egrep='grep -E'
++    else ac_cv_prog_egrep='egrep'
++    fi
++fi
++echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
++echo "${ECHO_T}$ac_cv_prog_egrep" >&6
++ EGREP=$ac_cv_prog_egrep
++
++
++echo "$as_me:$LINENO: checking for ANSI C header files" >&5
++echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
++if test "${ac_cv_header_stdc+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <stdlib.h>
++#include <stdarg.h>
++#include <string.h>
++#include <float.h>
++
++int
++main ()
++{
++
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_header_stdc=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_header_stdc=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++
++if test $ac_cv_header_stdc = yes; then
++  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <string.h>
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++  $EGREP "memchr" >/dev/null 2>&1; then
++  :
++else
++  ac_cv_header_stdc=no
++fi
++rm -f conftest*
++
++fi
++
++if test $ac_cv_header_stdc = yes; then
++  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <stdlib.h>
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++  $EGREP "free" >/dev/null 2>&1; then
++  :
++else
++  ac_cv_header_stdc=no
++fi
++rm -f conftest*
++
++fi
++
++if test $ac_cv_header_stdc = yes; then
++  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
++  if test "$cross_compiling" = yes; then
++  :
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <ctype.h>
++#if ((' ' & 0x0FF) == 0x020)
++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
++#else
++# define ISLOWER(c) \
++                   (('a' <= (c) && (c) <= 'i') \
++                     || ('j' <= (c) && (c) <= 'r') \
++                     || ('s' <= (c) && (c) <= 'z'))
++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
++#endif
++
++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
++int
++main ()
++{
++  int i;
++  for (i = 0; i < 256; i++)
++    if (XOR (islower (i), ISLOWER (i))
++        || toupper (i) != TOUPPER (i))
++      exit(2);
++  exit (0);
++}
++_ACEOF
++rm -f conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  :
++else
++  echo "$as_me: program exited with status $ac_status" >&5
++echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++( exit $ac_status )
++ac_cv_header_stdc=no
++fi
++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
++fi
++fi
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
++echo "${ECHO_T}$ac_cv_header_stdc" >&6
++if test $ac_cv_header_stdc = yes; then
++
++cat >>confdefs.h <<\_ACEOF
++#define STDC_HEADERS 1
++_ACEOF
++
++fi
++
++# On IRIX 5.3, sys/types and inttypes.h are conflicting.
++
++
++
++
++
++
++
++
++
++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
++                  inttypes.h stdint.h unistd.h
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++echo "$as_me:$LINENO: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_includes_default
++
++#include <$ac_header>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  eval "$as_ac_Header=yes"
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++eval "$as_ac_Header=no"
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++fi
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++  cat >>confdefs.h <<_ACEOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++_ACEOF
++
++fi
++
++done
++
++
++
++for ac_header in dlfcn.h
++do
++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
++  echo "$as_me:$LINENO: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++fi
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++else
++  # Is the header compilable?
++echo "$as_me:$LINENO: checking $ac_header usability" >&5
++echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_includes_default
++#include <$ac_header>
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_header_compiler=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_header_compiler=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++echo "${ECHO_T}$ac_header_compiler" >&6
++
++# Is the header present?
++echo "$as_me:$LINENO: checking $ac_header presence" >&5
++echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <$ac_header>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
++else
++  ac_cpp_err=yes
++fi
++if test -z "$ac_cpp_err"; then
++  ac_header_preproc=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  ac_header_preproc=no
++fi
++rm -f conftest.err conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++echo "${ECHO_T}$ac_header_preproc" >&6
++
++# So?  What about this header?
++case $ac_header_compiler:$ac_header_preproc in
++  yes:no )
++    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
++    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------ ##
++## Report this to bug-autoconf@gnu.org. ##
++## ------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++  no:yes )
++    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
++echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
++    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
++    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------ ##
++## Report this to bug-autoconf@gnu.org. ##
++## ------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++esac
++echo "$as_me:$LINENO: checking for $ac_header" >&5
++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
++if eval "test \"\${$as_ac_Header+set}\" = set"; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  eval "$as_ac_Header=$ac_header_preproc"
++fi
++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
++
++fi
++if test `eval echo '${'$as_ac_Header'}'` = yes; then
++  cat >>confdefs.h <<_ACEOF
++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
++_ACEOF
++
++fi
++
++done
++
++
++
++
++
++
++# Only perform the check for file, if the check method requires it
++case $deplibs_check_method in
++file_magic*)
++  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
++    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
++echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
++if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  case $MAGIC_CMD in
++  /*)
++  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
++  ;;
++  ?:/*)
++  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path.
++  ;;
++  *)
++  ac_save_MAGIC_CMD="$MAGIC_CMD"
++  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
++  ac_dummy="/usr/bin:$PATH"
++  for ac_dir in $ac_dummy; do
++    test -z "$ac_dir" && ac_dir=.
++    if test -f $ac_dir/${ac_tool_prefix}file; then
++      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
++      if test -n "$file_magic_test_file"; then
+       case $deplibs_check_method in
+       "file_magic "*)
+         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+@@ -2451,17 +4493,19 @@
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if test -n "$MAGIC_CMD"; then
+-  echo "$ac_t""$MAGIC_CMD" 1>&6
++  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
++echo "${ECHO_T}$MAGIC_CMD" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+ if test -z "$lt_cv_path_MAGIC_CMD"; then
+   if test -n "$ac_tool_prefix"; then
+-    echo $ac_n "checking for file""... $ac_c" 1>&6
+-echo "configure:2463: checking for file" >&5
+-if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++    echo "$as_me:$LINENO: checking for file" >&5
++echo $ECHO_N "checking for file... $ECHO_C" >&6
++if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   case $MAGIC_CMD in
+   /*)
+@@ -2513,9 +4557,11 @@
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if test -n "$MAGIC_CMD"; then
+-  echo "$ac_t""$MAGIC_CMD" 1>&6
++  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
++echo "${ECHO_T}$MAGIC_CMD" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+   else
+@@ -2527,138 +4573,164 @@
+   ;;
+ esac
+-# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
++if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2534: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_RANLIB+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$RANLIB"; then
+   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-RANLIB="$ac_cv_prog_RANLIB"
++RANLIB=$ac_cv_prog_RANLIB
+ if test -n "$RANLIB"; then
+-  echo "$ac_t""$RANLIB" 1>&6
++  echo "$as_me:$LINENO: result: $RANLIB" >&5
++echo "${ECHO_T}$RANLIB" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-
++fi
+ if test -z "$ac_cv_prog_RANLIB"; then
+-if test -n "$ac_tool_prefix"; then
++  ac_ct_RANLIB=$RANLIB
+   # Extract the first word of "ranlib", so it can be a program name with args.
+ set dummy ranlib; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2566: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  if test -n "$RANLIB"; then
+-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
++  if test -n "$ac_ct_RANLIB"; then
++  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_RANLIB="ranlib"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
+-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_RANLIB="ranlib"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
++  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+ fi
+ fi
+-RANLIB="$ac_cv_prog_RANLIB"
+-if test -n "$RANLIB"; then
+-  echo "$ac_t""$RANLIB" 1>&6
++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
++if test -n "$ac_ct_RANLIB"; then
++  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
++echo "${ECHO_T}$ac_ct_RANLIB" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
++  RANLIB=$ac_ct_RANLIB
+ else
+-  RANLIB=":"
+-fi
++  RANLIB="$ac_cv_prog_RANLIB"
+ fi
+-# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
++if test -n "$ac_tool_prefix"; then
++  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+ set dummy ${ac_tool_prefix}strip; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2601: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_STRIP+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   if test -n "$STRIP"; then
+   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+ fi
+ fi
+-STRIP="$ac_cv_prog_STRIP"
++STRIP=$ac_cv_prog_STRIP
+ if test -n "$STRIP"; then
+-  echo "$ac_t""$STRIP" 1>&6
++  echo "$as_me:$LINENO: result: $STRIP" >&5
++echo "${ECHO_T}$STRIP" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-
++fi
+ if test -z "$ac_cv_prog_STRIP"; then
+-if test -n "$ac_tool_prefix"; then
++  ac_ct_STRIP=$STRIP
+   # Extract the first word of "strip", so it can be a program name with args.
+ set dummy strip; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:2633: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  if test -n "$STRIP"; then
+-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
++  if test -n "$ac_ct_STRIP"; then
++  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+ else
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_prog_STRIP="strip"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
+-  test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP=":"
++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_prog_ac_ct_STRIP="strip"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
++  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+ fi
+ fi
+-STRIP="$ac_cv_prog_STRIP"
+-if test -n "$STRIP"; then
+-  echo "$ac_t""$STRIP" 1>&6
++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
++if test -n "$ac_ct_STRIP"; then
++  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
++echo "${ECHO_T}$ac_ct_STRIP" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
++  STRIP=$ac_ct_STRIP
+ else
+-  STRIP=":"
+-fi
++  STRIP="$ac_cv_prog_STRIP"
+ fi
+@@ -2668,9 +4740,8 @@
+ # Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+ if test "${enable_libtool_lock+set}" = set; then
+   enableval="$enable_libtool_lock"
+-  :
+-fi
++fi;
+ test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+ # Some flags need to be propagated to the compiler or linker for good
+@@ -2678,8 +4749,12 @@
+ case $host in
+ *-*-irix6*)
+   # Find out which ABI we are using.
+-  echo '#line 2682 "configure"' > conftest.$ac_ext
+-  if { (eval echo configure:2683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++  echo '#line 4752 "configure"' > conftest.$ac_ext
++  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; then
+     case `/usr/bin/file conftest.$ac_objext` in
+     *32-bit*)
+       LD="${LD-ld} -32"
+@@ -2699,47 +4774,64 @@
+   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+   SAVE_CFLAGS="$CFLAGS"
+   CFLAGS="$CFLAGS -belf"
+-  echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
+-echo "configure:2704: checking whether the C compiler needs -belf" >&5
+-if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
++echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
++if test "${lt_cv_cc_needs_belf+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  
++
++
+      ac_ext=c
+-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-cross_compiling=$ac_cv_prog_cc_cross
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
++
++     cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-     cat > conftest.$ac_ext <<EOF
+-#line 2717 "configure"
+-#include "confdefs.h"
+-
+-int main() {
++int
++main ()
++{
+-; return 0; }
+-EOF
+-if { (eval echo configure:2724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+   lt_cv_cc_needs_belf=yes
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  lt_cv_cc_needs_belf=no
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++lt_cv_cc_needs_belf=no
+ fi
+-rm -f conftest*
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+      ac_ext=c
+-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+-cross_compiling=$ac_cv_prog_cc_cross
++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
++ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ fi
+-
+-echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6
++echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
++echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+     CFLAGS="$SAVE_CFLAGS"
+@@ -2824,16 +4916,23 @@
+ old_postuninstall_cmds=
+ if test -n "$RANLIB"; then
++  case $host_os in
++  openbsd*)
++    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
++    ;;
++  *)
++    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
++    ;;
++  esac
+   old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+-  old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+ fi
+ # Allow CC to be a program name with arguments.
+ set dummy $CC
+ compiler="$2"
+-echo $ac_n "checking for objdir""... $ac_c" 1>&6
+-echo "configure:2837: checking for objdir" >&5
++echo "$as_me:$LINENO: checking for objdir" >&5
++echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+ rm -f .libs 2>/dev/null
+ mkdir .libs 2>/dev/null
+ if test -d .libs; then
+@@ -2843,7 +4942,9 @@
+   objdir=_libs
+ fi
+ rmdir .libs 2>/dev/null
+-echo "$ac_t""$objdir" 1>&6
++echo "$as_me:$LINENO: result: $objdir" >&5
++echo "${ECHO_T}$objdir" >&6
++
+ # Check whether --with-pic or --without-pic was given.
+@@ -2852,17 +4953,16 @@
+   pic_mode="$withval"
+ else
+   pic_mode=default
+-fi
+-
++fi;
+ test -z "$pic_mode" && pic_mode=default
+ # We assume here that the value for lt_cv_prog_cc_pic will not be cached
+ # in isolation, and that seeing it set (from the cache) indicates that
+ # the associated values are set (in the cache) correctly too.
+-echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6
+-echo "configure:2864: checking for $compiler option to produce PIC" >&5
+-if eval "test \"`echo '$''{'lt_cv_prog_cc_pic'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
++echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
++if test "${lt_cv_prog_cc_pic+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+    lt_cv_prog_cc_pic=
+   lt_cv_prog_cc_shlib=
+@@ -2882,7 +4982,7 @@
+       # libC (AIX C++ library), which obviously doesn't included in libraries
+       # list by gcc. This cause undefined symbols with -static flags.
+       # This hack allows C programs to be linked with "-static -ldl", but
+-      # we not sure about C++ programs.
++      # not sure about C++ programs.
+       lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC"
+       ;;
+     amigaos*)
+@@ -2891,7 +4991,7 @@
+       # like `-m68040'.
+       lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4'
+       ;;
+-    beos* | irix5* | irix6* | osf3* | osf4* | osf5*)
++    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+       # PIC is the default for these OSes.
+       ;;
+     darwin* | rhapsody*)
+@@ -2917,13 +5017,13 @@
+     # PORTME Check for PIC flags for the system compiler.
+     case $host_os in
+     aix3* | aix4* | aix5*)
++      lt_cv_prog_cc_wl='-Wl,'
+       # All AIX code is PIC.
+       if test "$host_cpu" = ia64; then
+-        # AIX 5 now supports IA64 processor
+-        lt_cv_prog_cc_static='-Bstatic'
+-        lt_cv_prog_cc_wl='-Wl,'
++      # AIX 5 now supports IA64 processor
++      lt_cv_prog_cc_static='-Bstatic'
+       else
+-        lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
++      lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp'
+       fi
+       ;;
+@@ -2934,7 +5034,7 @@
+       lt_cv_prog_cc_pic='+Z'
+       ;;
+-    irix5* | irix6*)
++    irix5* | irix6* | nonstopux*)
+       lt_cv_prog_cc_wl='-Wl,'
+       lt_cv_prog_cc_static='-non_shared'
+       # PIC (with -KPIC) is the default.
+@@ -2978,11 +5078,7 @@
+     sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+       lt_cv_prog_cc_pic='-KPIC'
+       lt_cv_prog_cc_static='-Bstatic'
+-      if test "x$host_vendor" = xsni; then
+-        lt_cv_prog_cc_wl='-LD'
+-      else
+-        lt_cv_prog_cc_wl='-Wl,'
+-      fi
++      lt_cv_prog_cc_wl='-Wl,'
+       ;;
+     uts4*)
+@@ -3006,28 +5102,48 @@
+ fi
+ if test -z "$lt_cv_prog_cc_pic"; then
+-  echo "$ac_t""none" 1>&6
++  echo "$as_me:$LINENO: result: none" >&5
++echo "${ECHO_T}none" >&6
+ else
+-  echo "$ac_t""$lt_cv_prog_cc_pic" 1>&6
++  echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5
++echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6
+   # Check to make sure the pic_flag actually works.
+-  echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6
+-echo "configure:3016: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
+-  if eval "test \"`echo '$''{'lt_cv_prog_cc_pic_works'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5
++echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6
++  if test "${lt_cv_prog_cc_pic_works+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+       save_CFLAGS="$CFLAGS"
+     CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC"
+-    cat > conftest.$ac_ext <<EOF
+-#line 3023 "configure"
+-#include "confdefs.h"
++    cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
++int
++main ()
++{
+-; return 0; }
+-EOF
+-if { (eval echo configure:3030: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+         case $host_os in
+       hpux9* | hpux10* | hpux11*)
+       # On HP-UX, both CC and GCC only warn that PIC is supported... then
+@@ -3043,17 +5159,17 @@
+       lt_cv_prog_cc_pic_works=yes
+       ;;
+       esac
+-    
++
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-        lt_cv_prog_cc_pic_works=no
+-    
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++      lt_cv_prog_cc_pic_works=no
++
+ fi
+-rm -f conftest*
++rm -f conftest.$ac_objext conftest.$ac_ext
+     CFLAGS="$save_CFLAGS"
+-  
++
+ fi
+@@ -3064,43 +5180,65 @@
+     lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic"
+   fi
+-  echo "$ac_t""$lt_cv_prog_cc_pic_works" 1>&6
++  echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5
++echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6
+ fi
+ # Check for any special shared library compilation flags.
+ if test -n "$lt_cv_prog_cc_shlib"; then
+-  echo "configure: warning: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" 1>&2
++  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5
++echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;}
+   if echo "$old_CC $old_CFLAGS " | egrep -e "[        ]$lt_cv_prog_cc_shlib[  ]" >/dev/null; then :
+   else
+-   echo "configure: warning: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" 1>&2
++   { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
++echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
+     lt_cv_prog_cc_can_build_shared=no
+   fi
+ fi
+-echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6
+-echo "configure:3082: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
+-if eval "test \"`echo '$''{'lt_cv_prog_cc_static_works'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5
++echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6
++if test "${lt_cv_prog_cc_static_works+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+     lt_cv_prog_cc_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static"
+-  cat > conftest.$ac_ext <<EOF
+-#line 3090 "configure"
+-#include "confdefs.h"
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
++int
++main ()
++{
+-; return 0; }
+-EOF
+-if { (eval echo configure:3097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+   lt_cv_prog_cc_static_works=yes
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
+ fi
+-rm -f conftest*
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+   LDFLAGS="$save_LDFLAGS"
+ fi
+@@ -3108,7 +5246,8 @@
+ # Belt *and* braces to stop my trousers falling down:
+ test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static=
+-echo "$ac_t""$lt_cv_prog_cc_static_works" 1>&6
++echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5
++echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6
+ pic_flag="$lt_cv_prog_cc_pic"
+ special_shlib_compile_flags="$lt_cv_prog_cc_shlib"
+@@ -3119,12 +5258,12 @@
+ # Check to see if options -o and -c are simultaneously supported by compiler
+-echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6
+-echo "configure:3124: checking if $compiler supports -c -o file.$ac_objext" >&5
+-if eval "test \"`echo '$''{'lt_cv_compiler_c_o'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
++echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
++if test "${lt_cv_compiler_c_o+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  
++
+ $rm -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+@@ -3139,7 +5278,7 @@
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -o out/conftest2.$ac_objext"
+ compiler_c_o=no
+-if { (eval echo configure:3143: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
++if { (eval echo configure:5281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then
+   # The compiler can only warn and ignore the option if not recognized
+   # So say no if there are warnings
+   if test -s out/conftest.err; then
+@@ -3163,29 +5302,50 @@
+ fi
+ compiler_c_o=$lt_cv_compiler_c_o
+-echo "$ac_t""$compiler_c_o" 1>&6
++echo "$as_me:$LINENO: result: $compiler_c_o" >&5
++echo "${ECHO_T}$compiler_c_o" >&6
+ if test x"$compiler_c_o" = x"yes"; then
+   # Check to see if we can write to a .lo
+-  echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6
+-echo "configure:3172: checking if $compiler supports -c -o file.lo" >&5
+-  if eval "test \"`echo '$''{'lt_cv_compiler_o_lo'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5
++echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6
++  if test "${lt_cv_compiler_o_lo+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  
++
+   lt_cv_compiler_o_lo=no
+   save_CFLAGS="$CFLAGS"
+   CFLAGS="$CFLAGS -c -o conftest.lo"
+-  cat > conftest.$ac_ext <<EOF
+-#line 3181 "configure"
+-#include "confdefs.h"
++  save_objext="$ac_objext"
++  ac_objext=lo
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
++int
++main ()
++{
+ int some_variable = 0;
+-; return 0; }
+-EOF
+-if { (eval echo configure:3188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+       # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+@@ -3193,18 +5353,21 @@
+     else
+       lt_cv_compiler_o_lo=yes
+     fi
+-  
++
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
+ fi
+-rm -f conftest*
++rm -f conftest.$ac_objext conftest.$ac_ext
++  ac_objext="$save_objext"
+   CFLAGS="$save_CFLAGS"
+-  
++
+ fi
+   compiler_o_lo=$lt_cv_compiler_o_lo
+-  echo "$ac_t""$compiler_o_lo" 1>&6
++  echo "$as_me:$LINENO: result: $compiler_o_lo" >&5
++echo "${ECHO_T}$compiler_o_lo" >&6
+ else
+   compiler_o_lo=no
+ fi
+@@ -3213,17 +5376,19 @@
+ hard_links="nottested"
+ if test "$compiler_c_o" = no && test "$need_locks" != no; then
+   # do not overwrite the value of need_locks provided by the user
+-  echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6
+-echo "configure:3218: checking if we can lock with hard links" >&5
++  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
++echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+   hard_links=yes
+   $rm conftest*
+   ln conftest.a conftest.b 2>/dev/null && hard_links=no
+   touch conftest.a
+   ln conftest.a conftest.b 2>&5 || hard_links=no
+   ln conftest.a conftest.b 2>/dev/null && hard_links=no
+-  echo "$ac_t""$hard_links" 1>&6
++  echo "$as_me:$LINENO: result: $hard_links" >&5
++echo "${ECHO_T}$hard_links" >&6
+   if test "$hard_links" = no; then
+-    echo "configure: warning: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" 1>&2
++    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
++echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+     need_locks=warn
+   fi
+ else
+@@ -3232,22 +5397,40 @@
+ if test "$GCC" = yes; then
+   # Check to see if options -fno-rtti -fno-exceptions are supported by compiler
+-  echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6
+-echo "configure:3237: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
++  echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
++echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+   echo "int some_variable = 0;" > conftest.$ac_ext
+   save_CFLAGS="$CFLAGS"
+   CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext"
+   compiler_rtti_exceptions=no
+-  cat > conftest.$ac_ext <<EOF
+-#line 3243 "configure"
+-#include "confdefs.h"
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
++int
++main ()
++{
+ int some_variable = 0;
+-; return 0; }
+-EOF
+-if { (eval echo configure:3250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+-  rm -rf conftest*
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
+       # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+@@ -3255,14 +5438,16 @@
+     else
+       compiler_rtti_exceptions=yes
+     fi
+-  
++
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
+ fi
+-rm -f conftest*
++rm -f conftest.$ac_objext conftest.$ac_ext
+   CFLAGS="$save_CFLAGS"
+-  echo "$ac_t""$compiler_rtti_exceptions" 1>&6
++  echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5
++echo "${ECHO_T}$compiler_rtti_exceptions" >&6
+   if test "$compiler_rtti_exceptions" = "yes"; then
+     no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions'
+@@ -3272,8 +5457,8 @@
+ fi
+ # See if the linker supports building shared libraries.
+-echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6
+-echo "configure:3277: checking whether the linker ($LD) supports shared libraries" >&5
++echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5
++echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6
+ allow_undefined_flag=
+ no_undefined_flag=
+@@ -3314,7 +5499,7 @@
+ extract_expsyms_cmds=
+ case $host_os in
+-cygwin* | mingw* | pw32* )
++cygwin* | mingw* | pw32*)
+   # FIXME: the MSVC++ port hasn't been tested in a loooong time
+   # When not using gcc, we currently assume that we are using
+   # Microsoft Visual C++.
+@@ -3322,7 +5507,9 @@
+     with_gnu_ld=no
+   fi
+   ;;
+-
++openbsd*)
++  with_gnu_ld=no
++  ;;
+ esac
+ ld_shlibs=yes
+@@ -3409,7 +5596,7 @@
+     # can override, but on older systems we have to supply one (in ltdll.c)
+     if test "x$lt_cv_need_dllmain" = "xyes"; then
+       ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext "
+-      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < [$]0 > $output_objdir/$soname-ltdll.c~
++      ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~
+       test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~'
+     else
+       ltdll_obj=
+@@ -3427,19 +5614,20 @@
+     # If the export-symbols file already is a .def file (1st line
+     # is EXPORTS), use it as is.
+     # If DATA tags from a recent dlltool are present, honour them!
+-    archive_expsym_cmds='if test "x`head -1 $export_symbols`" = xEXPORTS; then
+-        cp $export_symbols $output_objdir/$soname-def;
++    archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then
++      cp $export_symbols $output_objdir/$soname-def;
+       else
+-        echo EXPORTS > $output_objdir/$soname-def;
+-        _lt_hint=1;
+-        cat $export_symbols | while read symbol; do
+-         set dummy \$symbol;
+-         case \$# in
+-           2) echo "   \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
+-           *) echo "     \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
+-         esac;
+-         _lt_hint=`expr 1 + \$_lt_hint`;
+-        done;
++      echo EXPORTS > $output_objdir/$soname-def;
++      _lt_hint=1;
++      cat $export_symbols | while read symbol; do
++       set dummy \$symbol;
++       case \$# in
++         2) echo "   \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;;
++         4) echo "   \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;;
++         *) echo "     \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;;
++       esac;
++       _lt_hint=`expr 1 + \$_lt_hint`;
++      done;
+       fi~
+       '"$ltdll_cmds"'
+       $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~
+@@ -3534,80 +5722,98 @@
+     ;;
+   aix4* | aix5*)
++    if test "$host_cpu" = ia64; then
++      # On IA64, the linker does run time linking by default, so we don't
++      # have to do anything special.
++      aix_use_runtimelinking=no
++      exp_sym_flag='-Bexport'
++      no_entry_flag=""
++    else
++      aix_use_runtimelinking=no
++
++      # Test if we are trying to use run time linking or normal
++      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
++      # need to do runtime linking.
++      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
++      for ld_flag in $LDFLAGS; do
++        case $ld_flag in
++        *-brtl*)
++          aix_use_runtimelinking=yes
++          break
++        ;;
++        esac
++      done
++      esac
++
++      exp_sym_flag='-bexport'
++      no_entry_flag='-bnoentry'
++    fi
++
+     # When large executables or shared objects are built, AIX ld can
+     # have problems creating the table of contents.  If linking a library
+     # or program results in "error TOC overflow" add -mminimal-toc to
+     # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+     # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
++    hardcode_direct=yes
+     archive_cmds=''
+     hardcode_libdir_separator=':'
+     if test "$GCC" = yes; then
+-      collect2name=`${CC} -print-prog-name=collect2`
+-      if test -f "$collect2name" && \
+-       strings "$collect2name" | grep resolve_lib_name >/dev/null
+-      then
+-      # We have reworked collect2
+-      hardcode_direct=yes
+-      else
+-        # We have old collect2
+-        hardcode_direct=unsupported
+-        # It fails to find uninstalled libraries when the uninstalled
+-        # path is not listed in the libpath.  Setting hardcode_minus_L
+-        # to unsupported forces relinking
+-        hardcode_minus_L=yes
+-        hardcode_libdir_flag_spec='-L$libdir'
+-        hardcode_libdir_separator=
+-      fi
+-      shared_flag='-shared'
+-    else
++      case $host_os in aix4.[012]|aix4.[012].*)
++      collect2name=`${CC} -print-prog-name=collect2`
++      if test -f "$collect2name" && \
++        strings "$collect2name" | grep resolve_lib_name >/dev/null
++      then
++        # We have reworked collect2
++        hardcode_direct=yes
++      else
++        # We have old collect2
++        hardcode_direct=unsupported
++        # It fails to find uninstalled libraries when the uninstalled
++        # path is not listed in the libpath.  Setting hardcode_minus_L
++        # to unsupported forces relinking
++        hardcode_minus_L=yes
++        hardcode_libdir_flag_spec='-L$libdir'
++        hardcode_libdir_separator=
++      fi
++      esac
++
++      shared_flag='-shared'
++    else
++      # not using gcc
+       if test "$host_cpu" = ia64; then
+-        shared_flag='-G'
++      shared_flag='${wl}-G'
+       else
+-        shared_flag='${wl}-bM:SRE'
++      if test "$aix_use_runtimelinking" = yes; then
++        shared_flag='${wl}-G'
++      else
++        shared_flag='${wl}-bM:SRE'
++      fi
+       fi
+-      hardcode_direct=yes
+     fi
+-    if test "$host_cpu" = ia64; then
+-      # On IA64, the linker does run time linking by default, so we don't
+-      # have to do anything special.
+-      aix_use_runtimelinking=no
+-      exp_sym_flag='-Bexport'
+-      no_entry_flag=""
+-    else
+-      # Test if we are trying to use run time linking, or normal AIX style linking.
+-      # If -brtl is somewhere in LDFLAGS, we need to do run time linking.
+-      aix_use_runtimelinking=no
+-      for ld_flag in $LDFLAGS; do
+-        if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl" ); then
+-          aix_use_runtimelinking=yes
+-          break
+-        fi
+-      done
+-      exp_sym_flag='-bexport'
+-      no_entry_flag='-bnoentry'
+-    fi
+     # It seems that -bexpall can do strange things, so it is better to
+     # generate a list of symbols to export.
+     always_export_symbols=yes
+     if test "$aix_use_runtimelinking" = yes; then
++      # Warning - without using the other runtime loading flags (-brtl),
++      # -berok will link without error, but may produce a broken library.
++      allow_undefined_flag='-berok'
+       hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+-      allow_undefined_flag=' -Wl,-G'
+-      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++      archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+       if test "$host_cpu" = ia64; then
+-        hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+-       allow_undefined_flag="-znodefs"
+-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
++      hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
++      allow_undefined_flag="-z nodefs"
++      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+       else
+-        hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+-        # Warning - without using the other run time loading flags, -berok will
+-        #           link without error, but may produce a broken library.
+-        allow_undefined_flag='${wl}-berok'
+-        # This is a bit strange, but is similar to how AIX traditionally builds
+-        # it's shared libraries.
+-        archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname'
++      hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
++      # Warning - without using the other run time loading flags,
++      # -berok will link without error, but may produce a broken library.
++      allow_undefined_flag='${wl}-berok'
++      # This is a bit strange, but is similar to how AIX traditionally builds
++      # it's shared libraries.
++      archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $output_objdir/$libname$release.a $output_objdir/$soname'
+       fi
+     fi
+     ;;
+@@ -3639,11 +5845,19 @@
+     ;;
+   darwin* | rhapsody*)
+-    allow_undefined_flag='-undefined suppress'
++    case "$host_os" in
++    rhapsody* | darwin1.[012])
++      allow_undefined_flag='-undefined suppress'
++      ;;
++    *) # Darwin 1.3 on
++      allow_undefined_flag='-flat_namespace -undefined suppress'
++      ;;
++    esac
+     # FIXME: Relying on posixy $() will cause problems for
+     #        cross-compilation, but unfortunately the echo tests do not
+-    #        yet detect zsh echo's removal of \ escapes.
+-    archive_cmds='$CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib $libobjs $deplibs$linkopts -install_name $rpath/$soname $(test -n "$verstring" -a x$verstring != x0.0 && echo $verstring)'
++    #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
++    #      `"' quotes if we put them in here... so don't!
++    archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)'
+     # We need to add '_' to the symbols in $export_symbols first
+     #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols'
+     hardcode_direct=yes
+@@ -3695,13 +5909,14 @@
+     export_dynamic_flag_spec='${wl}-E'
+     ;;
+-  irix5* | irix6*)
++  irix5* | irix6* | nonstopux*)
+     if test "$GCC" = yes; then
+       archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
++      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+     else
+       archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
++      hardcode_libdir_flag_spec='-rpath $libdir'
+     fi
+-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+     hardcode_libdir_separator=:
+     link_all_deplibs=yes
+     ;;
+@@ -3718,7 +5933,7 @@
+     ;;
+   newsos6)
+-    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts'
++    archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+     hardcode_direct=yes
+     hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+     hardcode_libdir_separator=:
+@@ -3726,10 +5941,24 @@
+     ;;
+   openbsd*)
+-    archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+-    hardcode_libdir_flag_spec='-R$libdir'
+     hardcode_direct=yes
+     hardcode_shlibpath_var=no
++    if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
++      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++      export_dynamic_flag_spec='${wl}-E'
++    else
++      case "$host_os" in
++      openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
++      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
++      hardcode_libdir_flag_spec='-R$libdir'
++        ;;
++      *)
++        archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
++        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
++        ;;
++      esac
++    fi
+     ;;
+   os2*)
+@@ -3774,10 +6003,39 @@
+     hardcode_shlibpath_var=no
+     runpath_var=LD_RUN_PATH
+     hardcode_runpath_var=yes
++    export_dynamic_flag_spec='${wl}-Bexport'
+     ;;
+   solaris*)
++    # gcc --version < 3.0 without binutils cannot create self contained
++    # shared libraries reliably, requiring libgcc.a to resolve some of
++    # the object symbols generated in some cases.  Libraries that use
++    # assert need libgcc.a to resolve __eprintf, for example.  Linking
++    # a copy of libgcc.a into every shared library to guarantee resolving
++    # such symbols causes other problems:  According to Tim Van Holder
++    # <tim.van.holder@pandora.be>, C++ libraries end up with a separate
++    # (to the application) exception stack for one thing.
+     no_undefined_flag=' -z defs'
++    if test "$GCC" = yes; then
++      case `$CC --version 2>/dev/null` in
++      [12].*)
++      cat <<EOF 1>&2
++
++*** Warning: Releases of GCC earlier than version 3.0 cannot reliably
++*** create self contained shared libraries on Solaris systems, without
++*** introducing a dependency on libgcc.a.  Therefore, libtool is disabling
++*** -no-undefined support, which will at least allow you to build shared
++*** libraries.  However, you may find that when you link such libraries
++*** into an application without using GCC, you have to manually add
++*** \`gcc --print-libgcc-file-name\` to the link command.  We urge you to
++*** upgrade to a newer version of GCC.  Another option is to rebuild your
++*** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer.
++
++EOF
++        no_undefined_flag=
++      ;;
++      esac
++    fi
+     # $CC -shared without GNU ld will not create a library from C++
+     # object files and a static libstdc++, better avoid it by now
+     archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+@@ -3808,13 +6066,23 @@
+     ;;
+   sysv4)
+-    if test "x$host_vendor" = xsno; then
+-      archive_cmds='$LD -G -Bsymbolic -h $soname -o $lib $libobjs $deplibs $linkopts'
+-      hardcode_direct=yes # is this really true???
+-    else
+-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+-      hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+-    fi
++    case $host_vendor in
++      sni)
++        archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
++        hardcode_direct=yes # is this really true???
++        ;;
++      siemens)
++        ## LD is ld it makes a PLAMLIB
++        ## CC just makes a GrossModule.
++        archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
++        reload_cmds='$CC -r -o $output$reload_objs'
++        hardcode_direct=no
++        ;;
++      motorola)
++        archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
++        hardcode_direct=no #Motorola manual says yes, but my tests say they lie
++        ;;
++    esac
+     runpath_var='LD_RUN_PATH'
+     hardcode_shlibpath_var=no
+     ;;
+@@ -3884,12 +6152,13 @@
+     ;;
+   esac
+ fi
+-echo "$ac_t""$ld_shlibs" 1>&6
++echo "$as_me:$LINENO: result: $ld_shlibs" >&5
++echo "${ECHO_T}$ld_shlibs" >&6
+ test "$ld_shlibs" = no && can_build_shared=no
+ # Check hardcoding attributes.
+-echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6
+-echo "configure:3893: checking how to hardcode library paths into programs" >&5
++echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
++echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+ hardcode_action=
+ if test -n "$hardcode_libdir_flag_spec" || \
+    test -n "$runpath_var"; then
+@@ -3912,26 +6181,29 @@
+   # directories.
+   hardcode_action=unsupported
+ fi
+-echo "$ac_t""$hardcode_action" 1>&6
++echo "$as_me:$LINENO: result: $hardcode_action" >&5
++echo "${ECHO_T}$hardcode_action" >&6
+ striplib=
+ old_striplib=
+-echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6
+-echo "configure:3921: checking whether stripping libraries is possible" >&5
++echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
++echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+ if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+-  echo "$ac_t""yes" 1>&6
++  echo "$as_me:$LINENO: result: yes" >&5
++echo "${ECHO_T}yes" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ test -z "$deplibs_check_method" && deplibs_check_method=unknown
+ # PORTME Fill in your ld.so characteristics
+-echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6
+-echo "configure:3935: checking dynamic linker characteristics" >&5
++echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
++echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+ library_names_spec=
+ libname_spec='lib$name'
+ soname_spec=
+@@ -3958,6 +6230,9 @@
+ aix4* | aix5*)
+   version_type=linux
++  need_lib_prefix=no
++  need_version=no
++  hardcode_into_libs=yes
+   if test "$host_cpu" = ia64; then
+     # AIX 5 supports IA64
+     library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so'
+@@ -3969,22 +6244,24 @@
+     # depend on `.', always an invalid library.  This was fixed in
+     # development snapshots of GCC prior to 3.0.
+     case $host_os in
+-       aix4 | aix4.[01] | aix4.[01].*)
+-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+-           echo ' yes '
+-           echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+-        :
+-      else
+-        can_build_shared=no
+-      fi
+-      ;;
++      aix4 | aix4.[01] | aix4.[01].*)
++      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
++           echo ' yes '
++           echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
++        :
++      else
++        can_build_shared=no
++      fi
++      ;;
+     esac
+-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+-    # soname into executable. Probably we can add versioning support to
+-    # collect2, so additional links can be useful in future.
++    # AIX (on Power*) has no versioning support, so currently we can
++    # not hardcode correct soname into executable. Probably we can
++    # add versioning support to collect2, so additional links can
++    # be useful in future.
+     if test "$aix_use_runtimelinking" = yes; then
+-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so instead of
+-      # lib<name>.a to let people know that these are not typical AIX shared libraries.
++      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
++      # instead of lib<name>.a to let people know that these are not
++      # typical AIX shared libraries.
+       library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+     else
+       # We preserve .a as extension for shared libraries through AIX4.2
+@@ -3993,8 +6270,8 @@
+       soname_spec='${libname}${release}.so$major'
+     fi
+     shlibpath_var=LIBPATH
+-    deplibs_check_method=pass_all
+   fi
++  hardcode_into_libs=yes
+   ;;
+ amigaos*)
+@@ -4042,7 +6319,7 @@
+     ;;
+   yes,mingw*)
+     library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll'
+-    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
++    sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"`
+     ;;
+   yes,pw32*)
+     library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll'
+@@ -4074,6 +6351,18 @@
+   dynamic_linker=no
+   ;;
++freebsd*-gnu*)
++  version_type=linux
++  need_lib_prefix=no
++  need_version=no
++  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
++  soname_spec='${libname}${release}.so$major'
++  shlibpath_var=LD_LIBRARY_PATH
++  shlibpath_overrides_runpath=no
++  hardcode_into_libs=yes
++  dynamic_linker='GNU/FreeBSD ld.so'
++  ;;
++
+ freebsd*)
+   objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+   version_type=freebsd-$objformat
+@@ -4125,14 +6414,17 @@
+   postinstall_cmds='chmod 555 $lib'
+   ;;
+-irix5* | irix6*)
+-  version_type=irix
++irix5* | irix6* | nonstopux*)
++  case $host_os in
++    nonstopux*) version_type=nonstopux ;;
++    *)          version_type=irix ;;
++  esac
+   need_lib_prefix=no
+   need_version=no
+   soname_spec='${libname}${release}.so$major'
+   library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so'
+   case $host_os in
+-  irix5*)
++  irix5* | nonstopux*)
+     libsuff= shlibsuff=
+     ;;
+   *)
+@@ -4206,9 +6498,19 @@
+ openbsd*)
+   version_type=sunos
+-  if test "$with_gnu_ld" = yes; then
+-    need_lib_prefix=no
+-    need_version=no
++  need_lib_prefix=no
++  need_version=no
++  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
++    case "$host_os" in
++    openbsd2.[89] | openbsd2.[89].*)
++      shlibpath_overrides_runpath=no
++      ;;
++    *)
++      shlibpath_overrides_runpath=yes
++      ;;
++    esac
++  else
++    shlibpath_overrides_runpath=yes
+   fi
+   library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix'
+   finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+@@ -4226,11 +6528,13 @@
+ osf3* | osf4* | osf5*)
+   version_type=osf
+   need_version=no
+-  soname_spec='${libname}${release}.so'
+-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
++  need_lib_prefix=no
++  soname_spec='${libname}${release}.so$major'
++  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
+   shlibpath_var=LD_LIBRARY_PATH
+   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
++  hardcode_into_libs=yes
+   ;;
+ sco3.2v5*)
+@@ -4273,6 +6577,12 @@
+   case $host_vendor in
+     sni)
+       shlibpath_overrides_runpath=no
++      need_lib_prefix=no
++      export_dynamic_flag_spec='${wl}-Blargedynsym'
++      runpath_var=LD_RUN_PATH
++      ;;
++    siemens)
++      need_lib_prefix=no
+       ;;
+     motorola)
+       need_lib_prefix=no
+@@ -4312,13 +6622,46 @@
+   dynamic_linker=no
+   ;;
+ esac
+-echo "$ac_t""$dynamic_linker" 1>&6
++echo "$as_me:$LINENO: result: $dynamic_linker" >&5
++echo "${ECHO_T}$dynamic_linker" >&6
+ test "$dynamic_linker" = no && can_build_shared=no
+ # Report the final consequences.
+-echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6
+-echo "configure:4321: checking if libtool supports shared libraries" >&5
+-echo "$ac_t""$can_build_shared" 1>&6
++echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
++echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
++echo "$as_me:$LINENO: result: $can_build_shared" >&5
++echo "${ECHO_T}$can_build_shared" >&6
++
++echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
++echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
++test "$can_build_shared" = "no" && enable_shared=no
++
++# On AIX, shared libraries and static libraries use the same namespace, and
++# are all built from PIC.
++case "$host_os" in
++aix3*)
++  test "$enable_shared" = yes && enable_static=no
++  if test -n "$RANLIB"; then
++    archive_cmds="$archive_cmds~\$RANLIB \$lib"
++    postinstall_cmds='$RANLIB $lib'
++  fi
++  ;;
++
++aix4*)
++  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
++    test "$enable_shared" = yes && enable_static=no
++  fi
++  ;;
++esac
++echo "$as_me:$LINENO: result: $enable_shared" >&5
++echo "${ECHO_T}$enable_shared" >&6
++
++echo "$as_me:$LINENO: checking whether to build static libraries" >&5
++echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
++# Make sure either enable_shared or enable_static is yes.
++test "$enable_shared" = yes || enable_static=yes
++echo "$as_me:$LINENO: result: $enable_static" >&5
++echo "${ECHO_T}$enable_static" >&6
+ if test "$hardcode_action" = relink; then
+   # Fast installation is not supported
+@@ -4355,224 +6698,398 @@
+    ;;
+   *)
+-    echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+-echo "configure:4360: checking for dlopen in -ldl" >&5
+-ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  ac_save_LIBS="$LIBS"
+-LIBS="-ldl  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 4368 "configure"
+-#include "confdefs.h"
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-/* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-char dlopen();
+-
+-int main() {
+-dlopen()
+-; return 0; }
+-EOF
+-if { (eval echo configure:4379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+-else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for dlopen""... $ac_c" 1>&6
+-echo "configure:4398: checking for dlopen" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 4403 "configure"
+-#include "confdefs.h"
++    echo "$as_me:$LINENO: checking for shl_load" >&5
++echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
++if test "${ac_cv_func_shl_load+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+ /* System header to define __stub macros and hopefully few prototypes,
+-    which can conflict with char dlopen(); below.  */
+-#include <assert.h>
++    which can conflict with char shl_load (); below.
++    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++    <limits.h> exists even on freestanding compilers.  */
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
+ /* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++{
++#endif
+ /* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-char dlopen();
+-
+-int main() {
+-
++   builtin and then its argument prototype would still apply.  */
++char shl_load ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+-#if defined (__stub_dlopen) || defined (__stub___dlopen)
++#if defined (__stub_shl_load) || defined (__stub___shl_load)
+ choke me
+ #else
+-dlopen();
++char (*f) () = shl_load;
++#endif
++#ifdef __cplusplus
++}
+ #endif
+-; return 0; }
+-EOF
+-if { (eval echo configure:4426: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_func_dlopen=yes"
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_func_dlopen=no"
+-fi
+-rm -f conftest*
+-fi
+-
+-if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="dlopen"
++int
++main ()
++{
++return f != shl_load;
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_func_shl_load=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_func_shl_load=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
++echo "${ECHO_T}$ac_cv_func_shl_load" >&6
++if test $ac_cv_func_shl_load = yes; then
++  lt_cv_dlopen="shl_load"
+ else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for shl_load""... $ac_c" 1>&6
+-echo "configure:4444: checking for shl_load" >&5
+-if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
++echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
++if test "${ac_cv_lib_dld_shl_load+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  cat > conftest.$ac_ext <<EOF
+-#line 4449 "configure"
+-#include "confdefs.h"
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-ldld  $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
++/* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++   builtin and then its argument prototype would still apply.  */
++char shl_load ();
++int
++main ()
++{
++shl_load ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_dld_shl_load=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_dld_shl_load=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
++echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
++if test $ac_cv_lib_dld_shl_load = yes; then
++  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
++else
++  echo "$as_me:$LINENO: checking for dlopen" >&5
++echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
++if test "${ac_cv_func_dlopen+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+ /* System header to define __stub macros and hopefully few prototypes,
+-    which can conflict with char shl_load(); below.  */
+-#include <assert.h>
++    which can conflict with char dlopen (); below.
++    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
++    <limits.h> exists even on freestanding compilers.  */
++#ifdef __STDC__
++# include <limits.h>
++#else
++# include <assert.h>
++#endif
+ /* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++{
++#endif
+ /* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-char shl_load();
+-
+-int main() {
+-
++   builtin and then its argument prototype would still apply.  */
++char dlopen ();
+ /* The GNU C library defines this for functions which it implements
+     to always fail with ENOSYS.  Some functions are actually named
+     something starting with __ and the normal name is an alias.  */
+-#if defined (__stub_shl_load) || defined (__stub___shl_load)
++#if defined (__stub_dlopen) || defined (__stub___dlopen)
+ choke me
+ #else
+-shl_load();
++char (*f) () = dlopen;
++#endif
++#ifdef __cplusplus
++}
+ #endif
+-; return 0; }
+-EOF
+-if { (eval echo configure:4472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_func_shl_load=yes"
++int
++main ()
++{
++return f != dlopen;
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_func_dlopen=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_func_dlopen=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++fi
++echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
++echo "${ECHO_T}$ac_cv_func_dlopen" >&6
++if test $ac_cv_func_dlopen = yes; then
++  lt_cv_dlopen="dlopen"
+ else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_func_shl_load=no"
+-fi
+-rm -f conftest*
+-fi
++  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
++echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
++if test "${ac_cv_lib_dl_dlopen+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_check_lib_save_LIBS=$LIBS
++LIBS="-ldl  $LIBS"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="shl_load"
++/* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
++/* We use char because int might match the return type of a gcc2
++   builtin and then its argument prototype would still apply.  */
++char dlopen ();
++int
++main ()
++{
++dlopen ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_dl_dlopen=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_dl_dlopen=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
++echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
++if test $ac_cv_lib_dl_dlopen = yes; then
++  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+ else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
+-echo "configure:4490: checking for dlopen in -lsvld" >&5
+-ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
++echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
++if test "${ac_cv_lib_svld_dlopen+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  ac_save_LIBS="$LIBS"
++  ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lsvld  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 4498 "configure"
+-#include "confdefs.h"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
+ /* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
+ /* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-char dlopen();
+-
+-int main() {
+-dlopen()
+-; return 0; }
+-EOF
+-if { (eval echo configure:4509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
++   builtin and then its argument prototype would still apply.  */
++char dlopen ();
++int
++main ()
++{
++dlopen ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_svld_dlopen=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_svld_dlopen=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
++echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
++if test $ac_cv_lib_svld_dlopen = yes; then
+   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+ else
+-  echo "$ac_t""no" 1>&6
+-echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
+-echo "configure:4528: checking for shl_load in -ldld" >&5
+-ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
++echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
++if test "${ac_cv_lib_dld_dld_link+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  ac_save_LIBS="$LIBS"
++  ac_check_lib_save_LIBS=$LIBS
+ LIBS="-ldld  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 4536 "configure"
+-#include "confdefs.h"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++
+ /* Override any gcc2 internal prototype to avoid an error.  */
++#ifdef __cplusplus
++extern "C"
++#endif
+ /* We use char because int might match the return type of a gcc2
+-    builtin and then its argument prototype would still apply.  */
+-char shl_load();
+-
+-int main() {
+-shl_load()
+-; return 0; }
+-EOF
+-if { (eval echo configure:4547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
++   builtin and then its argument prototype would still apply.  */
++char dld_link ();
++int
++main ()
++{
++dld_link ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_dld_dld_link=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_dld_dld_link=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
++echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
++if test $ac_cv_lib_dld_dld_link = yes; then
++  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+ fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+-else
+-  echo "$ac_t""no" 1>&6
++
+ fi
+-          
++
+ fi
+-          
++
+ fi
+-        
++
+ fi
+-      
++
+ fi
+     ;;
+@@ -4595,10 +7112,10 @@
+     save_LIBS="$LIBS"
+     LIBS="$lt_cv_dlopen_libs $LIBS"
+-    echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
+-echo "configure:4600: checking whether a program can dlopen itself" >&5
+-if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
++echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
++if test "${lt_cv_dlopen_self+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+         if test "$cross_compiling" = yes; then :
+   lt_cv_dlopen_self=cross
+@@ -4606,7 +7123,7 @@
+     lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<EOF
+-#line 4610 "configure"
++#line 7126 "configure"
+ #include "confdefs.h"
+ #if HAVE_DLFCN_H
+@@ -4667,7 +7184,11 @@
+     exit (status);
+ }
+ EOF
+-  if { (eval echo configure:4671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
++  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+     (./conftest; exit; ) 2>/dev/null
+     lt_status=$?
+     case x$lt_status in
+@@ -4682,17 +7203,17 @@
+ fi
+ rm -fr conftest*
+-    
+-fi
+-echo "$ac_t""$lt_cv_dlopen_self" 1>&6
++fi
++echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
++echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+     if test "x$lt_cv_dlopen_self" = xyes; then
+       LDFLAGS="$LDFLAGS $link_static_flag"
+-      echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
+-echo "configure:4694: checking whether a statically linked program can dlopen itself" >&5
+-if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
++echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
++if test "${lt_cv_dlopen_self_static+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+         if test "$cross_compiling" = yes; then :
+   lt_cv_dlopen_self_static=cross
+@@ -4700,7 +7221,7 @@
+     lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<EOF
+-#line 4704 "configure"
++#line 7224 "configure"
+ #include "confdefs.h"
+ #if HAVE_DLFCN_H
+@@ -4761,7 +7282,11 @@
+     exit (status);
+ }
+ EOF
+-  if { (eval echo configure:4765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
++  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+     (./conftest; exit; ) 2>/dev/null
+     lt_status=$?
+     case x$lt_status in
+@@ -4776,10 +7301,10 @@
+ fi
+ rm -fr conftest*
+-      
+-fi
+-echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6
++fi
++echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
++echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+     fi
+     CPPFLAGS="$save_CPPFLAGS"
+@@ -4809,15 +7334,19 @@
+     # Test whether the compiler implicitly links with -lc since on some
+     # systems, -lgcc has to come before -lc. If gcc already passes -lc
+     # to ld, don't add -lc before -lgcc.
+-    echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6
+-echo "configure:4814: checking whether -lc should be explicitly linked in" >&5
+-    if eval "test \"`echo '$''{'lt_cv_archive_cmds_need_lc'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++    echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
++echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
++    if test "${lt_cv_archive_cmds_need_lc+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   $rm conftest*
+     echo 'static int dummy;' > conftest.$ac_ext
+-    if { (eval echo configure:4821: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
++    if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; then
+       soname=conftest
+       lib=conftest
+       libobjs=conftest.$ac_objext
+@@ -4830,7 +7359,11 @@
+       libname=conftest
+       save_allow_undefined_flag=$allow_undefined_flag
+       allow_undefined_flag=
+-      if { (eval echo configure:4834: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
++      if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
++  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }
+       then
+       lt_cv_archive_cmds_need_lc=no
+       else
+@@ -4842,7 +7375,8 @@
+     fi
+ fi
+-    echo "$ac_t""$lt_cv_archive_cmds_need_lc" 1>&6
++    echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5
++echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6
+     ;;
+   esac
+ fi
+@@ -4870,7 +7404,7 @@
+   # Now quote all the things that may contain metacharacters while being
+   # careful not to overquote the AC_SUBSTed values.  We take copies of the
+   # variables and quote the copies for generation of the libtool script.
+-  for var in echo old_CC old_CFLAGS \
++  for var in echo old_CC old_CFLAGS SED \
+     AR AR_FLAGS CC LD LN_S NM SHELL \
+     reload_flag reload_cmds wl \
+     pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \
+@@ -4882,6 +7416,7 @@
+     old_striplib striplib file_magic_cmd export_symbols_cmds \
+     deplibs_check_method allow_undefined_flag no_undefined_flag \
+     finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \
++    global_symbol_to_c_name_address \
+     hardcode_libdir_flag_spec hardcode_libdir_separator  \
+     sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+     compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do
+@@ -4931,8 +7466,11 @@
+ # configuration script generated by Autoconf, you may include it under
+ # the same distribution terms that you use for the rest of that program.
++# A sed that does not truncate output.
++SED=$lt_SED
++
+ # Sed that helps us avoid accidentally triggering echo(1) options like -n.
+-Xsed="sed -e s/^X//"
++Xsed="${SED} -e s/^X//"
+ # The HP-UX ksh and POSIX shell print the target directory to stdout
+ # if CDPATH is set.
+@@ -4948,12 +7486,12 @@
+ # Whether or not to build shared libraries.
+ build_libtool_libs=$enable_shared
+-# Whether or not to add -lc for building shared libraries.
+-build_libtool_need_lc=$need_lc
+-
+ # Whether or not to build static libraries.
+ build_old_libs=$enable_static
++# Whether or not to add -lc for building shared libraries.
++build_libtool_need_lc=$need_lc
++
+ # Whether or not to optimize for fast installation.
+ fast_install=$enable_fast_install
+@@ -5119,6 +7657,9 @@
+ # Transform the output of nm in a proper C declaration
+ global_symbol_to_cdecl=$lt_global_symbol_to_cdecl
++# Transform the output of nm in a C name address pair
++global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address
++
+ # This is the shared library runtime path variable.
+ runpath_var=$runpath_var
+@@ -5241,9 +7782,9 @@
+ #   return TRUE;
+ # }
+ # /* ltdll.c ends here */
+-        # This is a source program that is used to create import libraries
+-        # on Windows for dlls which lack them. Don't remove nor modify the
+-        # starting and closing comments
++      # This is a source program that is used to create import libraries
++      # on Windows for dlls which lack them. Don't remove nor modify the
++      # starting and closing comments
+ # /* impgen.c starts here */
+ # /*   Copyright (C) 1999-2000 Free Software Foundation, Inc.
+ #
+@@ -5411,156 +7952,386 @@
+ # Extract the first word of "perl", so it can be a program name with args.
+ set dummy perl; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:5416: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++echo "$as_me:$LINENO: checking for $ac_word" >&5
++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
++if test "${ac_cv_path_PERL+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  case "$PERL" in
+-  /*)
++  case $PERL in
++  [\\/]* | ?:[\\/]*)
+   ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+   ;;
+-  ?:/*)                        
+-  ac_cv_path_PERL="$PERL" # Let the user override the test with a dos path.
+-  ;;
+   *)
+-  IFS="${IFS=         }"; ac_save_ifs="$IFS"; IFS=":"
+-  ac_dummy="$PATH"
+-  for ac_dir in $ac_dummy; do 
+-    test -z "$ac_dir" && ac_dir=.
+-    if test -f $ac_dir/$ac_word; then
+-      ac_cv_path_PERL="$ac_dir/$ac_word"
+-      break
+-    fi
+-  done
+-  IFS="$ac_save_ifs"
++  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for ac_exec_ext in '' $ac_executable_extensions; do
++  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
++    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
++    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
++    break 2
++  fi
++done
++done
++
+   ;;
+ esac
+ fi
+-PERL="$ac_cv_path_PERL"
++PERL=$ac_cv_path_PERL
++
+ if test -n "$PERL"; then
+-  echo "$ac_t""$PERL" 1>&6
++  echo "$as_me:$LINENO: result: $PERL" >&5
++echo "${ECHO_T}$PERL" >&6
+ else
+-  echo "$ac_t""no" 1>&6
++  echo "$as_me:$LINENO: result: no" >&5
++echo "${ECHO_T}no" >&6
+ fi
+-ac_safe=`echo "asm/errno.h" | sed 'y%./+-%__p_%'`
+-echo $ac_n "checking for asm/errno.h""... $ac_c" 1>&6
+-echo "configure:5453: checking for asm/errno.h" >&5
+-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++if test "${ac_cv_header_asm_errno_h+set}" = set; then
++  echo "$as_me:$LINENO: checking for asm/errno.h" >&5
++echo $ECHO_N "checking for asm/errno.h... $ECHO_C" >&6
++if test "${ac_cv_header_asm_errno_h+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_asm_errno_h" >&5
++echo "${ECHO_T}$ac_cv_header_asm_errno_h" >&6
+ else
+-  cat > conftest.$ac_ext <<EOF
+-#line 5458 "configure"
+-#include "confdefs.h"
++  # Is the header compilable?
++echo "$as_me:$LINENO: checking asm/errno.h usability" >&5
++echo $ECHO_N "checking asm/errno.h usability... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_includes_default
+ #include <asm/errno.h>
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:5463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=yes"
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_header_compiler=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_header_compiler=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++echo "${ECHO_T}$ac_header_compiler" >&6
++
++# Is the header present?
++echo "$as_me:$LINENO: checking asm/errno.h presence" >&5
++echo $ECHO_N "checking asm/errno.h presence... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <asm/errno.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
+ else
+-  echo "$ac_err" >&5
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=no"
++  ac_cpp_err=yes
+ fi
+-rm -f conftest*
++if test -z "$ac_cpp_err"; then
++  ac_header_preproc=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  ac_header_preproc=no
++fi
++rm -f conftest.err conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++echo "${ECHO_T}$ac_header_preproc" >&6
++
++# So?  What about this header?
++case $ac_header_compiler:$ac_header_preproc in
++  yes:no )
++    { echo "$as_me:$LINENO: WARNING: asm/errno.h: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: asm/errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++    { echo "$as_me:$LINENO: WARNING: asm/errno.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: asm/errno.h: proceeding with the preprocessor's result" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------ ##
++## Report this to bug-autoconf@gnu.org. ##
++## ------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++  no:yes )
++    { echo "$as_me:$LINENO: WARNING: asm/errno.h: present but cannot be compiled" >&5
++echo "$as_me: WARNING: asm/errno.h: present but cannot be compiled" >&2;}
++    { echo "$as_me:$LINENO: WARNING: asm/errno.h: check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: asm/errno.h: check for missing prerequisite headers?" >&2;}
++    { echo "$as_me:$LINENO: WARNING: asm/errno.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: asm/errno.h: proceeding with the preprocessor's result" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------ ##
++## Report this to bug-autoconf@gnu.org. ##
++## ------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++esac
++echo "$as_me:$LINENO: checking for asm/errno.h" >&5
++echo $ECHO_N "checking for asm/errno.h... $ECHO_C" >&6
++if test "${ac_cv_header_asm_errno_h+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_header_asm_errno_h=$ac_header_preproc
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_asm_errno_h" >&5
++echo "${ECHO_T}$ac_cv_header_asm_errno_h" >&6
++
+ fi
+-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
++if test $ac_cv_header_asm_errno_h = yes; then
+   :
+ else
+-  echo "$ac_t""no" 1>&6
+-{ echo "configure: error: *** Unable to find asm/errno.h!!!" 1>&2; exit 1; }
++  { { echo "$as_me:$LINENO: error: *** Unable to find asm/errno.h!!!" >&5
++echo "$as_me: error: *** Unable to find asm/errno.h!!!" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+-ac_safe=`echo "linux/atmsap.h" | sed 'y%./+-%__p_%'`
+-echo $ac_n "checking for linux/atmsap.h""... $ac_c" 1>&6
+-echo "configure:5489: checking for linux/atmsap.h" >&5
+-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
+-else
+-  cat > conftest.$ac_ext <<EOF
+-#line 5494 "configure"
+-#include "confdefs.h"
++
++if test "${ac_cv_header_linux_atmsap_h+set}" = set; then
++  echo "$as_me:$LINENO: checking for linux/atmsap.h" >&5
++echo $ECHO_N "checking for linux/atmsap.h... $ECHO_C" >&6
++if test "${ac_cv_header_linux_atmsap_h+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++fi
++echo "$as_me:$LINENO: result: $ac_cv_header_linux_atmsap_h" >&5
++echo "${ECHO_T}$ac_cv_header_linux_atmsap_h" >&6
++else
++  # Is the header compilable?
++echo "$as_me:$LINENO: checking linux/atmsap.h usability" >&5
++echo $ECHO_N "checking linux/atmsap.h usability... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++$ac_includes_default
+ #include <linux/atmsap.h>
+-EOF
+-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+-{ (eval echo configure:5499: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+-if test -z "$ac_err"; then
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=yes"
++_ACEOF
++rm -f conftest.$ac_objext
++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
++  (eval $ac_compile) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest.$ac_objext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_header_compiler=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_header_compiler=no
++fi
++rm -f conftest.$ac_objext conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
++echo "${ECHO_T}$ac_header_compiler" >&6
++
++# Is the header present?
++echo "$as_me:$LINENO: checking linux/atmsap.h presence" >&5
++echo $ECHO_N "checking linux/atmsap.h presence... $ECHO_C" >&6
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
++#include <linux/atmsap.h>
++_ACEOF
++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
++  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } >/dev/null; then
++  if test -s conftest.err; then
++    ac_cpp_err=$ac_c_preproc_warn_flag
++  else
++    ac_cpp_err=
++  fi
+ else
+-  echo "$ac_err" >&5
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_header_$ac_safe=no"
++  ac_cpp_err=yes
+ fi
+-rm -f conftest*
++if test -z "$ac_cpp_err"; then
++  ac_header_preproc=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++  ac_header_preproc=no
++fi
++rm -f conftest.err conftest.$ac_ext
++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
++echo "${ECHO_T}$ac_header_preproc" >&6
++
++# So?  What about this header?
++case $ac_header_compiler:$ac_header_preproc in
++  yes:no )
++    { echo "$as_me:$LINENO: WARNING: linux/atmsap.h: accepted by the compiler, rejected by the preprocessor!" >&5
++echo "$as_me: WARNING: linux/atmsap.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
++    { echo "$as_me:$LINENO: WARNING: linux/atmsap.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: linux/atmsap.h: proceeding with the preprocessor's result" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------ ##
++## Report this to bug-autoconf@gnu.org. ##
++## ------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++  no:yes )
++    { echo "$as_me:$LINENO: WARNING: linux/atmsap.h: present but cannot be compiled" >&5
++echo "$as_me: WARNING: linux/atmsap.h: present but cannot be compiled" >&2;}
++    { echo "$as_me:$LINENO: WARNING: linux/atmsap.h: check for missing prerequisite headers?" >&5
++echo "$as_me: WARNING: linux/atmsap.h: check for missing prerequisite headers?" >&2;}
++    { echo "$as_me:$LINENO: WARNING: linux/atmsap.h: proceeding with the preprocessor's result" >&5
++echo "$as_me: WARNING: linux/atmsap.h: proceeding with the preprocessor's result" >&2;}
++    (
++      cat <<\_ASBOX
++## ------------------------------------ ##
++## Report this to bug-autoconf@gnu.org. ##
++## ------------------------------------ ##
++_ASBOX
++    ) |
++      sed "s/^/$as_me: WARNING:     /" >&2
++    ;;
++esac
++echo "$as_me:$LINENO: checking for linux/atmsap.h" >&5
++echo $ECHO_N "checking for linux/atmsap.h... $ECHO_C" >&6
++if test "${ac_cv_header_linux_atmsap_h+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
++else
++  ac_cv_header_linux_atmsap_h=$ac_header_preproc
+ fi
+-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
++echo "$as_me:$LINENO: result: $ac_cv_header_linux_atmsap_h" >&5
++echo "${ECHO_T}$ac_cv_header_linux_atmsap_h" >&6
++
++fi
++if test $ac_cv_header_linux_atmsap_h = yes; then
+   :
+ else
+-  echo "$ac_t""no" 1>&6
+-{ echo "configure: error: *** Unable to find linux/atmsap.h!!!" 1>&2; exit 1; }
++  { { echo "$as_me:$LINENO: error: *** Unable to find linux/atmsap.h!!!" >&5
++echo "$as_me: error: *** Unable to find linux/atmsap.h!!!" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+-echo $ac_n "checking for main in -lresolv""... $ac_c" 1>&6
+-echo "configure:5524: checking for main in -lresolv" >&5
+-ac_lib_var=`echo resolv'_'main | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++
++
++echo "$as_me:$LINENO: checking for main in -lresolv" >&5
++echo $ECHO_N "checking for main in -lresolv... $ECHO_C" >&6
++if test "${ac_cv_lib_resolv_main+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  ac_save_LIBS="$LIBS"
++  ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lresolv  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 5532 "configure"
+-#include "confdefs.h"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
+-main()
+-; return 0; }
+-EOF
+-if { (eval echo configure:5539: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-    ac_tr_lib=HAVE_LIB`echo resolv | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+-  cat >> confdefs.h <<EOF
+-#define $ac_tr_lib 1
+-EOF
++int
++main ()
++{
++main ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_resolv_main=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_resolv_main=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_main" >&5
++echo "${ECHO_T}$ac_cv_lib_resolv_main" >&6
++if test $ac_cv_lib_resolv_main = yes; then
++  cat >>confdefs.h <<_ACEOF
++#define HAVE_LIBRESOLV 1
++_ACEOF
+   LIBS="-lresolv $LIBS"
+ else
+-  echo "$ac_t""no" 1>&6
+-{ echo "configure: error: *** Unable to find libresolv!!!" 1>&2; exit 1; }
++  { { echo "$as_me:$LINENO: error: *** Unable to find libresolv!!!" >&5
++echo "$as_me: error: *** Unable to find libresolv!!!" >&2;}
++   { (exit 1); exit 1; }; }
+ fi
+@@ -5571,639 +8342,1417 @@
+ CFLAGS="$INCLUDES $CFLAGS -Wall -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes"
+ YACC="$YACC -d"
+-cat >> confdefs.h <<\EOF
++cat >>confdefs.h <<\_ACEOF
+ #define YY_USE_CONST 1
+-EOF
++_ACEOF
+ atmsigd_conf_dir=`    test "x$exec_prefix" = xNONE && exec_prefix=$ac_default_prefix
+                       test "x$prefix" = xNONE && prefix=${exec_prefix}
+                       eval echo "$sysconfdir"`
+-cat >> confdefs.h <<EOF
++cat >>confdefs.h <<_ACEOF
+ #define ATMSIGD_CONF "$atmsigd_conf_dir/atmsigd.conf"
+-EOF
++_ACEOF
++
+ # Check whether --with-uni or --without-uni was given.
+ if test "${with_uni+set}" = set; then
+   withval="$with_uni"
+-  
++
+       case "$with_uni" in
+-      "3.0" ) cat >> confdefs.h <<\EOF
++      "3.0" ) cat >>confdefs.h <<\_ACEOF
+ #define UNI30 1
+-EOF
++_ACEOF
+       ;;
+-      "3.1" ) cat >> confdefs.h <<\EOF
++      "3.1" ) cat >>confdefs.h <<\_ACEOF
+ #define UNI31 1
+-EOF
++_ACEOF
+       ;;
+-      "4.0" ) cat >> confdefs.h <<\EOF
++      "4.0" ) cat >>confdefs.h <<\_ACEOF
+ #define UNI40 1
+-EOF
++_ACEOF
+       ;;
+       *)
+-              cat >> confdefs.h <<\EOF
++              cat >>confdefs.h <<\_ACEOF
+ #define DYNAMIC_UNI 1
+-EOF
++_ACEOF
+-              echo "configure: warning: *** UNI version not specified correctly.  Defaulting to dynamic UNI." 1>&2
++              { echo "$as_me:$LINENO: WARNING: *** UNI version not specified correctly.  Defaulting to dynamic UNI." >&5
++echo "$as_me: WARNING: *** UNI version not specified correctly.  Defaulting to dynamic UNI." >&2;}
+       esac
+-      
++
+ else
+-  cat >> confdefs.h <<\EOF
++  cat >>confdefs.h <<\_ACEOF
+ #define DYNAMIC_UNI 1
+-EOF
++_ACEOF
+-fi
+-
++fi;
+ # Check whether --enable-allow_uni30 or --disable-allow_uni30 was given.
+ if test "${enable_allow_uni30+set}" = set; then
+   enableval="$enable_allow_uni30"
+-  
++
+       if test "$with_uni" = "3.1" ; then
+-              cat >> confdefs.h <<\EOF
++              cat >>confdefs.h <<\_ACEOF
+ #define ALLOW_UNI30 1
+-EOF
++_ACEOF
+       else
+-              echo "configure: warning: *** Allow UNI 3.0 was not enabled.  It is only valid when UNI 3.1 is specified as the default via --with-uni." 1>&2
++              { echo "$as_me:$LINENO: WARNING: *** Allow UNI 3.0 was not enabled.  It is only valid when UNI 3.1 is specified as the default via --with-uni." >&5
++echo "$as_me: WARNING: *** Allow UNI 3.0 was not enabled.  It is only valid when UNI 3.1 is specified as the default via --with-uni." >&2;}
+       fi
+-      
+-fi
++fi;
+ # Check whether --enable-q2963_1 or --disable-q2963_1 was given.
+ if test "${enable_q2963_1+set}" = set; then
+   enableval="$enable_q2963_1"
+-  
++
+       if test "$with_uni" = "4.0" ; then
+-              cat >> confdefs.h <<\EOF
++              cat >>confdefs.h <<\_ACEOF
+ #define Q2963_1 1
+-EOF
++_ACEOF
+       else
+-              echo "configure: warning: *** Q.2963.1 was not enabled.  It is only valid when UNI 4.0 is specified as the default via --with-uni." 1>&2
++              { echo "$as_me:$LINENO: WARNING: *** Q.2963.1 was not enabled.  It is only valid when UNI 4.0 is specified as the default via --with-uni." >&5
++echo "$as_me: WARNING: *** Q.2963.1 was not enabled.  It is only valid when UNI 4.0 is specified as the default via --with-uni." >&2;}
+       fi
+-      
+-fi
++fi;
+ # Check whether --enable-cisco or --disable-cisco was given.
+ if test "${enable_cisco+set}" = set; then
+   enableval="$enable_cisco"
+-  cat >> confdefs.h <<\EOF
++  cat >>confdefs.h <<\_ACEOF
+ #define CISCO 1
+-EOF
++_ACEOF
+-fi
+-
++fi;
+ # Check whether --enable-thomflex or --disable-thomflex was given.
+ if test "${enable_thomflex+set}" = set; then
+   enableval="$enable_thomflex"
+-  cat >> confdefs.h <<\EOF
++  cat >>confdefs.h <<\_ACEOF
+ #define THOMFLEX 1
+-EOF
+-
++_ACEOF
+-fi
++fi;
+-cat >> confdefs.h <<\EOF
++cat >>confdefs.h <<\_ACEOF
+ #define BROKEN_POLL 1
+-EOF
++_ACEOF
+ # Check whether --enable-mpoa_1_1 or --disable-mpoa_1_1 was given.
+ if test "${enable_mpoa_1_1+set}" = set; then
+   enableval="$enable_mpoa_1_1"
+-  cat >> confdefs.h <<\EOF
++  cat >>confdefs.h <<\_ACEOF
+ #define MPOA_1_1 1
+-EOF
+-
++_ACEOF
+-fi
++fi;
+ # Check whether --enable-mpr or --disable-mpr was given.
+ if test "${enable_mpr+set}" = set; then
+   enableval="$enable_mpr"
+-  
++
+       case "$enable_mpr" in
+       "" | y | ye | yes | Y | YE | YES )
+-              echo $ac_n "checking for main in -lmpr""... $ac_c" 1>&6
+-echo "configure:5704: checking for main in -lmpr" >&5
+-ac_lib_var=`echo mpr'_'main | sed 'y%./+-%__p_%'`
+-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+-  echo $ac_n "(cached) $ac_c" 1>&6
++
++echo "$as_me:$LINENO: checking for main in -lmpr" >&5
++echo $ECHO_N "checking for main in -lmpr... $ECHO_C" >&6
++if test "${ac_cv_lib_mpr_main+set}" = set; then
++  echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+-  ac_save_LIBS="$LIBS"
++  ac_check_lib_save_LIBS=$LIBS
+ LIBS="-lmpr  $LIBS"
+-cat > conftest.$ac_ext <<EOF
+-#line 5712 "configure"
+-#include "confdefs.h"
++cat >conftest.$ac_ext <<_ACEOF
++#line $LINENO "configure"
++/* confdefs.h.  */
++_ACEOF
++cat confdefs.h >>conftest.$ac_ext
++cat >>conftest.$ac_ext <<_ACEOF
++/* end confdefs.h.  */
+-int main() {
+-main()
+-; return 0; }
+-EOF
+-if { (eval echo configure:5719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=yes"
+-else
+-  echo "configure: failed program was:" >&5
+-  cat conftest.$ac_ext >&5
+-  rm -rf conftest*
+-  eval "ac_cv_lib_$ac_lib_var=no"
+-fi
+-rm -f conftest*
+-LIBS="$ac_save_LIBS"
+-fi
+-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+-  echo "$ac_t""yes" 1>&6
+-    ac_tr_lib=HAVE_LIB`echo mpr | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+-    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+-  cat >> confdefs.h <<EOF
+-#define $ac_tr_lib 1
+-EOF
++int
++main ()
++{
++main ();
++  ;
++  return 0;
++}
++_ACEOF
++rm -f conftest.$ac_objext conftest$ac_exeext
++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
++  (eval $ac_link) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } &&
++         { ac_try='test -s conftest$ac_exeext'
++  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); }; }; then
++  ac_cv_lib_mpr_main=yes
++else
++  echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++ac_cv_lib_mpr_main=no
++fi
++rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
++LIBS=$ac_check_lib_save_LIBS
++fi
++echo "$as_me:$LINENO: result: $ac_cv_lib_mpr_main" >&5
++echo "${ECHO_T}$ac_cv_lib_mpr_main" >&6
++if test $ac_cv_lib_mpr_main = yes; then
++  cat >>confdefs.h <<_ACEOF
++#define HAVE_LIBMPR 1
++_ACEOF
+   LIBS="-lmpr $LIBS"
+ else
+-  echo "$ac_t""no" 1>&6
+-                      echo "configure: warning: *** Could not find libmpr!  Is MPR installed?" 1>&2
+-                      
+-              
++                      { echo "$as_me:$LINENO: WARNING: *** Could not find libmpr!  Is MPR installed?" >&5
++echo "$as_me: WARNING: *** Could not find libmpr!  Is MPR installed?" >&2;}
++
++
+ fi
+       ;;
+       esac
+-      
+-fi
++fi;
+-trap '' 1 2 15
+-cat > confcache <<\EOF
++                                                                                                                                                                                                                                                                              ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile src/Makefile src/include/Makefile src/lib/Makefile src/test/Makefile src/debug/Makefile src/qgen/Makefile src/saal/Makefile src/sigd/Makefile src/maint/Makefile src/arpd/Makefile src/ilmid/Makefile src/ilmid/asn1/Makefile src/man/Makefile src/led/Makefile src/lane/Makefile src/mpoad/Makefile src/switch/Makefile src/switch/debug/Makefile src/switch/tcp/Makefile src/config/Makefile src/config/init-redhat/Makefile src/extra/Makefile src/extra/linux-atm.spec src/extra/ANS/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
+-# scripts and configure runs.  It is not useful on other systems.
+-# If it contains results you don't want to keep, you may remove or edit it.
++# scripts and configure runs, see configure's option --config-cache.
++# It is not useful on other systems.  If it contains results you don't
++# want to keep, you may remove or edit it.
+ #
+-# By default, configure uses ./config.cache as the cache file,
+-# creating it if it does not exist already.  You can give configure
+-# the --cache-file=FILE option to use a different cache file; that is
+-# what configure does when it calls configure scripts in
+-# subdirectories, so they share the cache.
+-# Giving --cache-file=/dev/null disables caching, for debugging configure.
+-# config.status only pays attention to the cache file if you give it the
+-# --recheck option to rerun configure.
++# config.status only pays attention to the cache file if you give it
++# the --recheck option to rerun configure.
+ #
+-EOF
++# `ac_cv_env_foo' variables (set or unset) will be overridden when
++# loading this file, other *unset* `ac_cv_foo' will be assigned the
++# following values.
++
++_ACEOF
++
+ # The following way of writing the cache mishandles newlines in values,
+ # but we know of no workaround that is simple, portable, and efficient.
+ # So, don't put newlines in cache variables' values.
+ # Ultrix sh set writes to stderr and can't be redirected directly,
+ # and sets the high bit in the cache file unless we assign to the vars.
+-(set) 2>&1 |
+-  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+-  *ac_space=\ *)
+-    # `set' does not quote correctly, so add quotes (double-quote substitution
+-    # turns \\\\ into \\, and sed turns \\ into \).
+-    sed -n \
+-      -e "s/'/'\\\\''/g" \
+-      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+-    ;;
+-  *)
+-    # `set' quotes correctly as required by POSIX, so do not add quotes.
+-    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+-    ;;
+-  esac >> confcache
+-if cmp -s $cache_file confcache; then
+-  :
+-else
++{
++  (set) 2>&1 |
++    case `(ac_space=' '; set | grep ac_space) 2>&1` in
++    *ac_space=\ *)
++      # `set' does not quote correctly, so add quotes (double-quote
++      # substitution turns \\\\ into \\, and sed turns \\ into \).
++      sed -n \
++        "s/'/'\\\\''/g;
++        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
++      ;;
++    *)
++      # `set' quotes correctly as required by POSIX, so do not add quotes.
++      sed -n \
++        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
++      ;;
++    esac;
++} |
++  sed '
++     t clear
++     : clear
++     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
++     t end
++     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
++     : end' >>confcache
++if diff $cache_file confcache >/dev/null 2>&1; then :; else
+   if test -w $cache_file; then
+-    echo "updating cache $cache_file"
+-    cat confcache > $cache_file
++    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
++    cat confcache >$cache_file
+   else
+     echo "not updating unwritable cache $cache_file"
+   fi
+ fi
+ rm -f confcache
+-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+-
+ test "x$prefix" = xNONE && prefix=$ac_default_prefix
+ # Let make expand exec_prefix.
+ test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+-# Any assignment to VPATH causes Sun make to only execute
+-# the first set of double-colon rules, so remove it if not needed.
+-# If there is a colon in the path, we need to keep it.
++# VPATH may cause trouble with some makes, so we remove $(srcdir),
++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
++# trailing colons and then remove the whole line if VPATH becomes empty
++# (actually we leave an empty line to preserve line numbers).
+ if test "x$srcdir" = x.; then
+-  ac_vpsub='/^[       ]*VPATH[        ]*=[^:]*$/d'
++  ac_vpsub='/^[       ]*VPATH[        ]*=/{
++s/:*\$(srcdir):*/:/;
++s/:*\${srcdir}:*/:/;
++s/:*@srcdir@:*/:/;
++s/^\([^=]*=[  ]*\):*/\1/;
++s/:*$//;
++s/^[^=]*=[    ]*$//;
++}'
+ fi
+-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+-
+ DEFS=-DHAVE_CONFIG_H
+-# Without the "./", some shells look in PATH for config.status.
+-: ${CONFIG_STATUS=./config.status}
++ac_libobjs=
++ac_ltlibobjs=
++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
++  # 1. Remove the extension, and $U if already installed.
++  ac_i=`echo "$ac_i" |
++         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
++  # 2. Add them.
++  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
++  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
++done
++LIBOBJS=$ac_libobjs
+-echo creating $CONFIG_STATUS
+-rm -f $CONFIG_STATUS
+-cat > $CONFIG_STATUS <<EOF
+-#! /bin/sh
+-# Generated automatically by configure.
++LTLIBOBJS=$ac_ltlibobjs
++
++
++
++: ${CONFIG_STATUS=./config.status}
++ac_clean_files_save=$ac_clean_files
++ac_clean_files="$ac_clean_files $CONFIG_STATUS"
++{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
++echo "$as_me: creating $CONFIG_STATUS" >&6;}
++cat >$CONFIG_STATUS <<_ACEOF
++#! $SHELL
++# Generated by $as_me.
+ # Run this file to recreate the current configuration.
+-# This directory was configured as follows,
+-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+-#
+-# $0 $ac_configure_args
+-#
+ # Compiler output produced by configure, useful for debugging
+-# configure, is in ./config.log if it exists.
++# configure, is in config.log if it exists.
+-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+-for ac_option
++debug=false
++ac_cs_recheck=false
++ac_cs_silent=false
++SHELL=\${CONFIG_SHELL-$SHELL}
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++## --------------------- ##
++## M4sh Initialization.  ##
++## --------------------- ##
++
++# Be Bourne compatible
++if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
++  emulate sh
++  NULLCMD=:
++  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
++  # is contrary to our usage.  Disable this feature.
++  alias -g '${1+"$@"}'='"$@"'
++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
++  set -o posix
++fi
++
++# Support unset when possible.
++if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
++  as_unset=unset
++else
++  as_unset=false
++fi
++
++
++# Work around bugs in pre-3.0 UWIN ksh.
++$as_unset ENV MAIL MAILPATH
++PS1='$ '
++PS2='> '
++PS4='+ '
++
++# NLS nuisances.
++for as_var in \
++  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
++  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
++  LC_TELEPHONE LC_TIME
+ do
+-  case "\$ac_option" in
+-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+-    echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
+-    exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
+-  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+-    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+-    exit 0 ;;
+-  -help | --help | --hel | --he | --h)
+-    echo "\$ac_cs_usage"; exit 0 ;;
+-  *) echo "\$ac_cs_usage"; exit 1 ;;
++  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
++    eval $as_var=C; export $as_var
++  else
++    $as_unset $as_var
++  fi
++done
++
++# Required to use basename.
++if expr a : '\(a\)' >/dev/null 2>&1; then
++  as_expr=expr
++else
++  as_expr=false
++fi
++
++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
++  as_basename=basename
++else
++  as_basename=false
++fi
++
++
++# Name of the executable.
++as_me=`$as_basename "$0" ||
++$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
++       X"$0" : 'X\(//\)$' \| \
++       X"$0" : 'X\(/\)$' \| \
++       .     : '\(.\)' 2>/dev/null ||
++echo X/"$0" |
++    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
++        /^X\/\(\/\/\)$/{ s//\1/; q; }
++        /^X\/\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++
++
++# PATH needs CR, and LINENO needs CR and PATH.
++# Avoid depending upon Character Ranges.
++as_cr_letters='abcdefghijklmnopqrstuvwxyz'
++as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
++as_cr_Letters=$as_cr_letters$as_cr_LETTERS
++as_cr_digits='0123456789'
++as_cr_alnum=$as_cr_Letters$as_cr_digits
++
++# The user is always right.
++if test "${PATH_SEPARATOR+set}" != set; then
++  echo "#! /bin/sh" >conf$$.sh
++  echo  "exit 0"   >>conf$$.sh
++  chmod +x conf$$.sh
++  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
++    PATH_SEPARATOR=';'
++  else
++    PATH_SEPARATOR=:
++  fi
++  rm -f conf$$.sh
++fi
++
++
++  as_lineno_1=$LINENO
++  as_lineno_2=$LINENO
++  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++  test "x$as_lineno_1" != "x$as_lineno_2" &&
++  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
++  # Find who we are.  Look in the path if we contain no path at all
++  # relative or not.
++  case $0 in
++    *[\\/]* ) as_myself=$0 ;;
++    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in $PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
++done
++
++       ;;
+   esac
++  # We did not find ourselves, most probably we were run as `sh COMMAND'
++  # in which case we are not to be found in the path.
++  if test "x$as_myself" = x; then
++    as_myself=$0
++  fi
++  if test ! -f "$as_myself"; then
++    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
++echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
++   { (exit 1); exit 1; }; }
++  fi
++  case $CONFIG_SHELL in
++  '')
++    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
++do
++  IFS=$as_save_IFS
++  test -z "$as_dir" && as_dir=.
++  for as_base in sh bash ksh sh5; do
++       case $as_dir in
++       /*)
++         if ("$as_dir/$as_base" -c '
++  as_lineno_1=$LINENO
++  as_lineno_2=$LINENO
++  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
++  test "x$as_lineno_1" != "x$as_lineno_2" &&
++  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
++           $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
++           $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
++           CONFIG_SHELL=$as_dir/$as_base
++           export CONFIG_SHELL
++           exec "$CONFIG_SHELL" "$0" ${1+"$@"}
++         fi;;
++       esac
++       done
+ done
++;;
++  esac
+-ac_given_srcdir=$srcdir
+-ac_given_INSTALL="$INSTALL"
+-
+-trap 'rm -fr `echo "Makefile \
+-              doc/Makefile \
+-              m4/Makefile \
+-              src/Makefile \
+-              src/include/Makefile \
+-              src/lib/Makefile \
+-              src/test/Makefile \
+-              src/debug/Makefile \
+-              src/qgen/Makefile \
+-              src/saal/Makefile \
+-              src/sigd/Makefile \
+-              src/maint/Makefile \
+-              src/arpd/Makefile \
+-              src/ilmid/Makefile \
+-              src/ilmid/asn1/Makefile \
+-              src/man/Makefile \
+-              src/led/Makefile \
+-              src/lane/Makefile \
+-              src/mpoad/Makefile \
+-              src/switch/Makefile \
+-              src/switch/debug/Makefile \
+-              src/switch/tcp/Makefile \
+-              src/config/Makefile \
+-              src/config/init-redhat/Makefile \
+-              src/extra/Makefile \
+-              src/extra/linux-atm.spec \
+-              src/extra/ANS/Makefile
+-               config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+-EOF
+-cat >> $CONFIG_STATUS <<EOF
++  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
++  # uniformly replaced by the line number.  The first 'sed' inserts a
++  # line-number line before each line; the second 'sed' does the real
++  # work.  The second script uses 'N' to pair each line-number line
++  # with the numbered line, and appends trailing '-' during
++  # substitution so that $LINENO is not a special case at line end.
++  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
++  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
++  sed '=' <$as_myself |
++    sed '
++      N
++      s,$,-,
++      : loop
++      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
++      t loop
++      s,-$,,
++      s,^['$as_cr_digits']*\n,,
++    ' >$as_me.lineno &&
++  chmod +x $as_me.lineno ||
++    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
++echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
++   { (exit 1); exit 1; }; }
++
++  # Don't try to exec as it changes $[0], causing all sort of problems
++  # (the dirname of $[0] is not the place where we might find the
++  # original and so on.  Autoconf is especially sensible to this).
++  . ./$as_me.lineno
++  # Exit status is that of the last command.
++  exit
++}
+-# Protect against being on the right side of a sed subst in config.status.
+-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+-$ac_vpsub
+-$extrasub
+-s%@SHELL@%$SHELL%g
+-s%@CFLAGS@%$CFLAGS%g
+-s%@CPPFLAGS@%$CPPFLAGS%g
+-s%@CXXFLAGS@%$CXXFLAGS%g
+-s%@FFLAGS@%$FFLAGS%g
+-s%@DEFS@%$DEFS%g
+-s%@LDFLAGS@%$LDFLAGS%g
+-s%@LIBS@%$LIBS%g
+-s%@exec_prefix@%$exec_prefix%g
+-s%@prefix@%$prefix%g
+-s%@program_transform_name@%$program_transform_name%g
+-s%@bindir@%$bindir%g
+-s%@sbindir@%$sbindir%g
+-s%@libexecdir@%$libexecdir%g
+-s%@datadir@%$datadir%g
+-s%@sysconfdir@%$sysconfdir%g
+-s%@sharedstatedir@%$sharedstatedir%g
+-s%@localstatedir@%$localstatedir%g
+-s%@libdir@%$libdir%g
+-s%@includedir@%$includedir%g
+-s%@oldincludedir@%$oldincludedir%g
+-s%@infodir@%$infodir%g
+-s%@mandir@%$mandir%g
+-s%@host@%$host%g
+-s%@host_alias@%$host_alias%g
+-s%@host_cpu@%$host_cpu%g
+-s%@host_vendor@%$host_vendor%g
+-s%@host_os@%$host_os%g
+-s%@target@%$target%g
+-s%@target_alias@%$target_alias%g
+-s%@target_cpu@%$target_cpu%g
+-s%@target_vendor@%$target_vendor%g
+-s%@target_os@%$target_os%g
+-s%@build@%$build%g
+-s%@build_alias@%$build_alias%g
+-s%@build_cpu@%$build_cpu%g
+-s%@build_vendor@%$build_vendor%g
+-s%@build_os@%$build_os%g
+-s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+-s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+-s%@INSTALL_DATA@%$INSTALL_DATA%g
+-s%@PACKAGE@%$PACKAGE%g
+-s%@VERSION@%$VERSION%g
+-s%@ACLOCAL@%$ACLOCAL%g
+-s%@AUTOCONF@%$AUTOCONF%g
+-s%@AUTOMAKE@%$AUTOMAKE%g
+-s%@AUTOHEADER@%$AUTOHEADER%g
+-s%@MAKEINFO@%$MAKEINFO%g
+-s%@SET_MAKE@%$SET_MAKE%g
+-s%@LIBVER_CURRENT@%$LIBVER_CURRENT%g
+-s%@LIBVER_REVISION@%$LIBVER_REVISION%g
+-s%@LIBVER_AGE@%$LIBVER_AGE%g
+-s%@CC@%$CC%g
+-s%@LEX@%$LEX%g
+-s%@LEXLIB@%$LEXLIB%g
+-s%@CPP@%$CPP%g
+-s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
+-s%@YACC@%$YACC%g
+-s%@LN_S@%$LN_S%g
+-s%@OBJEXT@%$OBJEXT%g
+-s%@EXEEXT@%$EXEEXT%g
+-s%@ECHO@%$ECHO%g
+-s%@RANLIB@%$RANLIB%g
+-s%@STRIP@%$STRIP%g
+-s%@LIBTOOL@%$LIBTOOL%g
+-s%@LIBTOOL_DEPS@%$LIBTOOL_DEPS%g
+-s%@PERL@%$PERL%g
+-CEOF
+-EOF
++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
++  *c*,-n*) ECHO_N= ECHO_C='
++' ECHO_T='    ' ;;
++  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
++  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
++esac
+-cat >> $CONFIG_STATUS <<\EOF
++if expr a : '\(a\)' >/dev/null 2>&1; then
++  as_expr=expr
++else
++  as_expr=false
++fi
+-# Split the substitutions into bite-sized pieces for seds with
+-# small command number limits, like on Digital OSF/1 and HP-UX.
+-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+-ac_file=1 # Number of current file.
+-ac_beg=1 # First line for current file.
+-ac_end=$ac_max_sed_cmds # Line after last line for current file.
+-ac_more_lines=:
+-ac_sed_cmds=""
+-while $ac_more_lines; do
+-  if test $ac_beg -gt 1; then
+-    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+-  else
+-    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+-  fi
+-  if test ! -s conftest.s$ac_file; then
+-    ac_more_lines=false
+-    rm -f conftest.s$ac_file
++rm -f conf$$ conf$$.exe conf$$.file
++echo >conf$$.file
++if ln -s conf$$.file conf$$ 2>/dev/null; then
++  # We could just check for DJGPP; but this test a) works b) is more generic
++  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
++  if test -f conf$$.exe; then
++    # Don't use ln at all; we don't have any links
++    as_ln_s='cp -p'
+   else
+-    if test -z "$ac_sed_cmds"; then
+-      ac_sed_cmds="sed -f conftest.s$ac_file"
+-    else
+-      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+-    fi
+-    ac_file=`expr $ac_file + 1`
+-    ac_beg=$ac_end
+-    ac_end=`expr $ac_end + $ac_max_sed_cmds`
++    as_ln_s='ln -s'
+   fi
++elif ln conf$$.file conf$$ 2>/dev/null; then
++  as_ln_s=ln
++else
++  as_ln_s='cp -p'
++fi
++rm -f conf$$ conf$$.exe conf$$.file
++
++if mkdir -p . 2>/dev/null; then
++  as_mkdir_p=:
++else
++  as_mkdir_p=false
++fi
++
++as_executable_p="test -f"
++
++# Sed expression to map a string onto a valid CPP name.
++as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
++
++# Sed expression to map a string onto a valid variable name.
++as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
++
++
++# IFS
++# We need space, tab and new line, in precisely that order.
++as_nl='
++'
++IFS="         $as_nl"
++
++# CDPATH.
++$as_unset CDPATH
++
++exec 6>&1
++
++# Open the log real soon, to keep \$[0] and so on meaningful, and to
++# report actual input values of CONFIG_FILES etc. instead of their
++# values after options handling.  Logging --version etc. is OK.
++exec 5>>config.log
++{
++  echo
++  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
++## Running $as_me. ##
++_ASBOX
++} >&5
++cat >&5 <<_CSEOF
++
++This file was extended by $as_me, which was
++generated by GNU Autoconf 2.57.  Invocation command line was
++
++  CONFIG_FILES    = $CONFIG_FILES
++  CONFIG_HEADERS  = $CONFIG_HEADERS
++  CONFIG_LINKS    = $CONFIG_LINKS
++  CONFIG_COMMANDS = $CONFIG_COMMANDS
++  $ $0 $@
++
++_CSEOF
++echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
++echo >&5
++_ACEOF
++
++# Files that config.status was made for.
++if test -n "$ac_config_files"; then
++  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
++fi
++
++if test -n "$ac_config_headers"; then
++  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
++fi
++
++if test -n "$ac_config_links"; then
++  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
++fi
++
++if test -n "$ac_config_commands"; then
++  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
++fi
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++
++ac_cs_usage="\
++\`$as_me' instantiates files from templates according to the
++current configuration.
++
++Usage: $0 [OPTIONS] [FILE]...
++
++  -h, --help       print this help, then exit
++  -V, --version    print version number, then exit
++  -q, --quiet      do not print progress messages
++  -d, --debug      don't remove temporary files
++      --recheck    update $as_me by reconfiguring in the same conditions
++  --file=FILE[:TEMPLATE]
++                   instantiate the configuration file FILE
++  --header=FILE[:TEMPLATE]
++                   instantiate the configuration header FILE
++
++Configuration files:
++$config_files
++
++Configuration headers:
++$config_headers
++
++Configuration commands:
++$config_commands
++
++Report bugs to <bug-autoconf@gnu.org>."
++_ACEOF
++
++cat >>$CONFIG_STATUS <<_ACEOF
++ac_cs_version="\\
++config.status
++configured by $0, generated by GNU Autoconf 2.57,
++  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
++
++Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
++Free Software Foundation, Inc.
++This config.status script is free software; the Free Software Foundation
++gives unlimited permission to copy, distribute and modify it."
++srcdir=$srcdir
++INSTALL="$INSTALL"
++_ACEOF
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++# If no file are specified by the user, then we need to provide default
++# value.  By we need to know if files were specified by the user.
++ac_need_defaults=:
++while test $# != 0
++do
++  case $1 in
++  --*=*)
++    ac_option=`expr "x$1" : 'x\([^=]*\)='`
++    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
++    ac_shift=:
++    ;;
++  -*)
++    ac_option=$1
++    ac_optarg=$2
++    ac_shift=shift
++    ;;
++  *) # This is not an option, so the user has probably given explicit
++     # arguments.
++     ac_option=$1
++     ac_need_defaults=false;;
++  esac
++
++  case $ac_option in
++  # Handling of the options.
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
++    ac_cs_recheck=: ;;
++  --version | --vers* | -V )
++    echo "$ac_cs_version"; exit 0 ;;
++  --he | --h)
++    # Conflict between --help and --header
++    { { echo "$as_me:$LINENO: error: ambiguous option: $1
++Try \`$0 --help' for more information." >&5
++echo "$as_me: error: ambiguous option: $1
++Try \`$0 --help' for more information." >&2;}
++   { (exit 1); exit 1; }; };;
++  --help | --hel | -h )
++    echo "$ac_cs_usage"; exit 0 ;;
++  --debug | --d* | -d )
++    debug=: ;;
++  --file | --fil | --fi | --f )
++    $ac_shift
++    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
++    ac_need_defaults=false;;
++  --header | --heade | --head | --hea )
++    $ac_shift
++    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
++    ac_need_defaults=false;;
++  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
++  | -silent | --silent | --silen | --sile | --sil | --si | --s)
++    ac_cs_silent=: ;;
++
++  # This is an error.
++  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
++Try \`$0 --help' for more information." >&5
++echo "$as_me: error: unrecognized option: $1
++Try \`$0 --help' for more information." >&2;}
++   { (exit 1); exit 1; }; } ;;
++
++  *) ac_config_targets="$ac_config_targets $1" ;;
++
++  esac
++  shift
++done
++
++ac_configure_extra_args=
++
++if $ac_cs_silent; then
++  exec 6>/dev/null
++  ac_configure_extra_args="$ac_configure_extra_args --silent"
++fi
++
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF
++if \$ac_cs_recheck; then
++  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
++  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
++fi
++
++_ACEOF
++
++cat >>$CONFIG_STATUS <<_ACEOF
++#
++# INIT-COMMANDS section.
++#
++
++
++
++_ACEOF
++
++
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++for ac_config_target in $ac_config_targets
++do
++  case "$ac_config_target" in
++  # Handling of arguments.
++  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
++  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
++  "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
++  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
++  "src/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;;
++  "src/lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;;
++  "src/test/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/test/Makefile" ;;
++  "src/debug/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/debug/Makefile" ;;
++  "src/qgen/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/qgen/Makefile" ;;
++  "src/saal/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/saal/Makefile" ;;
++  "src/sigd/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/sigd/Makefile" ;;
++  "src/maint/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/maint/Makefile" ;;
++  "src/arpd/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/arpd/Makefile" ;;
++  "src/ilmid/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/ilmid/Makefile" ;;
++  "src/ilmid/asn1/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/ilmid/asn1/Makefile" ;;
++  "src/man/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/man/Makefile" ;;
++  "src/led/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/led/Makefile" ;;
++  "src/lane/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/lane/Makefile" ;;
++  "src/mpoad/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/mpoad/Makefile" ;;
++  "src/switch/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/switch/Makefile" ;;
++  "src/switch/debug/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/switch/debug/Makefile" ;;
++  "src/switch/tcp/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/switch/tcp/Makefile" ;;
++  "src/config/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/config/Makefile" ;;
++  "src/config/init-redhat/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/config/init-redhat/Makefile" ;;
++  "src/extra/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/extra/Makefile" ;;
++  "src/extra/linux-atm.spec" ) CONFIG_FILES="$CONFIG_FILES src/extra/linux-atm.spec" ;;
++  "src/extra/ANS/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/extra/ANS/Makefile" ;;
++  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
++  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
++  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
++echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
++   { (exit 1); exit 1; }; };;
++  esac
+ done
+-if test -z "$ac_sed_cmds"; then
+-  ac_sed_cmds=cat
++
++# If the user did not use the arguments to specify the items to instantiate,
++# then the envvar interface is used.  Set only those that are not.
++# We use the long form for the default assignment because of an extremely
++# bizarre bug on SunOS 4.1.3.
++if $ac_need_defaults; then
++  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
++  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
++  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+ fi
+-EOF
+-cat >> $CONFIG_STATUS <<EOF
++# Have a temporary directory for convenience.  Make it in the build tree
++# simply because there is no reason to put it here, and in addition,
++# creating and moving files from /tmp can sometimes cause problems.
++# Create a temporary directory, and hook for its removal unless debugging.
++$debug ||
++{
++  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
++  trap '{ (exit 1); exit 1; }' 1 2 13 15
++}
+-CONFIG_FILES=\${CONFIG_FILES-"Makefile \
+-              doc/Makefile \
+-              m4/Makefile \
+-              src/Makefile \
+-              src/include/Makefile \
+-              src/lib/Makefile \
+-              src/test/Makefile \
+-              src/debug/Makefile \
+-              src/qgen/Makefile \
+-              src/saal/Makefile \
+-              src/sigd/Makefile \
+-              src/maint/Makefile \
+-              src/arpd/Makefile \
+-              src/ilmid/Makefile \
+-              src/ilmid/asn1/Makefile \
+-              src/man/Makefile \
+-              src/led/Makefile \
+-              src/lane/Makefile \
+-              src/mpoad/Makefile \
+-              src/switch/Makefile \
+-              src/switch/debug/Makefile \
+-              src/switch/tcp/Makefile \
+-              src/config/Makefile \
+-              src/config/init-redhat/Makefile \
+-              src/extra/Makefile \
+-              src/extra/linux-atm.spec \
+-              src/extra/ANS/Makefile
+-              "}
+-EOF
+-cat >> $CONFIG_STATUS <<\EOF
+-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
++# Create a (secure) tmp directory for tmp files.
++
++{
++  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
++  test -n "$tmp" && test -d "$tmp"
++}  ||
++{
++  tmp=./confstat$$-$RANDOM
++  (umask 077 && mkdir $tmp)
++} ||
++{
++   echo "$me: cannot create a temporary directory in ." >&2
++   { (exit 1); exit 1; }
++}
++
++_ACEOF
++
++cat >>$CONFIG_STATUS <<_ACEOF
++
++#
++# CONFIG_FILES section.
++#
++
++# No need to generate the scripts if there are no CONFIG_FILES.
++# This happens for instance when ./config.status config.h
++if test -n "\$CONFIG_FILES"; then
++  # Protect against being on the right side of a sed subst in config.status.
++  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
++   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
++s,@SHELL@,$SHELL,;t t
++s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
++s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
++s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
++s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
++s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
++s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
++s,@exec_prefix@,$exec_prefix,;t t
++s,@prefix@,$prefix,;t t
++s,@program_transform_name@,$program_transform_name,;t t
++s,@bindir@,$bindir,;t t
++s,@sbindir@,$sbindir,;t t
++s,@libexecdir@,$libexecdir,;t t
++s,@datadir@,$datadir,;t t
++s,@sysconfdir@,$sysconfdir,;t t
++s,@sharedstatedir@,$sharedstatedir,;t t
++s,@localstatedir@,$localstatedir,;t t
++s,@libdir@,$libdir,;t t
++s,@includedir@,$includedir,;t t
++s,@oldincludedir@,$oldincludedir,;t t
++s,@infodir@,$infodir,;t t
++s,@mandir@,$mandir,;t t
++s,@build_alias@,$build_alias,;t t
++s,@host_alias@,$host_alias,;t t
++s,@target_alias@,$target_alias,;t t
++s,@DEFS@,$DEFS,;t t
++s,@ECHO_C@,$ECHO_C,;t t
++s,@ECHO_N@,$ECHO_N,;t t
++s,@ECHO_T@,$ECHO_T,;t t
++s,@LIBS@,$LIBS,;t t
++s,@build@,$build,;t t
++s,@build_cpu@,$build_cpu,;t t
++s,@build_vendor@,$build_vendor,;t t
++s,@build_os@,$build_os,;t t
++s,@host@,$host,;t t
++s,@host_cpu@,$host_cpu,;t t
++s,@host_vendor@,$host_vendor,;t t
++s,@host_os@,$host_os,;t t
++s,@target@,$target,;t t
++s,@target_cpu@,$target_cpu,;t t
++s,@target_vendor@,$target_vendor,;t t
++s,@target_os@,$target_os,;t t
++s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
++s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
++s,@INSTALL_DATA@,$INSTALL_DATA,;t t
++s,@PACKAGE@,$PACKAGE,;t t
++s,@VERSION@,$VERSION,;t t
++s,@ACLOCAL@,$ACLOCAL,;t t
++s,@AUTOCONF@,$AUTOCONF,;t t
++s,@AUTOMAKE@,$AUTOMAKE,;t t
++s,@AUTOHEADER@,$AUTOHEADER,;t t
++s,@MAKEINFO@,$MAKEINFO,;t t
++s,@SET_MAKE@,$SET_MAKE,;t t
++s,@LIBVER_CURRENT@,$LIBVER_CURRENT,;t t
++s,@LIBVER_REVISION@,$LIBVER_REVISION,;t t
++s,@LIBVER_AGE@,$LIBVER_AGE,;t t
++s,@CC@,$CC,;t t
++s,@CFLAGS@,$CFLAGS,;t t
++s,@LDFLAGS@,$LDFLAGS,;t t
++s,@CPPFLAGS@,$CPPFLAGS,;t t
++s,@ac_ct_CC@,$ac_ct_CC,;t t
++s,@EXEEXT@,$EXEEXT,;t t
++s,@OBJEXT@,$OBJEXT,;t t
++s,@LEX@,$LEX,;t t
++s,@LEXLIB@,$LEXLIB,;t t
++s,@LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t
++s,@YACC@,$YACC,;t t
++s,@LN_S@,$LN_S,;t t
++s,@ECHO@,$ECHO,;t t
++s,@RANLIB@,$RANLIB,;t t
++s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
++s,@STRIP@,$STRIP,;t t
++s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
++s,@CPP@,$CPP,;t t
++s,@EGREP@,$EGREP,;t t
++s,@LIBTOOL@,$LIBTOOL,;t t
++s,@LIBTOOL_DEPS@,$LIBTOOL_DEPS,;t t
++s,@PERL@,$PERL,;t t
++s,@LIBOBJS@,$LIBOBJS,;t t
++s,@LTLIBOBJS@,$LTLIBOBJS,;t t
++CEOF
++
++_ACEOF
++
++  cat >>$CONFIG_STATUS <<\_ACEOF
++  # Split the substitutions into bite-sized pieces for seds with
++  # small command number limits, like on Digital OSF/1 and HP-UX.
++  ac_max_sed_lines=48
++  ac_sed_frag=1 # Number of current file.
++  ac_beg=1 # First line for current file.
++  ac_end=$ac_max_sed_lines # Line after last line for current file.
++  ac_more_lines=:
++  ac_sed_cmds=
++  while $ac_more_lines; do
++    if test $ac_beg -gt 1; then
++      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
++    else
++      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
++    fi
++    if test ! -s $tmp/subs.frag; then
++      ac_more_lines=false
++    else
++      # The purpose of the label and of the branching condition is to
++      # speed up the sed processing (if there are no `@' at all, there
++      # is no need to browse any of the substitutions).
++      # These are the two extra sed commands mentioned above.
++      (echo ':t
++  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
++      if test -z "$ac_sed_cmds"; then
++      ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
++      else
++      ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
++      fi
++      ac_sed_frag=`expr $ac_sed_frag + 1`
++      ac_beg=$ac_end
++      ac_end=`expr $ac_end + $ac_max_sed_lines`
++    fi
++  done
++  if test -z "$ac_sed_cmds"; then
++    ac_sed_cmds=cat
++  fi
++fi # test -n "$CONFIG_FILES"
++
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case "$ac_file" in
+-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+-  *) ac_file_in="${ac_file}.in" ;;
+-  esac
+-
+-  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+-
+-  # Remove last slash and all that follows it.  Not all systems have dirname.
+-  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+-  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+-    # The file is in a subdirectory.
+-    test ! -d "$ac_dir" && mkdir "$ac_dir"
+-    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+-    # A "../" for each directory in $ac_dir_suffix.
+-    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+-  else
+-    ac_dir_suffix= ac_dots=
+-  fi
+-
+-  case "$ac_given_srcdir" in
+-  .)  srcdir=.
+-      if test -z "$ac_dots"; then top_srcdir=.
+-      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+-  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
++  case $ac_file in
++  - | *:- | *:-:* ) # input from stdin
++        cat >$tmp/stdin
++        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
++        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
++  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
++        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
++  * )   ac_file_in=$ac_file.in ;;
++  esac
++
++  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
++  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++         X"$ac_file" : 'X\(//\)[^/]' \| \
++         X"$ac_file" : 'X\(//\)$' \| \
++         X"$ac_file" : 'X\(/\)' \| \
++         .     : '\(.\)' 2>/dev/null ||
++echo X"$ac_file" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++        /^X\(\/\/\)$/{ s//\1/; q; }
++        /^X\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++  { if $as_mkdir_p; then
++    mkdir -p "$ac_dir"
++  else
++    as_dir="$ac_dir"
++    as_dirs=
++    while test ! -d "$as_dir"; do
++      as_dirs="$as_dir $as_dirs"
++      as_dir=`(dirname "$as_dir") 2>/dev/null ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++         X"$as_dir" : 'X\(//\)[^/]' \| \
++         X"$as_dir" : 'X\(//\)$' \| \
++         X"$as_dir" : 'X\(/\)' \| \
++         .     : '\(.\)' 2>/dev/null ||
++echo X"$as_dir" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++        /^X\(\/\/\)$/{ s//\1/; q; }
++        /^X\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++    done
++    test ! -n "$as_dirs" || mkdir $as_dirs
++  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
++   { (exit 1); exit 1; }; }; }
++
++  ac_builddir=.
++
++if test "$ac_dir" != .; then
++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
++  # A "../" for each directory in $ac_dir_suffix.
++  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
++else
++  ac_dir_suffix= ac_top_builddir=
++fi
++
++case $srcdir in
++  .)  # No --srcdir option.  We are building in place.
++    ac_srcdir=.
++    if test -z "$ac_top_builddir"; then
++       ac_top_srcdir=.
++    else
++       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
++    fi ;;
++  [\\/]* | ?:[\\/]* )  # Absolute path.
++    ac_srcdir=$srcdir$ac_dir_suffix;
++    ac_top_srcdir=$srcdir ;;
+   *) # Relative path.
+-    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+-    top_srcdir="$ac_dots$ac_given_srcdir" ;;
++    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
++    ac_top_srcdir=$ac_top_builddir$srcdir ;;
++esac
++# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
++# absolute.
++ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
++ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
++ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
++ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
++
++
++  case $INSTALL in
++  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
++  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+   esac
+-  case "$ac_given_INSTALL" in
+-  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+-  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+-  esac
+-
+-  echo creating "$ac_file"
+-  rm -f "$ac_file"
+-  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+-  case "$ac_file" in
+-  *Makefile*) ac_comsub="1i\\
+-# $configure_input" ;;
+-  *) ac_comsub= ;;
+-  esac
+-
+-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+-  sed -e "$ac_comsub
+-s%@configure_input@%$configure_input%g
+-s%@srcdir@%$srcdir%g
+-s%@top_srcdir@%$top_srcdir%g
+-s%@INSTALL@%$INSTALL%g
+-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+-fi; done
+-rm -f conftest.s*
++  if test x"$ac_file" != x-; then
++    { echo "$as_me:$LINENO: creating $ac_file" >&5
++echo "$as_me: creating $ac_file" >&6;}
++    rm -f "$ac_file"
++  fi
++  # Let's still pretend it is `configure' which instantiates (i.e., don't
++  # use $as_me), people would be surprised to read:
++  #    /* config.h.  Generated by config.status.  */
++  if test x"$ac_file" = x-; then
++    configure_input=
++  else
++    configure_input="$ac_file.  "
++  fi
++  configure_input=$configure_input"Generated from `echo $ac_file_in |
++                                     sed 's,.*/,,'` by configure."
++
++  # First look for the input files in the build tree, otherwise in the
++  # src tree.
++  ac_file_inputs=`IFS=:
++    for f in $ac_file_in; do
++      case $f in
++      -) echo $tmp/stdin ;;
++      [\\/$]*)
++         # Absolute (can't be DOS-style, as IFS=:)
++         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
++echo "$as_me: error: cannot find input file: $f" >&2;}
++   { (exit 1); exit 1; }; }
++         echo $f;;
++      *) # Relative
++         if test -f "$f"; then
++           # Build tree
++           echo $f
++         elif test -f "$srcdir/$f"; then
++           # Source tree
++           echo $srcdir/$f
++         else
++           # /dev/null tree
++           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
++echo "$as_me: error: cannot find input file: $f" >&2;}
++   { (exit 1); exit 1; }; }
++         fi;;
++      esac
++    done` || { (exit 1); exit 1; }
++_ACEOF
++cat >>$CONFIG_STATUS <<_ACEOF
++  sed "$ac_vpsub
++$extrasub
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++:t
++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
++s,@configure_input@,$configure_input,;t t
++s,@srcdir@,$ac_srcdir,;t t
++s,@abs_srcdir@,$ac_abs_srcdir,;t t
++s,@top_srcdir@,$ac_top_srcdir,;t t
++s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
++s,@builddir@,$ac_builddir,;t t
++s,@abs_builddir@,$ac_abs_builddir,;t t
++s,@top_builddir@,$ac_top_builddir,;t t
++s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
++s,@INSTALL@,$ac_INSTALL,;t t
++" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
++  rm -f $tmp/stdin
++  if test x"$ac_file" != x-; then
++    mv $tmp/out $ac_file
++  else
++    cat $tmp/out
++    rm -f $tmp/out
++  fi
++
++done
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++
++#
++# CONFIG_HEADER section.
++#
+ # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+ # NAME is the cpp macro being defined and VALUE is the value it is being given.
+ #
+ # ac_d sets the value in "#define NAME VALUE" lines.
+-ac_dA='s%^\([         ]*\)#\([        ]*define[       ][      ]*\)'
+-ac_dB='\([    ][      ]*\)[^  ]*%\1#\2'
+-ac_dC='\3'
+-ac_dD='%g'
+-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+-ac_uA='s%^\([         ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+-ac_uB='\([    ]\)%\1#\2define\3'
++ac_dA='s,^\([         ]*\)#\([        ]*define[       ][      ]*\)'
++ac_dB='[      ].*$,\1#\2'
++ac_dC=' '
++ac_dD=',;t'
++# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
++ac_uA='s,^\([         ]*\)#\([        ]*\)undef\([    ][      ]*\)'
++ac_uB='$,\1#\2define\3'
+ ac_uC=' '
+-ac_uD='\4%g'
+-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+-ac_eA='s%^\([         ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+-ac_eB='$%\1#\2define\3'
+-ac_eC=' '
+-ac_eD='%g'
++ac_uD=',;t'
+-if test "${CONFIG_HEADERS+set}" != set; then
+-EOF
+-cat >> $CONFIG_STATUS <<EOF
+-  CONFIG_HEADERS="config.h"
+-EOF
+-cat >> $CONFIG_STATUS <<\EOF
+-fi
+-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
++for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case "$ac_file" in
+-  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+-       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+-  *) ac_file_in="${ac_file}.in" ;;
++  case $ac_file in
++  - | *:- | *:-:* ) # input from stdin
++        cat >$tmp/stdin
++        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
++        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
++  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
++        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
++  * )   ac_file_in=$ac_file.in ;;
+   esac
+-  echo creating $ac_file
+-
+-  rm -f conftest.frag conftest.in conftest.out
+-  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+-  cat $ac_file_inputs > conftest.in
+-
+-EOF
++  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
++echo "$as_me: creating $ac_file" >&6;}
+-# Transform confdefs.h into a sed script conftest.vals that substitutes
+-# the proper values into config.h.in to produce config.h.  And first:
+-# Protect against being on the right side of a sed subst in config.status.
+-# Protect against being in an unquoted here document in config.status.
+-rm -f conftest.vals
+-cat > conftest.hdr <<\EOF
+-s/[\\&%]/\\&/g
+-s%[\\$`]%\\&%g
+-s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+-s%ac_d%ac_u%gp
+-s%ac_u%ac_e%gp
+-EOF
+-sed -n -f conftest.hdr confdefs.h > conftest.vals
+-rm -f conftest.hdr
++  # First look for the input files in the build tree, otherwise in the
++  # src tree.
++  ac_file_inputs=`IFS=:
++    for f in $ac_file_in; do
++      case $f in
++      -) echo $tmp/stdin ;;
++      [\\/$]*)
++         # Absolute (can't be DOS-style, as IFS=:)
++         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
++echo "$as_me: error: cannot find input file: $f" >&2;}
++   { (exit 1); exit 1; }; }
++         echo $f;;
++      *) # Relative
++         if test -f "$f"; then
++           # Build tree
++           echo $f
++         elif test -f "$srcdir/$f"; then
++           # Source tree
++           echo $srcdir/$f
++         else
++           # /dev/null tree
++           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
++echo "$as_me: error: cannot find input file: $f" >&2;}
++   { (exit 1); exit 1; }; }
++         fi;;
++      esac
++    done` || { (exit 1); exit 1; }
++  # Remove the trailing spaces.
++  sed 's/[    ]*$//' $ac_file_inputs >$tmp/in
++
++_ACEOF
++
++# Transform confdefs.h into two sed scripts, `conftest.defines' and
++# `conftest.undefs', that substitutes the proper values into
++# config.h.in to produce config.h.  The first handles `#define'
++# templates, and the second `#undef' templates.
++# And first: Protect against being on the right side of a sed subst in
++# config.status.  Protect against being in an unquoted here document
++# in config.status.
++rm -f conftest.defines conftest.undefs
++# Using a here document instead of a string reduces the quoting nightmare.
++# Putting comments in sed scripts is not portable.
++#
++# `end' is used to avoid that the second main sed command (meant for
++# 0-ary CPP macros) applies to n-ary macro definitions.
++# See the Autoconf documentation for `clear'.
++cat >confdef2sed.sed <<\_ACEOF
++s/[\\&,]/\\&/g
++s,[\\$`],\\&,g
++t clear
++: clear
++s,^[  ]*#[    ]*define[       ][      ]*\([^  (][^    (]*\)\(([^)]*)\)[       ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
++t end
++s,^[  ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
++: end
++_ACEOF
++# If some macros were called several times there might be several times
++# the same #defines, which is useless.  Nevertheless, we may not want to
++# sort them, since we want the *last* AC-DEFINE to be honored.
++uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
++sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
++rm -f confdef2sed.sed
+ # This sed command replaces #undef with comments.  This is necessary, for
+ # example, in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+-cat >> conftest.vals <<\EOF
+-s%^[  ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+-EOF
+-
+-# Break up conftest.vals because some shells have a limit on
+-# the size of here documents, and old seds have small limits too.
+-
++cat >>conftest.undefs <<\_ACEOF
++s,^[  ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
++_ACEOF
++
++# Break up conftest.defines because some shells have a limit on the size
++# of here documents, and old seds have small limits too (100 cmds).
++echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
++echo '  if grep "^[   ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
++echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
++echo '  :' >>$CONFIG_STATUS
++rm -f conftest.tail
++while grep . conftest.defines >/dev/null
++do
++  # Write a limited-size here document to $tmp/defines.sed.
++  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
++  # Speed up: don't consider the non `#define' lines.
++  echo '/^[   ]*#[    ]*define/!b' >>$CONFIG_STATUS
++  # Work around the forget-to-reset-the-flag bug.
++  echo 't clr' >>$CONFIG_STATUS
++  echo ': clr' >>$CONFIG_STATUS
++  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
++  echo 'CEOF
++  sed -f $tmp/defines.sed $tmp/in >$tmp/out
++  rm -f $tmp/in
++  mv $tmp/out $tmp/in
++' >>$CONFIG_STATUS
++  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
++  rm -f conftest.defines
++  mv conftest.tail conftest.defines
++done
++rm -f conftest.defines
++echo '  fi # grep' >>$CONFIG_STATUS
++echo >>$CONFIG_STATUS
++
++# Break up conftest.undefs because some shells have a limit on the size
++# of here documents, and old seds have small limits too (100 cmds).
++echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+ rm -f conftest.tail
+-while :
++while grep . conftest.undefs >/dev/null
+ do
+-  ac_lines=`grep -c . conftest.vals`
+-  # grep -c gives empty output for an empty file on some AIX systems.
+-  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+-  # Write a limited-size here document to conftest.frag.
+-  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+-  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
++  # Write a limited-size here document to $tmp/undefs.sed.
++  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
++  # Speed up: don't consider the non `#undef'
++  echo '/^[   ]*#[    ]*undef/!b' >>$CONFIG_STATUS
++  # Work around the forget-to-reset-the-flag bug.
++  echo 't clr' >>$CONFIG_STATUS
++  echo ': clr' >>$CONFIG_STATUS
++  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+   echo 'CEOF
+-  sed -f conftest.frag conftest.in > conftest.out
+-  rm -f conftest.in
+-  mv conftest.out conftest.in
+-' >> $CONFIG_STATUS
+-  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+-  rm -f conftest.vals
+-  mv conftest.tail conftest.vals
+-done
+-rm -f conftest.vals
+-
+-cat >> $CONFIG_STATUS <<\EOF
+-  rm -f conftest.frag conftest.h
+-  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+-  cat conftest.in >> conftest.h
+-  rm -f conftest.in
+-  if cmp -s $ac_file conftest.h 2>/dev/null; then
+-    echo "$ac_file is unchanged"
+-    rm -f conftest.h
+-  else
+-    # Remove last slash and all that follows it.  Not all systems have dirname.
+-      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+-      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+-      # The file is in a subdirectory.
+-      test ! -d "$ac_dir" && mkdir "$ac_dir"
++  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
++  rm -f $tmp/in
++  mv $tmp/out $tmp/in
++' >>$CONFIG_STATUS
++  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
++  rm -f conftest.undefs
++  mv conftest.tail conftest.undefs
++done
++rm -f conftest.undefs
++
++cat >>$CONFIG_STATUS <<\_ACEOF
++  # Let's still pretend it is `configure' which instantiates (i.e., don't
++  # use $as_me), people would be surprised to read:
++  #    /* config.h.  Generated by config.status.  */
++  if test x"$ac_file" = x-; then
++    echo "/* Generated by configure.  */" >$tmp/config.h
++  else
++    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
++  fi
++  cat $tmp/in >>$tmp/config.h
++  rm -f $tmp/in
++  if test x"$ac_file" != x-; then
++    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
++      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
++echo "$as_me: $ac_file is unchanged" >&6;}
++    else
++      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++         X"$ac_file" : 'X\(//\)[^/]' \| \
++         X"$ac_file" : 'X\(//\)$' \| \
++         X"$ac_file" : 'X\(/\)' \| \
++         .     : '\(.\)' 2>/dev/null ||
++echo X"$ac_file" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++        /^X\(\/\/\)$/{ s//\1/; q; }
++        /^X\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++      { if $as_mkdir_p; then
++    mkdir -p "$ac_dir"
++  else
++    as_dir="$ac_dir"
++    as_dirs=
++    while test ! -d "$as_dir"; do
++      as_dirs="$as_dir $as_dirs"
++      as_dir=`(dirname "$as_dir") 2>/dev/null ||
++$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++         X"$as_dir" : 'X\(//\)[^/]' \| \
++         X"$as_dir" : 'X\(//\)$' \| \
++         X"$as_dir" : 'X\(/\)' \| \
++         .     : '\(.\)' 2>/dev/null ||
++echo X"$as_dir" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++        /^X\(\/\/\)$/{ s//\1/; q; }
++        /^X\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++    done
++    test ! -n "$as_dirs" || mkdir $as_dirs
++  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
++   { (exit 1); exit 1; }; }; }
++
++      rm -f $ac_file
++      mv $tmp/config.h $ac_file
+     fi
+-    rm -f $ac_file
+-    mv conftest.h $ac_file
++  else
++    cat $tmp/config.h
++    rm -f $tmp/config.h
+   fi
+-fi; done
++done
++_ACEOF
++cat >>$CONFIG_STATUS <<\_ACEOF
+-EOF
+-cat >> $CONFIG_STATUS <<EOF
++#
++# CONFIG_COMMANDS section.
++#
++for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
++  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
++  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
++  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
++$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
++         X"$ac_dest" : 'X\(//\)[^/]' \| \
++         X"$ac_dest" : 'X\(//\)$' \| \
++         X"$ac_dest" : 'X\(/\)' \| \
++         .     : '\(.\)' 2>/dev/null ||
++echo X"$ac_dest" |
++    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
++        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
++        /^X\(\/\/\)$/{ s//\1/; q; }
++        /^X\(\/\).*/{ s//\1/; q; }
++        s/.*/./; q'`
++  ac_builddir=.
++
++if test "$ac_dir" != .; then
++  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
++  # A "../" for each directory in $ac_dir_suffix.
++  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
++else
++  ac_dir_suffix= ac_top_builddir=
++fi
++
++case $srcdir in
++  .)  # No --srcdir option.  We are building in place.
++    ac_srcdir=.
++    if test -z "$ac_top_builddir"; then
++       ac_top_srcdir=.
++    else
++       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
++    fi ;;
++  [\\/]* | ?:[\\/]* )  # Absolute path.
++    ac_srcdir=$srcdir$ac_dir_suffix;
++    ac_top_srcdir=$srcdir ;;
++  *) # Relative path.
++    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
++    ac_top_srcdir=$ac_top_builddir$srcdir ;;
++esac
++# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
++# absolute.
++ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
++ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
++ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
++ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+-EOF
+-cat >> $CONFIG_STATUS <<\EOF
+-test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
++  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
++echo "$as_me: executing $ac_dest commands" >&6;}
++  case $ac_dest in
++    default-1 ) test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h ;;
++  esac
++done
++_ACEOF
+-exit 0
+-EOF
++cat >>$CONFIG_STATUS <<\_ACEOF
++
++{ (exit 0); exit 0; }
++_ACEOF
+ chmod +x $CONFIG_STATUS
+-rm -fr confdefs* $ac_clean_files
+-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
++ac_clean_files=$ac_clean_files_save
++
++
++# configure is writing to config.log, and then calls config.status.
++# config.status does its own redirection, appending to config.log.
++# Unfortunately, on DOS this fails, as config.log is still kept open
++# by configure, so config.status won't be able to write to it; its
++# output is simply discarded.  So we exec the FD to /dev/null,
++# effectively closing config.log, so it can be properly (re)opened and
++# appended to by config.status.  When coming back to configure, we
++# need to make the FD available again.
++if test "$no_create" != yes; then
++  ac_cs_success=:
++  ac_config_status_args=
++  test "$silent" = yes &&
++    ac_config_status_args="$ac_config_status_args --quiet"
++  exec 5>/dev/null
++  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
++  exec 5>>config.log
++  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
++  # would make configure fail if this is the last instruction.
++  $ac_cs_success || { (exit 1); exit 1; }
++fi
+--- linux-atm-2.4.1.orig/ltmain.sh
++++ linux-atm-2.4.1/ltmain.sh
+@@ -49,14 +49,14 @@
+ fi
+ # The name of this program.
+-progname=`$echo "$0" | sed 's%^.*/%%'`
++progname=`$echo "$0" | ${SED} 's%^.*/%%'`
+ modename="$progname"
+ # Constants.
+ PROGRAM=ltmain.sh
+ PACKAGE=libtool
+-VERSION=1.4
+-TIMESTAMP=" (1.920 2001/04/24 23:26:18)"
++VERSION=1.4.3
++TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)"
+ default_mode=
+ help="Try \`$progname --help' for more information."
+@@ -67,10 +67,19 @@
+ # Sed substitution that helps us do robust quoting.  It backslashifies
+ # metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e 1s/^X//'
++Xsed="${SED}"' -e 1s/^X//'
+ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+-SP2NL='tr \040 \012'
+-NL2SP='tr \015\012 \040\040'
++# test EBCDIC or ASCII                                                         
++case `echo A|od -x` in                                                         
++ *[Cc]1*) # EBCDIC based system                                                
++  SP2NL="tr '\100' '\n'"                                                       
++  NL2SP="tr '\r\n' '\100\100'"                                                 
++  ;;                                                                           
++ *) # Assume ASCII based system                                                
++  SP2NL="tr '\040' '\012'"                                                     
++  NL2SP="tr '\015\012' '\040\040'"                                             
++  ;;                                                                           
++esac                                                                           
+ # NLS nuisances.
+ # Only set LANG and LC_ALL to C if already set.
+@@ -84,6 +93,9 @@
+   save_LANG="$LANG"; LANG=C; export LANG
+ fi
++# Make sure IFS has a sensible default
++: ${IFS="     "}
++
+ 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
+@@ -141,7 +153,7 @@
+     ;;
+   --config)
+-    sed -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
++    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
+     exit 0
+     ;;
+@@ -174,6 +186,8 @@
+   --mode) prevopt="--mode" prev=mode ;;
+   --mode=*) mode="$optarg" ;;
++  --preserve-dup-deps) duplicate_deps="yes" ;;
++
+   --quiet | --silent)
+     show=:
+     ;;
+@@ -202,12 +216,17 @@
+   exit 1
+ fi
++# 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
+     case $nonopt in
+-    *cc | *++ | gcc* | *-gcc*)
++    *cc | *++ | gcc* | *-gcc* | g++* | xlc*)
+       mode=link
+       for arg
+       do
+@@ -329,7 +348,7 @@
+       -Wc,*)
+       args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+       lastarg=
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
++      save_ifs="$IFS"; IFS=','
+       for arg in $args; do
+         IFS="$save_ifs"
+@@ -615,6 +634,10 @@
+       # Now arrange that obj and lo_libobj become the same file
+       $show "(cd $xdir && $LN_S $baseobj $libobj)"
+       if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
++        # Unlock the critical section if it was locked
++        if test "$need_locks" != no; then
++          $run $rm "$lockfile"
++        fi
+         exit 0
+       else
+         error=$?
+@@ -745,6 +768,7 @@
+     linker_flags=
+     dllsearchpath=
+     lib_search_path=`pwd`
++    inst_prefix_dir=
+     avoid_version=no
+     dlfiles=
+@@ -875,6 +899,11 @@
+         prev=
+         continue
+         ;;
++      inst_prefix)
++        inst_prefix_dir="$arg"
++        prev=
++        continue
++        ;;
+       release)
+         release="-$arg"
+         prev=
+@@ -976,11 +1005,16 @@
+       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*)
++      no/*-*-irix* | no/*-*-nonstopux*)
+         compile_command="$compile_command $arg"
+         finalize_command="$finalize_command $arg"
+         ;;
+@@ -1031,6 +1065,17 @@
+           # These systems don't actually have a C library (as such)
+           test "X$arg" = "X-lc" && continue
+           ;;
++        *-*-openbsd* | *-*-freebsd*)
++          # Do not include libc due to us having libc/libc_r.
++          test "X$arg" = "X-lc" && continue
++          ;;
++        esac
++       elif test "X$arg" = "X-lc_r"; then
++        case $host in
++       *-*-openbsd* | *-*-freebsd*)
++          # Do not include libc_r directly, use -pthread flag.
++          continue
++          ;;
+         esac
+       fi
+       deplibs="$deplibs $arg"
+@@ -1122,7 +1167,7 @@
+       -Wc,*)
+       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+       arg=
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
++      save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+         case $flag in
+@@ -1140,7 +1185,7 @@
+       -Wl,*)
+       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+       arg=
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
++      save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+         case $flag in
+@@ -1307,9 +1352,11 @@
+     # Find all interdependent deplibs by searching for libraries
+     # that are linked more than once (e.g. -la -lb -la)
+     for deplib in $deplibs; do
+-      case "$libs " in
+-      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+-      esac
++      if test "X$duplicate_deps" = "Xyes" ; then
++      case "$libs " in
++      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++      esac
++      fi
+       libs="$libs $deplib"
+     done
+     deplibs=
+@@ -1343,7 +1390,7 @@
+       ;;
+     esac
+     for pass in $passes; do
+-      if test "$linkmode" = prog; then
++      if test $linkmode = prog; then
+       # Determine which files to process
+       case $pass in
+       dlopen)
+@@ -1360,11 +1407,11 @@
+       found=no
+       case $deplib in
+       -l*)
+-        if test "$linkmode" = oldlib && test "$linkmode" = obj; then
++        if test $linkmode = oldlib && test $linkmode = obj; then
+           $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
+           continue
+         fi
+-        if test "$pass" = conv; then
++        if test $pass = conv; then
+           deplibs="$deplib $deplibs"
+           continue
+         fi
+@@ -1384,7 +1431,7 @@
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             deplibs="$deplib $deplibs"
+-            test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
++            test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
+           fi
+           continue
+         fi
+@@ -1393,16 +1440,16 @@
+         case $linkmode in
+         lib)
+           deplibs="$deplib $deplibs"
+-          test "$pass" = conv && continue
++          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
++          if test $pass = conv; then
+             deplibs="$deplib $deplibs"
+             continue
+           fi
+-          if test "$pass" = scan; then
++          if test $pass = scan; then
+             deplibs="$deplib $deplibs"
+             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+           else
+@@ -1417,7 +1464,7 @@
+         continue
+         ;; # -L
+       -R*)
+-        if test "$pass" = link; then
++        if test $pass = link; then
+           dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+           # Make sure the xrpath contains only unique directories.
+           case "$xrpath " in
+@@ -1430,7 +1477,7 @@
+         ;;
+       *.la) lib="$deplib" ;;
+       *.$libext)
+-        if test "$pass" = conv; then
++        if test $pass = conv; then
+           deplibs="$deplib $deplibs"
+           continue
+         fi
+@@ -1438,10 +1485,12 @@
+         lib)
+           if test "$deplibs_check_method" != pass_all; then
+             echo
+-            echo "*** Warning: This library needs some functionality provided by $deplib."
++            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 "*** 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"
+@@ -1451,7 +1500,7 @@
+           continue
+           ;;
+         prog)
+-          if test "$pass" != link; then
++          if test $pass != link; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+@@ -1462,7 +1511,7 @@
+         esac # linkmode
+         ;; # *.$libext
+       *.lo | *.$objext)
+-        if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; 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"
+@@ -1485,7 +1534,7 @@
+       fi
+       # Check to see that this really is a libtool archive.
+-      if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++      if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+       else
+         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+         exit 1
+@@ -1512,13 +1561,13 @@
+       if test "$linkmode,$pass" = "lib,link" ||
+          test "$linkmode,$pass" = "prog,scan" ||
+-         { test "$linkmode" = oldlib && test "$linkmode" = obj; }; then
++         { test $linkmode = oldlib && test $linkmode = obj; }; then
+          # Add dl[pre]opened files of deplib
+         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+       fi
+-      if test "$pass" = conv; then
++      if test $pass = conv; then
+         # Only check for convenience libraries
+         deplibs="$lib $deplibs"
+         if test -z "$libdir"; then
+@@ -1532,12 +1581,14 @@
+           tmp_libs=
+           for deplib in $dependency_libs; do
+             deplibs="$deplib $deplibs"
+-            case "$tmp_libs " in
+-            *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+-            esac
++              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
++        elif test $linkmode != prog && test $linkmode != lib; then
+           $echo "$modename: \`$lib' is not a convenience library" 1>&2
+           exit 1
+         fi
+@@ -1555,7 +1606,7 @@
+       fi
+       # This library was specified with -dlopen.
+-      if test "$pass" = dlopen; then
++      if test $pass = dlopen; then
+         if test -z "$libdir"; then
+           $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+           exit 1
+@@ -1604,7 +1655,7 @@
+       name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+       # This library was specified with -dlpreopen.
+-      if test "$pass" = dlpreopen; then
++      if test $pass = dlpreopen; then
+         if test -z "$libdir"; then
+           $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+           exit 1
+@@ -1623,7 +1674,7 @@
+       if test -z "$libdir"; then
+         # Link the convenience library
+-        if test "$linkmode" = lib; then
++        if test $linkmode = lib; then
+           deplibs="$dir/$old_library $deplibs"
+         elif test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$dir/$old_library $compile_deplibs"
+@@ -1634,7 +1685,7 @@
+         continue
+       fi
+-      if test "$linkmode" = prog && test "$pass" != link; then
++      if test $linkmode = prog && test $pass != link; then
+         newlib_search_path="$newlib_search_path $ladir"
+         deplibs="$lib $deplibs"
+@@ -1657,9 +1708,11 @@
+             # or/and link against static libraries
+             newdependency_libs="$deplib $newdependency_libs"
+           fi
+-          case "$tmp_libs " in
+-          *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+-          esac
++          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
+@@ -1671,7 +1724,7 @@
+         # Link against this shared library
+         if test "$linkmode,$pass" = "prog,link" ||
+-         { test "$linkmode" = lib && test "$hardcode_into_libs" = yes; }; then
++         { 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.
+@@ -1693,7 +1746,7 @@
+             esac
+             ;;
+           esac
+-          if test "$linkmode" = prog; then
++          if test $linkmode = prog; then
+             # We need to hardcode the library path
+             if test -n "$shlibpath_var"; then
+               # Make sure the rpath contains only unique directories.
+@@ -1743,14 +1796,14 @@
+           # 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"
++          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'"
+-            IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
++            save_ifs="$IFS"; IFS='~'
+             eval cmds=\"$extract_expsyms_cmds\"
+             for cmd in $cmds; do
+               IFS="$save_ifs"
+@@ -1763,7 +1816,7 @@
+           # Create $newlib
+           if test -f "$output_objdir/$newlib"; then :; else
+             $show "generating import library for \`$soname'"
+-            IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
++            save_ifs="$IFS"; IFS='~'
+             eval cmds=\"$old_archive_from_expsyms_cmds\"
+             for cmd in $cmds; do
+               IFS="$save_ifs"
+@@ -1777,7 +1830,7 @@
+           linklib=$newlib
+         fi # test -n $old_archive_from_expsyms_cmds
+-        if test "$linkmode" = prog || test "$mode" != relink; then
++        if test $linkmode = prog || test "$mode" != relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+@@ -1804,6 +1857,14 @@
+               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="-L$inst_prefix_dir$libdir $add_dir"
++                  ;;
++                esac
++              fi
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = yes; then
+               add_shlibpath="$dir"
+@@ -1826,7 +1887,7 @@
+             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             esac
+           fi
+-          if test "$linkmode" = prog; then
++          if test $linkmode = prog; then
+             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+             test -n "$add" && compile_deplibs="$add $compile_deplibs"
+           else
+@@ -1843,7 +1904,7 @@
+           fi
+         fi
+-        if test "$linkmode" = prog || test "$mode" = relink; then
++        if test $linkmode = prog || test "$mode" = relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+@@ -1862,10 +1923,18 @@
+           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="-L$inst_prefix_dir$libdir $add_dir"
++                ;;
++              esac
++            fi
+             add="-l$name"
+           fi
+-          if test "$linkmode" = prog; then
++          if test $linkmode = prog; then
+             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+           else
+@@ -1873,7 +1942,7 @@
+             test -n "$add" && deplibs="$add $deplibs"
+           fi
+         fi
+-      elif test "$linkmode" = prog; then
++      elif test $linkmode = prog; then
+         if test "$alldeplibs" = yes &&
+            { test "$deplibs_check_method" = pass_all ||
+              { test "$build_libtool_libs" = yes &&
+@@ -1903,25 +1972,26 @@
+           # 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 library needs some functionality provided by $lib."
++          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 "*** Therefore, libtool will create a static module, that should work "
+-            echo "*** as long as the dlopening application is linked with the -dlopen flag."
++            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."
++              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
++              build_libtool_libs=module
++              build_old_libs=yes
+             else
+-              build_libtool_libs=no
++              build_libtool_libs=no
+             fi
+           fi
+         else
+@@ -1932,9 +2002,9 @@
+         fi
+       fi # link shared/static library?
+-      if test "$linkmode" = lib; then
++      if test $linkmode = lib; then
+         if test -n "$dependency_libs" &&
+-           { test "$hardcode_into_libs" != yes || test $build_old_libs = yes ||
++           { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
+              test $link_static = yes; }; then
+           # Extract -R from dependency_libs
+           temp_deplibs=
+@@ -1958,13 +2028,15 @@
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           newdependency_libs="$deplib $newdependency_libs"
+-          case "$tmp_libs " in
+-          *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+-          esac
++          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
++        if test $link_all_deplibs != no; then
+           # Add the search paths of all dependency libraries
+           for deplib in $dependency_libs; do
+             case $deplib in
+@@ -1986,7 +2058,7 @@
+               if grep "^installed=no" $deplib > /dev/null; then
+                 path="-L$absdir/$objdir"
+               else
+-                eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++                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 1
+@@ -2007,15 +2079,15 @@
+         fi # link_all_deplibs != no
+       fi # linkmode = lib
+       done # for deplib in $libs
+-      if test "$pass" = dlpreopen; then
++      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
+-      test "$pass" != scan && dependency_libs="$newdependency_libs"
+-      if test "$pass" != conv; then
++      if test $pass != dlopen; then
++      test $pass != scan && dependency_libs="$newdependency_libs"
++      if test $pass != conv; then
+         # Make sure lib_search_path contains only unique directories.
+         lib_search_path=
+         for dir in $newlib_search_path; do
+@@ -2073,7 +2145,7 @@
+       deplibs=
+       fi
+     done # for pass
+-    if test "$linkmode" = prog; then
++    if test $linkmode = prog; then
+       dlfiles="$newdlfiles"
+       dlprefiles="$newdlprefiles"
+     fi
+@@ -2175,7 +2247,7 @@
+       else
+       # Parse the version information argument.
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
++      save_ifs="$IFS"; IFS=':'
+       set dummy $vinfo 0 0 0
+       IFS="$save_ifs"
+@@ -2250,16 +2322,21 @@
+         versuffix=".$current";
+         ;;
+-      irix)
++      irix | nonstopux)
+         major=`expr $current - $age + 1`
+-        verstring="sgi$major.$revision"
++
++        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 != 0; do
+           iface=`expr $revision - $loop`
+           loop=`expr $loop - 1`
+-          verstring="sgi$major.$iface:$verstring"
++          verstring="$verstring_prefix$major.$iface:$verstring"
+         done
+         # Before this point, $major must not contain `.'.
+@@ -2273,7 +2350,7 @@
+         ;;
+       osf)
+-        major=`expr $current - $age`
++        major=.`expr $current - $age`
+         versuffix=".$current.$age.$revision"
+         verstring="$current.$age.$revision"
+@@ -2312,6 +2389,16 @@
+       if test -z "$vinfo" && test -n "$release"; then
+         major=
+         verstring="0.0"
++        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
+@@ -2355,9 +2442,9 @@
+       # 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'`
++      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
+@@ -2408,9 +2495,12 @@
+         *-*-netbsd*)
+           # Don't link with libc until the a.out ld.so is fixed.
+           ;;
++        *-*-openbsd* | *-*-freebsd*)
++          # Do not include libc due to us having libc/libc_r.
++          ;;
+         *)
+           # Add libc to deplibs on all other systems if necessary.
+-          if test "$build_libtool_need_lc" = "yes"; then
++          if test $build_libtool_need_lc = "yes"; then
+             deplibs="$deplibs -lc"
+           fi
+           ;;
+@@ -2466,18 +2556,20 @@
+               else
+                 droppeddeps=yes
+                 echo
+-                echo "*** Warning: This library needs some functionality provided by $i."
++                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 "*** 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
+             else
+               newdeplibs="$newdeplibs $i"
+             fi
+           done
+         else
+-          # Error occured in the first compile.  Let's try to salvage the situation:
+-          # Compile a seperate program for each library.
++          # Error occured 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.
+@@ -2496,10 +2588,12 @@
+                 else
+                   droppeddeps=yes
+                   echo
+-                  echo "*** Warning: This library needs some functionality provided by $i."
++                  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 "*** 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
+               else
+                 droppeddeps=yes
+@@ -2538,14 +2632,14 @@
+                     # but so what?
+                     potlib="$potent_lib"
+                     while test -h "$potlib" 2>/dev/null; do
+-                      potliblink=`ls -ld $potlib | sed 's/.* -> //'`
++                      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 \
++                       | ${SED} 10q \
+                        | egrep "$file_magic_regex" > /dev/null; then
+                       newdeplibs="$newdeplibs $a_deplib"
+                       a_deplib=""
+@@ -2556,10 +2650,17 @@
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               echo
+-              echo "*** Warning: This library needs some functionality provided by $a_deplib."
++              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 "*** 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.
+@@ -2578,8 +2679,9 @@
+             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 below in file_magic test
+                 if eval echo \"$potent_lib\" 2>/dev/null \
+-                    | sed 10q \
++                    | ${SED} 10q \
+                     | egrep "$match_pattern_regex" > /dev/null; then
+                   newdeplibs="$newdeplibs $a_deplib"
+                   a_deplib=""
+@@ -2590,10 +2692,17 @@
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               echo
+-              echo "*** Warning: This library needs some functionality provided by $a_deplib."
++              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 "*** 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.
+@@ -2683,7 +2792,7 @@
+       # 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
++      if test $hardcode_into_libs = yes; then
+         # Hardcode the library paths
+         hardcode_libdirs=
+         dep_rpath=
+@@ -2784,7 +2893,7 @@
+           export_symbols="$output_objdir/$libname.exp"
+           $run $rm $export_symbols
+           eval cmds=\"$export_symbols_cmds\"
+-          IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
++          save_ifs="$IFS"; IFS='~'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             $show "$cmd"
+@@ -2858,9 +2967,20 @@
+       if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+         eval cmds=\"$archive_expsym_cmds\"
+       else
++        save_deplibs="$deplibs"
++        for conv in $convenience; do
++          tmp_deplibs=
++          for test_deplib in $deplibs; do
++            if test "$test_deplib" != "$conv"; then
++              tmp_deplibs="$tmp_deplibs $test_deplib"
++            fi
++          done
++          deplibs="$tmp_deplibs"
++        done
+         eval cmds=\"$archive_cmds\"
++        deplibs="$save_deplibs"
+       fi
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
++      save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         $show "$cmd"
+@@ -2988,7 +3108,7 @@
+       output="$obj"
+       eval cmds=\"$reload_cmds\"
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
++      save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+       IFS="$save_ifs"
+       $show "$cmd"
+@@ -3024,7 +3144,7 @@
+       reload_objs="$libobjs $reload_conv_objs"
+       output="$libobj"
+       eval cmds=\"$reload_cmds\"
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
++      save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         $show "$cmd"
+@@ -3057,7 +3177,7 @@
+     prog)
+       case $host in
+-      *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
++      *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
+@@ -3079,6 +3199,13 @@
+       # 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 /'`
++      case $host in
++      *darwin*)
++        # Don't allow lazy linking, it breaks C++ global constructors
++        compile_command="$compile_command ${wl}-bind_at_load"
++        finalize_command="$finalize_command ${wl}-bind_at_load"
++        ;;
++      esac
+       ;;
+       esac
+@@ -3245,9 +3372,9 @@
+           if test -z "$export_symbols"; then
+             export_symbols="$output_objdir/$output.exp"
+             $run $rm $export_symbols
+-            $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
++            $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+           else
+-            $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
++            $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+             $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
+             $run eval 'mv "$nlist"T "$nlist"'
+           fi
+@@ -3255,7 +3382,7 @@
+         for arg in $dlprefiles; do
+           $show "extracting global C symbols from \`$arg'"
+-          name=`echo "$arg" | sed -e 's%^.*/%%'`
++          name=`echo "$arg" | ${SED} -e 's%^.*/%%'`
+           $run eval 'echo ": $name " >> "$nlist"'
+           $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+         done
+@@ -3270,7 +3397,13 @@
+           fi
+           # Try sorting and uniquifying the output.
+-          if grep -v "^: " < "$nlist" | sort +2 | uniq > "$nlist"S; then
++          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
+@@ -3287,27 +3420,25 @@
+ #undef lt_preloaded_symbols
+ #if defined (__STDC__) && __STDC__
+-# define lt_ptr_t void *
++# define lt_ptr void *
+ #else
+-# define lt_ptr_t char *
++# define lt_ptr char *
+ # define const
+ #endif
+ /* The mapping between symbol names and symbols. */
+ const struct {
+   const char *name;
+-  lt_ptr_t address;
++  lt_ptr address;
+ }
+ lt_preloaded_symbols[] =
+ {\
+ "
+-          sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
+-              -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
+-                < "$nlist" >> "$output_objdir/$dlsyms"
++          eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+           $echo >> "$output_objdir/$dlsyms" "\
+-  {0, (lt_ptr_t) 0}
++  {0, (lt_ptr) 0}
+ };
+ /* This works around a problem in FreeBSD linker */
+@@ -3494,7 +3625,7 @@
+           relink_command="$var=\"$var_value\"; export $var; $relink_command"
+         fi
+       done
+-      relink_command="cd `pwd`; $relink_command"
++      relink_command="(cd `pwd`; $relink_command)"
+       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+       fi
+@@ -3514,7 +3645,7 @@
+       # 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$,,'` ;;
++        *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;;
+       esac
+       # test for cygwin because mv fails w/o .exe extensions
+       case $host in
+@@ -3538,7 +3669,7 @@
+ # Sed substitution that helps us do robust quoting.  It backslashifies
+ # metacharacters that are still active within double-quoted strings.
+-Xsed='sed -e 1s/^X//'
++Xsed="${SED}"' -e 1s/^X//'
+ sed_quote_subst='$sed_quote_subst'
+ # The HP-UX ksh and POSIX shell print the target directory to stdout
+@@ -3576,7 +3707,7 @@
+   test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+   # Follow symbolic links until we get to the real thisdir.
+-  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
++  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+   while test -n \"\$file\"; do
+     destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+@@ -3589,7 +3720,7 @@
+     fi
+     file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+-    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
++    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+   done
+   # Try to get the absolute directory name.
+@@ -3603,7 +3734,7 @@
+   progdir=\"\$thisdir/$objdir\"
+   if test ! -f \"\$progdir/\$program\" || \\
+-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
++     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+        test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+     file=\"\$\$-\$program\"
+@@ -3618,8 +3749,9 @@
+     # relink executable if necessary
+     if test -n \"\$relink_command\"; then
+-      if (eval \$relink_command); then :
++      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+       else
++      $echo \"\$relink_command_output\" >&2
+       $rm \"\$progdir/\$file\"
+       exit 1
+       fi
+@@ -3648,7 +3780,7 @@
+     $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
++    # 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
+@@ -3790,7 +3922,7 @@
+       eval cmds=\"$old_archive_cmds\"
+       fi
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
++      save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+       IFS="$save_ifs"
+       $show "$cmd"
+@@ -3823,7 +3955,7 @@
+       fi
+       done
+       # Quote the link command for shipping.
+-      relink_command="cd `pwd`; $SHELL $0 --mode=relink $libtool_args"
++      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
+       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+       # Only create the output if not a dry run.
+@@ -3840,7 +3972,7 @@
+             case $deplib in
+             *.la)
+               name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+-              eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
++              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 1
+@@ -3854,7 +3986,7 @@
+           newdlfiles=
+           for lib in $dlfiles; do
+             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+-            eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++            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 1
+@@ -3865,7 +3997,7 @@
+           newdlprefiles=
+           for lib in $dlprefiles; do
+             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+-            eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
++            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 1
+@@ -4089,7 +4221,7 @@
+       *.la)
+       # Check to see that this really is a libtool archive.
+-      if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++      if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+       else
+         $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+         $echo "$help" 1>&2
+@@ -4124,12 +4256,30 @@
+       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.
++          if test "$inst_prefix_dir" = "$destdir"; then
++            $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
++            exit 1
++          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
+-          continue
++          exit 1
+         fi
+       fi
+@@ -4165,7 +4315,7 @@
+         # Do each command in the postinstall commands.
+         lib="$destdir/$realname"
+         eval cmds=\"$postinstall_cmds\"
+-        IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
++        save_ifs="$IFS"; IFS='~'
+         for cmd in $cmds; do
+           IFS="$save_ifs"
+           $show "$cmd"
+@@ -4238,19 +4388,27 @@
+       fi
+       # Do a test to see if this is really a libtool program.
+-      if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++      case $host in
++      *cygwin*|*mingw*)
++          wrapper=`echo $file | ${SED} -e 's,.exe$,,'`
++          ;;
++      *)
++          wrapper=$file
++          ;;
++      esac
++      if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+         notinst_deplibs=
+         relink_command=
+         # If there is no directory component, then add one.
+         case $file in
+-        */* | *\\*) . $file ;;
+-        *) . ./$file ;;
++        */* | *\\*) . $wrapper ;;
++        *) . ./$wrapper ;;
+         esac
+         # Check the variables that should have been set.
+         if test -z "$notinst_deplibs"; then
+-          $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
++          $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+           exit 1
+         fi
+@@ -4275,8 +4433,8 @@
+         relink_command=
+         # If there is no directory component, then add one.
+         case $file in
+-        */* | *\\*) . $file ;;
+-        *) . ./$file ;;
++        */* | *\\*) . $wrapper ;;
++        *) . ./$wrapper ;;
+         esac
+         outputname=
+@@ -4324,7 +4482,7 @@
+           destfile=$destfile.exe
+           ;;
+         *:*.exe)
+-          destfile=`echo $destfile | sed -e 's,.exe$,,'`
++          destfile=`echo $destfile | ${SED} -e 's,.exe$,,'`
+           ;;
+         esac
+         ;;
+@@ -4352,7 +4510,7 @@
+       # Do each command in the postinstall commands.
+       eval cmds=\"$old_postinstall_cmds\"
+-      IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
++      save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+       IFS="$save_ifs"
+       $show "$cmd"
+@@ -4368,11 +4526,10 @@
+     if test -n "$current_libdirs"; then
+       # Maybe just do a dry run.
+       test -n "$run" && current_libdirs=" -n$current_libdirs"
+-      exec $SHELL $0 --finish$current_libdirs
+-      exit 1
++      exec_cmd='$SHELL $0 --finish$current_libdirs'
++    else
++      exit 0
+     fi
+-
+-    exit 0
+     ;;
+   # libtool finish mode
+@@ -4391,7 +4548,7 @@
+       if test -n "$finish_cmds"; then
+         # Do each command in the finish commands.
+         eval cmds=\"$finish_cmds\"
+-        IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
++        save_ifs="$IFS"; IFS='~'
+         for cmd in $cmds; do
+           IFS="$save_ifs"
+           $show "$cmd"
+@@ -4473,7 +4630,7 @@
+       case $file in
+       *.la)
+       # Check to see that this really is a libtool archive.
+-      if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
++      if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+       else
+         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+         $echo "$help" 1>&2
+@@ -4544,7 +4701,7 @@
+       -*) ;;
+       *)
+       # Do a test to see if this is really a libtool program.
+-      if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++      if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+         # If there is no directory component, then add one.
+         case $file in
+         */* | *\\*) . $file ;;
+@@ -4575,11 +4732,8 @@
+       LANG="$save_LANG"; export LANG
+       fi
+-      # Now actually exec the command.
+-      eval "exec \$cmd$args"
+-
+-      $echo "$modename: cannot exec \$cmd$args"
+-      exit 1
++      # Now prepare to actually exec the command.
++      exec_cmd="\$cmd$args"
+     else
+       # Display what would be done.
+       if test -n "$shlibpath_var"; then
+@@ -4641,14 +4795,14 @@
+       # 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 -h "$file") >/dev/null 2>&1 \
+       || test -f "$file"; then
+-        :
++      :
+       elif test -d "$file"; then
+-        exit_status=1
++      exit_status=1
+       continue
+       elif test "$rmforce" = yes; then
+-        continue
++      continue
+       fi
+       rmfiles="$file"
+@@ -4656,7 +4810,7 @@
+       case $name in
+       *.la)
+       # Possibly a libtool archive, so verify it.
+-      if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++      if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+         . $dir/$name
+         # Delete the libtool libraries and symlinks.
+@@ -4670,7 +4824,7 @@
+           if test -n "$library_names"; then
+             # Do each command in the postuninstall commands.
+             eval cmds=\"$postuninstall_cmds\"
+-            IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
++            save_ifs="$IFS"; IFS='~'
+             for cmd in $cmds; do
+               IFS="$save_ifs"
+               $show "$cmd"
+@@ -4685,7 +4839,7 @@
+           if test -n "$old_library"; then
+             # Do each command in the old_postuninstall commands.
+             eval cmds=\"$old_postuninstall_cmds\"
+-            IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
++            save_ifs="$IFS"; IFS='~'
+             for cmd in $cmds; do
+               IFS="$save_ifs"
+               $show "$cmd"
+@@ -4711,7 +4865,7 @@
+       *)
+       # Do a test to see if this is a libtool program.
+       if test $mode = clean &&
+-         (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
++         (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+         relink_command=
+         . $dir/$file
+@@ -4744,11 +4898,18 @@
+     ;;
+   esac
+-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+-  $echo "$generic_help" 1>&2
+-  exit 1
++  if test -z "$exec_cmd"; then
++    $echo "$modename: invalid operation mode \`$mode'" 1>&2
++    $echo "$generic_help" 1>&2
++    exit 1
++  fi
+ fi # test -z "$show_help"
++if test -n "$exec_cmd"; then
++  eval exec $exec_cmd
++  exit 1
++fi
++
+ # We need to display help for each of the modes.
+ case $mode in
+ "") $echo \
+--- linux-atm-2.4.1.orig/m4/Makefile.in
++++ linux-atm-2.4.1/m4/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -92,14 +92,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps m4/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -112,6 +112,11 @@
+ subdir = m4
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu m4/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/Makefile.in
++++ linux-atm-2.4.1/src/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -85,8 +85,7 @@
+ VERSION = @VERSION@
+ YACC = @YACC@
+-SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \
+-              mpoad switch config extra
++SUBDIRS = include lib 
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../config.h
+@@ -96,14 +95,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -186,7 +185,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -202,6 +201,11 @@
+ subdir = src
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/include/Makefile.in
++++ linux-atm-2.4.1/src/include/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -97,14 +97,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/include/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -142,7 +142,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -158,6 +158,11 @@
+ subdir = src/include
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/include/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/include/atmd.h
++++ linux-atm-2.4.1/src/include/atmd.h
+@@ -24,6 +24,10 @@
+   (i)->prev = (b)->prev; if ((b)->prev) (b)->prev->next = i; else r = i; \
+   (b)->prev = i; } else { (i)->next = r; (i)->prev = NULL; \
+   if (r) (r)->prev = i; r = i; } })
++#define Q_INSERT_BEFORE_TYPED(r,t,i,b) ({ if (b) { (i)->next = b; \
++  (i)->prev = (b)->prev; if ((b)->prev) (b)->prev->next = i; else r = i; \
++  (b)->prev = i; } else { (i)->next = t r; (i)->prev = NULL; \
++  if (t r) (t r)->prev = i; r = i; } })
+ #define Q_REMOVE(r,i) ({ if ((i)->next) (i)->next->prev = (i)->prev; \
+   if ((i)->prev) (i)->prev->next = (i)->next; else r = (i)->next; })
+--- linux-atm-2.4.1.orig/src/lib/Makefile.in
++++ linux-atm-2.4.1/src/lib/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -92,16 +92,10 @@
+ # ATMLIBS_VERSION comes from configure.in in the toplevel directory
+ LDFLAGS = -version-info @LIBVER_CURRENT@:@LIBVER_REVISION@:@LIBVER_AGE@
+-libatm_la_SOURCES = text2atm.c atm2text.c atmequal.c sdu2cell.c text2qos.c \
+-                      qos2text.c qosequal.c sap2text.c text2sap.c sapequal.c \
+-                      misc.c atmres.h ans.c \
+-                      common.c diag.c kptr.c text2ip.c timer.c unix.c
++libatm_la_SOURCES = text2atm.c atm2text.c atmequal.c sdu2cell.c text2qos.c                    qos2text.c qosequal.c sap2text.c text2sap.c sapequal.c                  misc.c atmres.h ans.c                   common.c diag.c kptr.c text2ip.c timer.c unix.c
+ libatm_la_LIBADD = -lresolv
+-libatm_la_DEPENDENCIES = $(top_builddir)/src/include/atm.h \
+-                              $(top_builddir)/src/include/atmsap.h \
+-                              $(top_builddir)/src/include/stdint.h \
+-                              $(top_builddir)/src/include/atmd.h
++libatm_la_DEPENDENCIES = $(top_builddir)/src/include/atm.h                            $(top_builddir)/src/include/atmsap.h                            $(top_builddir)/src/include/stdint.h                            $(top_builddir)/src/include/atmd.h
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../../config.h
+@@ -126,8 +120,13 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/ans.P .deps/atm2text.P .deps/atmequal.P \
++.deps/common.P .deps/diag.P .deps/kptr.P .deps/misc.P .deps/qos2text.P \
++.deps/qosequal.P .deps/sap2text.P .deps/sapequal.P .deps/sdu2cell.P \
++.deps/text2atm.P .deps/text2ip.P .deps/text2qos.P .deps/text2sap.P \
++.deps/timer.P .deps/unix.P
+ SOURCES = $(libatm_la_SOURCES)
+ OBJECTS = $(libatm_la_OBJECTS)
+@@ -135,9 +134,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/lib/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lib/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -167,9 +166,6 @@
+         $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -192,9 +188,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -232,7 +225,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -248,6 +241,11 @@
+ subdir = src/lib
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/lib/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -258,48 +256,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-ans.lo ans.o : ans.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h atmres.h
+-atm2text.lo atm2text.o : atm2text.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h atmres.h
+-atmequal.lo atmequal.o : atmequal.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h
+-common.lo common.o : common.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atmd.h ../../src/include/atm.h
+-diag.lo diag.o : diag.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h
+-kptr.lo kptr.o : kptr.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h
+-misc.lo misc.o : misc.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmsap.h
+-qos2text.lo qos2text.o : qos2text.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h
+-qosequal.lo qosequal.o : qosequal.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h
+-sap2text.lo sap2text.o : sap2text.c ../../config.h \
+-      ../../src/include/atmsap.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h
+-sapequal.lo sapequal.o : sapequal.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h
+-sdu2cell.lo sdu2cell.o : sdu2cell.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h
+-text2atm.lo text2atm.o : text2atm.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h atmres.h
+-text2ip.lo text2ip.o : text2ip.c ../../config.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h \
+-      ../../src/include/atmd.h
+-text2qos.lo text2qos.o : text2qos.c ../../config.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h
+-text2sap.lo text2sap.o : text2sap.c ../../config.h \
+-      ../../src/include/atmsap.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h
+-timer.lo timer.o : timer.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h
+-unix.lo unix.o : unix.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -337,27 +325,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-libLTLIBRARIES mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-libLTLIBRARIES clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-libLTLIBRARIES distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-libLTLIBRARIES \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -369,12 +357,13 @@
+ distclean-compile clean-compile maintainer-clean-compile \
+ mostlyclean-libtool distclean-libtool clean-libtool \
+ maintainer-clean-libtool tags mostlyclean-tags distclean-tags \
+-clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+-check-am installcheck-am installcheck install-exec-am install-exec \
+-install-data-am install-data install-am install uninstall-am uninstall \
+-all-redirect all-am all installdirs mostlyclean-generic \
+-distclean-generic clean-generic maintainer-clean-generic clean \
+-mostlyclean distclean maintainer-clean
++clean-tags maintainer-clean-tags distdir mostlyclean-depend \
++distclean-depend clean-depend maintainer-clean-depend info-am info \
++dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
++install-exec install-data-am install-data install-am install \
++uninstall-am uninstall all-redirect all-am all installdirs \
++mostlyclean-generic distclean-generic clean-generic \
++maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+ #libatm_la_SOURCES = text2atm.c atm2text.c atmequal.c sdu2cell.c text2qos.c \
+--- linux-atm-2.4.1.orig/src/lib/sapequal.c
++++ linux-atm-2.4.1/src/lib/sapequal.c
+@@ -65,6 +65,7 @@
+           CHECK(l2.itu.window,a.l2.itu.window > b.l2.itu.window);
+           break;
+       default:
++          break;
+     }
+     switch (a.l3_proto) {
+       case ATM_L3_X25:
+@@ -83,6 +84,7 @@
+           if (a.l3.user != b.l3.user) return 0;
+           break;
+       default:
++          break;
+     }
+     return 1;
+ }
+--- linux-atm-2.4.1.orig/src/test/Makefile.in
++++ linux-atm-2.4.1/src/test/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -168,8 +168,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/align.P .deps/aping.P .deps/aread.P .deps/awrite.P \
++.deps/br.P .deps/bw.P .deps/isp.P .deps/ispl_l.P .deps/ispl_y.P \
++.deps/ttcp.P .deps/window.P
+ SOURCES = $(aread_SOURCES) $(awrite_SOURCES) $(ttcp_atm_SOURCES) $(align_SOURCES) $(aping_SOURCES) $(br_SOURCES) $(bw_SOURCES) $(isp_SOURCES) $(window_SOURCES)
+ OBJECTS = $(aread_OBJECTS) $(awrite_OBJECTS) $(ttcp_atm_OBJECTS) $(align_OBJECTS) $(aping_OBJECTS) $(br_OBJECTS) $(bw_OBJECTS) $(isp_OBJECTS) $(window_OBJECTS)
+@@ -177,9 +180,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .l .lo .o .obj .s .y
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/test/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/test/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -218,9 +221,6 @@
+ maintainer-clean-noinstPROGRAMS:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -243,9 +243,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -325,7 +322,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -341,6 +338,11 @@
+ subdir = src/test
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/test/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -351,30 +353,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-align.o: align.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-aping.o: aping.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-aread.o: aread.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-awrite.o: awrite.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-br.o: br.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-bw.o: bw.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-isp.o: isp.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h isp.h \
+-      errnos.inc
+-ispl_l.o: ispl_l.c ../../config.h ../../src/include/stdint.h isp.h \
+-      ../../src/include/atm.h ispl_y.h
+-ispl_y.o: ispl_y.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h isp.h
+-ttcp.o: ttcp.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmsap.h
+-window.o: window.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -412,21 +422,22 @@
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ maintainer-clean-generic:
+-      -test -z "ispl_llispl_yhispl_yc" || rm -f ispl_ll ispl_yh ispl_yc
++      -test -z "ispl_lcispl_yhispl_yc" || rm -f ispl_lc ispl_yh ispl_yc
+ mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-noinstPROGRAMS \
+               mostlyclean-compile mostlyclean-libtool \
+-              mostlyclean-tags mostlyclean-generic
++              mostlyclean-tags mostlyclean-depend mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-binPROGRAMS clean-noinstPROGRAMS clean-compile \
+-              clean-libtool clean-tags clean-generic mostlyclean-am
++              clean-libtool clean-tags clean-depend clean-generic \
++              mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-binPROGRAMS distclean-noinstPROGRAMS \
+               distclean-compile distclean-libtool distclean-tags \
+-              distclean-generic clean-am
++              distclean-depend distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+@@ -434,8 +445,8 @@
+ maintainer-clean-am:  maintainer-clean-binPROGRAMS \
+               maintainer-clean-noinstPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -448,19 +459,22 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ isp.o: errnos.inc
+ errnos.inc: mkerrnos.pl
+-      @PERL@ ./mkerrnos.pl </usr/include/asm/errno.h \
+-              >errnos.inc || { rm -f errnos.inc; exit 1; }
++      cpp -I/usr/include/ -dM /usr/include/asm/errno.h | grep "^#define E" \
++      | @PERL@ ./mkerrnos.pl | grep -v EMAXERRNO >errnos.inc \
++      || { rm -f errnos.inc; exit 1; }
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+--- linux-atm-2.4.1.orig/src/test/Makefile.am
++++ linux-atm-2.4.1/src/test/Makefile.am
+@@ -26,6 +26,7 @@
+ isp.o: errnos.inc
+ errnos.inc: mkerrnos.pl
+-      @PERL@ ./mkerrnos.pl </usr/include/asm/errno.h \
+-              >errnos.inc || { rm -f errnos.inc; exit 1; }
+-
++      cpp -I/usr/include/ -dM /usr/include/asm/errno.h | grep "^#define E" \
++      | @PERL@ ./mkerrnos.pl | grep -v EMAXERRNO >errnos.inc \
++      || { rm -f errnos.inc; exit 1; }
++                      
+--- linux-atm-2.4.1.orig/src/test/ttcp.c
++++ linux-atm-2.4.1/src/test/ttcp.c
+@@ -55,6 +55,8 @@
+ /* #define SYSV */    /* required on SGI IRIX releases before 3.3 */
+ #include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
+ #include <signal.h>
+ #include <ctype.h>
+ #include <errno.h>
+@@ -67,6 +69,7 @@
+ #include <sys/time.h>         /* struct timeval */
+ #include <atm.h>
+ #include <atmsap.h>
++#include <unistd.h>
+ #if defined(SYSV)
+ #include <sys/times.h>
+@@ -85,7 +88,8 @@
+ struct sockaddr_atmsvc satm;
+ struct atm_qos qos;
+-int domain, fromlen;
++int domain;
++socklen_t fromlen;
+ int fd;                               /* fd of network socket */
+ int buflen = 8 * 1024;                /* length of buffer */
+@@ -120,7 +124,6 @@
+ static struct rusage ru0;             /* Resource utilization at the start */
+ struct hostent *addr;
+-extern int errno;
+ extern int optind;
+ extern char *optarg;
+@@ -158,23 +161,21 @@
+ unsigned long numCalls;               /* # of I/O system calls */
+ double cput, realt;           /* user, real time (seconds) */
+-void err();
+-void mes();
+-int pattern();
+-void prep_timer();
+-double read_timer();
+-int Nread();
+-int Nwrite();
+-void delay();
+-int mread();
+-char *outfmt();
+-static void prusage();
+-static void tvadd();
+-static void tvsub();
+-static void psecs();
++void err(const char *s);
++void mes(const char *s);
++void prep_timer(void);
++void pattern(char *cp, int cnt);
++int Nread(int nfd, char *Nbuf, int count);
++int Nwrite(int nfd, char *Nbuf, int count);
++void delay(int us);
++int mread(int mfd, char *bufp, unsigned n);
++char *outfmt(double b);
++static void prusage(struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp);
++static void tvadd(struct timeval *tsum, struct timeval *t0, struct timeval *t1);
++static void tvsub(struct timeval *tdiff, struct timeval *t1, struct timeval *t0);
++static void psecs(long l, char *cp);
+-void
+-sigpipe()
++void sigpipe(int unused)
+ {
+ }
+@@ -183,16 +184,14 @@
+  * main - 
+  *-------------------------------------------------------------------------
+  */
+-main(argc,argv)
+-int argc;
+-char **argv;
++int main(int argc,char **argv)
+ {
+     struct timeval td;
+     unsigned long addr_tmp;
+     const char *port_name = NULL,*tos = NULL;
+     int c;
+     double mbps;
+-int no_check = 0;
++    int no_check = 0;
+     if (argc < 2) goto usage;
+@@ -275,7 +274,7 @@
+       }
+     }
+-    if (port_name)
++    if (port_name) {
+       if (atm) goto usage;
+       else {
+           struct servent *se;
+@@ -283,13 +282,13 @@
+           se = getservbyname(port_name,udp ? "udp" : "tcp");
+           if (se) port = ntohs(se->s_port);
+           else {
+-              const char *end;
++              char *end;
+               port = strtoul(port_name,&end,0);
+               if (*end) goto usage;
+           }
+       }     
+-
++    }
+     host = argv[optind];
+     if (atm) {
+@@ -435,9 +434,9 @@
+ #endif
+     if (!atm || satm.sas_family == AF_ATMPVC || !trans)
+-      if (bind(fd, atm ? &satm : &sinme, atm ? satm.sas_family == AF_ATMPVC ?
+-        sizeof(struct sockaddr_atmpvc) : sizeof(struct sockaddr_atmsvc) :
+-        sizeof(sinme)) < 0)
++      if (bind(fd, atm ? 
++               (struct  sockaddr  *)&satm : (struct  sockaddr  *)&sinme, 
++               atm ? satm.sas_family == AF_ATMPVC ?  sizeof(struct sockaddr_atmpvc) : sizeof(struct sockaddr_atmsvc) : sizeof(sinme)) < 0)
+           err("bind");
+     if (!udp || (atm && satm.sas_family == AF_ATMSVC)) {
+@@ -453,8 +452,8 @@
+                       err("setsockopt");
+           }
+           
+-          if (connect(fd, atm ? &satm : &sinhim, atm ? sizeof(satm) :
+-            sizeof(sinhim)) < 0)
++          if (connect(fd, 
++              atm ? (struct  sockaddr  *)&satm : (struct  sockaddr  *)&sinhim,                atm ? sizeof(satm) : sizeof(sinhim)) < 0)
+               err("connect");
+           
+           mes("connect");
+@@ -482,13 +481,13 @@
+           fromlen = sizeof(frominet);
+           domain = AF_INET;
+           
+-          if ((fd=accept(fd, &frominet, &fromlen) ) < 0)
++          if ((fd=accept(fd, (struct sockaddr *)&frominet, &fromlen) ) < 0)
+               err("accept");
+           
+           {
+               struct sockaddr_atmsvc peer;
+               int peerlen = sizeof(peer);
+-              if (getpeername(fd, (struct sockaddr_in *) &peer, 
++              if (getpeername(fd, (struct sockaddr *) &peer, 
+                               &peerlen) < 0) {
+                   err("getpeername");
+               }
+@@ -638,13 +637,13 @@
+               nbytes, cput, outfmt((double)nbytes/cput));
+       fprintf(stdout,
+-              "ttcp%s: %d I/O calls, msec/call = %.2f, calls/sec = %.2f\n",
++              "ttcp%s: %lu I/O calls, msec/call = %.2f, calls/sec = %.2f\n",
+               trans?"-t":"-r",
+               numCalls,
+               1000.0 * realt/((double)numCalls),
+               ((double)numCalls)/realt);
+       fprintf(stdout,
+-              "ttcp%s: buffer address %#x\n",
++              "ttcp%s: buffer address %p\n",
+               trans?"-t":"-r",
+               buf);
+     }
+@@ -656,8 +655,7 @@
+ }
+ void
+-err(s)
+-char *s;
++err(const char *s)
+ {
+       int     en = errno;
+@@ -670,8 +668,7 @@
+ }
+ void
+-mes(s)
+-char *s;
++mes(const char *s)
+ {
+       fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", s);
+ }
+@@ -681,9 +678,7 @@
+  * pattern - 
+  *-------------------------------------------------------------------------
+  */
+-pattern(cp, cnt)
+-register char *cp;
+-register int cnt;
++void pattern(char *cp, int cnt)
+ {
+     register char c;
+     c = 0;
+@@ -694,9 +689,7 @@
+ }
+-char *
+-outfmt(b)
+-double b;
++char *outfmt(double b)
+ {
+     static char obuf[50];
+     switch (fmt) {
+@@ -758,7 +751,7 @@
+  *                    P R E P _ T I M E R
+  */
+ void
+-prep_timer()
++prep_timer(void)
+ {
+       gettimeofday(&start_time, (struct timezone *)0);
+       getrusage(RUSAGE_SELF, &ru0);
+@@ -768,8 +761,7 @@
+  * read_timer - 
+  *-------------------------------------------------------------------------
+  */
+-double read_timer(str,len)
+-char *str;
++double read_timer(char *str,int len)
+ {
+     struct rusage ru1;
+     struct timeval tend, tstart, td;
+@@ -788,15 +780,11 @@
+     return( cput );
+ }
+-static void
+-prusage(r0, r1, e, b, outp)
+-      register struct rusage *r0, *r1;
+-      struct timeval *e, *b;
+-      char *outp;
++static void prusage(struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp)
+ {
+       struct timeval tdiff;
+       register time_t t;
+-      register char *cp;
++      register const char *cp;
+       register int i;
+       int ms;
+@@ -823,13 +811,13 @@
+               case 'U':
+                       tvsub(&tdiff, &r1->ru_utime, &r0->ru_utime);
+-                      sprintf(outp,"%d.%01d", tdiff.tv_sec, tdiff.tv_usec/100000);
++                      sprintf(outp,"%ld.%01ld", tdiff.tv_sec, tdiff.tv_usec/100000);
+                       END(outp);
+                       break;
+               case 'S':
+                       tvsub(&tdiff, &r1->ru_stime, &r0->ru_stime);
+-                      sprintf(outp,"%d.%01d", tdiff.tv_sec, tdiff.tv_usec/100000);
++                      sprintf(outp,"%ld.%01ld", tdiff.tv_sec, tdiff.tv_usec/100000);
+                       END(outp);
+                       break;
+@@ -851,49 +839,49 @@
+                       break;
+               case 'X':
+-                      sprintf(outp,"%d", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t);
++                      sprintf(outp,"%ld", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t);
+                       END(outp);
+                       break;
+               case 'D':
+-                      sprintf(outp,"%d", t == 0 ? 0 :
++                      sprintf(outp,"%ld", t == 0 ? 0 :
+                           (r1->ru_idrss+r1->ru_isrss-(r0->ru_idrss+r0->ru_isrss))/t);
+                       END(outp);
+                       break;
+               case 'K':
+-                      sprintf(outp,"%d", t == 0 ? 0 :
++                      sprintf(outp,"%ld", t == 0 ? 0 :
+                           ((r1->ru_ixrss+r1->ru_isrss+r1->ru_idrss) -
+                           (r0->ru_ixrss+r0->ru_idrss+r0->ru_isrss))/t);
+                       END(outp);
+                       break;
+               case 'M':
+-                      sprintf(outp,"%d", r1->ru_maxrss/2);
++                      sprintf(outp,"%ld", r1->ru_maxrss/2);
+                       END(outp);
+                       break;
+               case 'F':
+-                      sprintf(outp,"%d", r1->ru_majflt-r0->ru_majflt);
++                      sprintf(outp,"%ld", r1->ru_majflt-r0->ru_majflt);
+                       END(outp);
+                       break;
+               case 'R':
+-                      sprintf(outp,"%d", r1->ru_minflt-r0->ru_minflt);
++                      sprintf(outp,"%ld", r1->ru_minflt-r0->ru_minflt);
+                       END(outp);
+                       break;
+               case 'I':
+-                      sprintf(outp,"%d", r1->ru_inblock-r0->ru_inblock);
++                      sprintf(outp,"%ld", r1->ru_inblock-r0->ru_inblock);
+                       END(outp);
+                       break;
+               case 'O':
+-                      sprintf(outp,"%d", r1->ru_oublock-r0->ru_oublock);
++                      sprintf(outp,"%ld", r1->ru_oublock-r0->ru_oublock);
+                       END(outp);
+                       break;
+               case 'C':
+-                      sprintf(outp,"%d+%d", r1->ru_nvcsw-r0->ru_nvcsw,
++                      sprintf(outp,"%ld+%ld", r1->ru_nvcsw-r0->ru_nvcsw,
+                               r1->ru_nivcsw-r0->ru_nivcsw );
+                       END(outp);
+                       break;
+@@ -903,9 +891,7 @@
+       *outp = '\0';
+ }
+-static void
+-tvadd(tsum, t0, t1)
+-      struct timeval *tsum, *t0, *t1;
++static void tvadd(struct timeval *tsum, struct timeval *t0, struct timeval *t1)
+ {
+       tsum->tv_sec = t0->tv_sec + t1->tv_sec;
+@@ -919,8 +905,7 @@
+  * tvsub - tdiff = t1 - t0 
+  *-------------------------------------------------------------------------
+  */
+-static void tvsub(tdiff, t1, t0)
+-      struct timeval *tdiff, *t1, *t0;
++static void tvsub(struct timeval *tdiff, struct timeval *t1, struct timeval *t0)
+ {
+     tdiff->tv_sec = t1->tv_sec - t0->tv_sec;
+@@ -931,10 +916,7 @@
+     }
+ }
+-static void
+-psecs(l,cp)
+-long l;
+-register char *cp;
++static void psecs(long l, char *cp)
+ {
+       register int i;
+@@ -958,26 +940,23 @@
+ /*
+  *                    N R E A D
+  */
+-Nread( fd, buf, count )
+-int fd;
+-char *buf;
+-int count;
++int Nread( int nfd, char *Nbuf, int count )
+ {
+       struct sockaddr_in from;
+       int len = sizeof(from);
+       register int cnt;
+       if( udp )  {
+ #if 0
+-              cnt = recvfrom( fd, buf, count, 0, &from, &len );
++              cnt = recvfrom( nfd, Nbuf, count, 0, &from, &len );
+ #else
+-              cnt = recv( fd, buf, count, 0);
++              cnt = recv( nfd, Nbuf, count, 0);
+ #endif
+               numCalls++;
+       } else {
+               if( b_flag )
+-                      cnt = mread( fd, buf, count );  /* fill buf */
++                      cnt = mread( nfd, Nbuf, count );        /* fill buf */
+               else {
+-                      cnt = read( fd, buf, count );
++                      cnt = read( nfd, Nbuf, count );
+                       numCalls++;
+               }
+               if (touchdata && cnt > 0) {
+@@ -994,17 +973,15 @@
+  * Nwrite - 
+  *-------------------------------------------------------------------------
+  */
+-Nwrite(fd, buf, count)
+-int fd;
+-char *buf;
+-int count;
++int Nwrite(int nfd, char *Nbuf, int count)
+ {
+     register int cnt;
+     
+     if (udp)  {
+       again:
+-      if (atm) cnt = write(fd, buf, count);
+-      else cnt = sendto(fd, buf, count, 0, &sinhim, sizeof(sinhim));
++      if (atm) cnt = write(nfd, Nbuf, count);
++      else cnt = sendto(nfd, Nbuf, count, 0,  (struct sockaddr *)&sinhim, 
++                         sizeof(sinhim));
+       numCalls++;
+       if ( cnt<0 && errno == ENOBUFS )  {
+           delay(18000);
+@@ -1012,7 +989,7 @@
+           goto again;
+       }
+     } else {
+-      cnt = write(fd, buf, count);
++      cnt = write(nfd, Nbuf, count);
+       numCalls++;
+     }
+ if (cnt < 0) perror("WA:write");
+@@ -1020,13 +997,13 @@
+ }
+ void
+-delay(us)
++delay(int us)
+ {
+       struct timeval tv;
+       tv.tv_sec = 0;
+       tv.tv_usec = us;
+-      (void)select( 1, (char *)0, (char *)0, (char *)0, &tv );
++      (void)select( 1, NULL, NULL, NULL, &tv );
+ }
+ /*
+@@ -1038,17 +1015,13 @@
+  * network connections don't deliver data with the same
+  * grouping as it is written with.  Written by Robert S. Miles, BRL.
+  */
+-int
+-mread(fd, bufp, n)
+-int fd;
+-register char *bufp;
+-unsigned      n;
++int mread(int mfd, char *bufp, unsigned n)
+ {
+       register unsigned       count = 0;
+       register int            nread;
+       do {
+-              nread = read(fd, bufp, n-count);
++              nread = read(mfd, bufp, n-count);
+               numCalls++;
+               if(nread < 0)  {
+                       perror("ttcp_mread");
+--- linux-atm-2.4.1.orig/src/debug/Makefile.in
++++ linux-atm-2.4.1/src/debug/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -129,8 +129,9 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/delay.P .deps/svctor.P
+ SOURCES = $(delay_SOURCES) $(svctor_SOURCES)
+ OBJECTS = $(delay_OBJECTS) $(svctor_OBJECTS)
+@@ -138,9 +139,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/debug/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/debug/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -154,9 +155,6 @@
+ maintainer-clean-noinstPROGRAMS:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -179,9 +177,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -224,7 +219,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -240,6 +235,11 @@
+ subdir = src/debug
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/debug/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -250,11 +250,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-delay.o: delay.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-svctor.o: svctor.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -291,27 +318,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-noinstPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-noinstPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-noinstPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -322,12 +349,14 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/qgen/Makefile.in
++++ linux-atm-2.4.1/src/qgen/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -88,8 +88,7 @@
+ noinst_PROGRAMS = qgen q.dump # q40.out.o
+ check_PROGRAMS = q.test
+-qgen_SOURCES = common.c common.h file.c file.h first.c ql_y.y ql_l.l qgen.c \
+-              qgen.h second.c third.c
++qgen_SOURCES = common.c common.h file.c file.h first.c ql_y.y ql_l.l qgen.c           qgen.h second.c third.c
+ qgen_LDADD = -lfl
+@@ -108,17 +107,10 @@
+ EXTRA_DIST = ql_y.h incl.pl mknl.pl msg.fmt TODO
+-CLEANFILES = q.out.h q.out.c q.test.c qd.out.h qd.out.c qd.dump.c qd.test.c \
+-              default.nl # q40.out.h q40.out.c q40.test.c
++CLEANFILES = q.out.h q.out.c q.test.c qd.out.h qd.out.c qd.dump.c qd.test.c           default.nl # q40.out.h q40.out.c q40.test.c
+-NLS = atm_ai_msg atm_ai_ie atm_loc atm_cv atm_pu atm_na atm_cond atm_ie \
+-      atm_msg atm_np atm_ton atm_sat atm_prs atm_scrn atm_vpa atm_poe \
+-      q2931_cs atm_td atm_bc atm_tc atm_stc atm_upcc q2931_proto atm_flag \
+-      atm_aalp atm_fd atm_tag atm_l2 atm_l3 atm_tt atm_mc atm_hl atm_imd \
+-      atm_tdl atm_tni atm_nip atm_shi atm_oci atm_unfm atm_ofi atm_irs \
+-      atm_it atm_lit atm_lsi atm_tcs atm_css atm_eqo atm_eqp atm_aap \
+-      atm_asp atm_tor
++NLS = atm_ai_msg atm_ai_ie atm_loc atm_cv atm_pu atm_na atm_cond atm_ie       atm_msg atm_np atm_ton atm_sat atm_prs atm_scrn atm_vpa atm_poe         q2931_cs atm_td atm_bc atm_tc atm_stc atm_upcc q2931_proto atm_flag     atm_aalp atm_fd atm_tag atm_l2 atm_l3 atm_tt atm_mc atm_hl atm_imd      atm_tdl atm_tni atm_nip atm_shi atm_oci atm_unfm atm_ofi atm_irs        atm_it atm_lit atm_lsi atm_tcs atm_css atm_eqo atm_eqp atm_aap  atm_asp atm_tor
+ SYMFILES = uni.h $(shell @PERL@ incl.pl $(CFLAGS) linux/atmsap.h)
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+@@ -155,8 +147,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/common.P .deps/file.P .deps/first.P .deps/qgen.P \
++.deps/ql_l.P .deps/ql_y.P .deps/qlib.P .deps/qtest.P .deps/second.P \
++.deps/third.P
+ SOURCES = $(q_test_SOURCES) $(qgen_SOURCES) $(q_dump_SOURCES) $(EXTRA_q_dump_SOURCES)
+ OBJECTS = $(q_test_OBJECTS) $(qgen_OBJECTS) $(q_dump_OBJECTS)
+@@ -164,9 +159,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .l .lo .o .obj .s .y
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/qgen/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/qgen/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -189,9 +184,6 @@
+ maintainer-clean-noinstPROGRAMS:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -214,9 +206,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -272,7 +261,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -288,6 +277,11 @@
+ subdir = src/qgen
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/qgen/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -298,15 +292,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-common.o: common.c ../../config.h common.h
+-file.o: file.c ../../config.h common.h file.h
+-first.o: first.c ../../config.h common.h qgen.h file.h
+-qgen.o: qgen.c ../../config.h common.h file.h qgen.h
+-ql_l.o: ql_l.c ../../config.h common.h qgen.h ql_y.h
+-ql_y.o: ql_y.c ../../config.h common.h qgen.h file.h
+-second.o: second.c ../../config.h common.h qgen.h file.h
+-third.o: third.c ../../config.h common.h qgen.h file.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -344,21 +361,22 @@
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ maintainer-clean-generic:
+-      -test -z "ql_llql_yhql_yc" || rm -f ql_ll ql_yh ql_yc
++      -test -z "ql_lcql_yhql_yc" || rm -f ql_lc ql_yh ql_yc
+ mostlyclean-am:  mostlyclean-checkPROGRAMS mostlyclean-noinstPROGRAMS \
+               mostlyclean-compile mostlyclean-libtool \
+-              mostlyclean-tags mostlyclean-generic
++              mostlyclean-tags mostlyclean-depend mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-checkPROGRAMS clean-noinstPROGRAMS clean-compile \
+-              clean-libtool clean-tags clean-generic mostlyclean-am
++              clean-libtool clean-tags clean-depend clean-generic \
++              mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-checkPROGRAMS distclean-noinstPROGRAMS \
+               distclean-compile distclean-libtool distclean-tags \
+-              distclean-generic clean-am
++              distclean-depend distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+@@ -366,8 +384,8 @@
+ maintainer-clean-am:  maintainer-clean-checkPROGRAMS \
+               maintainer-clean-noinstPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -380,12 +398,14 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ default.nl: mknl.pl $(SYMFILES)
+--- linux-atm-2.4.1.orig/src/qgen/ql_l.c
++++ linux-atm-2.4.1/src/qgen/ql_l.c
+@@ -1,32 +1,85 @@
+-/* A lexical scanner generated by flex */
+-/* Scanner skeleton version:
+- * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
+- */
++#line 3 "lex.yy.c"
++
++#define  YY_INT_ALIGNED short int
++
++/* A lexical scanner generated by flex */
+ #define FLEX_SCANNER
+ #define YY_FLEX_MAJOR_VERSION 2
+ #define YY_FLEX_MINOR_VERSION 5
++#define YY_FLEX_SUBMINOR_VERSION 31
++#if YY_FLEX_SUBMINOR_VERSION > 0
++#define FLEX_BETA
++#endif
++/* First, we deal with  platform-specific or compiler-specific issues. */
++
++/* begin standard C headers. */
+ #include <stdio.h>
+-#include <unistd.h>
++#include <string.h>
++#include <errno.h>
++#include <stdlib.h>
++/* end standard C headers. */
+-/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+-#ifdef c_plusplus
+-#ifndef __cplusplus
+-#define __cplusplus
++/* flex integer type definitions */
++
++#ifndef FLEXINT_H
++#define FLEXINT_H
++
++/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
++
++#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
++#include <inttypes.h>
++typedef int8_t flex_int8_t;
++typedef uint8_t flex_uint8_t;
++typedef int16_t flex_int16_t;
++typedef uint16_t flex_uint16_t;
++typedef int32_t flex_int32_t;
++typedef uint32_t flex_uint32_t;
++#else
++typedef signed char flex_int8_t;
++typedef short int flex_int16_t;
++typedef int flex_int32_t;
++typedef unsigned char flex_uint8_t; 
++typedef unsigned short int flex_uint16_t;
++typedef unsigned int flex_uint32_t;
++#endif /* ! C99 */
++
++/* Limits of integral types. */
++#ifndef INT8_MIN
++#define INT8_MIN               (-128)
++#endif
++#ifndef INT16_MIN
++#define INT16_MIN              (-32767-1)
++#endif
++#ifndef INT32_MIN
++#define INT32_MIN              (-2147483647-1)
+ #endif
++#ifndef INT8_MAX
++#define INT8_MAX               (127)
++#endif
++#ifndef INT16_MAX
++#define INT16_MAX              (32767)
++#endif
++#ifndef INT32_MAX
++#define INT32_MAX              (2147483647)
++#endif
++#ifndef UINT8_MAX
++#define UINT8_MAX              (255U)
++#endif
++#ifndef UINT16_MAX
++#define UINT16_MAX             (65535U)
++#endif
++#ifndef UINT32_MAX
++#define UINT32_MAX             (4294967295U)
+ #endif
++#endif /* ! FLEXINT_H */
+ #ifdef __cplusplus
+-#include <stdlib.h>
+-
+-/* Use prototypes in function declarations. */
+-#define YY_USE_PROTOS
+-
+ /* The "const" storage-class-modifier is valid. */
+ #define YY_USE_CONST
+@@ -34,34 +87,17 @@
+ #if __STDC__
+-#define YY_USE_PROTOS
+ #define YY_USE_CONST
+ #endif        /* __STDC__ */
+ #endif        /* ! __cplusplus */
+-#ifdef __TURBOC__
+- #pragma warn -rch
+- #pragma warn -use
+-#include <io.h>
+-#include <stdlib.h>
+-#define YY_USE_CONST
+-#define YY_USE_PROTOS
+-#endif
+-
+ #ifdef YY_USE_CONST
+ #define yyconst const
+ #else
+ #define yyconst
+ #endif
+-
+-#ifdef YY_USE_PROTOS
+-#define YY_PROTO(proto) proto
+-#else
+-#define YY_PROTO(proto) ()
+-#endif
+-
+ /* Returned upon end-of-file. */
+ #define YY_NULL 0
+@@ -76,71 +112,71 @@
+  * but we do it the disgusting crufty way forced on us by the ()-less
+  * definition of BEGIN.
+  */
+-#define BEGIN yy_start = 1 + 2 *
++#define BEGIN (yy_start) = 1 + 2 *
+ /* Translate the current start state into a value that can be later handed
+  * to BEGIN to return to the state.  The YYSTATE alias is for lex
+  * compatibility.
+  */
+-#define YY_START ((yy_start - 1) / 2)
++#define YY_START (((yy_start) - 1) / 2)
+ #define YYSTATE YY_START
+ /* Action number for EOF rule of a given start state. */
+ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
+ /* Special action meaning "start processing a new file". */
+-#define YY_NEW_FILE yyrestart( yyin )
++#define YY_NEW_FILE yyrestart(yyin  )
+ #define YY_END_OF_BUFFER_CHAR 0
+ /* Size of default input buffer. */
++#ifndef YY_BUF_SIZE
+ #define YY_BUF_SIZE 16384
++#endif
++#ifndef YY_TYPEDEF_YY_BUFFER_STATE
++#define YY_TYPEDEF_YY_BUFFER_STATE
+ typedef struct yy_buffer_state *YY_BUFFER_STATE;
++#endif
+ extern int yyleng;
++
+ extern FILE *yyin, *yyout;
+ #define EOB_ACT_CONTINUE_SCAN 0
+ #define EOB_ACT_END_OF_FILE 1
+ #define EOB_ACT_LAST_MATCH 2
+-/* The funky do-while in the following #define is used to turn the definition
+- * int a single C statement (which needs a semi-colon terminator).  This
+- * avoids problems with code like:
+- *
+- *    if ( condition_holds )
+- *            yyless( 5 );
+- *    else
+- *            do_something_else();
+- *
+- * Prior to using the do-while the compiler would get upset at the
+- * "else" because it interpreted the "if" statement as being all
+- * done when it reached the ';' after the yyless() call.
+- */
+-
+-/* Return all but the first 'n' matched characters back to the input stream. */
+-
++    #define YY_LESS_LINENO(n)
++    
++/* Return all but the first "n" matched characters back to the input stream. */
+ #define yyless(n) \
+       do \
+               { \
+               /* Undo effects of setting up yytext. */ \
+-              *yy_cp = yy_hold_char; \
++        int yyless_macro_arg = (n); \
++        YY_LESS_LINENO(yyless_macro_arg);\
++              *yy_cp = (yy_hold_char); \
+               YY_RESTORE_YY_MORE_OFFSET \
+-              yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
++              (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
+               YY_DO_BEFORE_ACTION; /* set up yytext again */ \
+               } \
+       while ( 0 )
+-#define unput(c) yyunput( c, yytext_ptr )
++#define unput(c) yyunput( c, (yytext_ptr)  )
+ /* The following is because we cannot portably get our hands on size_t
+  * (without autoconf's help, which isn't available because we want
+  * flex-generated scanners to compile on their own).
+  */
+-typedef unsigned int yy_size_t;
++#ifndef YY_TYPEDEF_YY_SIZE_T
++#define YY_TYPEDEF_YY_SIZE_T
++typedef unsigned int yy_size_t;
++#endif
++#ifndef YY_STRUCT_YY_BUFFER_STATE
++#define YY_STRUCT_YY_BUFFER_STATE
+ struct yy_buffer_state
+       {
+       FILE *yy_input_file;
+@@ -177,12 +213,16 @@
+        */
+       int yy_at_bol;
++    int yy_bs_lineno; /**< The line count. */
++    int yy_bs_column; /**< The column count. */
++    
+       /* Whether to try to fill the input buffer when we reach the
+        * end of it.
+        */
+       int yy_fill_buffer;
+       int yy_buffer_status;
++
+ #define YY_BUFFER_NEW 0
+ #define YY_BUFFER_NORMAL 1
+       /* When an EOF's been seen but there's still some text to process
+@@ -196,23 +236,33 @@
+        * just pointing yyin at a new input file.
+        */
+ #define YY_BUFFER_EOF_PENDING 2
++
+       };
++#endif /* !YY_STRUCT_YY_BUFFER_STATE */
+-static YY_BUFFER_STATE yy_current_buffer = 0;
++/* Stack of input buffers. */
++static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
++static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
++static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+ /* We provide macros for accessing buffer states in case in the
+  * future we want to put the buffer states in a more general
+  * "scanner state".
++ *
++ * Returns the top of the stack, or NULL.
+  */
+-#define YY_CURRENT_BUFFER yy_current_buffer
++#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
++                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
++                          : NULL)
++/* Same as previous macro, but useful when we know that the buffer stack is not
++ * NULL or when we need an lvalue. For internal use only.
++ */
++#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
+ /* yy_hold_char holds the character lost when yytext is formed. */
+ static char yy_hold_char;
+-
+ static int yy_n_chars;                /* number of characters read into yy_ch_buf */
+-
+-
+ int yyleng;
+ /* Points to current character in buffer. */
+@@ -225,66 +275,92 @@
+  */
+ static int yy_did_buffer_switch_on_eof;
+-void yyrestart YY_PROTO(( FILE *input_file ));
+-
+-void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+-void yy_load_buffer_state YY_PROTO(( void ));
+-YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+-void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+-void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+-void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+-#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+-
+-YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+-YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+-YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+-
+-static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+-static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
+-static void yy_flex_free YY_PROTO(( void * ));
++void yyrestart (FILE *input_file  );
++void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
++YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
++void yy_delete_buffer (YY_BUFFER_STATE b  );
++void yy_flush_buffer (YY_BUFFER_STATE b  );
++void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
++void yypop_buffer_state (void );
++
++static void yyensure_buffer_stack (void );
++static void yy_load_buffer_state (void );
++static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
++
++#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
++
++YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
++YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
++YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
++
++void *yyalloc (yy_size_t  );
++void *yyrealloc (void *,yy_size_t  );
++void yyfree (void *  );
+ #define yy_new_buffer yy_create_buffer
+ #define yy_set_interactive(is_interactive) \
+       { \
+-      if ( ! yy_current_buffer ) \
+-              yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+-      yy_current_buffer->yy_is_interactive = is_interactive; \
++      if ( ! YY_CURRENT_BUFFER ){ \
++        yyensure_buffer_stack (); \
++              YY_CURRENT_BUFFER_LVALUE =    \
++            yy_create_buffer(yyin,YY_BUF_SIZE ); \
++      } \
++      YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+       }
+ #define yy_set_bol(at_bol) \
+       { \
+-      if ( ! yy_current_buffer ) \
+-              yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+-      yy_current_buffer->yy_at_bol = at_bol; \
++      if ( ! YY_CURRENT_BUFFER ){\
++        yyensure_buffer_stack (); \
++              YY_CURRENT_BUFFER_LVALUE =    \
++            yy_create_buffer(yyin,YY_BUF_SIZE ); \
++      } \
++      YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+       }
+-#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
++#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
++
++/* Begin user sect3 */
+ typedef unsigned char YY_CHAR;
++
+ FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
++
+ typedef int yy_state_type;
++
++extern int yylineno;
++
++int yylineno = 1;
++
+ extern char *yytext;
+ #define yytext_ptr yytext
+-static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+-static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+-static int yy_get_next_buffer YY_PROTO(( void ));
+-static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
++static yy_state_type yy_get_previous_state (void );
++static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
++static int yy_get_next_buffer (void );
++static void yy_fatal_error (yyconst char msg[]  );
+ /* Done after the current pattern has been matched and before the
+  * corresponding action - sets up yytext.
+  */
+ #define YY_DO_BEFORE_ACTION \
+-      yytext_ptr = yy_bp; \
+-      yyleng = (int) (yy_cp - yy_bp); \
+-      yy_hold_char = *yy_cp; \
++      (yytext_ptr) = yy_bp; \
++      yyleng = (size_t) (yy_cp - yy_bp); \
++      (yy_hold_char) = *yy_cp; \
+       *yy_cp = '\0'; \
+-      yy_c_buf_p = yy_cp;
++      (yy_c_buf_p) = yy_cp;
+ #define YY_NUM_RULES 16
+ #define YY_END_OF_BUFFER 17
+-static yyconst short int yy_accept[70] =
++/* This struct is not used in this scanner,
++   but its presence is necessary. */
++struct yy_trans_info
++      {
++      flex_int32_t yy_verify;
++      flex_int32_t yy_nxt;
++      };
++static yyconst flex_int16_t yy_accept[70] =
+     {   0,
+        10,   10,   17,   15,   10,   10,   15,   15,    9,    9,
+         9,    9,    9,    9,    9,    9,    9,   10,    0,    0,
+@@ -295,7 +371,7 @@
+         7,    0,    0,    0,    0,    0,   11,   12,    0
+     } ;
+-static yyconst int yy_ec[256] =
++static yyconst flex_int32_t yy_ec[256] =
+     {   0,
+         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+@@ -327,14 +403,14 @@
+         1,    1,    1,    1,    1
+     } ;
+-static yyconst int yy_meta[29] =
++static yyconst flex_int32_t yy_meta[29] =
+     {   0,
+         1,    2,    2,    1,    3,    1,    4,    5,    5,    4,
+         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
+         4,    4,    4,    4,    4,    4,    4,    4
+     } ;
+-static yyconst short int yy_base[75] =
++static yyconst flex_int16_t yy_base[75] =
+     {   0,
+         0,    0,   99,  100,   27,   28,    0,   95,    0,   86,
+        72,   85,   80,   71,   78,   64,   76,   31,   84,   85,
+@@ -346,7 +422,7 @@
+        48,   34,   53,   58
+     } ;
+-static yyconst short int yy_def[75] =
++static yyconst flex_int16_t yy_def[75] =
+     {   0,
+        69,    1,   69,   69,   69,   69,   70,   71,   72,   72,
+        72,   72,   72,   72,   72,   72,   72,   69,   70,   71,
+@@ -358,7 +434,7 @@
+        69,   69,   69,   69
+     } ;
+-static yyconst short int yy_nxt[129] =
++static yyconst flex_int16_t yy_nxt[129] =
+     {   0,
+         4,    5,    6,    5,    7,    8,    9,    4,    4,   10,
+        11,   12,   13,    9,    9,    9,    9,   14,    9,   15,
+@@ -376,7 +452,7 @@
+        69,   69,   69,   69,   69,   69,   69,   69
+     } ;
+-static yyconst short int yy_chk[129] =
++static yyconst flex_int16_t yy_chk[129] =
+     {   0,
+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+@@ -397,6 +473,9 @@
+ static yy_state_type yy_last_accepting_state;
+ static char *yy_last_accepting_cpos;
++extern int yy_flex_debug;
++int yy_flex_debug = 0;
++
+ /* The intent behind this definition is that it'll catch
+  * any uses of REJECT which flex missed.
+  */
+@@ -406,7 +485,6 @@
+ #define YY_RESTORE_YY_MORE_OFFSET
+ char *yytext;
+ #line 1 "ql_l.l"
+-#define INITIAL 0
+ #line 2 "ql_l.l"
+ /* ql.l - Q.2931 data structures description language */
+  
+@@ -451,7 +529,21 @@
+     return (*walk)->str;
+ }
+-#line 455 "lex.yy.c"
++#line 533 "lex.yy.c"
++
++#define INITIAL 0
++
++#ifndef YY_NO_UNISTD_H
++/* Special case for "unistd.h", since it is non-ANSI. We include it way
++ * down here because we want the user's section 1 to have been scanned first.
++ * The user has a chance to override it with an option.
++ */
++#include <unistd.h>
++#endif
++
++#ifndef YY_EXTRA_TYPE
++#define YY_EXTRA_TYPE void *
++#endif
+ /* Macros after this point can all be overridden by user definitions in
+  * section 1.
+@@ -459,65 +551,30 @@
+ #ifndef YY_SKIP_YYWRAP
+ #ifdef __cplusplus
+-extern "C" int yywrap YY_PROTO(( void ));
++extern "C" int yywrap (void );
+ #else
+-extern int yywrap YY_PROTO(( void ));
++extern int yywrap (void );
+ #endif
+ #endif
+-#ifndef YY_NO_UNPUT
+-static void yyunput YY_PROTO(( int c, char *buf_ptr ));
+-#endif
+-
++    static void yyunput (int c,char *buf_ptr  );
++    
+ #ifndef yytext_ptr
+-static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
++static void yy_flex_strncpy (char *,yyconst char *,int );
+ #endif
+ #ifdef YY_NEED_STRLEN
+-static int yy_flex_strlen YY_PROTO(( yyconst char * ));
++static int yy_flex_strlen (yyconst char * );
+ #endif
+ #ifndef YY_NO_INPUT
++
+ #ifdef __cplusplus
+-static int yyinput YY_PROTO(( void ));
++static int yyinput (void );
+ #else
+-static int input YY_PROTO(( void ));
+-#endif
+-#endif
+-
+-#if YY_STACK_USED
+-static int yy_start_stack_ptr = 0;
+-static int yy_start_stack_depth = 0;
+-static int *yy_start_stack = 0;
+-#ifndef YY_NO_PUSH_STATE
+-static void yy_push_state YY_PROTO(( int new_state ));
+-#endif
+-#ifndef YY_NO_POP_STATE
+-static void yy_pop_state YY_PROTO(( void ));
+-#endif
+-#ifndef YY_NO_TOP_STATE
+-static int yy_top_state YY_PROTO(( void ));
++static int input (void );
+ #endif
+-#else
+-#define YY_NO_PUSH_STATE 1
+-#define YY_NO_POP_STATE 1
+-#define YY_NO_TOP_STATE 1
+-#endif
+-
+-#ifdef YY_MALLOC_DECL
+-YY_MALLOC_DECL
+-#else
+-#if __STDC__
+-#ifndef __cplusplus
+-#include <stdlib.h>
+-#endif
+-#else
+-/* Just try to get by without declaring the routines.  This will fail
+- * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+- * or sizeof(void*) != sizeof(int).
+- */
+-#endif
+ #endif
+ /* Amount of stuff to slurp up with each read. */
+@@ -526,7 +583,6 @@
+ #endif
+ /* Copy whatever the last rule matched to the standard output. */
+-
+ #ifndef ECHO
+ /* This used to be an fputs(), but since the string might contain NUL's,
+  * we now use fwrite().
+@@ -539,9 +595,10 @@
+  */
+ #ifndef YY_INPUT
+ #define YY_INPUT(buf,result,max_size) \
+-      if ( yy_current_buffer->yy_is_interactive ) \
++      if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+               { \
+-              int c = '*', n; \
++              int c = '*'; \
++              size_t n; \
+               for ( n = 0; n < max_size && \
+                            (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
+                       buf[n] = (char) c; \
+@@ -551,9 +608,22 @@
+                       YY_FATAL_ERROR( "input in flex scanner failed" ); \
+               result = n; \
+               } \
+-      else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+-                && ferror( yyin ) ) \
+-              YY_FATAL_ERROR( "input in flex scanner failed" );
++      else \
++              { \
++              errno=0; \
++              while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
++                      { \
++                      if( errno != EINTR) \
++                              { \
++                              YY_FATAL_ERROR( "input in flex scanner failed" ); \
++                              break; \
++                              } \
++                      errno=0; \
++                      clearerr(yyin); \
++                      } \
++              }\
++\
++
+ #endif
+ /* No semi-colon after return; correct usage is to write "yyterminate();" -
+@@ -574,12 +644,18 @@
+ #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
+ #endif
++/* end tables serialization structures and prototypes */
++
+ /* Default declaration of generated scanner - a define so the user can
+  * easily add parameters.
+  */
+ #ifndef YY_DECL
+-#define YY_DECL int yylex YY_PROTO(( void ))
+-#endif
++#define YY_DECL_IS_OURS 1
++
++extern int yylex (void);
++
++#define YY_DECL int yylex (void)
++#endif /* !YY_DECL */
+ /* Code executed at the beginning of each rule, after yytext and yyleng
+  * have been set up.
+@@ -596,27 +672,29 @@
+ #define YY_RULE_SETUP \
+       YY_USER_ACTION
++/** The main scanner function which does all the work.
++ */
+ YY_DECL
+-      {
++{
+       register yy_state_type yy_current_state;
+-      register char *yy_cp = NULL, *yy_bp = NULL;
++      register char *yy_cp, *yy_bp;
+       register int yy_act;
+-
++    
+ #line 47 "ql_l.l"
+-#line 609 "lex.yy.c"
++#line 687 "lex.yy.c"
+-      if ( yy_init )
++      if ( (yy_init) )
+               {
+-              yy_init = 0;
++              (yy_init) = 0;
+ #ifdef YY_USER_INIT
+               YY_USER_INIT;
+ #endif
+-              if ( ! yy_start )
+-                      yy_start = 1;   /* first start state */
++              if ( ! (yy_start) )
++                      (yy_start) = 1; /* first start state */
+               if ( ! yyin )
+                       yyin = stdin;
+@@ -624,34 +702,36 @@
+               if ( ! yyout )
+                       yyout = stdout;
+-              if ( ! yy_current_buffer )
+-                      yy_current_buffer =
+-                              yy_create_buffer( yyin, YY_BUF_SIZE );
++              if ( ! YY_CURRENT_BUFFER ) {
++                      yyensure_buffer_stack ();
++                      YY_CURRENT_BUFFER_LVALUE =
++                              yy_create_buffer(yyin,YY_BUF_SIZE );
++              }
+-              yy_load_buffer_state();
++              yy_load_buffer_state( );
+               }
+       while ( 1 )             /* loops until end-of-file is reached */
+               {
+-              yy_cp = yy_c_buf_p;
++              yy_cp = (yy_c_buf_p);
+               /* Support of yytext. */
+-              *yy_cp = yy_hold_char;
++              *yy_cp = (yy_hold_char);
+               /* yy_bp points to the position in yy_ch_buf of the start of
+                * the current run.
+                */
+               yy_bp = yy_cp;
+-              yy_current_state = yy_start;
++              yy_current_state = (yy_start);
+ yy_match:
+               do
+                       {
+                       register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+                       if ( yy_accept[yy_current_state] )
+                               {
+-                              yy_last_accepting_state = yy_current_state;
+-                              yy_last_accepting_cpos = yy_cp;
++                              (yy_last_accepting_state) = yy_current_state;
++                              (yy_last_accepting_cpos) = yy_cp;
+                               }
+                       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+                               {
+@@ -668,24 +748,22 @@
+               yy_act = yy_accept[yy_current_state];
+               if ( yy_act == 0 )
+                       { /* have to back up */
+-                      yy_cp = yy_last_accepting_cpos;
+-                      yy_current_state = yy_last_accepting_state;
++                      yy_cp = (yy_last_accepting_cpos);
++                      yy_current_state = (yy_last_accepting_state);
+                       yy_act = yy_accept[yy_current_state];
+                       }
+               YY_DO_BEFORE_ACTION;
+-
+ do_action:    /* This label is used only to access EOF actions. */
+-
+               switch ( yy_act )
+       { /* beginning of action switch */
+                       case 0: /* must back up */
+                       /* undo the effects of YY_DO_BEFORE_ACTION */
+-                      *yy_cp = yy_hold_char;
+-                      yy_cp = yy_last_accepting_cpos;
+-                      yy_current_state = yy_last_accepting_state;
++                      *yy_cp = (yy_hold_char);
++                      yy_cp = (yy_last_accepting_cpos);
++                      yy_current_state = (yy_last_accepting_state);
+                       goto yy_find_action;
+ case 1:
+@@ -735,6 +813,7 @@
+                                 return TOK_ID; }
+       YY_BREAK
+ case 10:
++/* rule 10 can match eol */
+ YY_RULE_SETUP
+ #line 59 "ql_l.l"
+ lineno += *yytext == '\n';
+@@ -755,6 +834,7 @@
+                                 return TOK_STRING; }
+       YY_BREAK
+ case 14:
++/* rule 14 can match eol */
+ YY_RULE_SETUP
+ #line 66 "ql_l.l"
+ lineno++;
+@@ -769,33 +849,33 @@
+ #line 69 "ql_l.l"
+ ECHO;
+       YY_BREAK
+-#line 773 "lex.yy.c"
++#line 853 "lex.yy.c"
+ case YY_STATE_EOF(INITIAL):
+       yyterminate();
+       case YY_END_OF_BUFFER:
+               {
+               /* Amount of text matched not including the EOB char. */
+-              int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
++              int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+               /* Undo the effects of YY_DO_BEFORE_ACTION. */
+-              *yy_cp = yy_hold_char;
++              *yy_cp = (yy_hold_char);
+               YY_RESTORE_YY_MORE_OFFSET
+-              if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
++              if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+                       {
+                       /* We're scanning a new file or input source.  It's
+                        * possible that this happened because the user
+                        * just pointed yyin at a new source and called
+                        * yylex().  If so, then we have to assure
+-                       * consistency between yy_current_buffer and our
++                       * consistency between YY_CURRENT_BUFFER and our
+                        * globals.  Here is the right place to do so, because
+                        * this is the first action (other than possibly a
+                        * back-up) that will match for the new input source.
+                        */
+-                      yy_n_chars = yy_current_buffer->yy_n_chars;
+-                      yy_current_buffer->yy_input_file = yyin;
+-                      yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
++                      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
++                      YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
++                      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+                       }
+               /* Note that here we test for yy_c_buf_p "<=" to the position
+@@ -805,13 +885,13 @@
+                * end-of-buffer state).  Contrast this with the test
+                * in input().
+                */
+-              if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
++              if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+                       { /* This was really a NUL. */
+                       yy_state_type yy_next_state;
+-                      yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
++                      (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+-                      yy_current_state = yy_get_previous_state();
++                      yy_current_state = yy_get_previous_state(  );
+                       /* Okay, we're now positioned to make the NUL
+                        * transition.  We couldn't have
+@@ -824,30 +904,30 @@
+                       yy_next_state = yy_try_NUL_trans( yy_current_state );
+-                      yy_bp = yytext_ptr + YY_MORE_ADJ;
++                      yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+                       if ( yy_next_state )
+                               {
+                               /* Consume the NUL. */
+-                              yy_cp = ++yy_c_buf_p;
++                              yy_cp = ++(yy_c_buf_p);
+                               yy_current_state = yy_next_state;
+                               goto yy_match;
+                               }
+                       else
+                               {
+-                              yy_cp = yy_c_buf_p;
++                              yy_cp = (yy_c_buf_p);
+                               goto yy_find_action;
+                               }
+                       }
+-              else switch ( yy_get_next_buffer() )
++              else switch ( yy_get_next_buffer(  ) )
+                       {
+                       case EOB_ACT_END_OF_FILE:
+                               {
+-                              yy_did_buffer_switch_on_eof = 0;
++                              (yy_did_buffer_switch_on_eof) = 0;
+-                              if ( yywrap() )
++                              if ( yywrap( ) )
+                                       {
+                                       /* Note: because we've taken care in
+                                        * yy_get_next_buffer() to have set up
+@@ -858,7 +938,7 @@
+                                        * YY_NULL, it'll still work - another
+                                        * YY_NULL will get returned.
+                                        */
+-                                      yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
++                                      (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+                                       yy_act = YY_STATE_EOF(YY_START);
+                                       goto do_action;
+@@ -866,30 +946,30 @@
+                               else
+                                       {
+-                                      if ( ! yy_did_buffer_switch_on_eof )
++                                      if ( ! (yy_did_buffer_switch_on_eof) )
+                                               YY_NEW_FILE;
+                                       }
+                               break;
+                               }
+                       case EOB_ACT_CONTINUE_SCAN:
+-                              yy_c_buf_p =
+-                                      yytext_ptr + yy_amount_of_matched_text;
++                              (yy_c_buf_p) =
++                                      (yytext_ptr) + yy_amount_of_matched_text;
+-                              yy_current_state = yy_get_previous_state();
++                              yy_current_state = yy_get_previous_state(  );
+-                              yy_cp = yy_c_buf_p;
+-                              yy_bp = yytext_ptr + YY_MORE_ADJ;
++                              yy_cp = (yy_c_buf_p);
++                              yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+                               goto yy_match;
+                       case EOB_ACT_LAST_MATCH:
+-                              yy_c_buf_p =
+-                              &yy_current_buffer->yy_ch_buf[yy_n_chars];
++                              (yy_c_buf_p) =
++                              &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+-                              yy_current_state = yy_get_previous_state();
++                              yy_current_state = yy_get_previous_state(  );
+-                              yy_cp = yy_c_buf_p;
+-                              yy_bp = yytext_ptr + YY_MORE_ADJ;
++                              yy_cp = (yy_c_buf_p);
++                              yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+                               goto yy_find_action;
+                       }
+               break;
+@@ -900,8 +980,7 @@
+                       "fatal flex scanner internal error--no action found" );
+       } /* end of action switch */
+               } /* end of scanning one token */
+-      } /* end of yylex */
+-
++} /* end of yylex */
+ /* yy_get_next_buffer - try to read in a new buffer
+  *
+@@ -910,21 +989,20 @@
+  *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
+  *    EOB_ACT_END_OF_FILE - end of file
+  */
+-
+-static int yy_get_next_buffer()
+-      {
+-      register char *dest = yy_current_buffer->yy_ch_buf;
+-      register char *source = yytext_ptr;
++static int yy_get_next_buffer (void)
++{
++      register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
++      register char *source = (yytext_ptr);
+       register int number_to_move, i;
+       int ret_val;
+-      if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
++      if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+               YY_FATAL_ERROR(
+               "fatal flex scanner internal error--end of buffer missed" );
+-      if ( yy_current_buffer->yy_fill_buffer == 0 )
++      if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+               { /* Don't try to fill the buffer, so this is an EOF. */
+-              if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
++              if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+                       {
+                       /* We matched a single character, the EOB, so
+                        * treat this as a final EOF.
+@@ -944,34 +1022,30 @@
+       /* Try to read more data. */
+       /* First move last chars to start of buffer. */
+-      number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
++      number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+       for ( i = 0; i < number_to_move; ++i )
+               *(dest++) = *(source++);
+-      if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
++      if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+               /* don't do the read, it's not guaranteed to return an EOF,
+                * just force an EOF
+                */
+-              yy_current_buffer->yy_n_chars = yy_n_chars = 0;
++              YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+       else
+               {
+-              int num_to_read =
+-                      yy_current_buffer->yy_buf_size - number_to_move - 1;
++                      size_t num_to_read =
++                      YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+               while ( num_to_read <= 0 )
+                       { /* Not enough room in the buffer - grow it. */
+-#ifdef YY_USES_REJECT
+-                      YY_FATAL_ERROR(
+-"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+-#else
+                       /* just a shorter name for the current buffer */
+-                      YY_BUFFER_STATE b = yy_current_buffer;
++                      YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+                       int yy_c_buf_p_offset =
+-                              (int) (yy_c_buf_p - b->yy_ch_buf);
++                              (int) ((yy_c_buf_p) - b->yy_ch_buf);
+                       if ( b->yy_is_our_buffer )
+                               {
+@@ -984,8 +1058,7 @@
+                               b->yy_ch_buf = (char *)
+                                       /* Include room in for 2 EOB chars. */
+-                                      yy_flex_realloc( (void *) b->yy_ch_buf,
+-                                                       b->yy_buf_size + 2 );
++                                      yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+                               }
+                       else
+                               /* Can't grow it, we don't own it. */
+@@ -995,35 +1068,35 @@
+                               YY_FATAL_ERROR(
+                               "fatal error - scanner input buffer overflow" );
+-                      yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
++                      (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+-                      num_to_read = yy_current_buffer->yy_buf_size -
++                      num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+                                               number_to_move - 1;
+-#endif
++
+                       }
+               if ( num_to_read > YY_READ_BUF_SIZE )
+                       num_to_read = YY_READ_BUF_SIZE;
+               /* Read in more data. */
+-              YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+-                      yy_n_chars, num_to_read );
++              YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
++                      (yy_n_chars), num_to_read );
+-              yy_current_buffer->yy_n_chars = yy_n_chars;
++              YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+               }
+-      if ( yy_n_chars == 0 )
++      if ( (yy_n_chars) == 0 )
+               {
+               if ( number_to_move == YY_MORE_ADJ )
+                       {
+                       ret_val = EOB_ACT_END_OF_FILE;
+-                      yyrestart( yyin );
++                      yyrestart(yyin  );
+                       }
+               else
+                       {
+                       ret_val = EOB_ACT_LAST_MATCH;
+-                      yy_current_buffer->yy_buffer_status =
++                      YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+                               YY_BUFFER_EOF_PENDING;
+                       }
+               }
+@@ -1031,32 +1104,31 @@
+       else
+               ret_val = EOB_ACT_CONTINUE_SCAN;
+-      yy_n_chars += number_to_move;
+-      yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+-      yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
++      (yy_n_chars) += number_to_move;
++      YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
++      YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+-      yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
++      (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+       return ret_val;
+-      }
+-
++}
+ /* yy_get_previous_state - get the state just before the EOB char was reached */
+-static yy_state_type yy_get_previous_state()
+-      {
++    static yy_state_type yy_get_previous_state (void)
++{
+       register yy_state_type yy_current_state;
+       register char *yy_cp;
++    
++      yy_current_state = (yy_start);
+-      yy_current_state = yy_start;
+-
+-      for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
++      for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+               {
+               register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+               if ( yy_accept[yy_current_state] )
+                       {
+-                      yy_last_accepting_state = yy_current_state;
+-                      yy_last_accepting_cpos = yy_cp;
++                      (yy_last_accepting_state) = yy_current_state;
++                      (yy_last_accepting_cpos) = yy_cp;
+                       }
+               while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+                       {
+@@ -1068,30 +1140,23 @@
+               }
+       return yy_current_state;
+-      }
+-
++}
+ /* yy_try_NUL_trans - try to make a transition on the NUL character
+  *
+  * synopsis
+  *    next_state = yy_try_NUL_trans( current_state );
+  */
+-
+-#ifdef YY_USE_PROTOS
+-static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+-#else
+-static yy_state_type yy_try_NUL_trans( yy_current_state )
+-yy_state_type yy_current_state;
+-#endif
+-      {
++    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
++{
+       register int yy_is_jam;
+-      register char *yy_cp = yy_c_buf_p;
++      register char *yy_cp = (yy_c_buf_p);
+       register YY_CHAR yy_c = 1;
+       if ( yy_accept[yy_current_state] )
+               {
+-              yy_last_accepting_state = yy_current_state;
+-              yy_last_accepting_cpos = yy_cp;
++              (yy_last_accepting_state) = yy_current_state;
++              (yy_last_accepting_cpos) = yy_cp;
+               }
+       while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
+               {
+@@ -1103,80 +1168,73 @@
+       yy_is_jam = (yy_current_state == 69);
+       return yy_is_jam ? 0 : yy_current_state;
+-      }
+-
++}
+-#ifndef YY_NO_UNPUT
+-#ifdef YY_USE_PROTOS
+-static void yyunput( int c, register char *yy_bp )
+-#else
+-static void yyunput( c, yy_bp )
+-int c;
+-register char *yy_bp;
+-#endif
+-      {
+-      register char *yy_cp = yy_c_buf_p;
++    static void yyunput (int c, register char * yy_bp )
++{
++      register char *yy_cp;
++    
++    yy_cp = (yy_c_buf_p);
+       /* undo effects of setting up yytext */
+-      *yy_cp = yy_hold_char;
++      *yy_cp = (yy_hold_char);
+-      if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
++      if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+               { /* need to shift things up to make room */
+               /* +2 for EOB chars. */
+-              register int number_to_move = yy_n_chars + 2;
+-              register char *dest = &yy_current_buffer->yy_ch_buf[
+-                                      yy_current_buffer->yy_buf_size + 2];
++              register int number_to_move = (yy_n_chars) + 2;
++              register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
++                                      YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+               register char *source =
+-                              &yy_current_buffer->yy_ch_buf[number_to_move];
++                              &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+-              while ( source > yy_current_buffer->yy_ch_buf )
++              while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+                       *--dest = *--source;
+               yy_cp += (int) (dest - source);
+               yy_bp += (int) (dest - source);
+-              yy_current_buffer->yy_n_chars =
+-                      yy_n_chars = yy_current_buffer->yy_buf_size;
++              YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
++                      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+-              if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
++              if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+                       YY_FATAL_ERROR( "flex scanner push-back overflow" );
+               }
+       *--yy_cp = (char) c;
++      (yytext_ptr) = yy_bp;
++      (yy_hold_char) = *yy_cp;
++      (yy_c_buf_p) = yy_cp;
++}
+-      yytext_ptr = yy_bp;
+-      yy_hold_char = *yy_cp;
+-      yy_c_buf_p = yy_cp;
+-      }
+-#endif        /* ifndef YY_NO_UNPUT */
+-
+-
++#ifndef YY_NO_INPUT
+ #ifdef __cplusplus
+-static int yyinput()
++    static int yyinput (void)
+ #else
+-static int input()
++    static int input  (void)
+ #endif
+-      {
+-      int c;
+-      *yy_c_buf_p = yy_hold_char;
++{
++      int c;
++    
++      *(yy_c_buf_p) = (yy_hold_char);
+-      if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
++      if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+               {
+               /* yy_c_buf_p now points to the character we want to return.
+                * If this occurs *before* the EOB characters, then it's a
+                * valid NUL; if not, then we've hit the end of the buffer.
+                */
+-              if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
++              if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+                       /* This was really a NUL. */
+-                      *yy_c_buf_p = '\0';
++                      *(yy_c_buf_p) = '\0';
+               else
+                       { /* need more input */
+-                      int offset = yy_c_buf_p - yytext_ptr;
+-                      ++yy_c_buf_p;
++                      int offset = (yy_c_buf_p) - (yytext_ptr);
++                      ++(yy_c_buf_p);
+-                      switch ( yy_get_next_buffer() )
++                      switch ( yy_get_next_buffer(  ) )
+                               {
+                               case EOB_ACT_LAST_MATCH:
+                                       /* This happens because yy_g_n_b()
+@@ -1190,16 +1248,16 @@
+                                        */
+                                       /* Reset buffer status. */
+-                                      yyrestart( yyin );
++                                      yyrestart(yyin );
+-                                      /* fall through */
++                                      /*FALLTHROUGH*/
+                               case EOB_ACT_END_OF_FILE:
+                                       {
+-                                      if ( yywrap() )
++                                      if ( yywrap( ) )
+                                               return EOF;
+-                                      if ( ! yy_did_buffer_switch_on_eof )
++                                      if ( ! (yy_did_buffer_switch_on_eof) )
+                                               YY_NEW_FILE;
+ #ifdef __cplusplus
+                                       return yyinput();
+@@ -1209,90 +1267,92 @@
+                                       }
+                               case EOB_ACT_CONTINUE_SCAN:
+-                                      yy_c_buf_p = yytext_ptr + offset;
++                                      (yy_c_buf_p) = (yytext_ptr) + offset;
+                                       break;
+                               }
+                       }
+               }
+-      c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
+-      *yy_c_buf_p = '\0';     /* preserve yytext */
+-      yy_hold_char = *++yy_c_buf_p;
+-
++      c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
++      *(yy_c_buf_p) = '\0';   /* preserve yytext */
++      (yy_hold_char) = *++(yy_c_buf_p);
+       return c;
+-      }
+-
+-
+-#ifdef YY_USE_PROTOS
+-void yyrestart( FILE *input_file )
+-#else
+-void yyrestart( input_file )
+-FILE *input_file;
+-#endif
+-      {
+-      if ( ! yy_current_buffer )
+-              yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
++}
++#endif        /* ifndef YY_NO_INPUT */
+-      yy_init_buffer( yy_current_buffer, input_file );
+-      yy_load_buffer_state();
++/** Immediately switch to a different input stream.
++ * @param input_file A readable stream.
++ * 
++ * @note This function does not reset the start condition to @c INITIAL .
++ */
++    void yyrestart  (FILE * input_file )
++{
++    
++      if ( ! YY_CURRENT_BUFFER ){
++        yyensure_buffer_stack ();
++              YY_CURRENT_BUFFER_LVALUE =
++            yy_create_buffer(yyin,YY_BUF_SIZE );
+       }
++      yy_init_buffer(YY_CURRENT_BUFFER,input_file );
++      yy_load_buffer_state( );
++}
+-#ifdef YY_USE_PROTOS
+-void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+-#else
+-void yy_switch_to_buffer( new_buffer )
+-YY_BUFFER_STATE new_buffer;
+-#endif
+-      {
+-      if ( yy_current_buffer == new_buffer )
++/** Switch to a different input buffer.
++ * @param new_buffer The new input buffer.
++ * 
++ */
++    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
++{
++    
++      /* TODO. We should be able to replace this entire function body
++       * with
++       *              yypop_buffer_state();
++       *              yypush_buffer_state(new_buffer);
++     */
++      yyensure_buffer_stack ();
++      if ( YY_CURRENT_BUFFER == new_buffer )
+               return;
+-      if ( yy_current_buffer )
++      if ( YY_CURRENT_BUFFER )
+               {
+               /* Flush out information for old buffer. */
+-              *yy_c_buf_p = yy_hold_char;
+-              yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+-              yy_current_buffer->yy_n_chars = yy_n_chars;
++              *(yy_c_buf_p) = (yy_hold_char);
++              YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
++              YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+               }
+-      yy_current_buffer = new_buffer;
+-      yy_load_buffer_state();
++      YY_CURRENT_BUFFER_LVALUE = new_buffer;
++      yy_load_buffer_state( );
+       /* We don't actually know whether we did this switch during
+        * EOF (yywrap()) processing, but the only time this flag
+        * is looked at is after yywrap() is called, so it's safe
+        * to go ahead and always set it.
+        */
+-      yy_did_buffer_switch_on_eof = 1;
+-      }
+-
+-
+-#ifdef YY_USE_PROTOS
+-void yy_load_buffer_state( void )
+-#else
+-void yy_load_buffer_state()
+-#endif
+-      {
+-      yy_n_chars = yy_current_buffer->yy_n_chars;
+-      yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+-      yyin = yy_current_buffer->yy_input_file;
+-      yy_hold_char = *yy_c_buf_p;
+-      }
++      (yy_did_buffer_switch_on_eof) = 1;
++}
++static void yy_load_buffer_state  (void)
++{
++      (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
++      (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
++      yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
++      (yy_hold_char) = *(yy_c_buf_p);
++}
+-#ifdef YY_USE_PROTOS
+-YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+-#else
+-YY_BUFFER_STATE yy_create_buffer( file, size )
+-FILE *file;
+-int size;
+-#endif
+-      {
++/** Allocate and initialize an input buffer state.
++ * @param file A readable stream.
++ * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
++ * 
++ * @return the allocated buffer state.
++ */
++    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
++{
+       YY_BUFFER_STATE b;
+-
+-      b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
++    
++      b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+       if ( ! b )
+               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+@@ -1301,75 +1361,75 @@
+       /* yy_ch_buf has to be 2 characters longer than the size given because
+        * we need to put in 2 end-of-buffer characters.
+        */
+-      b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
++      b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+       if ( ! b->yy_ch_buf )
+               YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
+       b->yy_is_our_buffer = 1;
+-      yy_init_buffer( b, file );
++      yy_init_buffer(b,file );
+       return b;
+-      }
+-
++}
+-#ifdef YY_USE_PROTOS
+-void yy_delete_buffer( YY_BUFFER_STATE b )
+-#else
+-void yy_delete_buffer( b )
+-YY_BUFFER_STATE b;
+-#endif
+-      {
++/** Destroy the buffer.
++ * @param b a buffer created with yy_create_buffer()
++ * 
++ */
++    void yy_delete_buffer (YY_BUFFER_STATE  b )
++{
++    
+       if ( ! b )
+               return;
+-      if ( b == yy_current_buffer )
+-              yy_current_buffer = (YY_BUFFER_STATE) 0;
++      if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
++              YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+       if ( b->yy_is_our_buffer )
+-              yy_flex_free( (void *) b->yy_ch_buf );
++              yyfree((void *) b->yy_ch_buf  );
+-      yy_flex_free( (void *) b );
+-      }
+-
+-
+-
+-#ifdef YY_USE_PROTOS
+-void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+-#else
+-void yy_init_buffer( b, file )
+-YY_BUFFER_STATE b;
+-FILE *file;
+-#endif
++      yyfree((void *) b  );
++}
++#ifndef __cplusplus
++extern int isatty (int );
++#endif /* __cplusplus */
++    
++/* Initializes or reinitializes a buffer.
++ * This function is sometimes called more than once on the same buffer,
++ * such as during a yyrestart() or at EOF.
++ */
++    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
+-      {
+-      yy_flush_buffer( b );
++{
++      int oerrno = errno;
++    
++      yy_flush_buffer(b );
+       b->yy_input_file = file;
+       b->yy_fill_buffer = 1;
+-#if YY_ALWAYS_INTERACTIVE
+-      b->yy_is_interactive = 1;
+-#else
+-#if YY_NEVER_INTERACTIVE
+-      b->yy_is_interactive = 0;
+-#else
+-      b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+-#endif
+-#endif
+-      }
+-
++    /* If b is the current buffer, then yy_init_buffer was _probably_
++     * called from yyrestart() or through yy_get_next_buffer.
++     * In that case, we don't want to reset the lineno or column.
++     */
++    if (b != YY_CURRENT_BUFFER){
++        b->yy_bs_lineno = 1;
++        b->yy_bs_column = 0;
++    }
+-#ifdef YY_USE_PROTOS
+-void yy_flush_buffer( YY_BUFFER_STATE b )
+-#else
+-void yy_flush_buffer( b )
+-YY_BUFFER_STATE b;
+-#endif
++        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
++    
++      errno = oerrno;
++}
+-      {
+-      if ( ! b )
++/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
++ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
++ * 
++ */
++    void yy_flush_buffer (YY_BUFFER_STATE  b )
++{
++      if ( ! b )
+               return;
+       b->yy_n_chars = 0;
+@@ -1386,29 +1446,121 @@
+       b->yy_at_bol = 1;
+       b->yy_buffer_status = YY_BUFFER_NEW;
+-      if ( b == yy_current_buffer )
+-              yy_load_buffer_state();
++      if ( b == YY_CURRENT_BUFFER )
++              yy_load_buffer_state( );
++}
++
++/** Pushes the new state onto the stack. The new state becomes
++ *  the current state. This function will allocate the stack
++ *  if necessary.
++ *  @param new_buffer The new state.
++ *  
++ */
++void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
++{
++      if (new_buffer == NULL)
++              return;
++
++      yyensure_buffer_stack();
++
++      /* This block is copied from yy_switch_to_buffer. */
++      if ( YY_CURRENT_BUFFER )
++              {
++              /* Flush out information for old buffer. */
++              *(yy_c_buf_p) = (yy_hold_char);
++              YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
++              YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
++              }
++
++      /* Only push if top exists. Otherwise, replace top. */
++      if (YY_CURRENT_BUFFER)
++              (yy_buffer_stack_top)++;
++      YY_CURRENT_BUFFER_LVALUE = new_buffer;
++
++      /* copied from yy_switch_to_buffer. */
++      yy_load_buffer_state( );
++      (yy_did_buffer_switch_on_eof) = 1;
++}
++
++/** Removes and deletes the top of the stack, if present.
++ *  The next element becomes the new top.
++ *  
++ */
++void yypop_buffer_state (void)
++{
++      if (!YY_CURRENT_BUFFER)
++              return;
++
++      yy_delete_buffer(YY_CURRENT_BUFFER );
++      YY_CURRENT_BUFFER_LVALUE = NULL;
++      if ((yy_buffer_stack_top) > 0)
++              --(yy_buffer_stack_top);
++
++      if (YY_CURRENT_BUFFER) {
++              yy_load_buffer_state( );
++              (yy_did_buffer_switch_on_eof) = 1;
+       }
++}
++/* Allocates the stack if it does not exist.
++ *  Guarantees space for at least one push.
++ */
++static void yyensure_buffer_stack (void)
++{
++      int num_to_alloc;
++    
++      if (!(yy_buffer_stack)) {
++
++              /* First allocation is just for 2 elements, since we don't know if this
++               * scanner will even need a stack. We use 2 instead of 1 to avoid an
++               * immediate realloc on the next call.
++         */
++              num_to_alloc = 1;
++              (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
++                                                              (num_to_alloc * sizeof(struct yy_buffer_state*)
++                                                              );
++              
++              memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
++                              
++              (yy_buffer_stack_max) = num_to_alloc;
++              (yy_buffer_stack_top) = 0;
++              return;
++      }
+-#ifndef YY_NO_SCAN_BUFFER
+-#ifdef YY_USE_PROTOS
+-YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+-#else
+-YY_BUFFER_STATE yy_scan_buffer( base, size )
+-char *base;
+-yy_size_t size;
+-#endif
+-      {
+-      YY_BUFFER_STATE b;
++      if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
++
++              /* Increase the buffer to prepare for a possible push. */
++              int grow_size = 8 /* arbitrary grow size */;
++              num_to_alloc = (yy_buffer_stack_max) + grow_size;
++              (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
++                                                              ((yy_buffer_stack),
++                                                              num_to_alloc * sizeof(struct yy_buffer_state*)
++                                                              );
++
++              /* zero only the new slots.*/
++              memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
++              (yy_buffer_stack_max) = num_to_alloc;
++      }
++}
++
++/** Setup the input buffer state to scan directly from a user-specified character buffer.
++ * @param base the character buffer
++ * @param size the size in bytes of the character buffer
++ * 
++ * @return the newly allocated buffer state object. 
++ */
++YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
++{
++      YY_BUFFER_STATE b;
++    
+       if ( size < 2 ||
+            base[size-2] != YY_END_OF_BUFFER_CHAR ||
+            base[size-1] != YY_END_OF_BUFFER_CHAR )
+               /* They forgot to leave room for the EOB's. */
+               return 0;
+-      b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
++      b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+       if ( ! b )
+               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
+@@ -1422,47 +1574,42 @@
+       b->yy_fill_buffer = 0;
+       b->yy_buffer_status = YY_BUFFER_NEW;
+-      yy_switch_to_buffer( b );
++      yy_switch_to_buffer(b  );
+       return b;
+-      }
+-#endif
+-
+-
+-#ifndef YY_NO_SCAN_STRING
+-#ifdef YY_USE_PROTOS
+-YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+-#else
+-YY_BUFFER_STATE yy_scan_string( yy_str )
+-yyconst char *yy_str;
+-#endif
+-      {
+-      int len;
+-      for ( len = 0; yy_str[len]; ++len )
+-              ;
+-
+-      return yy_scan_bytes( yy_str, len );
+-      }
+-#endif
++}
++/** Setup the input buffer state to scan a string. The next call to yylex() will
++ * scan from a @e copy of @a str.
++ * @param str a NUL-terminated string to scan
++ * 
++ * @return the newly allocated buffer state object.
++ * @note If you want to scan bytes that may contain NUL values, then use
++ *       yy_scan_bytes() instead.
++ */
++YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str )
++{
++    
++      return yy_scan_bytes(yy_str,strlen(yy_str) );
++}
+-#ifndef YY_NO_SCAN_BYTES
+-#ifdef YY_USE_PROTOS
+-YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+-#else
+-YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+-yyconst char *bytes;
+-int len;
+-#endif
+-      {
++/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
++ * scan from a @e copy of @a bytes.
++ * @param bytes the byte buffer to scan
++ * @param len the number of bytes in the buffer pointed to by @a bytes.
++ * 
++ * @return the newly allocated buffer state object.
++ */
++YY_BUFFER_STATE yy_scan_bytes  (yyconst char * bytes, int  len )
++{
+       YY_BUFFER_STATE b;
+       char *buf;
+       yy_size_t n;
+       int i;
+-
++    
+       /* Get memory for full buffer, including space for trailing EOB's. */
+       n = len + 2;
+-      buf = (char *) yy_flex_alloc( n );
++      buf = (char *) yyalloc(n  );
+       if ( ! buf )
+               YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
+@@ -1471,7 +1618,7 @@
+       buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
+-      b = yy_scan_buffer( buf, n );
++      b = yy_scan_buffer(buf,n );
+       if ( ! b )
+               YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
+@@ -1481,148 +1628,164 @@
+       b->yy_is_our_buffer = 1;
+       return b;
+-      }
+-#endif
+-
++}
+-#ifndef YY_NO_PUSH_STATE
+-#ifdef YY_USE_PROTOS
+-static void yy_push_state( int new_state )
+-#else
+-static void yy_push_state( new_state )
+-int new_state;
++#ifndef YY_EXIT_FAILURE
++#define YY_EXIT_FAILURE 2
+ #endif
+-      {
+-      if ( yy_start_stack_ptr >= yy_start_stack_depth )
+-              {
+-              yy_size_t new_size;
+-              yy_start_stack_depth += YY_START_STACK_INCR;
+-              new_size = yy_start_stack_depth * sizeof( int );
++static void yy_fatal_error (yyconst char* msg )
++{
++      (void) fprintf( stderr, "%s\n", msg );
++      exit( YY_EXIT_FAILURE );
++}
+-              if ( ! yy_start_stack )
+-                      yy_start_stack = (int *) yy_flex_alloc( new_size );
++/* Redefine yyless() so it works in section 3 code. */
+-              else
+-                      yy_start_stack = (int *) yy_flex_realloc(
+-                                      (void *) yy_start_stack, new_size );
++#undef yyless
++#define yyless(n) \
++      do \
++              { \
++              /* Undo effects of setting up yytext. */ \
++        int yyless_macro_arg = (n); \
++        YY_LESS_LINENO(yyless_macro_arg);\
++              yytext[yyleng] = (yy_hold_char); \
++              (yy_c_buf_p) = yytext + yyless_macro_arg; \
++              (yy_hold_char) = *(yy_c_buf_p); \
++              *(yy_c_buf_p) = '\0'; \
++              yyleng = yyless_macro_arg; \
++              } \
++      while ( 0 )
+-              if ( ! yy_start_stack )
+-                      YY_FATAL_ERROR(
+-                      "out of memory expanding start-condition stack" );
+-              }
++/* Accessor  methods (get/set functions) to struct members. */
+-      yy_start_stack[yy_start_stack_ptr++] = YY_START;
++/** Get the current line number.
++ * 
++ */
++int yyget_lineno  (void)
++{
++        
++    return yylineno;
++}
+-      BEGIN(new_state);
+-      }
+-#endif
++/** Get the input stream.
++ * 
++ */
++FILE *yyget_in  (void)
++{
++        return yyin;
++}
++/** Get the output stream.
++ * 
++ */
++FILE *yyget_out  (void)
++{
++        return yyout;
++}
+-#ifndef YY_NO_POP_STATE
+-static void yy_pop_state()
+-      {
+-      if ( --yy_start_stack_ptr < 0 )
+-              YY_FATAL_ERROR( "start-condition stack underflow" );
++/** Get the length of the current token.
++ * 
++ */
++int yyget_leng  (void)
++{
++        return yyleng;
++}
+-      BEGIN(yy_start_stack[yy_start_stack_ptr]);
+-      }
+-#endif
++/** Get the current token.
++ * 
++ */
++char *yyget_text  (void)
++{
++        return yytext;
++}
+-#ifndef YY_NO_TOP_STATE
+-static int yy_top_state()
+-      {
+-      return yy_start_stack[yy_start_stack_ptr - 1];
+-      }
+-#endif
++/** Set the current line number.
++ * @param line_number
++ * 
++ */
++void yyset_lineno (int  line_number )
++{
++    
++    yylineno = line_number;
++}
+-#ifndef YY_EXIT_FAILURE
+-#define YY_EXIT_FAILURE 2
+-#endif
++/** Set the input stream. This does not discard the current
++ * input buffer.
++ * @param in_str A readable stream.
++ * 
++ * @see yy_switch_to_buffer
++ */
++void yyset_in (FILE *  in_str )
++{
++        yyin = in_str ;
++}
+-#ifdef YY_USE_PROTOS
+-static void yy_fatal_error( yyconst char msg[] )
+-#else
+-static void yy_fatal_error( msg )
+-char msg[];
+-#endif
+-      {
+-      (void) fprintf( stderr, "%s\n", msg );
+-      exit( YY_EXIT_FAILURE );
+-      }
++void yyset_out (FILE *  out_str )
++{
++        yyout = out_str ;
++}
++int yyget_debug  (void)
++{
++        return yy_flex_debug;
++}
++void yyset_debug (int  bdebug )
++{
++        yy_flex_debug = bdebug ;
++}
+-/* Redefine yyless() so it works in section 3 code. */
++/* yylex_destroy is for both reentrant and non-reentrant scanners. */
++int yylex_destroy  (void)
++{
++    
++    /* Pop the buffer stack, destroying each element. */
++      while(YY_CURRENT_BUFFER){
++              yy_delete_buffer(YY_CURRENT_BUFFER  );
++              YY_CURRENT_BUFFER_LVALUE = NULL;
++              yypop_buffer_state();
++      }
+-#undef yyless
+-#define yyless(n) \
+-      do \
+-              { \
+-              /* Undo effects of setting up yytext. */ \
+-              yytext[yyleng] = yy_hold_char; \
+-              yy_c_buf_p = yytext + n; \
+-              yy_hold_char = *yy_c_buf_p; \
+-              *yy_c_buf_p = '\0'; \
+-              yyleng = n; \
+-              } \
+-      while ( 0 )
++      /* Destroy the stack itself. */
++      yyfree((yy_buffer_stack) );
++      (yy_buffer_stack) = NULL;
++    return 0;
++}
+-/* Internal utility routines. */
++/*
++ * Internal utility routines.
++ */
+ #ifndef yytext_ptr
+-#ifdef YY_USE_PROTOS
+-static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+-#else
+-static void yy_flex_strncpy( s1, s2, n )
+-char *s1;
+-yyconst char *s2;
+-int n;
+-#endif
+-      {
++static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
++{
+       register int i;
+-      for ( i = 0; i < n; ++i )
++      for ( i = 0; i < n; ++i )
+               s1[i] = s2[i];
+-      }
++}
+ #endif
+ #ifdef YY_NEED_STRLEN
+-#ifdef YY_USE_PROTOS
+-static int yy_flex_strlen( yyconst char *s )
+-#else
+-static int yy_flex_strlen( s )
+-yyconst char *s;
+-#endif
+-      {
++static int yy_flex_strlen (yyconst char * s )
++{
+       register int n;
+-      for ( n = 0; s[n]; ++n )
++      for ( n = 0; s[n]; ++n )
+               ;
+       return n;
+-      }
++}
+ #endif
+-
+-#ifdef YY_USE_PROTOS
+-static void *yy_flex_alloc( yy_size_t size )
+-#else
+-static void *yy_flex_alloc( size )
+-yy_size_t size;
+-#endif
+-      {
++void *yyalloc (yy_size_t  size )
++{
+       return (void *) malloc( size );
+-      }
++}
+-#ifdef YY_USE_PROTOS
+-static void *yy_flex_realloc( void *ptr, yy_size_t size )
+-#else
+-static void *yy_flex_realloc( ptr, size )
+-void *ptr;
+-yy_size_t size;
+-#endif
+-      {
++void *yyrealloc  (void * ptr, yy_size_t  size )
++{
+       /* The cast to (char *) in the following accommodates both
+        * implementations that use char* generic pointers, and those
+        * that use void* generic pointers.  It works with the latter
+@@ -1631,30 +1794,34 @@
+        * as though doing an assignment.
+        */
+       return (void *) realloc( (char *) ptr, size );
+-      }
++}
+-#ifdef YY_USE_PROTOS
+-static void yy_flex_free( void *ptr )
+-#else
+-static void yy_flex_free( ptr )
+-void *ptr;
+-#endif
+-      {
+-      free( ptr );
+-      }
++void yyfree (void * ptr )
++{
++      free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
++}
+-#if YY_MAIN
+-int main()
+-      {
+-      yylex();
+-      return 0;
+-      }
++#define YYTABLES_NAME "yytables"
++
++#undef YY_NEW_FILE
++#undef YY_FLUSH_BUFFER
++#undef yy_set_bol
++#undef yy_new_buffer
++#undef yy_set_interactive
++#undef yytext_ptr
++#undef YY_DO_BEFORE_ACTION
++
++#ifdef YY_DECL_IS_OURS
++#undef YY_DECL_IS_OURS
++#undef YY_DECL
+ #endif
+ #line 69 "ql_l.l"
+-void yyerror(char *s)
++
++void yyerror(const char *s)
+ {
+     fprintf(stderr,"line %d: %s near \"%s\"\n",lineno,s,yytext);
+     exit(1);
+ }
++
+--- linux-atm-2.4.1.orig/src/qgen/ql_y.c
++++ linux-atm-2.4.1/src/qgen/ql_y.c
+@@ -1,21 +1,87 @@
++/* A Bison parser, made by GNU Bison 1.875d.  */
+-/*  A Bison parser, made from ql_y.y
+-    by GNU Bison version 1.28  */
++/* Skeleton parser for Yacc-like parsing with Bison,
++   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+-#define YYBISON 1  /* Identify Bison output.  */
++   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, or (at your option)
++   any later version.
+-#define       TOK_BREAK       257
+-#define       TOK_CASE        258
+-#define       TOK_DEF 259
+-#define       TOK_DEFAULT     260
+-#define       TOK_LENGTH      261
+-#define       TOK_MULTI       262
+-#define       TOK_RECOVER     263
+-#define       TOK_ABORT       264
+-#define       TOK_ID  265
+-#define       TOK_INCLUDE     266
+-#define       TOK_STRING      267
++   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-1307, USA.  */
++
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
++
++/* Written by Richard Stallman by simplifying the original so called
++   ``semantic'' parser.  */
++
++/* All symbols defined below should begin with yy or YY, to avoid
++   infringing on user name space.  This should be done even for local
++   variables, as they might otherwise be expanded by user macros.
++   There are some unavoidable exceptions within include files to
++   define necessary library symbols; they are noted "INFRINGES ON
++   USER NAME SPACE" below.  */
++
++/* Identify Bison output.  */
++#define YYBISON 1
++
++/* Skeleton name.  */
++#define YYSKELETON_NAME "yacc.c"
++
++/* Pure parsers.  */
++#define YYPURE 0
++
++/* Using locations.  */
++#define YYLSP_NEEDED 0
++
++
++
++/* Tokens.  */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++   /* Put the tokens into the symbol table, so that GDB and other debuggers
++      know about them.  */
++   enum yytokentype {
++     TOK_BREAK = 258,
++     TOK_CASE = 259,
++     TOK_DEF = 260,
++     TOK_DEFAULT = 261,
++     TOK_LENGTH = 262,
++     TOK_MULTI = 263,
++     TOK_RECOVER = 264,
++     TOK_ABORT = 265,
++     TOK_ID = 266,
++     TOK_INCLUDE = 267,
++     TOK_STRING = 268
++   };
++#endif
++#define TOK_BREAK 258
++#define TOK_CASE 259
++#define TOK_DEF 260
++#define TOK_DEFAULT 261
++#define TOK_LENGTH 262
++#define TOK_MULTI 263
++#define TOK_RECOVER 264
++#define TOK_ABORT 265
++#define TOK_ID 266
++#define TOK_INCLUDE 267
++#define TOK_STRING 268
++
++
++
++
++/* Copy the first part of user declarations.  */
+ #line 1 "ql_y.y"
+ /* ql.y - Q.2931 data structures description language */
+@@ -36,6 +102,8 @@
+ #include "qgen.h"
+ #include "file.h"
++extern void yyerror(const char *s);
++
+ #define MAX_TOKEN 256
+ #define DEFAULT_NAMELIST_FILE "default.nl"
+@@ -77,9 +145,10 @@
+       for (walk = strchr(start,0)-1; walk > start && isspace(*walk); walk--)
+           *walk = 0;
+       if (*start == ':') {
+-          if (!(searching = strcmp(start+1,name)))
++          if (!(searching = strcmp(start+1,name))) {
+               if (found) yyerror("multiple entries");
+               else found = 1;
++          }
+           continue;
+       }
+       if (searching) continue;
+@@ -154,8 +223,23 @@
+-#line 139 "ql_y.y"
+-typedef union {
++
++/* Enabling traces.  */
++#ifndef YYDEBUG
++# define YYDEBUG 0
++#endif
++
++/* Enabling verbose error messages.  */
++#ifdef YYERROR_VERBOSE
++# undef YYERROR_VERBOSE
++# define YYERROR_VERBOSE 1
++#else
++# define YYERROR_VERBOSE 0
++#endif
++
++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#line 142 "ql_y.y"
++typedef union YYSTYPE {
+     const char *str;
+     int num;
+     FIELD *field;
+@@ -164,470 +248,762 @@
+     TAG *tag;
+     NAME_LIST *nlist;
+ } YYSTYPE;
+-#include <stdio.h>
++/* Line 191 of yacc.c.  */
++#line 253 "y.tab.c"
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++# define YYSTYPE_IS_TRIVIAL 1
++#endif
++
++
++
++/* Copy the second part of user declarations.  */
++
++
++/* Line 214 of yacc.c.  */
++#line 265 "y.tab.c"
++
++#if ! defined (yyoverflow) || YYERROR_VERBOSE
++
++# ifndef YYFREE
++#  define YYFREE free
++# endif
++# ifndef YYMALLOC
++#  define YYMALLOC malloc
++# endif
++
++/* The parser invokes alloca or malloc; define the necessary symbols.  */
++
++# ifdef YYSTACK_USE_ALLOCA
++#  if YYSTACK_USE_ALLOCA
++#   define YYSTACK_ALLOC alloca
++#  endif
++# else
++#  if defined (alloca) || defined (_ALLOCA_H)
++#   define YYSTACK_ALLOC alloca
++#  else
++#   ifdef __GNUC__
++#    define YYSTACK_ALLOC __builtin_alloca
++#   endif
++#  endif
++# endif
++
++# ifdef YYSTACK_ALLOC
++   /* Pacify GCC's `empty if-body' warning. */
++#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
++# else
++#  if defined (__STDC__) || defined (__cplusplus)
++#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++#   define YYSIZE_T size_t
++#  endif
++#  define YYSTACK_ALLOC YYMALLOC
++#  define YYSTACK_FREE YYFREE
++# endif
++#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++
++
++#if (! defined (yyoverflow) \
++     && (! defined (__cplusplus) \
++       || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++
++/* A type that is properly aligned for any stack member.  */
++union yyalloc
++{
++  short int yyss;
++  YYSTYPE yyvs;
++  };
++
++/* The size of the maximum gap between one aligned stack and the next.  */
++# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
++
++/* The size of an array large to enough to hold all stacks, each with
++   N elements.  */
++# define YYSTACK_BYTES(N) \
++     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                   \
++      + YYSTACK_GAP_MAXIMUM)
++
++/* Copy COUNT objects from FROM to TO.  The source and destination do
++   not overlap.  */
++# ifndef YYCOPY
++#  if defined (__GNUC__) && 1 < __GNUC__
++#   define YYCOPY(To, From, Count) \
++      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
++#  else
++#   define YYCOPY(To, From, Count)            \
++      do                                      \
++      {                                       \
++        register YYSIZE_T yyi;                \
++        for (yyi = 0; yyi < (Count); yyi++)   \
++          (To)[yyi] = (From)[yyi];            \
++      }                                       \
++      while (0)
++#  endif
++# endif
++
++/* Relocate STACK from its old location to the new one.  The
++   local variables YYSIZE and YYSTACKSIZE give the old and new number of
++   elements in the stack, and YYPTR gives the new location of the
++   stack.  Advance YYPTR to a properly aligned location for the next
++   stack.  */
++# define YYSTACK_RELOCATE(Stack)                                      \
++    do                                                                        \
++      {                                                                       \
++      YYSIZE_T yynewbytes;                                            \
++      YYCOPY (&yyptr->Stack, Stack, yysize);                          \
++      Stack = &yyptr->Stack;                                          \
++      yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
++      yyptr += yynewbytes / sizeof (*yyptr);                          \
++      }                                                                       \
++    while (0)
+-#ifndef __cplusplus
+-#ifndef __STDC__
+-#define const
+-#endif
+ #endif
++#if defined (__STDC__) || defined (__cplusplus)
++   typedef signed char yysigned_char;
++#else
++   typedef short int yysigned_char;
++#endif
+-
+-#define       YYFINAL         86
+-#define       YYFLAG          -32768
+-#define       YYNTBASE        23
+-
+-#define YYTRANSLATE(x) ((unsigned)(x) <= 267 ? yytranslate[x] : 47)
+-
+-static const char yytranslate[] = {     0,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,    21,    18,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,    22,     2,    17,
+-    14,    19,     2,    20,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,    15,     2,    16,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+-     7,     8,     9,    10,    11,    12,    13
++/* YYFINAL -- State number of the termination state. */
++#define YYFINAL  5
++/* YYLAST -- Last index in YYTABLE.  */
++#define YYLAST   65
++
++/* YYNTOKENS -- Number of terminals. */
++#define YYNTOKENS  23
++/* YYNNTS -- Number of nonterminals. */
++#define YYNNTS  25
++/* YYNRULES -- Number of rules. */
++#define YYNRULES  46
++/* YYNRULES -- Number of states. */
++#define YYNSTATES  86
++
++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
++#define YYUNDEFTOK  2
++#define YYMAXUTOK   268
++
++#define YYTRANSLATE(YYX)                                              \
++  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
++
++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
++static const unsigned char yytranslate[] =
++{
++       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,    21,    18,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,    22,     2,
++      17,    14,    19,     2,    20,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,    15,     2,    16,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
++       5,     6,     7,     8,     9,    10,    11,    12,    13
+ };
+-#if YYDEBUG != 0
+-static const short yyprhs[] = {     0,
+-     0,     4,     5,     8,     9,    12,    17,    18,    21,    23,
+-    27,    30,    31,    34,    40,    41,    43,    47,    53,    54,
+-    57,    59,    60,    63,    64,    67,    69,    74,    79,    83,
+-    84,    87,    88,    90,    91,    97,    98,   105,   106,   112,
+-   113,   120,   121,   124,   125
++#if YYDEBUG
++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
++   YYRHS.  */
++static const unsigned char yyprhs[] =
++{
++       0,     0,     3,     7,     8,    11,    12,    15,    20,    21,
++      24,    26,    30,    33,    34,    37,    43,    44,    46,    50,
++      56,    57,    60,    62,    63,    66,    67,    70,    72,    77,
++      82,    86,    87,    90,    91,    93,    94,   100,   101,   108,
++     109,   115,   116,   123,   124,   127,   128
+ };
+-static const short yyrhs[] = {    24,
+-    25,    29,     0,     0,    12,    24,     0,     0,    25,    26,
+-     0,     5,    11,    14,    29,     0,     0,    28,    29,     0,
+-    11,     0,    15,    30,    16,     0,    10,    11,     0,     0,
+-    31,    30,     0,    32,    11,    40,    17,    33,     0,     0,
+-     3,     0,    18,    35,    19,     0,    35,    34,    36,    19,
+-    37,     0,     0,    20,    35,     0,    11,     0,     0,    21,
+-    11,     0,     0,    14,    38,     0,    11,     0,     4,    15,
+-    41,    16,     0,     8,    15,    43,    16,     0,    39,     7,
+-    29,     0,     0,     9,    11,     0,     0,    13,     0,     0,
+-     6,    11,    45,    46,    29,     0,     0,    11,    45,    46,
+-    29,    42,    41,     0,     0,     6,    11,    45,    46,    27,
+-     0,     0,    11,    45,    46,    27,    44,    43,     0,     0,
+-    22,    11,     0,     0,    21,    11,    46,     0
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yysigned_char yyrhs[] =
++{
++      24,     0,    -1,    25,    26,    30,    -1,    -1,    12,    25,
++      -1,    -1,    26,    27,    -1,     5,    11,    14,    30,    -1,
++      -1,    29,    30,    -1,    11,    -1,    15,    31,    16,    -1,
++      10,    11,    -1,    -1,    32,    31,    -1,    33,    11,    41,
++      17,    34,    -1,    -1,     3,    -1,    18,    36,    19,    -1,
++      36,    35,    37,    19,    38,    -1,    -1,    20,    36,    -1,
++      11,    -1,    -1,    21,    11,    -1,    -1,    14,    39,    -1,
++      11,    -1,     4,    15,    42,    16,    -1,     8,    15,    44,
++      16,    -1,    40,     7,    30,    -1,    -1,     9,    11,    -1,
++      -1,    13,    -1,    -1,     6,    11,    46,    47,    30,    -1,
++      -1,    11,    46,    47,    30,    43,    42,    -1,    -1,     6,
++      11,    46,    47,    28,    -1,    -1,    11,    46,    47,    28,
++      45,    44,    -1,    -1,    22,    11,    -1,    -1,    21,    11,
++      47,    -1
+ };
+-#endif
+-
+-#if YYDEBUG != 0
+-static const short yyrline[] = { 0,
+-   163,   175,   176,   184,   185,   188,   202,   207,   212,   231,
+-   236,   243,   247,   254,   278,   282,   288,   301,   318,   322,
+-   329,   339,   343,   350,   354,   360,   367,   374,   380,   390,
+-   394,   400,   404,   410,   414,   431,   437,   454,   458,   474,
+-   480,   497,   501,   507,   511
++/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
++static const unsigned short int yyrline[] =
++{
++       0,   167,   167,   178,   179,   187,   188,   192,   206,   206,
++     216,   234,   239,   247,   250,   258,   282,   285,   292,   304,
++     323,   326,   334,   344,   347,   355,   358,   365,   371,   378,
++     384,   395,   398,   405,   408,   415,   418,   436,   435,   459,
++     462,   479,   478,   502,   505,   512,   515
+ };
+ #endif
+-
+-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+-
+-static const char * const yytname[] = {   "$","error","$undefined.","TOK_BREAK",
+-"TOK_CASE","TOK_DEF","TOK_DEFAULT","TOK_LENGTH","TOK_MULTI","TOK_RECOVER","TOK_ABORT",
+-"TOK_ID","TOK_INCLUDE","TOK_STRING","'='","'{'","'}'","'<'","'-'","'>'","'@'",
+-"','","':'","all","includes","structures","structure","rep_block","@1","block",
+-"fields","field","opt_break","field_cont","opt_pos","decimal","opt_more","opt_val",
+-"value","opt_recover","opt_name_list","tags","@2","rep_tags","@3","opt_id","list", NULL
++#if YYDEBUG || YYERROR_VERBOSE
++/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++static const char *const yytname[] =
++{
++  "$end", "error", "$undefined", "TOK_BREAK", "TOK_CASE", "TOK_DEF",
++  "TOK_DEFAULT", "TOK_LENGTH", "TOK_MULTI", "TOK_RECOVER", "TOK_ABORT",
++  "TOK_ID", "TOK_INCLUDE", "TOK_STRING", "'='", "'{'", "'}'", "'<'", "'-'",
++  "'>'", "'@'", "','", "':'", "$accept", "all", "includes", "structures",
++  "structure", "rep_block", "@1", "block", "fields", "field", "opt_break",
++  "field_cont", "opt_pos", "decimal", "opt_more", "opt_val", "value",
++  "opt_recover", "opt_name_list", "tags", "@2", "rep_tags", "@3", "opt_id",
++  "list", 0
+ };
+ #endif
+-static const short yyr1[] = {     0,
+-    23,    24,    24,    25,    25,    26,    28,    27,    29,    29,
+-    29,    30,    30,    31,    32,    32,    33,    33,    34,    34,
+-    35,    36,    36,    37,    37,    38,    38,    38,    38,    39,
+-    39,    40,    40,    41,    41,    42,    41,    43,    43,    44,
+-    43,    45,    45,    46,    46
++# ifdef YYPRINT
++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
++   token YYLEX-NUM.  */
++static const unsigned short int yytoknum[] =
++{
++       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
++     265,   266,   267,   268,    61,   123,   125,    60,    45,    62,
++      64,    44,    58
+ };
++# endif
+-static const short yyr2[] = {     0,
+-     3,     0,     2,     0,     2,     4,     0,     2,     1,     3,
+-     2,     0,     2,     5,     0,     1,     3,     5,     0,     2,
+-     1,     0,     2,     0,     2,     1,     4,     4,     3,     0,
+-     2,     0,     1,     0,     5,     0,     6,     0,     5,     0,
+-     6,     0,     2,     0,     3
++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
++static const unsigned char yyr1[] =
++{
++       0,    23,    24,    25,    25,    26,    26,    27,    29,    28,
++      30,    30,    30,    31,    31,    32,    33,    33,    34,    34,
++      35,    35,    36,    37,    37,    38,    38,    39,    39,    39,
++      39,    40,    40,    41,    41,    42,    42,    43,    42,    44,
++      44,    45,    44,    46,    46,    47,    47
+ };
+-static const short yydefact[] = {     2,
+-     2,     4,     3,     0,     0,     0,     9,    12,     5,     1,
+-     0,    11,    16,     0,    12,     0,     0,    10,    13,    32,
+-     6,    33,     0,     0,    21,     0,    14,    19,     0,     0,
+-    22,    17,    20,     0,     0,    23,    24,    30,    18,     0,
+-     0,     0,    26,    25,     0,    34,    38,    31,     0,     0,
+-    42,     0,     0,    42,     0,    29,    42,     0,    44,    27,
+-    42,    44,    28,    44,    43,     0,     0,    44,     7,     0,
+-    44,    36,     7,    40,     0,    35,    45,    34,    39,    38,
+-     8,    37,    41,     0,     0,     0
++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
++static const unsigned char yyr2[] =
++{
++       0,     2,     3,     0,     2,     0,     2,     4,     0,     2,
++       1,     3,     2,     0,     2,     5,     0,     1,     3,     5,
++       0,     2,     1,     0,     2,     0,     2,     1,     4,     4,
++       3,     0,     2,     0,     1,     0,     5,     0,     6,     0,
++       5,     0,     6,     0,     2,     0,     3
+ };
+-static const short yydefgoto[] = {    84,
+-     2,     4,     9,    74,    75,    10,    14,    15,    16,    27,
+-    31,    28,    35,    39,    44,    45,    23,    52,    78,    55,
+-    80,    59,    67
++/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
++   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
++   means the default is an error.  */
++static const unsigned char yydefact[] =
++{
++       3,     3,     0,     5,     4,     1,     0,     0,     0,    10,
++      13,     6,     2,     0,    12,    17,     0,    13,     0,     0,
++      11,    14,    33,     7,    34,     0,     0,    22,     0,    15,
++      20,     0,     0,    23,    18,    21,     0,     0,    24,    25,
++      31,    19,     0,     0,     0,    27,    26,     0,    35,    39,
++      32,     0,     0,    43,     0,     0,    43,     0,    30,    43,
++       0,    45,    28,    43,    45,    29,    45,    44,     0,     0,
++      45,     8,     0,    45,    37,     8,    41,     0,    36,    46,
++      35,    40,    39,     9,    38,    42
+ };
+-static const short yypact[] = {    -8,
+-    -8,-32768,-32768,    -4,     3,    17,-32768,    -1,-32768,-32768,
+-    20,-32768,-32768,    21,    -1,    22,    11,-32768,-32768,    23,
+--32768,-32768,    24,    -3,-32768,    27,-32768,    15,    25,    27,
+-    26,-32768,-32768,    28,    29,-32768,    31,     9,-32768,    34,
+-    36,    32,-32768,-32768,    33,    18,    19,-32768,    11,    35,
+-    30,    38,    44,    30,    40,-32768,    30,    46,    39,-32768,
+-    30,    39,-32768,    39,-32768,    48,    11,    39,-32768,    11,
+-    39,-32768,-32768,-32768,    11,-32768,-32768,    18,-32768,    19,
+--32768,-32768,-32768,    42,    61,-32768
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yysigned_char yydefgoto[] =
++{
++      -1,     2,     3,     6,    11,    76,    77,    12,    16,    17,
++      18,    29,    33,    30,    37,    41,    46,    47,    25,    54,
++      80,    57,    82,    61,    69
+ };
+-static const short yypgoto[] = {-32768,
+-    62,-32768,-32768,   -11,-32768,   -17,    49,-32768,-32768,-32768,
+--32768,     1,-32768,-32768,-32768,-32768,-32768,   -13,-32768,   -14,
+--32768,   -38,   -59
++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
++   STATE-NUM.  */
++#define YYPACT_NINF -62
++static const yysigned_char yypact[] =
++{
++      -8,    -8,    14,   -62,   -62,   -62,    -4,    16,    17,   -62,
++      -1,   -62,   -62,    20,   -62,   -62,    21,    -1,    22,    11,
++     -62,   -62,    23,   -62,   -62,    24,    -3,   -62,    27,   -62,
++      25,    28,    27,    30,   -62,   -62,    29,    33,   -62,    32,
++       9,   -62,    34,    39,    31,   -62,   -62,    36,    18,    19,
++     -62,    11,    37,    35,    40,    44,    35,    43,   -62,    35,
++      49,    41,   -62,    35,    41,   -62,    41,   -62,    50,    11,
++      41,   -62,    11,    41,   -62,   -62,   -62,    11,   -62,   -62,
++      18,   -62,    19,   -62,   -62,   -62
+ };
+-
+-#define       YYLAST          66
+-
+-
+-static const short yytable[] = {    21,
+-     5,    13,    69,     1,    70,     6,     7,    25,    73,   -15,
+-     8,    77,    40,    11,    26,    62,    41,    42,    64,    43,
+-     6,     7,    68,    50,    53,     8,    29,    12,    51,    54,
+-    33,    56,    20,    17,    30,    22,    18,    25,    36,    49,
+-    24,    85,    48,    32,    38,    57,    34,    37,    46,    72,
+-    47,    58,    76,    60,    61,    63,    65,    81,    71,    66,
+-    86,    79,     3,    19,    82,    83
++/* YYPGOTO[NTERM-NUM].  */
++static const yysigned_char yypgoto[] =
++{
++     -62,   -62,    38,   -62,   -62,   -31,   -62,   -19,    46,   -62,
++     -62,   -62,   -62,     3,   -62,   -62,   -62,   -62,   -62,   -16,
++     -62,   -17,   -62,   -40,   -61
+ };
+-static const short yycheck[] = {    17,
+-     5,     3,    62,    12,    64,    10,    11,    11,    68,    11,
+-    15,    71,     4,    11,    18,    54,     8,     9,    57,    11,
+-    10,    11,    61,     6,     6,    15,    26,    11,    11,    11,
+-    30,    49,    11,    14,    20,    13,    16,    11,    11,     7,
+-    17,     0,    11,    19,    14,    11,    21,    19,    15,    67,
+-    15,    22,    70,    16,    11,    16,    11,    75,    11,    21,
+-     0,    73,     1,    15,    78,    80
++/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
++   positive, shift that token.  If negative, reduce the rule which
++   number is the opposite.  If zero, do what YYDEFACT says.
++   If YYTABLE_NINF, syntax error.  */
++#define YYTABLE_NINF -17
++static const yysigned_char yytable[] =
++{
++      23,     7,    15,    71,     1,    72,     8,     9,    27,    75,
++     -16,    10,    79,    42,     5,    28,    64,    43,    44,    66,
++      45,     8,     9,    70,    52,    55,    10,    13,    14,    53,
++      56,    31,    58,    22,    19,    35,    24,    20,    27,     4,
++      38,    26,    50,    51,    81,    32,    40,    34,    59,    48,
++      74,    36,    39,    78,    49,    63,    62,    60,    83,    65,
++      67,    73,    68,    21,    84,    85
+ };
+-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+-#line 3 "/usr/lib/bison.simple"
+-/* This file comes from bison-1.28.  */
+-/* Skeleton output parser for bison,
+-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+-
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 2, 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-1307, USA.  */
+-
+-/* As a special exception, when this file is copied by Bison into a
+-   Bison output file, you may use that output file without restriction.
+-   This special exception was added by the Free Software Foundation
+-   in version 1.24 of Bison.  */
++static const unsigned char yycheck[] =
++{
++      19,     5,     3,    64,    12,    66,    10,    11,    11,    70,
++      11,    15,    73,     4,     0,    18,    56,     8,     9,    59,
++      11,    10,    11,    63,     6,     6,    15,    11,    11,    11,
++      11,    28,    51,    11,    14,    32,    13,    16,    11,     1,
++      11,    17,    11,     7,    75,    20,    14,    19,    11,    15,
++      69,    21,    19,    72,    15,    11,    16,    22,    77,    16,
++      11,    11,    21,    17,    80,    82
++};
+-/* This is the parser code that is written into each bison parser
+-  when the %semantic_parser declaration is not specified in the grammar.
+-  It was written by Richard Stallman by simplifying the hairy parser
+-  used when %semantic_parser is specified.  */
+-
+-#ifndef YYSTACK_USE_ALLOCA
+-#ifdef alloca
+-#define YYSTACK_USE_ALLOCA
+-#else /* alloca not defined */
+-#ifdef __GNUC__
+-#define YYSTACK_USE_ALLOCA
+-#define alloca __builtin_alloca
+-#else /* not GNU C.  */
+-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+-#define YYSTACK_USE_ALLOCA
+-#include <alloca.h>
+-#else /* not sparc */
+-/* We think this test detects Watcom and Microsoft C.  */
+-/* This used to test MSDOS, but that is a bad idea
+-   since that symbol is in the user namespace.  */
+-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+-#if 0 /* No need for malloc.h, which pollutes the namespace;
+-       instead, just don't use alloca.  */
+-#include <malloc.h>
+-#endif
+-#else /* not MSDOS, or __TURBOC__ */
+-#if defined(_AIX)
+-/* I don't know what this was needed for, but it pollutes the namespace.
+-   So I turned it off.   rms, 2 May 1997.  */
+-/* #include <malloc.h>  */
+- #pragma alloca
+-#define YYSTACK_USE_ALLOCA
+-#else /* not MSDOS, or __TURBOC__, or _AIX */
+-#if 0
+-#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+-               and on HPUX 10.  Eventually we can turn this on.  */
+-#define YYSTACK_USE_ALLOCA
+-#define alloca __builtin_alloca
+-#endif /* __hpux */
+-#endif
+-#endif /* not _AIX */
+-#endif /* not MSDOS, or __TURBOC__ */
+-#endif /* not sparc */
+-#endif /* not GNU C */
+-#endif /* alloca not defined */
+-#endif /* YYSTACK_USE_ALLOCA not defined */
++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
++   symbol of state STATE-NUM.  */
++static const unsigned char yystos[] =
++{
++       0,    12,    24,    25,    25,     0,    26,     5,    10,    11,
++      15,    27,    30,    11,    11,     3,    31,    32,    33,    14,
++      16,    31,    11,    30,    13,    41,    17,    11,    18,    34,
++      36,    36,    20,    35,    19,    36,    21,    37,    11,    19,
++      14,    38,     4,     8,     9,    11,    39,    40,    15,    15,
++      11,     7,     6,    11,    42,     6,    11,    44,    30,    11,
++      22,    46,    16,    11,    46,    16,    46,    11,    21,    47,
++      46,    47,    47,    11,    30,    47,    28,    29,    30,    47,
++      43,    28,    45,    30,    42,    44
++};
+-#ifdef YYSTACK_USE_ALLOCA
+-#define YYSTACK_ALLOC alloca
+-#else
+-#define YYSTACK_ALLOC malloc
++#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
++# define YYSIZE_T __SIZE_TYPE__
++#endif
++#if ! defined (YYSIZE_T) && defined (size_t)
++# define YYSIZE_T size_t
++#endif
++#if ! defined (YYSIZE_T)
++# if defined (__STDC__) || defined (__cplusplus)
++#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++#  define YYSIZE_T size_t
++# endif
++#endif
++#if ! defined (YYSIZE_T)
++# define YYSIZE_T unsigned int
+ #endif
+-
+-/* Note: there must be only one dollar sign in this file.
+-   It is replaced by the list of actions, each action
+-   as one case of the switch.  */
+ #define yyerrok               (yyerrstatus = 0)
+ #define yyclearin     (yychar = YYEMPTY)
+-#define YYEMPTY               -2
++#define YYEMPTY               (-2)
+ #define YYEOF         0
++
+ #define YYACCEPT      goto yyacceptlab
+-#define YYABORT       goto yyabortlab
+-#define YYERROR               goto yyerrlab1
+-/* Like YYERROR except do call yyerror.
+-   This remains here temporarily to ease the
+-   transition to the new meaning of YYERROR, for GCC.
++#define YYABORT               goto yyabortlab
++#define YYERROR               goto yyerrorlab
++
++
++/* Like YYERROR except do call yyerror.  This remains here temporarily
++   to ease the transition to the new meaning of YYERROR, for GCC.
+    Once GCC version 2 has supplanted version 1, this can go.  */
++
+ #define YYFAIL                goto yyerrlab
++
+ #define YYRECOVERING()  (!!yyerrstatus)
+-#define YYBACKUP(token, value) \
++
++#define YYBACKUP(Token, Value)                                        \
+ do                                                            \
+   if (yychar == YYEMPTY && yylen == 1)                                \
+-    { yychar = (token), yylval = (value);                     \
+-      yychar1 = YYTRANSLATE (yychar);                         \
++    {                                                         \
++      yychar = (Token);                                               \
++      yylval = (Value);                                               \
++      yytoken = YYTRANSLATE (yychar);                         \
+       YYPOPSTACK;                                             \
+       goto yybackup;                                          \
+     }                                                         \
+   else                                                                \
+-    { yyerror ("syntax error: cannot back up"); YYERROR; }    \
++    {                                                                 \
++      yyerror ("syntax error: cannot back up");\
++      YYERROR;                                                        \
++    }                                                         \
+ while (0)
+ #define YYTERROR      1
+ #define YYERRCODE     256
+-#ifndef YYPURE
+-#define YYLEX         yylex()
+-#endif
++/* YYLLOC_DEFAULT -- Compute the default location (before the actions
++   are run).  */
+-#ifdef YYPURE
+-#ifdef YYLSP_NEEDED
+-#ifdef YYLEX_PARAM
+-#define YYLEX         yylex(&yylval, &yylloc, YYLEX_PARAM)
+-#else
+-#define YYLEX         yylex(&yylval, &yylloc)
++#ifndef YYLLOC_DEFAULT
++# define YYLLOC_DEFAULT(Current, Rhs, N)              \
++   ((Current).first_line   = (Rhs)[1].first_line,     \
++    (Current).first_column = (Rhs)[1].first_column,   \
++    (Current).last_line    = (Rhs)[N].last_line,      \
++    (Current).last_column  = (Rhs)[N].last_column)
+ #endif
+-#else /* not YYLSP_NEEDED */
++
++/* YYLEX -- calling `yylex' with the right arguments.  */
++
+ #ifdef YYLEX_PARAM
+-#define YYLEX         yylex(&yylval, YYLEX_PARAM)
++# define YYLEX yylex (YYLEX_PARAM)
+ #else
+-#define YYLEX         yylex(&yylval)
+-#endif
+-#endif /* not YYLSP_NEEDED */
++# define YYLEX yylex ()
+ #endif
+-/* If nonreentrant, generate the variables here */
++/* Enable debugging if requested.  */
++#if YYDEBUG
+-#ifndef YYPURE
++# ifndef YYFPRINTF
++#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
++#  define YYFPRINTF fprintf
++# endif
++
++# define YYDPRINTF(Args)                      \
++do {                                          \
++  if (yydebug)                                        \
++    YYFPRINTF Args;                           \
++} while (0)
++
++# define YYDSYMPRINT(Args)                    \
++do {                                          \
++  if (yydebug)                                        \
++    yysymprint Args;                          \
++} while (0)
++
++# define YYDSYMPRINTF(Title, Token, Value, Location)          \
++do {                                                          \
++  if (yydebug)                                                        \
++    {                                                         \
++      YYFPRINTF (stderr, "%s ", Title);                               \
++      yysymprint (stderr,                                     \
++                  Token, Value);      \
++      YYFPRINTF (stderr, "\n");                                       \
++    }                                                         \
++} while (0)
+-int   yychar;                 /*  the lookahead symbol                */
+-YYSTYPE       yylval;                 /*  the semantic value of the           */
+-                              /*  lookahead symbol                    */
++/*------------------------------------------------------------------.
++| yy_stack_print -- Print the state stack from its BOTTOM up to its |
++| TOP (included).                                                   |
++`------------------------------------------------------------------*/
+-#ifdef YYLSP_NEEDED
+-YYLTYPE yylloc;                       /*  location data for the lookahead     */
+-                              /*  symbol                              */
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yy_stack_print (short int *bottom, short int *top)
++#else
++static void
++yy_stack_print (bottom, top)
++    short int *bottom;
++    short int *top;
+ #endif
++{
++  YYFPRINTF (stderr, "Stack now");
++  for (/* Nothing. */; bottom <= top; ++bottom)
++    YYFPRINTF (stderr, " %d", *bottom);
++  YYFPRINTF (stderr, "\n");
++}
+-int yynerrs;                  /*  number of parse errors so far       */
+-#endif  /* not YYPURE */
++# define YY_STACK_PRINT(Bottom, Top)                          \
++do {                                                          \
++  if (yydebug)                                                        \
++    yy_stack_print ((Bottom), (Top));                         \
++} while (0)
+-#if YYDEBUG != 0
+-int yydebug;                  /*  nonzero means print parse trace     */
+-/* Since this is uninitialized, it does not stop multiple parsers
+-   from coexisting.  */
++
++/*------------------------------------------------.
++| Report that the YYRULE is going to be reduced.  |
++`------------------------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yy_reduce_print (int yyrule)
++#else
++static void
++yy_reduce_print (yyrule)
++    int yyrule;
+ #endif
++{
++  int yyi;
++  unsigned int yylno = yyrline[yyrule];
++  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
++             yyrule - 1, yylno);
++  /* Print the symbols being reduced, and their result.  */
++  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
++    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
++  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++}
+-/*  YYINITDEPTH indicates the initial size of the parser's stacks     */
++# define YY_REDUCE_PRINT(Rule)                \
++do {                                  \
++  if (yydebug)                                \
++    yy_reduce_print (Rule);           \
++} while (0)
++
++/* Nonzero means print parse trace.  It is left uninitialized so that
++   multiple parsers can coexist.  */
++int yydebug;
++#else /* !YYDEBUG */
++# define YYDPRINTF(Args)
++# define YYDSYMPRINT(Args)
++# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_STACK_PRINT(Bottom, Top)
++# define YY_REDUCE_PRINT(Rule)
++#endif /* !YYDEBUG */
++
++/* YYINITDEPTH -- initial size of the parser's stacks.  */
+ #ifndef       YYINITDEPTH
+-#define YYINITDEPTH 200
++# define YYINITDEPTH 200
+ #endif
+-/*  YYMAXDEPTH is the maximum size the stacks can grow to
+-    (effective only if the built-in stack extension method is used).  */
++/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
++   if the built-in stack extension method is used).
++
++   Do not make this value too large; the results are undefined if
++   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++   evaluated with infinite-precision integer arithmetic.  */
+-#if YYMAXDEPTH == 0
+-#undef YYMAXDEPTH
++#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
++# undef YYMAXDEPTH
+ #endif
+ #ifndef YYMAXDEPTH
+-#define YYMAXDEPTH 10000
++# define YYMAXDEPTH 10000
+ #endif
++
\f
+-/* Define __yy_memcpy.  Note that the size argument
+-   should be passed with type unsigned int, because that is what the non-GCC
+-   definitions require.  With GCC, __builtin_memcpy takes an arg
+-   of type size_t, but it can handle unsigned int.  */
+-
+-#if __GNUC__ > 1              /* GNU C and GNU C++ define this.  */
+-#define __yy_memcpy(TO,FROM,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
+-#else                         /* not GNU C or C++ */
+-#ifndef __cplusplus
+-/* This is the most reliable way to avoid incompatibilities
+-   in available built-in functions on various systems.  */
+-static void
+-__yy_memcpy (to, from, count)
+-     char *to;
+-     char *from;
+-     unsigned int count;
+-{
+-  register char *f = from;
+-  register char *t = to;
+-  register int i = count;
++#if YYERROR_VERBOSE
++
++# ifndef yystrlen
++#  if defined (__GLIBC__) && defined (_STRING_H)
++#   define yystrlen strlen
++#  else
++/* Return the length of YYSTR.  */
++static YYSIZE_T
++#   if defined (__STDC__) || defined (__cplusplus)
++yystrlen (const char *yystr)
++#   else
++yystrlen (yystr)
++     const char *yystr;
++#   endif
++{
++  register const char *yys = yystr;
++
++  while (*yys++ != '\0')
++    continue;
+-  while (i-- > 0)
+-    *t++ = *f++;
++  return yys - yystr - 1;
+ }
++#  endif
++# endif
+-#else /* __cplusplus */
++# ifndef yystpcpy
++#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++#   define yystpcpy stpcpy
++#  else
++/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
++   YYDEST.  */
++static char *
++#   if defined (__STDC__) || defined (__cplusplus)
++yystpcpy (char *yydest, const char *yysrc)
++#   else
++yystpcpy (yydest, yysrc)
++     char *yydest;
++     const char *yysrc;
++#   endif
++{
++  register char *yyd = yydest;
++  register const char *yys = yysrc;
++
++  while ((*yyd++ = *yys++) != '\0')
++    continue;
++
++  return yyd - 1;
++}
++#  endif
++# endif
++
++#endif /* !YYERROR_VERBOSE */
++
++\f
++
++#if YYDEBUG
++/*--------------------------------.
++| Print this symbol on YYOUTPUT.  |
++`--------------------------------*/
+-/* This is the most reliable way to avoid incompatibilities
+-   in available built-in functions on various systems.  */
++#if defined (__STDC__) || defined (__cplusplus)
+ static void
+-__yy_memcpy (char *to, char *from, unsigned int count)
++yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yysymprint (yyoutput, yytype, yyvaluep)
++    FILE *yyoutput;
++    int yytype;
++    YYSTYPE *yyvaluep;
++#endif
+ {
+-  register char *t = to;
+-  register char *f = from;
+-  register int i = count;
++  /* Pacify ``unused variable'' warnings.  */
++  (void) yyvaluep;
++
++  if (yytype < YYNTOKENS)
++    {
++      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++# ifdef YYPRINT
++      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# endif
++    }
++  else
++    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+-  while (i-- > 0)
+-    *t++ = *f++;
++  switch (yytype)
++    {
++      default:
++        break;
++    }
++  YYFPRINTF (yyoutput, ")");
+ }
++#endif /* ! YYDEBUG */
++/*-----------------------------------------------.
++| Release the memory associated to this symbol.  |
++`-----------------------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yydestruct (int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yydestruct (yytype, yyvaluep)
++    int yytype;
++    YYSTYPE *yyvaluep;
+ #endif
+-#endif
++{
++  /* Pacify ``unused variable'' warnings.  */
++  (void) yyvaluep;
++
++  switch (yytype)
++    {
++
++      default:
++        break;
++    }
++}
\f
+-#line 217 "/usr/lib/bison.simple"
+-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+-   into yyparse.  The argument should have type void *.
+-   It should actually point to an object.
+-   Grammar actions can access the variable by casting it
+-   to the proper pointer type.  */
++/* Prevent warnings from -Wmissing-prototypes.  */
+ #ifdef YYPARSE_PARAM
+-#ifdef __cplusplus
+-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+-#define YYPARSE_PARAM_DECL
+-#else /* not __cplusplus */
+-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+-#endif /* not __cplusplus */
+-#else /* not YYPARSE_PARAM */
+-#define YYPARSE_PARAM_ARG
+-#define YYPARSE_PARAM_DECL
+-#endif /* not YYPARSE_PARAM */
++# if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void *YYPARSE_PARAM);
++# else
++int yyparse ();
++# endif
++#else /* ! YYPARSE_PARAM */
++#if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void);
++#else
++int yyparse ();
++#endif
++#endif /* ! YYPARSE_PARAM */
++
++
++
++/* The lookahead symbol.  */
++int yychar;
++
++/* The semantic value of the lookahead symbol.  */
++YYSTYPE yylval;
++
++/* Number of syntax errors so far.  */
++int yynerrs;
++
++
++
++/*----------.
++| yyparse.  |
++`----------*/
+-/* Prevent warning if -Wstrict-prototypes.  */
+-#ifdef __GNUC__
+ #ifdef YYPARSE_PARAM
+-int yyparse (void *);
++# if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void *YYPARSE_PARAM)
++# else
++int yyparse (YYPARSE_PARAM)
++  void *YYPARSE_PARAM;
++# endif
++#else /* ! YYPARSE_PARAM */
++#if defined (__STDC__) || defined (__cplusplus)
++int
++yyparse (void)
+ #else
+-int yyparse (void);
++int
++yyparse ()
++
+ #endif
+ #endif
+-
+-int
+-yyparse(YYPARSE_PARAM_ARG)
+-     YYPARSE_PARAM_DECL
+ {
++  
+   register int yystate;
+   register int yyn;
+-  register short *yyssp;
++  int yyresult;
++  /* Number of tokens to shift before error messages enabled.  */
++  int yyerrstatus;
++  /* Lookahead token as an internal (translated) token number.  */
++  int yytoken = 0;
++
++  /* Three stacks and their tools:
++     `yyss': related to states,
++     `yyvs': related to semantic values,
++     `yyls': related to locations.
++
++     Refer to the stacks thru separate pointers, to allow yyoverflow
++     to reallocate them elsewhere.  */
++
++  /* The state stack.  */
++  short int yyssa[YYINITDEPTH];
++  short int *yyss = yyssa;
++  register short int *yyssp;
++
++  /* The semantic value stack.  */
++  YYSTYPE yyvsa[YYINITDEPTH];
++  YYSTYPE *yyvs = yyvsa;
+   register YYSTYPE *yyvsp;
+-  int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
+-  int yychar1 = 0;            /*  lookahead token as an internal (translated) token number */
+-  short       yyssa[YYINITDEPTH];     /*  the state stack                     */
+-  YYSTYPE yyvsa[YYINITDEPTH]; /*  the semantic value stack            */
+-  short *yyss = yyssa;                /*  refer to the stacks thru separate pointers */
+-  YYSTYPE *yyvs = yyvsa;      /*  to allow yyoverflow to reallocate them elsewhere */
+-#ifdef YYLSP_NEEDED
+-  YYLTYPE yylsa[YYINITDEPTH]; /*  the location stack                  */
+-  YYLTYPE *yyls = yylsa;
+-  YYLTYPE *yylsp;
+-
+-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+-#else
+ #define YYPOPSTACK   (yyvsp--, yyssp--)
+-#endif
+-  int yystacksize = YYINITDEPTH;
+-  int yyfree_stacks = 0;
++  YYSIZE_T yystacksize = YYINITDEPTH;
+-#ifdef YYPURE
+-  int yychar;
+-  YYSTYPE yylval;
+-  int yynerrs;
+-#ifdef YYLSP_NEEDED
+-  YYLTYPE yylloc;
+-#endif
+-#endif
++  /* The variables used to return semantic value and location from the
++     action routines.  */
++  YYSTYPE yyval;
+-  YYSTYPE yyval;              /*  the variable used to return         */
+-                              /*  semantic values from the action     */
+-                              /*  routines                            */
++  /* When reducing, the number of symbols on the RHS of the reduced
++     rule.  */
+   int yylen;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Starting parse\n");
+-#endif
++  YYDPRINTF ((stderr, "Starting parse\n"));
+   yystate = 0;
+   yyerrstatus = 0;
+@@ -639,110 +1015,97 @@
+      so that they stay on the same level as the state stack.
+      The wasted elements are never initialized.  */
+-  yyssp = yyss - 1;
++  yyssp = yyss;
+   yyvsp = yyvs;
+-#ifdef YYLSP_NEEDED
+-  yylsp = yyls;
+-#endif
+-/* Push a new state, which is found in  yystate  .  */
+-/* In all cases, when you get here, the value and location stacks
+-   have just been pushed. so pushing a state here evens the stacks.  */
+-yynewstate:
+-  *++yyssp = yystate;
++  goto yysetstate;
+-  if (yyssp >= yyss + yystacksize - 1)
+-    {
+-      /* Give user a chance to reallocate the stack */
+-      /* Use copies of these so that the &'s don't force the real ones into memory. */
+-      YYSTYPE *yyvs1 = yyvs;
+-      short *yyss1 = yyss;
+-#ifdef YYLSP_NEEDED
+-      YYLTYPE *yyls1 = yyls;
+-#endif
++/*------------------------------------------------------------.
++| yynewstate -- Push a new state, which is found in yystate.  |
++`------------------------------------------------------------*/
++ yynewstate:
++  /* In all cases, when you get here, the value and location stacks
++     have just been pushed. so pushing a state here evens the stacks.
++     */
++  yyssp++;
++ yysetstate:
++  *yyssp = yystate;
++
++  if (yyss + yystacksize - 1 <= yyssp)
++    {
+       /* Get the current used size of the three stacks, in elements.  */
+-      int size = yyssp - yyss + 1;
++      YYSIZE_T yysize = yyssp - yyss + 1;
+ #ifdef yyoverflow
+-      /* Each stack pointer address is followed by the size of
+-       the data in use in that stack, in bytes.  */
+-#ifdef YYLSP_NEEDED
+-      /* This used to be a conditional around just the two extra args,
+-       but that might be undefined if yyoverflow is a macro.  */
+-      yyoverflow("parser stack overflow",
+-               &yyss1, size * sizeof (*yyssp),
+-               &yyvs1, size * sizeof (*yyvsp),
+-               &yyls1, size * sizeof (*yylsp),
+-               &yystacksize);
+-#else
+-      yyoverflow("parser stack overflow",
+-               &yyss1, size * sizeof (*yyssp),
+-               &yyvs1, size * sizeof (*yyvsp),
+-               &yystacksize);
+-#endif
+-
+-      yyss = yyss1; yyvs = yyvs1;
+-#ifdef YYLSP_NEEDED
+-      yyls = yyls1;
+-#endif
++      {
++      /* Give user a chance to reallocate the stack. Use copies of
++         these so that the &'s don't force the real ones into
++         memory.  */
++      YYSTYPE *yyvs1 = yyvs;
++      short int *yyss1 = yyss;
++
++
++      /* Each stack pointer address is followed by the size of the
++         data in use in that stack, in bytes.  This used to be a
++         conditional around just the two extra args, but that might
++         be undefined if yyoverflow is a macro.  */
++      yyoverflow ("parser stack overflow",
++                  &yyss1, yysize * sizeof (*yyssp),
++                  &yyvs1, yysize * sizeof (*yyvsp),
++
++                  &yystacksize);
++
++      yyss = yyss1;
++      yyvs = yyvs1;
++      }
+ #else /* no yyoverflow */
++# ifndef YYSTACK_RELOCATE
++      goto yyoverflowlab;
++# else
+       /* Extend the stack our own way.  */
+-      if (yystacksize >= YYMAXDEPTH)
+-      {
+-        yyerror("parser stack overflow");
+-        if (yyfree_stacks)
+-          {
+-            free (yyss);
+-            free (yyvs);
+-#ifdef YYLSP_NEEDED
+-            free (yyls);
+-#endif
+-          }
+-        return 2;
+-      }
++      if (YYMAXDEPTH <= yystacksize)
++      goto yyoverflowlab;
+       yystacksize *= 2;
+-      if (yystacksize > YYMAXDEPTH)
++      if (YYMAXDEPTH < yystacksize)
+       yystacksize = YYMAXDEPTH;
+-#ifndef YYSTACK_USE_ALLOCA
+-      yyfree_stacks = 1;
+-#endif
+-      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+-      __yy_memcpy ((char *)yyss, (char *)yyss1,
+-                 size * (unsigned int) sizeof (*yyssp));
+-      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+-      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+-                 size * (unsigned int) sizeof (*yyvsp));
+-#ifdef YYLSP_NEEDED
+-      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+-      __yy_memcpy ((char *)yyls, (char *)yyls1,
+-                 size * (unsigned int) sizeof (*yylsp));
+-#endif
++
++      {
++      short int *yyss1 = yyss;
++      union yyalloc *yyptr =
++        (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
++      if (! yyptr)
++        goto yyoverflowlab;
++      YYSTACK_RELOCATE (yyss);
++      YYSTACK_RELOCATE (yyvs);
++
++#  undef YYSTACK_RELOCATE
++      if (yyss1 != yyssa)
++        YYSTACK_FREE (yyss1);
++      }
++# endif
+ #endif /* no yyoverflow */
+-      yyssp = yyss + size - 1;
+-      yyvsp = yyvs + size - 1;
+-#ifdef YYLSP_NEEDED
+-      yylsp = yyls + size - 1;
+-#endif
++      yyssp = yyss + yysize - 1;
++      yyvsp = yyvs + yysize - 1;
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+-#endif
+-      if (yyssp >= yyss + yystacksize - 1)
++      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
++                (unsigned long int) yystacksize));
++
++      if (yyss + yystacksize - 1 <= yyssp)
+       YYABORT;
+     }
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Entering state %d\n", yystate);
+-#endif
++  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+   goto yybackup;
+- yybackup:
++
++/*-----------.
++| yybackup.  |
++`-----------*/
++yybackup:
+ /* Do appropriate processing given the current state.  */
+ /* Read a lookahead token if we need one and don't already have one.  */
+@@ -751,154 +1114,120 @@
+   /* First try to decide what to do without reference to lookahead token.  */
+   yyn = yypact[yystate];
+-  if (yyn == YYFLAG)
++  if (yyn == YYPACT_NINF)
+     goto yydefault;
+   /* Not known => get a lookahead token if don't already have one.  */
+-  /* yychar is either YYEMPTY or YYEOF
+-     or a valid token in external form.  */
+-
++  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+   if (yychar == YYEMPTY)
+     {
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Reading a token: ");
+-#endif
++      YYDPRINTF ((stderr, "Reading a token: "));
+       yychar = YYLEX;
+     }
+-  /* Convert token to internal form (in yychar1) for indexing tables with */
+-
+-  if (yychar <= 0)            /* This means end of input. */
++  if (yychar <= YYEOF)
+     {
+-      yychar1 = 0;
+-      yychar = YYEOF;         /* Don't call YYLEX any more */
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Now at end of input.\n");
+-#endif
++      yychar = yytoken = YYEOF;
++      YYDPRINTF ((stderr, "Now at end of input.\n"));
+     }
+   else
+     {
+-      yychar1 = YYTRANSLATE(yychar);
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      {
+-        fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+-        /* Give the individual parser a way to print the precise meaning
+-           of a token, for further debugging info.  */
+-#ifdef YYPRINT
+-        YYPRINT (stderr, yychar, yylval);
+-#endif
+-        fprintf (stderr, ")\n");
+-      }
+-#endif
++      yytoken = YYTRANSLATE (yychar);
++      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+     }
+-  yyn += yychar1;
+-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
++  /* If the proper action on seeing token YYTOKEN is to reduce or to
++     detect an error, take that action.  */
++  yyn += yytoken;
++  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+     goto yydefault;
+-
+   yyn = yytable[yyn];
+-
+-  /* yyn is what to do for this token type in this state.
+-     Negative => reduce, -yyn is rule number.
+-     Positive => shift, yyn is new state.
+-       New state is final state => don't bother to shift,
+-       just return success.
+-     0, or most negative number => error.  */
+-
+-  if (yyn < 0)
++  if (yyn <= 0)
+     {
+-      if (yyn == YYFLAG)
++      if (yyn == 0 || yyn == YYTABLE_NINF)
+       goto yyerrlab;
+       yyn = -yyn;
+       goto yyreduce;
+     }
+-  else if (yyn == 0)
+-    goto yyerrlab;
+   if (yyn == YYFINAL)
+     YYACCEPT;
+   /* Shift the lookahead token.  */
+-
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+-#endif
++  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+   /* Discard the token being shifted unless it is eof.  */
+   if (yychar != YYEOF)
+     yychar = YYEMPTY;
+   *++yyvsp = yylval;
+-#ifdef YYLSP_NEEDED
+-  *++yylsp = yylloc;
+-#endif
+-  /* count tokens shifted since error; after three, turn off error status.  */
+-  if (yyerrstatus) yyerrstatus--;
++
++  /* Count tokens shifted since error; after three, turn off error
++     status.  */
++  if (yyerrstatus)
++    yyerrstatus--;
+   yystate = yyn;
+   goto yynewstate;
+-/* Do the default action for the current state.  */
+-yydefault:
++/*-----------------------------------------------------------.
++| yydefault -- do the default action for the current state.  |
++`-----------------------------------------------------------*/
++yydefault:
+   yyn = yydefact[yystate];
+   if (yyn == 0)
+     goto yyerrlab;
++  goto yyreduce;
+-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
++
++/*-----------------------------.
++| yyreduce -- Do a reduction.  |
++`-----------------------------*/
+ yyreduce:
++  /* yyn is the number of a rule to reduce with.  */
+   yylen = yyr2[yyn];
+-  if (yylen > 0)
+-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      int i;
++  /* If YYLEN is nonzero, implement the default value of the action:
++     `$$ = $1'.
+-      fprintf (stderr, "Reducing via rule %d (line %d), ",
+-             yyn, yyrline[yyn]);
++     Otherwise, the following line sets YYVAL to garbage.
++     This behavior is undocumented and Bison
++     users should not rely upon it.  Assigning to YYVAL
++     unconditionally makes the parser a bit smaller, and it avoids a
++     GCC warning that YYVAL may be used uninitialized.  */
++  yyval = yyvsp[1-yylen];
+-      /* Print the symbols being reduced, and their result.  */
+-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+-      fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+-    }
+-#endif
+-
+-  switch (yyn) {
+-
+-case 1:
+-#line 165 "ql_y.y"
+-{
++  YY_REDUCE_PRINT (yyn);
++  switch (yyn)
++    {
++        case 2:
++#line 168 "ql_y.y"
++    {
+           STRUCTURE *walk;
+           def = yyvsp[0].field;
+           for (walk = structures; walk; walk = walk->next)
+               if (!walk->instances)
+                   fprintf(stderr,"unused structure: %s\n",walk->id);
+-      ;
+-    break;}
+-case 3:
+-#line 177 "ql_y.y"
+-{
++      }
++    break;
++
++  case 4:
++#line 180 "ql_y.y"
++    {
+           to_c("#%s\n",yyvsp[-1].str);
+           to_test("#%s\n",yyvsp[-1].str);
+           if (dump) to_dump("#%s\n",yyvsp[-1].str);
+-      ;
+-    break;}
+-case 6:
+-#line 190 "ql_y.y"
+-{
++      }
++    break;
++
++  case 7:
++#line 193 "ql_y.y"
++    {
+           STRUCTURE *n;
+           n = alloc_t(STRUCTURE);
+@@ -907,23 +1236,26 @@
+           n->instances = 0;
+           n->next = structures;
+           structures = n;
+-      ;
+-    break;}
+-case 7:
+-#line 203 "ql_y.y"
+-{
++      }
++    break;
++
++  case 8:
++#line 206 "ql_y.y"
++    {
+           abort_id = NULL;
+-      ;
+-    break;}
+-case 8:
+-#line 207 "ql_y.y"
+-{
++      }
++    break;
++
++  case 9:
++#line 210 "ql_y.y"
++    {
+           yyval.field = yyvsp[0].field;
+-      ;
+-    break;}
+-case 9:
+-#line 214 "ql_y.y"
+-{
++      }
++    break;
++
++  case 10:
++#line 217 "ql_y.y"
++    {
+           STRUCTURE *walk;
+           for (walk = structures; walk; walk = walk->next)
+@@ -939,38 +1271,43 @@
+           yyval.field->my_block = copy_block(walk->block);
+           yyval.field->next = NULL;
+           abort_id = NULL;
+-      ;
+-    break;}
+-case 10:
+-#line 232 "ql_y.y"
+-{
++      }
++    break;
++
++  case 11:
++#line 235 "ql_y.y"
++    {
+           yyval.field = yyvsp[-1].field;
+           abort_id = NULL;
+-      ;
+-    break;}
+-case 11:
+-#line 237 "ql_y.y"
+-{
++      }
++    break;
++
++  case 12:
++#line 240 "ql_y.y"
++    {
+           yyval.field = NULL;
+           abort_id = yyvsp[0].str;
+-      ;
+-    break;}
+-case 12:
+-#line 244 "ql_y.y"
+-{
++      }
++    break;
++
++  case 13:
++#line 247 "ql_y.y"
++    {
+           yyval.field = NULL;
+-      ;
+-    break;}
+-case 13:
+-#line 248 "ql_y.y"
+-{
++      }
++    break;
++
++  case 14:
++#line 251 "ql_y.y"
++    {
+           yyval.field = yyvsp[-1].field;
+           yyvsp[-1].field->next = yyvsp[0].field;
+-      ;
+-    break;}
+-case 14:
+-#line 256 "ql_y.y"
+-{
++      }
++    break;
++
++  case 15:
++#line 259 "ql_y.y"
++    {
+           TAG *walk;
+           yyval.field = yyvsp[0].field;
+@@ -989,23 +1326,26 @@
+                         "selections");
+           if (*yyval.field->id != '_' && yyval.field->value && yyval.field->value->type == vt_multi)
+               yyerror("multi selectors must be unnamed");
+-      ;
+-    break;}
+-case 15:
+-#line 279 "ql_y.y"
+-{
++      }
++    break;
++
++  case 16:
++#line 282 "ql_y.y"
++    {
+           yyval.num = 0;
+-      ;
+-    break;}
+-case 16:
+-#line 283 "ql_y.y"
+-{
++      }
++    break;
++
++  case 17:
++#line 286 "ql_y.y"
++    {
+           yyval.num = 1;
+-      ;
+-    break;}
+-case 17:
+-#line 290 "ql_y.y"
+-{
++      }
++    break;
++
++  case 18:
++#line 293 "ql_y.y"
++    {
+           yyval.field = alloc_t(FIELD);
+           yyval.field->size = yyvsp[-1].num;
+           yyval.field->var_len = -2; /* hack */
+@@ -1015,140 +1355,159 @@
+           yyval.field->value = NULL;
+           yyval.field->structure = NULL;
+           yyval.field->next = NULL;
+-      ;
+-    break;}
+-case 18:
+-#line 302 "ql_y.y"
+-{
++      }
++    break;
++
++  case 19:
++#line 305 "ql_y.y"
++    {
+           yyval.field = alloc_t(FIELD);
+           yyval.field->size = yyvsp[-4].num;
+           yyval.field->var_len = -1;
+           yyval.field->pos = yyvsp[-3].num;
+           yyval.field->flush = !yyvsp[-2].num;
+-          if (yyval.field->pos == -1)
++          if (yyval.field->pos == -1) {
+               if (yyval.field->size & 7)
+                   yyerror("position required for small fields");
+               else yyval.field->pos = 0;
++          }
+           yyval.field->value = yyvsp[0].value;
+           yyval.field->structure = NULL;
+           yyval.field->next = NULL;
+-      ;
+-    break;}
+-case 19:
+-#line 319 "ql_y.y"
+-{
+-          yyval.num = -1;
+-      ;
+-    break;}
+-case 20:
++      }
++    break;
++
++  case 20:
+ #line 323 "ql_y.y"
+-{
++    {
++          yyval.num = -1;
++      }
++    break;
++
++  case 21:
++#line 327 "ql_y.y"
++    {
+           yyval.num = yyvsp[0].num-1;
+           if (yyval.num < 0 || yyval.num > 7) yyerror("invalid position");
+-      ;
+-    break;}
+-case 21:
+-#line 331 "ql_y.y"
+-{
++      }
++    break;
++
++  case 22:
++#line 335 "ql_y.y"
++    {
+           char *end;
+           yyval.num = strtoul(yyvsp[0].str,&end,10);
+           if (*end) yyerror("no a decimal number");
+-      ;
+-    break;}
+-case 22:
+-#line 340 "ql_y.y"
+-{
+-          yyval.num = 0;
+-      ;
+-    break;}
+-case 23:
++      }
++    break;
++
++  case 23:
+ #line 344 "ql_y.y"
+-{
++    {
++          yyval.num = 0;
++      }
++    break;
++
++  case 24:
++#line 348 "ql_y.y"
++    {
+           if (strcmp(yyvsp[0].str,"more")) yyerror("\"more\" expected");
+           yyval.num = 1;
+-      ;
+-    break;}
+-case 24:
+-#line 351 "ql_y.y"
+-{
+-          yyval.value = NULL;
+-      ;
+-    break;}
+-case 25:
++      }
++    break;
++
++  case 25:
+ #line 355 "ql_y.y"
+-{
++    {
++          yyval.value = NULL;
++      }
++    break;
++
++  case 26:
++#line 359 "ql_y.y"
++    {
+           yyval.value = yyvsp[0].value;
+-      ;
+-    break;}
+-case 26:
+-#line 362 "ql_y.y"
+-{
++      }
++    break;
++
++  case 27:
++#line 366 "ql_y.y"
++    {
+           yyval.value = alloc_t(VALUE);
+           yyval.value->type = vt_id;
+           yyval.value->id = yyvsp[0].str;
+-      ;
+-    break;}
+-case 27:
+-#line 368 "ql_y.y"
+-{
++      }
++    break;
++
++  case 28:
++#line 372 "ql_y.y"
++    {
+           yyval.value = alloc_t(VALUE);
+           yyval.value->type = vt_case;
+           yyval.value->id = NULL;
+           yyval.value->tags = yyvsp[-1].tag;
+-      ;
+-    break;}
+-case 28:
+-#line 375 "ql_y.y"
+-{
++      }
++    break;
++
++  case 29:
++#line 379 "ql_y.y"
++    {
+           yyval.value = alloc_t(VALUE);
+           yyval.value->type = vt_multi;
+           yyval.value->tags = yyvsp[-1].tag;
+-      ;
+-    break;}
+-case 29:
+-#line 381 "ql_y.y"
+-{
++      }
++    break;
++
++  case 30:
++#line 385 "ql_y.y"
++    {
+           yyval.value = alloc_t(VALUE);
+           yyval.value->type = vt_length;
+           yyval.value->recovery = yyvsp[-2].str;
+           yyval.value->block = yyvsp[0].field;
+           yyval.value->abort_id = abort_id;
+-      ;
+-    break;}
+-case 30:
+-#line 391 "ql_y.y"
+-{
+-          yyval.str = NULL;
+-      ;
+-    break;}
+-case 31:
++      }
++    break;
++
++  case 31:
+ #line 395 "ql_y.y"
+-{
++    {
++          yyval.str = NULL;
++      }
++    break;
++
++  case 32:
++#line 399 "ql_y.y"
++    {
+           yyval.str = yyvsp[0].str;
+-      ;
+-    break;}
+-case 32:
+-#line 401 "ql_y.y"
+-{
+-          yyval.nlist = NULL;
+-      ;
+-    break;}
+-case 33:
++      }
++    break;
++
++  case 33:
+ #line 405 "ql_y.y"
+-{
++    {
++          yyval.nlist = NULL;
++      }
++    break;
++
++  case 34:
++#line 409 "ql_y.y"
++    {
+           yyval.nlist = get_name_list(yyvsp[0].str);
+-      ;
+-    break;}
+-case 34:
+-#line 411 "ql_y.y"
+-{
+-          yyval.tag = NULL;
+-      ;
+-    break;}
+-case 35:
++      }
++    break;
++
++  case 35:
+ #line 415 "ql_y.y"
+-{
++    {
++          yyval.tag = NULL;
++      }
++    break;
++
++  case 36:
++#line 419 "ql_y.y"
++    {
+           yyval.tag = alloc_t(TAG);
+           yyval.tag->deflt = 1;
+           if (yyvsp[-2].str) {
+@@ -1163,18 +1522,20 @@
+           yyval.tag->block = yyvsp[0].field;
+           yyval.tag->next = NULL;
+           yyval.tag->abort_id = abort_id;
+-      ;
+-    break;}
+-case 36:
+-#line 432 "ql_y.y"
+-{
++      }
++    break;
++
++  case 37:
++#line 436 "ql_y.y"
++    {
+           yyval.tag = alloc_t(TAG);
+           yyval.tag->abort_id = abort_id;
+-      ;
+-    break;}
+-case 37:
+-#line 437 "ql_y.y"
+-{
++      }
++    break;
++
++  case 38:
++#line 441 "ql_y.y"
++    {
+           yyval.tag = yyvsp[-1].tag;
+           yyval.tag->deflt = 0;
+           if (yyvsp[-4].str) {
+@@ -1188,17 +1549,19 @@
+           yyval.tag->more = yyvsp[-3].list;
+           yyval.tag->block = yyvsp[-2].field;
+           yyval.tag->next = yyvsp[0].tag;
+-      ;
+-    break;}
+-case 38:
+-#line 455 "ql_y.y"
+-{
+-          yyval.tag = NULL;
+-      ;
+-    break;}
+-case 39:
++      }
++    break;
++
++  case 39:
+ #line 459 "ql_y.y"
+-{
++    {
++          yyval.tag = NULL;
++      }
++    break;
++
++  case 40:
++#line 463 "ql_y.y"
++    {
+           yyval.tag = alloc_t(TAG);
+           yyval.tag->deflt = 1;
+           if (yyvsp[-2].str) {
+@@ -1212,18 +1575,20 @@
+           yyval.tag->more = yyvsp[-1].list;
+           yyval.tag->block = yyvsp[0].field;
+           yyval.tag->next = NULL;
+-      ;
+-    break;}
+-case 40:
+-#line 475 "ql_y.y"
+-{
++      }
++    break;
++
++  case 41:
++#line 479 "ql_y.y"
++    {
+           yyval.tag = alloc_t(TAG);
+           yyval.tag->abort_id = abort_id;
+-      ;
+-    break;}
+-case 41:
+-#line 480 "ql_y.y"
+-{
++      }
++    break;
++
++  case 42:
++#line 484 "ql_y.y"
++    {
+           yyval.tag = yyvsp[-1].tag;
+           yyval.tag->deflt = 0;
+           if (yyvsp[-4].str) {
+@@ -1237,254 +1602,266 @@
+           yyval.tag->more = yyvsp[-3].list;
+           yyval.tag->block = yyvsp[-2].field;
+           yyval.tag->next = yyvsp[0].tag;
+-      ;
+-    break;}
+-case 42:
+-#line 498 "ql_y.y"
+-{
+-          yyval.str = NULL;
+-      ;
+-    break;}
+-case 43:
++      }
++    break;
++
++  case 43:
+ #line 502 "ql_y.y"
+-{
++    {
++          yyval.str = NULL;
++      }
++    break;
++
++  case 44:
++#line 506 "ql_y.y"
++    {
+           yyval.str = yyvsp[0].str;
+-      ;
+-    break;}
+-case 44:
+-#line 508 "ql_y.y"
+-{
+-          yyval.list = NULL;
+-      ;
+-    break;}
+-case 45:
++      }
++    break;
++
++  case 45:
+ #line 512 "ql_y.y"
+-{
++    {
++          yyval.list = NULL;
++      }
++    break;
++
++  case 46:
++#line 516 "ql_y.y"
++    {
+           yyval.list = alloc_t(VALUE_LIST);
+           yyval.list->value = yyvsp[-1].str;
+           yyval.list->next = yyvsp[0].list;
+-      ;
+-    break;}
+-}
+-   /* the action file gets copied in in place of this dollarsign */
+-#line 543 "/usr/lib/bison.simple"
++      }
++    break;
++
++
++    }
++
++/* Line 1010 of yacc.c.  */
++#line 1643 "y.tab.c"
\f
+   yyvsp -= yylen;
+   yyssp -= yylen;
+-#ifdef YYLSP_NEEDED
+-  yylsp -= yylen;
+-#endif
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      short *ssp1 = yyss - 1;
+-      fprintf (stderr, "state stack now");
+-      while (ssp1 != yyssp)
+-      fprintf (stderr, " %d", *++ssp1);
+-      fprintf (stderr, "\n");
+-    }
+-#endif
++
++  YY_STACK_PRINT (yyss, yyssp);
+   *++yyvsp = yyval;
+-#ifdef YYLSP_NEEDED
+-  yylsp++;
+-  if (yylen == 0)
+-    {
+-      yylsp->first_line = yylloc.first_line;
+-      yylsp->first_column = yylloc.first_column;
+-      yylsp->last_line = (yylsp-1)->last_line;
+-      yylsp->last_column = (yylsp-1)->last_column;
+-      yylsp->text = 0;
+-    }
+-  else
+-    {
+-      yylsp->last_line = (yylsp+yylen-1)->last_line;
+-      yylsp->last_column = (yylsp+yylen-1)->last_column;
+-    }
+-#endif
+-  /* Now "shift" the result of the reduction.
+-     Determine what state that goes to,
+-     based on the state we popped back to
+-     and the rule number reduced by.  */
++  /* Now `shift' the result of the reduction.  Determine what state
++     that goes to, based on the state we popped back to and the rule
++     number reduced by.  */
+   yyn = yyr1[yyn];
+-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
++  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
++  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+     yystate = yytable[yystate];
+   else
+-    yystate = yydefgoto[yyn - YYNTBASE];
++    yystate = yydefgoto[yyn - YYNTOKENS];
+   goto yynewstate;
+-yyerrlab:   /* here on detecting error */
+-  if (! yyerrstatus)
+-    /* If not already recovering from an error, report this error.  */
++/*------------------------------------.
++| yyerrlab -- here on detecting error |
++`------------------------------------*/
++yyerrlab:
++  /* If not already recovering from an error, report this error.  */
++  if (!yyerrstatus)
+     {
+       ++yynerrs;
+-
+-#ifdef YYERROR_VERBOSE
++#if YYERROR_VERBOSE
+       yyn = yypact[yystate];
+-      if (yyn > YYFLAG && yyn < YYLAST)
++      if (YYPACT_NINF < yyn && yyn < YYLAST)
+       {
+-        int size = 0;
+-        char *msg;
+-        int x, count;
+-
+-        count = 0;
+-        /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+-        for (x = (yyn < 0 ? -yyn : 0);
+-             x < (sizeof(yytname) / sizeof(char *)); x++)
+-          if (yycheck[x + yyn] == x)
+-            size += strlen(yytname[x]) + 15, count++;
+-        msg = (char *) malloc(size + 15);
+-        if (msg != 0)
++        YYSIZE_T yysize = 0;
++        int yytype = YYTRANSLATE (yychar);
++        const char* yyprefix;
++        char *yymsg;
++        int yyx;
++
++        /* Start YYX at -YYN if negative to avoid negative indexes in
++           YYCHECK.  */
++        int yyxbegin = yyn < 0 ? -yyn : 0;
++
++        /* Stay within bounds of both yycheck and yytname.  */
++        int yychecklim = YYLAST - yyn;
++        int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++        int yycount = 0;
++
++        yyprefix = ", expecting ";
++        for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++          if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++            {
++              yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
++              yycount += 1;
++              if (yycount == 5)
++                {
++                  yysize = 0;
++                  break;
++                }
++            }
++        yysize += (sizeof ("syntax error, unexpected ")
++                   + yystrlen (yytname[yytype]));
++        yymsg = (char *) YYSTACK_ALLOC (yysize);
++        if (yymsg != 0)
+           {
+-            strcpy(msg, "parse error");
++            char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
++            yyp = yystpcpy (yyp, yytname[yytype]);
+-            if (count < 5)
++            if (yycount < 5)
+               {
+-                count = 0;
+-                for (x = (yyn < 0 ? -yyn : 0);
+-                     x < (sizeof(yytname) / sizeof(char *)); x++)
+-                  if (yycheck[x + yyn] == x)
++                yyprefix = ", expecting ";
++                for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++                  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+                     {
+-                      strcat(msg, count == 0 ? ", expecting `" : " or `");
+-                      strcat(msg, yytname[x]);
+-                      strcat(msg, "'");
+-                      count++;
++                      yyp = yystpcpy (yyp, yyprefix);
++                      yyp = yystpcpy (yyp, yytname[yyx]);
++                      yyprefix = " or ";
+                     }
+               }
+-            yyerror(msg);
+-            free(msg);
++            yyerror (yymsg);
++            YYSTACK_FREE (yymsg);
+           }
+         else
+-          yyerror ("parse error; also virtual memory exceeded");
++          yyerror ("syntax error; also virtual memory exhausted");
+       }
+       else
+ #endif /* YYERROR_VERBOSE */
+-      yyerror("parse error");
++      yyerror ("syntax error");
+     }
+-  goto yyerrlab1;
+-yyerrlab1:   /* here on error raised explicitly by an action */
++
+   if (yyerrstatus == 3)
+     {
+-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
++      /* If just tried and failed to reuse lookahead token after an
++       error, discard it.  */
+-      /* return failure if at end of input */
+-      if (yychar == YYEOF)
+-      YYABORT;
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+-#endif
++      if (yychar <= YYEOF)
++        {
++          /* If at end of input, pop the error token,
++           then the rest of the stack, then return failure.  */
++        if (yychar == YYEOF)
++           for (;;)
++             {
++               YYPOPSTACK;
++               if (yyssp == yyss)
++                 YYABORT;
++               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
++               yydestruct (yystos[*yyssp], yyvsp);
++             }
++        }
++      else
++      {
++        YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
++        yydestruct (yytoken, &yylval);
++        yychar = YYEMPTY;
+-      yychar = YYEMPTY;
++      }
+     }
+-  /* Else will try to reuse lookahead token
+-     after shifting the error token.  */
+-
+-  yyerrstatus = 3;            /* Each real token shifted decrements this */
++  /* Else will try to reuse lookahead token after shifting the error
++     token.  */
++  goto yyerrlab1;
+-  goto yyerrhandle;
+-yyerrdefault:  /* current state does not do anything special for the error token. */
++/*---------------------------------------------------.
++| yyerrorlab -- error raised explicitly by YYERROR.  |
++`---------------------------------------------------*/
++yyerrorlab:
+-#if 0
+-  /* This is wrong; only states that explicitly want error tokens
+-     should shift them.  */
+-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+-  if (yyn) goto yydefault;
++#ifdef __GNUC__
++  /* Pacify GCC when the user code never invokes YYERROR and the label
++     yyerrorlab therefore never appears in user code.  */
++  if (0)
++     goto yyerrorlab;
+ #endif
+-yyerrpop:   /* pop the current state because it cannot handle the error token */
+-
+-  if (yyssp == yyss) YYABORT;
+-  yyvsp--;
+-  yystate = *--yyssp;
+-#ifdef YYLSP_NEEDED
+-  yylsp--;
+-#endif
++  yyvsp -= yylen;
++  yyssp -= yylen;
++  yystate = *yyssp;
++  goto yyerrlab1;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      short *ssp1 = yyss - 1;
+-      fprintf (stderr, "Error: state stack now");
+-      while (ssp1 != yyssp)
+-      fprintf (stderr, " %d", *++ssp1);
+-      fprintf (stderr, "\n");
+-    }
+-#endif
+-yyerrhandle:
++/*-------------------------------------------------------------.
++| yyerrlab1 -- common code for both syntax error and YYERROR.  |
++`-------------------------------------------------------------*/
++yyerrlab1:
++  yyerrstatus = 3;    /* Each real token shifted decrements this.  */
+-  yyn = yypact[yystate];
+-  if (yyn == YYFLAG)
+-    goto yyerrdefault;
++  for (;;)
++    {
++      yyn = yypact[yystate];
++      if (yyn != YYPACT_NINF)
++      {
++        yyn += YYTERROR;
++        if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
++          {
++            yyn = yytable[yyn];
++            if (0 < yyn)
++              break;
++          }
++      }
+-  yyn += YYTERROR;
+-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+-    goto yyerrdefault;
++      /* Pop the current state because it cannot handle the error token.  */
++      if (yyssp == yyss)
++      YYABORT;
+-  yyn = yytable[yyn];
+-  if (yyn < 0)
+-    {
+-      if (yyn == YYFLAG)
+-      goto yyerrpop;
+-      yyn = -yyn;
+-      goto yyreduce;
++      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
++      yydestruct (yystos[yystate], yyvsp);
++      YYPOPSTACK;
++      yystate = *yyssp;
++      YY_STACK_PRINT (yyss, yyssp);
+     }
+-  else if (yyn == 0)
+-    goto yyerrpop;
+   if (yyn == YYFINAL)
+     YYACCEPT;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Shifting error token, ");
+-#endif
++  YYDPRINTF ((stderr, "Shifting error token, "));
+   *++yyvsp = yylval;
+-#ifdef YYLSP_NEEDED
+-  *++yylsp = yylloc;
+-#endif
++
+   yystate = yyn;
+   goto yynewstate;
+- yyacceptlab:
+-  /* YYACCEPT comes here.  */
+-  if (yyfree_stacks)
+-    {
+-      free (yyss);
+-      free (yyvs);
+-#ifdef YYLSP_NEEDED
+-      free (yyls);
+-#endif
+-    }
+-  return 0;
+- yyabortlab:
+-  /* YYABORT comes here.  */
+-  if (yyfree_stacks)
+-    {
+-      free (yyss);
+-      free (yyvs);
+-#ifdef YYLSP_NEEDED
+-      free (yyls);
++/*-------------------------------------.
++| yyacceptlab -- YYACCEPT comes here.  |
++`-------------------------------------*/
++yyacceptlab:
++  yyresult = 0;
++  goto yyreturn;
++
++/*-----------------------------------.
++| yyabortlab -- YYABORT comes here.  |
++`-----------------------------------*/
++yyabortlab:
++  yyresult = 1;
++  goto yyreturn;
++
++#ifndef yyoverflow
++/*----------------------------------------------.
++| yyoverflowlab -- parser overflow comes here.  |
++`----------------------------------------------*/
++yyoverflowlab:
++  yyerror ("parser stack overflow");
++  yyresult = 2;
++  /* Fall through.  */
++#endif
++
++yyreturn:
++#ifndef yyoverflow
++  if (yyss != yyssa)
++    YYSTACK_FREE (yyss);
+ #endif
+-    }
+-  return 1;
++  return yyresult;
+ }
+-#line 518 "ql_y.y"
++
++
++
+--- linux-atm-2.4.1.orig/src/qgen/ql_y.y
++++ linux-atm-2.4.1/src/qgen/ql_y.y
+@@ -17,6 +17,8 @@
+ #include "qgen.h"
+ #include "file.h"
++extern void yyerror(const char *s);
++
+ #define MAX_TOKEN 256
+ #define DEFAULT_NAMELIST_FILE "default.nl"
+@@ -58,9 +60,10 @@
+       for (walk = strchr(start,0)-1; walk > start && isspace(*walk); walk--)
+           *walk = 0;
+       if (*start == ':') {
+-          if (!(searching = strcmp(start+1,name)))
++          if (!(searching = strcmp(start+1,name))) {
+               if (found) yyerror("multiple entries");
+               else found = 1;
++          }
+           continue;
+       }
+       if (searching) continue;
+@@ -305,10 +308,11 @@
+           $$->var_len = -1;
+           $$->pos = $2;
+           $$->flush = !$3;
+-          if ($$->pos == -1)
++          if ($$->pos == -1) {
+               if ($$->size & 7)
+                   yyerror("position required for small fields");
+               else $$->pos = 0;
++          }
+           $$->value = $5;
+           $$->structure = NULL;
+           $$->next = NULL;
+--- linux-atm-2.4.1.orig/src/qgen/ql_l.l
++++ linux-atm-2.4.1/src/qgen/ql_l.l
+@@ -68,7 +68,7 @@
+ %%
+-void yyerror(char *s)
++void yyerror(const char *s)
+ {
+     fprintf(stderr,"line %d: %s near \"%s\"\n",lineno,s,yytext);
+     exit(1);
+--- linux-atm-2.4.1.orig/src/qgen/qlib.c
++++ linux-atm-2.4.1/src/qgen/qlib.c
+@@ -26,14 +26,14 @@
+ #include "op.h"
+-static int debug = 0;
++static int q_debug = 0;
+ void PREFIX(report)(int severity,const char *msg,...)
+ {
+     va_list ap;
+-    if (!debug && severity > Q_ERROR) return;
++    if (!q_debug && severity > Q_ERROR) return;
+     va_start(ap,msg);
+     vprintf(msg,ap);
+     printf("\n");
+@@ -836,7 +836,7 @@
+     Q_DSC dsc;
+     int len,c;
+-    debug = argc != 1;
++    q_debug = argc != 1;
+     len = 0;
+     while (scanf("%x",&c) == 1) msg[len++] = c;
+     qd_start();
+--- linux-atm-2.4.1.orig/src/qgen/qlib.h
++++ linux-atm-2.4.1/src/qgen/qlib.h
+@@ -23,7 +23,9 @@
+ #define Q_FATAL               -1
++#ifndef DUMP_MODE
+ extern int q_dump;
++#endif
+ extern void q_report(int severity,const char *msg,...);
+ #ifdef DUMP_MODE
+--- linux-atm-2.4.1.orig/src/qgen/ql_y.h
++++ linux-atm-2.4.1/src/qgen/ql_y.h
+@@ -1,4 +1,65 @@
+-typedef union {
++/* A Bison parser, made by GNU Bison 1.875d.  */
++
++/* Skeleton parser for Yacc-like parsing with Bison,
++   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++
++   This program is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, 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-1307, USA.  */
++
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
++
++/* Tokens.  */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++   /* Put the tokens into the symbol table, so that GDB and other debuggers
++      know about them.  */
++   enum yytokentype {
++     TOK_BREAK = 258,
++     TOK_CASE = 259,
++     TOK_DEF = 260,
++     TOK_DEFAULT = 261,
++     TOK_LENGTH = 262,
++     TOK_MULTI = 263,
++     TOK_RECOVER = 264,
++     TOK_ABORT = 265,
++     TOK_ID = 266,
++     TOK_INCLUDE = 267,
++     TOK_STRING = 268
++   };
++#endif
++#define TOK_BREAK 258
++#define TOK_CASE 259
++#define TOK_DEF 260
++#define TOK_DEFAULT 261
++#define TOK_LENGTH 262
++#define TOK_MULTI 263
++#define TOK_RECOVER 264
++#define TOK_ABORT 265
++#define TOK_ID 266
++#define TOK_INCLUDE 267
++#define TOK_STRING 268
++
++
++
++
++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#line 142 "ql_y.y"
++typedef union YYSTYPE {
+     const char *str;
+     int num;
+     FIELD *field;
+@@ -7,17 +68,14 @@
+     TAG *tag;
+     NAME_LIST *nlist;
+ } YYSTYPE;
+-#define       TOK_BREAK       257
+-#define       TOK_CASE        258
+-#define       TOK_DEF 259
+-#define       TOK_DEFAULT     260
+-#define       TOK_LENGTH      261
+-#define       TOK_MULTI       262
+-#define       TOK_RECOVER     263
+-#define       TOK_ABORT       264
+-#define       TOK_ID  265
+-#define       TOK_INCLUDE     266
+-#define       TOK_STRING      267
+-
++/* Line 1285 of yacc.c.  */
++#line 73 "y.tab.h"
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++# define YYSTYPE_IS_TRIVIAL 1
++#endif
+ extern YYSTYPE yylval;
++
++
++
+--- linux-atm-2.4.1.orig/src/qgen/incl.pl
++++ linux-atm-2.4.1/src/qgen/incl.pl
+@@ -24,7 +24,7 @@
+ }
+ die "no include file specified" unless defined $last;
+ for (@STD,@USR) {
+-    next unless defined stat $_."/".$last;
++    next unless -e "$_/$last";
+     print $_."/".$last."\n" || die "print STDOUT: $!";
+     exit 0;
+ }
+--- linux-atm-2.4.1.orig/src/qgen/msg.fmt
++++ linux-atm-2.4.1/src/qgen/msg.fmt
+@@ -53,7 +53,7 @@
+     ATM_TD_FW_PCR_0   { p##fw_pcr_0 <24> } \
+     ATM_TD_BW_PCR_0   { p##bw_pcr_0 <24> } \
+     ATM_TD_FW_PCR_01  { p##fw_pcr_01 <24> } \
+-    ATM_TD_BW_PCR_01  { p##bw_pcr_01 <24> } \
++    ATM_TD_BW_PCR_01  { p##bw_pcr_01 <24> } 
+ #define TRAFFIC_DESCRIPTOR_VBR(p) \
+     ATM_TD_FW_SCR_0   { p##fw_scr_0 <24> } \
+@@ -63,15 +63,15 @@
+     ATM_TD_FW_MBS_0   { p##fw_mbs_0 <24> } \
+     ATM_TD_BW_MBS_0   { p##bw_mbs_0 <24> } \
+     ATM_TD_FW_MBS_01  { p##fw_mbs_01 <24> } \
+-    ATM_TD_BW_MBS_01  { p##bw_mbs_01 <24> } \
++    ATM_TD_BW_MBS_01  { p##bw_mbs_01 <24> } 
+ #define TRAFFIC_DESCRIPTOR_BE(p) \
+-    ATM_TD_BEST_EFFORT        { p##best_effort <0> } \
++    ATM_TD_BEST_EFFORT        { p##best_effort <0> } 
+ #if defined(UNI40) || defined(DYNAMIC_UNI)
+ #define TRAFFIC_DESCRIPTOR_ABR(p) \
+     ATM_TD_FW_MCR_01  { p##fw_mcr_01 <24> } \
+-    ATM_TD_BW_MCR_01  { p##bw_mcr_01 <24> } \
++    ATM_TD_BW_MCR_01  { p##bw_mcr_01 <24> } 
+ #else
+ #define TRAFFIC_DESCRIPTOR_ABR(p)  /* not yet */
+--- linux-atm-2.4.1.orig/src/qgen/output
++++ linux-atm-2.4.1/src/qgen/output
+@@ -0,0 +1,704 @@
++# 1 "<stdin>"
++# 1 "<built-in>"
++# 1 "<command line>"
++# 1 "<stdin>"
++
++
++
++
++
++# 1 "../../config.h" 1
++# 7 "<stdin>" 2
++
++
++
++
++include "atmsap.h"
++include "uni.h"
++# 26 "<stdin>"
++def ie_aal = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ aal_type <8> = case {
++     5 {
++  _id "atm_aalp" <8> = multi {
++      ATM_AALP_FW_MAX_SDU {
++   fw_max_sdu <16>
++      }
++      ATM_AALP_BW_MAX_SDU {
++   bw_max_sdu <16>
++      }
++
++      ATM_AALP_AAL_MODE {
++   aal_mode <8> # UNI 3.0 only
++      }
++
++      ATM_AALP_SSCS {
++   sscs_type <8>
++      }
++  }
++     }
++ }
++    }
++}
++# 90 "<stdin>"
++def ie_td = { # UNI 3.0 calls this "User Cell Rate"
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _id "atm_td" <8> = multi {
++     ATM_TD_FW_PCR_0 { _dummy <0> = length {}fw_pcr_0 <24> } ATM_TD_BW_PCR_0 { _dummy <0> = length {}bw_pcr_0 <24> } ATM_TD_FW_PCR_01 { _dummy <0> = length {}fw_pcr_01 <24> } ATM_TD_BW_PCR_01 { _dummy <0> = length {}bw_pcr_01 <24> } ATM_TD_FW_SCR_0 { _dummy <0> = length {}fw_scr_0 <24> } ATM_TD_BW_SCR_0 { _dummy <0> = length {}bw_scr_0 <24> } ATM_TD_FW_SCR_01 { _dummy <0> = length {}fw_scr_01 <24> } ATM_TD_BW_SCR_01 { _dummy <0> = length {}bw_scr_01 <24> } ATM_TD_FW_MBS_0 { _dummy <0> = length {}fw_mbs_0 <24> } ATM_TD_BW_MBS_0 { _dummy <0> = length {}bw_mbs_0 <24> } ATM_TD_FW_MBS_01 { _dummy <0> = length {}fw_mbs_01 <24> } ATM_TD_BW_MBS_01 { _dummy <0> = length {}bw_mbs_01 <24> } ATM_TD_BEST_EFFORT { _dummy <0> = length {}best_effort <0> }
++# 104 "<stdin>"
++     ATM_TD_TM_OPT { # @@@ should this also go into the TD macro ?
++
++  fw_fdisc "atm_fd" <1@8,more> = ATM_FD_NO
++  bw_fdisc "atm_fd" <1@7,more> = ATM_FD_NO
++
++  bw_tag "atm_tag" <1@2,more> = ATM_TAG_NO
++  fw_tag "atm_tag" <1@1> = ATM_TAG_NO
++     }
++ }
++    }
++}
++
++
++def ie_bbcap = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ bearer_class "atm_bc" <5@1,more>
++ _ext <1@8> = case {
++     0 {
++  _ext <1@8,more> = 1
++  trans_cap "atm_tc" <7@1>
++     }
++     default 1 {}
++ }
++ _ext <1@8,more> = 1
++ susc_clip "atm_stc" <2@6,more> = ATM_STC_NO
++ upcc "atm_upcc" <2@1> = ATM_UPCC_P2P
++    }
++}
++
++
++def ie_bhli = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ hli_type <7@1> = case {
++
++
++     0 { # ISO
++  iso_hli <-64>
++     }
++     1 { # User Specific
++  user_hli <-64>
++     }
++
++     2 { # High layer profile - UNI 3.0 only
++  hlp <32>
++     }
++
++     3 { # Vendor-Specific Application identifier
++  hli_oui <24>
++  app_id <32>
++     }
++
++     4 { # Reference to ITU-T SG 1 B-ISDN Teleservice Recommendation
++  tobedefined <8>
++     }
++
++ }
++    }
++}
++
++
++def ie_blli = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _lid <2@6,more> = multi {
++     1 {
++  _ext <1@8,more> = 1
++  uil1_proto <5@1>
++     }
++     2 {
++  uil2_proto "atm_l2" <5@1,more> = case {
++      ATM_L2_X25_LL,ATM_L2_X25_ML,ATM_L2_HDLC_ARM,
++        ATM_L2_HDLC_NRM,ATM_L2_HDLC_ABM,ATM_L2_Q922,
++        ATM_L2_ISO7776 { # CCITT encoding
++   _ext <1@8> = case {
++       0 {
++    l2_mode "atm_imd" <2@6,more> = ATM_IMD_NORMAL
++    q933 <2@1,more> = 0
++    _ext <1@8> = case {
++        0 {
++     window_size <7@1,more>
++     _ext <1@8> = 1
++        }
++        default 1 {}
++    }
++       }
++       default 1 {}
++   }
++      }
++      ATM_L2_USER { # User specified
++   _ext <1@8> = 0
++   user_l2 <7@1,more>
++   _ext <1@8> = 1
++      }
++      default ATM_L2_ISO1745,ATM_L2_Q291,ATM_L2_LAPB,
++        ATM_L2_ISO8802,ATM_L2_X75 { # No additional data
++   _ext <1@8> = 1
++      }
++  }
++     }
++     3 {
++  uil3_proto "atm_l3" <5@1,more> = case {
++      ATM_L3_X25,ATM_L3_ISO8208,ATM_L3_X223 { # CCITT coding
++   _ext <1@8> = case {
++       0 {
++    l3_mode "atm_imd" <2@6,more> = ATM_IMD_NORMAL
++    _ext <1@8> = case {
++        0 {
++     def_pck_size <4@1,more>
++     _ext <1@8> = case {
++         0 {
++      _ext <1@8> = 1
++      pck_win_size <7@1>
++         }
++         default 1 {}
++     }
++        }
++        default 1 {}
++    }
++       }
++       default 1 {}
++   }
++      }
++
++      ATM_L3_H310 { # ITU-T Rec. H.310
++   _ext <1@8> = case {
++       0 {
++    term_type "atm_tt" <4@1,more> = ATM_TT_RXTX
++    _ext <1@8> = case {
++        0 {
++     _ext <1@8,more> = 1
++     fw_mpx_cap "atm_mc" <3@4,more> =
++       ATM_MC_NONE
++     bw_mpx_cap "atm_mc" <3@1> = ATM_MC_NONE
++        }
++        default 1 {}
++    }
++       }
++       default 1 {}
++   }
++      }
++
++      ATM_L3_TR9577 { # ISO/IEC TR9577
++   _ext <1@8> = case {
++       0 {
++    _ext <1@8,more> = 0
++    ipi_high <7@1> = case {
++        0x40 { # SNAP hack
++     _ext <1@8,more> = 1
++     _ipi_low <1@7> = case { # ugly
++         0 {
++      _ext <1@8,more> = 1
++      _snap_id <2@6> = 0
++      oui <24>
++      pid <16>
++         }
++         default 1 {}
++     }
++        }
++        default 0x0 { # ugly
++     _ext <1@8,more> = 1
++     ipi_low <1@7>
++        }
++    }
++       }
++       default 1 {}
++   }
++      }
++      ATM_L3_USER { # User specified
++   _ext <1@8> = 0
++   user_l3 <7@1,more>
++   _ext <1@8> = 1
++      }
++  }
++     }
++ }
++    }
++}
++
++
++def ie_call_state = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ call_state <6@1>
++    }
++}
++
++
++def ie_cdpn = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ _plan "atm_np" <4@1,more> = case {
++     ATM_NP_E164 {
++  _type "atm_ton" <3@5> = ATM_TON_INTRNTNL
++  cdpn_e164 <-96>
++     }
++     ATM_NP_AEA { # ATM Endsystem Address
++  _type "atm_ton" <3@5> = ATM_TON_UNKNOWN
++  cdpn_esa <-160>
++     }
++ }
++    }
++}
++
++
++def ie_cdps = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++
++
++
++
++ cdps_type "atm_sat" <3@5,more> = ATM_SAT_AEA
++
++ _oddeven <1@4> = 0
++ cdps <-160>
++    }
++}
++
++
++def ie_cgpn = { # @@@ extend language to allow same trick as for cdpn
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ cgpn_plan "atm_np" <4@1,more>
++ cgpn_type "atm_ton" <3@5,more>
++ _ext <1@8> = case {
++     0 {
++  _ext <1@8,more> = 1
++  pres_ind "atm_prs" <2@6,more> = ATM_PRS_ALLOW
++  scr_ind "atm_scrn" <2@1> = ATM_SCRN_UP_NS
++     }
++     default 1 {}
++ }
++ cgpn <-160>
++    }
++}
++
++
++def ie_cgps = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++
++
++
++
++ cgps_type "atm_sat" <3@5,more> = ATM_SAT_AEA
++
++ _oddeven <1@4> = 0
++ cgps <-160>
++    }
++}
++
++
++def ie_cause = {
++    _ext <1@8,more> = 1 cause_cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ location "atm_loc" <4@1> = ATM_LOC_USER
++ _ext <1@8,more> = 1
++ cause "atm_cv" <7@1> = case {
++     ATM_CV_UNALLOC,ATM_CV_NO_ROUTE_DEST,ATM_CV_QOS_UNAVAIL { # Note 2
++  break
++  _ext <1@8,more> = 1
++  pu "atm_pu" <1@4,more> = ATM_PU_USER
++  na "atm_na" <1@3,more> = ATM_NA_NORMAL
++  cond2 "atm_cond" <2@1> = ATM_COND_UNKNOWN
++     }
++     ATM_CV_CALL_REJ { # Note 3
++  break
++  _ext <1@8,more> = 1
++  cond3 "atm_cond" <2@1,more> = ATM_COND_UNKNOWN
++  reason <5@3> = case {
++      ATM_RSN_USER {
++   user_diag <-216>
++      }
++      ATM_RSN_IE_MISS,ATM_RSN_IE_INSUFF {
++   ie_id3 "atm_ie" <8>
++      }
++  }
++     }
++     ATM_CV_NUM_CHANGED { # Note 4
++  break
++  new_dest <-224> # good luck ...
++     }
++     ATM_CV_REJ_CLIR { # Note 5
++  break
++  invalid <8> # not supported
++     }
++     ATM_CV_ACC_INF_DISC,ATM_CV_INCOMP_DEST,ATM_CV_MAND_IE_MISSING,
++       ATM_CV_UNKNOWN_IE,ATM_CV_INVALID_IE { # Note 6
++  break
++  ie_id6 <-224>
++     }
++
++     ATM_CV_UCR_UNAVAIL_OLD,ATM_CV_UCR_UNAVAIL_NEW { # Note 8
++
++
++
++
++
++
++
++  break
++  ucr_id <-224>
++     }
++     ATM_CV_NO_SUCH_CHAN { # Note 9
++  break
++  unav_vpci <16>
++  unav_vci <16>
++     }
++     ATM_CV_UNKNOWN_MSG_TYPE,ATM_CV_INCOMP_MSG { # Note 10
++  break
++  bad_msg_type "atm_msg" <8>
++     }
++     ATM_CV_TIMER_EXP { # Note 11
++  break
++  timer <24>
++     }
++     default 0 {}
++ }
++    }
++}
++
++
++def ie_conn_id = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ _vp_ass "atm_vpa" <2@4,more> = ATM_VPA_EXPL
++ _pref_exc "atm_poe" <3@1> = 0
++ vpi <16>
++ vci <16>
++    }
++}
++
++
++
++
++def ie_e2e_tdl = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _id "atm_tdl" <8> = multi {
++     ATM_TDL_CUM {
++  cum_delay <16>
++     }
++     ATM_TDL_E2EMAX {
++  max_delay <16>
++     }
++     ATM_TDL_NGI {}
++ }
++
++    }
++}
++
++
++
++
++def ie_qos = {
++# 467 "<stdin>"
++    _ext <1@8,more> = 1 qos_cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++
++ qos_fw <8> = 0
++ qos_bw <8> = 0
++    }
++}
++
++
++def ie_bbrep = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ rep_ind <4@1> = 2
++    }
++}
++
++
++def ie_restart = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ rst_class <3@1>
++    }
++}
++
++
++def ie_bbs_comp = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ bbsc_ind <7@1> = 0x21
++    }
++}
++
++
++def ie_tns = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ _net_type "atm_tni" <3@5,more> = ATM_TNI_NNI
++ _carrier_id "atm_nip" <4@1> = ATM_NIP_CARRIER
++ net_id <-32>
++    }
++}
++
++
++
++
++def ie_notify = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ notification <-32> # @@@ how many actually ?
++    }
++}
++
++
++def ie_oam_td = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ext <1@8,more> = 1
++ shaping "atm_shi" <2@6,more> = ATM_SHI_NONE
++ compliance "atm_oci" <1@5,more> = ATM_OCI_OPT
++ fault "atm_unfm" <3@1> = ATM_UNFM_NONE
++ _ext <1@8,more> = 1
++ fwd_ofi "atm_ofi" <3@5,more> = ATM_OFI_0_0
++ bwd_ofi "atm_ofi" <3@1> = ATM_OFI_0_0
++    }
++}
++
++
++def ie_git = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ _dummy <1@8> = 0 # bit is "spare", although not indicated in spec
++ id_std_app "atm_irs" <7@1> = case {
++     ATM_IRS_DSMCC,ATM_IRS_H245 {
++  _type "atm_it" <8> = ATM_IT_SESSION
++  _length <8> = length {
++      session_id <-160>
++  }
++  _type "atm_it" <8> = ATM_IT_RESOURCE
++  _length <8> = length {
++      resource_id <-32>
++  }
++     }
++     default 0 {
++  unrecognized_git_identifiers <-224> # 33-5 bytes
++     }
++ }
++    }
++}
++
++
++def ie_lij_id = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ _ext <1@8,more> = 1
++ lij_id_type "atm_lit" <7@1> = ATM_LIT_ROOT
++ lij_id <32>
++    }
++}
++
++
++def ie_lij_prm = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ _ext <1@8,more> = 1
++ lij_scr_ind "atm_lsi" <2@1>
++    }
++}
++
++
++def ie_leaf_sn = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ leaf_sn <32>
++    }
++}
++
++
++def ie_scope_sel = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ _ext <1@8,more> = 1
++ scope_type "atm_tcs" <4@1> = ATM_TCS_ORGANIZATIONAL
++ scope_sel "atm_css" <8>
++    }
++}
++
++
++def ie_alt_td = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _id "atm_td" <8> = multi {
++     ATM_TD_FW_PCR_0 { altfw_pcr_0 <24> } ATM_TD_BW_PCR_0 { altbw_pcr_0 <24> } ATM_TD_FW_PCR_01 { altfw_pcr_01 <24> } ATM_TD_BW_PCR_01 { altbw_pcr_01 <24> } ATM_TD_FW_SCR_0 { altfw_scr_0 <24> } ATM_TD_BW_SCR_0 { altbw_scr_0 <24> } ATM_TD_FW_SCR_01 { altfw_scr_01 <24> } ATM_TD_BW_SCR_01 { altbw_scr_01 <24> } ATM_TD_FW_MBS_0 { altfw_mbs_0 <24> } ATM_TD_BW_MBS_0 { altbw_mbs_0 <24> } ATM_TD_FW_MBS_01 { altfw_mbs_01 <24> } ATM_TD_BW_MBS_01 { altbw_mbs_01 <24> } ATM_TD_BEST_EFFORT { altbest_effort <0> }
++ }
++    }
++}
++
++
++def ie_min_td = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ _id "atm_td" <8> = multi {
++     ATM_TD_FW_PCR_0 { minfw_pcr_0 <24> } ATM_TD_BW_PCR_0 { minbw_pcr_0 <24> } ATM_TD_FW_PCR_01 { minfw_pcr_01 <24> } ATM_TD_BW_PCR_01 { minbw_pcr_01 <24> }
++     ATM_TD_FW_MCR_01 { minfw_mcr_01 <24> } ATM_TD_BW_MCR_01 { minbw_mcr_01 <24> }
++ }
++    }
++}
++
++
++def ie_eqos = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ eqos_origin "atm_eqo" <8>
++ _id "atm_eqp" <8> = multi {
++     ATM_EQP_ACC_FW_CDV {
++  acc_fw_cdv <24>
++     }
++     ATM_EQP_ACC_BW_CDV {
++  acc_bw_cdv <24>
++     }
++     ATM_EQP_CUM_FW_CDV {
++  cum_fw_cdv <24>
++     }
++     ATM_EQP_CUM_BW_CDV {
++  cum_bw_cdv <24>
++     }
++     ATM_EQP_ACC_FW_CLR {
++  acc_fw_clr <8>
++     }
++     ATM_EQP_ACC_BW_CLR {
++  acc_bw_clr <8>
++     }
++ }
++    }
++}
++
++
++def ie_abr_add_prm = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _id "atm_aap" <8> = multi {
++     ATM_AAP_FW_REC {
++  abr_fw_add_rec <32>
++     }
++     ATM_AAP_BW_REC {
++  abr_bw_add_rec <32>
++     }
++ }
++    }
++}
++
++
++def ie_abr_set_prm = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_NET _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length { # @@@ UNI 4.0 does not specify the coding
++ _id "atm_asp" <8> = multi {
++     ATM_ASP_FW_ICR {
++  abr_fw_icr <24>
++     }
++     ATM_ASP_BW_ICR {
++  abr_bw_icr <24>
++     }
++     ATM_ASP_FW_TBE {
++  abr_fw_tbe <24>
++     }
++     ATM_ASP_BW_TBE {
++  abr_bw_tbe <24>
++     }
++     ATM_ASP_CRF_RTT {
++  atm_crf_rtt <24>
++     }
++     ATM_ASP_FW_RIF {
++  atm_fw_rif <8>
++     }
++     ATM_ASP_BW_RIF {
++  atm_bw_rif <8>
++     }
++     ATM_ASP_FW_RDF {
++  atm_fw_rdf <8>
++     }
++     ATM_ASP_BW_RDF {
++  atm_bw_rdf <8>
++     }
++ }
++    }
++}
++
++
++
++
++def ie_ep_ref = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ _ep_type <8> = 0
++ ep_ref <16>
++    }
++}
++
++
++def ie_ep_state = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ ep_state <6@1>
++    }
++}
++
++
++
++
++def ie_bbrt = {
++    _ext <1@8,more> = 1 _cs "q2931_cs" <2@6,more> = Q2931_CS_ITU _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length {
++ type_of_report "atm_tor" <8>
++    }
++}
++
++
++
++
++{
++    _pdsc "q2931_proto" <8> = Q2931_PROTO_DSC
++    _cr_len <8> = 3
++    call_ref <24>
++    msg_type "atm_msg" <8>
++    _ext <1@8,more> = 1
++    _flag "atm_flag" <1@5,more> = ATM_FLAG_NO
++    _action_ind "atm_ai_msg" <2@1> = 0
++    msg_len <16> = length {
++ _ie_id "atm_ie" <8> = multi {
++     aal: ATM_IE_AAL ie_aal
++     td: ATM_IE_TD ie_td
++     bbcap: ATM_IE_BBCAP ie_bbcap
++     bhli: ATM_IE_BHLI ie_bhli
++     blli1: ATM_IE_BLLI ie_blli
++     blli2: ATM_IE_BLLI ie_blli
++     blli3: ATM_IE_BLLI ie_blli
++     call_state: ATM_IE_CALL_STATE ie_call_state
++     cdpn: ATM_IE_CDPN ie_cdpn
++     cdps: ATM_IE_CDPS ie_cdps
++     cgpn: ATM_IE_CGPN ie_cgpn
++     cgps: ATM_IE_CGPS ie_cgps
++     cause: ATM_IE_CAUSE ie_cause
++     cause2: ATM_IE_CAUSE ie_cause
++     conn_id: ATM_IE_CONN_ID ie_conn_id
++
++     e2e_tdl: ATM_IE_E2E_TDL ie_e2e_tdl
++
++     qos: ATM_IE_QOS ie_qos
++     bbrep: ATM_IE_BBREP ie_bbrep
++     restart: ATM_IE_RESTART ie_restart
++     bbs_comp: ATM_IE_BBS_COMP ie_bbs_comp
++     tns: ATM_IE_TNS ie_tns
++
++     notify: ATM_IE_NOTIFY ie_notify
++     oam_td: ATM_IE_OAM_TD ie_oam_td
++     git: ATM_IE_GIT ie_git
++     git2: ATM_IE_GIT ie_git
++     git3: ATM_IE_GIT ie_git
++     lij_id: ATM_IE_LIJ_ID ie_lij_id
++     lij_prm: ATM_IE_LIJ_PRM ie_lij_prm
++     leaf_sn: ATM_IE_LEAF_SN ie_leaf_sn
++     scope_sel: ATM_IE_SCOPE_SEL ie_scope_sel
++     alt_td: ATM_IE_ALT_TD ie_alt_td
++     min_td: ATM_IE_MIN_TD ie_min_td
++     eqos: ATM_IE_EQOS ie_eqos
++     abr_add_prm:ATM_IE_ABR_ADD_PRM ie_abr_add_prm
++     abr_set_prm:ATM_IE_ABR_SET_PRM ie_abr_set_prm
++
++     ep_ref: ATM_IE_EPR ie_ep_ref
++     ep_state: ATM_IE_EP_STATE ie_ep_state
++
++     bbrt: ATM_IE_BBRT ie_bbrt
++
++     default 0 {
++  _ext <1@8,more> = 1 __cs "q2931_cs" <2@6,more> = 0 _flag "atm_flag" <1@5,more> = ATM_FLAG_NO _action_ind "atm_ai_ie" <3@1> = 0 _ie_len <16> = recover RECOV_IND_IE length
++      abort RECOV_ASE_UNKNOWN_IE
++     }
++ }
++    }
++}
+--- linux-atm-2.4.1.orig/src/saal/Makefile.in
++++ linux-atm-2.4.1/src/saal/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -87,8 +87,7 @@
+ noinst_LIBRARIES = libsaal.a
+-libsaal_a_SOURCES = pdu.h queue.h saal.h sscf.h sscop.h pdu.c queue.c saal.c \
+-                      sscf.c  sscop.c
++libsaal_a_SOURCES = pdu.h queue.h saal.h sscf.h sscop.h pdu.c queue.c saal.c                  sscf.c  sscop.c
+ mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+ CONFIG_HEADER = ../../config.h
+@@ -114,8 +113,10 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/pdu.P .deps/queue.P .deps/saal.P .deps/sscf.P \
++.deps/sscop.P
+ SOURCES = $(libsaal_a_SOURCES)
+ OBJECTS = $(libsaal_a_OBJECTS)
+@@ -123,9 +124,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/saal/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/saal/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -139,9 +140,6 @@
+ maintainer-clean-noinstLIBRARIES:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -164,9 +162,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -206,7 +201,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -222,6 +217,11 @@
+ subdir = src/saal
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/saal/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -232,20 +232,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-pdu.o: pdu.c ../../config.h ../../src/include/stdint.h pdu.h \
+-      ../../src/include/atmd.h ../../src/include/atm.h
+-queue.o: queue.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h queue.h
+-saal.o: saal.c ../../config.h sscop.h ../../src/include/stdint.h \
+-      ../../src/include/atmd.h ../../src/include/atm.h queue.h saal.h \
+-      sscf.h
+-sscf.o: sscf.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h sscop.h \
+-      queue.h sscf.h
+-sscop.o: sscop.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atmd.h ../../src/include/atm.h sscop.h \
+-      queue.h pdu.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -282,27 +300,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -313,12 +331,14 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/sigd/Makefile.in
++++ linux-atm-2.4.1/src/sigd/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -88,14 +88,9 @@
+ INCLUDES = -I$(top_builddir)/src/qgen -I$(top_builddir)/src/saal -I.
+ sbin_PROGRAMS = atmsigd
+-atmsigd_SOURCES = atmsigd.c io.c io.h kernel.c proto.c proto.h uni.c \
+-                      sap.c sap.h timeout.c timeout.h trace.c trace.h \
+-                      policy.c policy.h cfg_y.y cfg_l.l
+-
+-atmsigd_XTRAS = mess.o $(top_builddir)/src/qgen/q.out.o \
+-                      $(top_builddir)/src/qgen/qd.dump.o \
+-                      $(top_builddir)/src/lib/libatm.la \
+-                      $(top_builddir)/src/saal/libsaal.a
++atmsigd_SOURCES = atmsigd.c io.c io.h kernel.c proto.c proto.h uni.c                  sap.c sap.h timeout.c timeout.h trace.c trace.h                         policy.c policy.h cfg_y.y cfg_l.l
++
++atmsigd_XTRAS = mess.o $(top_builddir)/src/qgen/q.out.o                       $(top_builddir)/src/qgen/qd.dump.o                      $(top_builddir)/src/lib/libatm.la                       $(top_builddir)/src/saal/libsaal.a
+ atmsigd_LDADD = $(atmsigd_XTRAS) -lfl
+ atmsigd_DEPENDENCIES = mess.c $(atmsigd_XTRAS)
+@@ -140,8 +135,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/atmsigd.P .deps/cfg_l.P .deps/cfg_y.P .deps/io.P \
++.deps/kernel.P .deps/policy.P .deps/proto.P .deps/sap.P .deps/timeout.P \
++.deps/trace.P .deps/uni.P
+ SOURCES = $(atmsigd_SOURCES)
+ OBJECTS = $(atmsigd_OBJECTS)
+@@ -149,9 +147,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .l .lo .o .obj .s .y
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/sigd/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/sigd/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -181,9 +179,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -206,9 +201,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -347,7 +339,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -363,6 +355,11 @@
+ subdir = src/sigd
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/sigd/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -373,69 +370,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-atmsigd.o: atmsigd.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/qgen/qlib.h io.h proto.h ../../src/include/atmsap.h \
+-      ../../src/saal/saal.h ../../src/saal/sscf.h \
+-      ../../src/saal/sscop.h ../../src/saal/queue.h trace.h
+-cfg_l.o: cfg_l.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h cfg_y.h
+-cfg_y.o: cfg_y.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h proto.h \
+-      ../../src/include/atmsap.h ../../src/saal/saal.h \
+-      ../../src/saal/sscf.h ../../src/saal/sscop.h \
+-      ../../src/saal/queue.h io.h trace.h policy.h
+-io.o: io.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/qgen/uni.h ../../src/saal/pdu.h proto.h \
+-      ../../src/include/atmsap.h ../../src/saal/saal.h \
+-      ../../src/saal/sscf.h ../../src/saal/sscop.h \
+-      ../../src/saal/queue.h io.h trace.h
+-kernel.o: kernel.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/qgen/uni.h ../../src/qgen/qlib.h \
+-      ../../src/qgen/q.out.h proto.h ../../src/include/atmsap.h \
+-      ../../src/saal/saal.h ../../src/saal/sscf.h \
+-      ../../src/saal/sscop.h ../../src/saal/queue.h sap.h io.h \
+-      policy.h timeout.h
+-mess.o: mess.c ../../config.h
+-policy.o: policy.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h proto.h \
+-      ../../src/include/atmsap.h ../../src/saal/saal.h \
+-      ../../src/saal/sscf.h ../../src/saal/sscop.h \
+-      ../../src/saal/queue.h policy.h
+-proto.o: proto.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h \
+-      ../../src/qgen/uni.h ../../src/qgen/qlib.h \
+-      ../../src/qgen/q.out.h io.h proto.h ../../src/include/atmsap.h \
+-      ../../src/saal/saal.h ../../src/saal/sscf.h \
+-      ../../src/saal/sscop.h ../../src/saal/queue.h sap.h
+-sap.o: sap.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/qgen/uni.h ../../src/qgen/qlib.h \
+-      ../../src/qgen/q.out.h ../../src/qgen/common.h proto.h \
+-      ../../src/include/atmsap.h ../../src/saal/saal.h \
+-      ../../src/saal/sscf.h ../../src/saal/sscop.h \
+-      ../../src/saal/queue.h sap.h
+-timeout.o: timeout.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/qgen/uni.h proto.h ../../src/include/atmsap.h \
+-      ../../src/saal/saal.h ../../src/saal/sscf.h \
+-      ../../src/saal/sscop.h ../../src/saal/queue.h timeout.h
+-trace.o: trace.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/include/atmsap.h trace.h proto.h \
+-      ../../src/saal/saal.h ../../src/saal/sscf.h \
+-      ../../src/saal/sscop.h ../../src/saal/queue.h \
+-      ../../src/qgen/qlib.h
+-uni.o: uni.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h \
+-      ../../src/qgen/uni.h ../../src/qgen/qlib.h \
+-      ../../src/qgen/q.out.h proto.h ../../src/include/atmsap.h \
+-      ../../src/saal/saal.h ../../src/saal/sscf.h \
+-      ../../src/saal/sscop.h ../../src/saal/queue.h sap.h io.h \
+-      policy.h timeout.h trace.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -474,29 +440,29 @@
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ maintainer-clean-generic:
+-      -test -z "cfg_llcfg_yhcfg_yc" || rm -f cfg_ll cfg_yh cfg_yc
++      -test -z "cfg_lccfg_yhcfg_yc" || rm -f cfg_lc cfg_yh cfg_yc
+ mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-sbinPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -509,12 +475,14 @@
+ distclean-libtool clean-libtool maintainer-clean-libtool install-man4 \
+ uninstall-man4 install-man8 uninstall-man8 install-man uninstall-man \
+ uninstall-sysconfDATA install-sysconfDATA tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ mess.c:       $(top_builddir)/src/qgen/uni.h mkmess.pl
+--- linux-atm-2.4.1.orig/src/sigd/cfg_y.c
++++ linux-atm-2.4.1/src/sigd/cfg_y.c
+@@ -1,46 +1,137 @@
++/* A Bison parser, made by GNU Bison 1.875d.  */
+-/*  A Bison parser, made from cfg_y.y
+-    by GNU Bison version 1.28  */
++/* Skeleton parser for Yacc-like parsing with Bison,
++   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+-#define YYBISON 1  /* Identify Bison output.  */
++   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, or (at your option)
++   any later version.
+-#define       TOK_LEVEL       257
+-#define       TOK_DEBUG       258
+-#define       TOK_INFO        259
+-#define       TOK_WARN        260
+-#define       TOK_ERROR       261
+-#define       TOK_FATAL       262
+-#define       TOK_SIG 263
+-#define       TOK_UNI30       264
+-#define       TOK_UNI31       265
+-#define       TOK_UNI40       266
+-#define       TOK_Q2963_1     267
+-#define       TOK_SAAL        268
+-#define       TOK_VC  269
+-#define       TOK_IO  270
+-#define       TOK_MODE        271
+-#define       TOK_USER        272
+-#define       TOK_NET 273
+-#define       TOK_SWITCH      274
+-#define       TOK_VPCI        275
+-#define       TOK_ITF 276
+-#define       TOK_PCR 277
+-#define       TOK_TRACE       278
+-#define       TOK_POLICY      279
+-#define       TOK_ALLOW       280
+-#define       TOK_REJECT      281
+-#define       TOK_ENTITY      282
+-#define       TOK_DEFAULT     283
+-#define       TOK_NUMBER      284
+-#define       TOK_MAX_RATE    285
+-#define       TOK_DUMP_DIR    286
+-#define       TOK_LOGFILE     287
+-#define       TOK_QOS 288
+-#define       TOK_FROM        289
+-#define       TOK_TO  290
+-#define       TOK_ROUTE       291
+-#define       TOK_PVC 292
++   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-1307, USA.  */
++
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
++
++/* Written by Richard Stallman by simplifying the original so called
++   ``semantic'' parser.  */
++
++/* All symbols defined below should begin with yy or YY, to avoid
++   infringing on user name space.  This should be done even for local
++   variables, as they might otherwise be expanded by user macros.
++   There are some unavoidable exceptions within include files to
++   define necessary library symbols; they are noted "INFRINGES ON
++   USER NAME SPACE" below.  */
++
++/* Identify Bison output.  */
++#define YYBISON 1
++
++/* Skeleton name.  */
++#define YYSKELETON_NAME "yacc.c"
++
++/* Pure parsers.  */
++#define YYPURE 0
++
++/* Using locations.  */
++#define YYLSP_NEEDED 0
++
++
++
++/* Tokens.  */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++   /* Put the tokens into the symbol table, so that GDB and other debuggers
++      know about them.  */
++   enum yytokentype {
++     TOK_LEVEL = 258,
++     TOK_DEBUG = 259,
++     TOK_INFO = 260,
++     TOK_WARN = 261,
++     TOK_ERROR = 262,
++     TOK_FATAL = 263,
++     TOK_SIG = 264,
++     TOK_UNI30 = 265,
++     TOK_UNI31 = 266,
++     TOK_UNI40 = 267,
++     TOK_Q2963_1 = 268,
++     TOK_SAAL = 269,
++     TOK_VC = 270,
++     TOK_IO = 271,
++     TOK_MODE = 272,
++     TOK_USER = 273,
++     TOK_NET = 274,
++     TOK_SWITCH = 275,
++     TOK_VPCI = 276,
++     TOK_ITF = 277,
++     TOK_PCR = 278,
++     TOK_TRACE = 279,
++     TOK_POLICY = 280,
++     TOK_ALLOW = 281,
++     TOK_REJECT = 282,
++     TOK_ENTITY = 283,
++     TOK_DEFAULT = 284,
++     TOK_NUMBER = 285,
++     TOK_MAX_RATE = 286,
++     TOK_DUMP_DIR = 287,
++     TOK_LOGFILE = 288,
++     TOK_QOS = 289,
++     TOK_FROM = 290,
++     TOK_TO = 291,
++     TOK_ROUTE = 292,
++     TOK_PVC = 293
++   };
++#endif
++#define TOK_LEVEL 258
++#define TOK_DEBUG 259
++#define TOK_INFO 260
++#define TOK_WARN 261
++#define TOK_ERROR 262
++#define TOK_FATAL 263
++#define TOK_SIG 264
++#define TOK_UNI30 265
++#define TOK_UNI31 266
++#define TOK_UNI40 267
++#define TOK_Q2963_1 268
++#define TOK_SAAL 269
++#define TOK_VC 270
++#define TOK_IO 271
++#define TOK_MODE 272
++#define TOK_USER 273
++#define TOK_NET 274
++#define TOK_SWITCH 275
++#define TOK_VPCI 276
++#define TOK_ITF 277
++#define TOK_PCR 278
++#define TOK_TRACE 279
++#define TOK_POLICY 280
++#define TOK_ALLOW 281
++#define TOK_REJECT 282
++#define TOK_ENTITY 283
++#define TOK_DEFAULT 284
++#define TOK_NUMBER 285
++#define TOK_MAX_RATE 286
++#define TOK_DUMP_DIR 287
++#define TOK_LOGFILE 288
++#define TOK_QOS 289
++#define TOK_FROM 290
++#define TOK_TO 291
++#define TOK_ROUTE 292
++#define TOK_PVC 293
++
++
++
++
++/* Copy the first part of user declarations.  */
+ #line 1 "cfg_y.y"
+ /* cfg.y - configuration language */
+@@ -51,6 +142,7 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
+ #include <string.h>
+ #include <ctype.h>
+ #include <limits.h>
+@@ -63,6 +155,8 @@
+ #include "trace.h"
+ #include "policy.h"
++extern void yywarn(const char *s);
++extern void yyerror(const char *s);
+ static RULE *rule;
+ static SIG_ENTITY *curr_sig = &_entity;
+@@ -93,516 +187,830 @@
+ }
+-#line 53 "cfg_y.y"
+-typedef union {
++
++/* Enabling traces.  */
++#ifndef YYDEBUG
++# define YYDEBUG 0
++#endif
++
++/* Enabling verbose error messages.  */
++#ifdef YYERROR_VERBOSE
++# undef YYERROR_VERBOSE
++# define YYERROR_VERBOSE 1
++#else
++# define YYERROR_VERBOSE 0
++#endif
++
++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#line 56 "cfg_y.y"
++typedef union YYSTYPE {
+     int num;
+     char *str;
+     struct sockaddr_atmpvc pvc;
+ } YYSTYPE;
+-#include <stdio.h>
++/* Line 191 of yacc.c.  */
++#line 213 "y.tab.c"
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++# define YYSTYPE_IS_TRIVIAL 1
++#endif
++
++
++
++/* Copy the second part of user declarations.  */
++
++
++/* Line 214 of yacc.c.  */
++#line 225 "y.tab.c"
++
++#if ! defined (yyoverflow) || YYERROR_VERBOSE
++
++# ifndef YYFREE
++#  define YYFREE free
++# endif
++# ifndef YYMALLOC
++#  define YYMALLOC malloc
++# endif
++
++/* The parser invokes alloca or malloc; define the necessary symbols.  */
++
++# ifdef YYSTACK_USE_ALLOCA
++#  if YYSTACK_USE_ALLOCA
++#   define YYSTACK_ALLOC alloca
++#  endif
++# else
++#  if defined (alloca) || defined (_ALLOCA_H)
++#   define YYSTACK_ALLOC alloca
++#  else
++#   ifdef __GNUC__
++#    define YYSTACK_ALLOC __builtin_alloca
++#   endif
++#  endif
++# endif
++
++# ifdef YYSTACK_ALLOC
++   /* Pacify GCC's `empty if-body' warning. */
++#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
++# else
++#  if defined (__STDC__) || defined (__cplusplus)
++#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++#   define YYSIZE_T size_t
++#  endif
++#  define YYSTACK_ALLOC YYMALLOC
++#  define YYSTACK_FREE YYFREE
++# endif
++#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++
++
++#if (! defined (yyoverflow) \
++     && (! defined (__cplusplus) \
++       || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
++
++/* A type that is properly aligned for any stack member.  */
++union yyalloc
++{
++  short int yyss;
++  YYSTYPE yyvs;
++  };
++
++/* The size of the maximum gap between one aligned stack and the next.  */
++# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
++
++/* The size of an array large to enough to hold all stacks, each with
++   N elements.  */
++# define YYSTACK_BYTES(N) \
++     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                   \
++      + YYSTACK_GAP_MAXIMUM)
++
++/* Copy COUNT objects from FROM to TO.  The source and destination do
++   not overlap.  */
++# ifndef YYCOPY
++#  if defined (__GNUC__) && 1 < __GNUC__
++#   define YYCOPY(To, From, Count) \
++      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
++#  else
++#   define YYCOPY(To, From, Count)            \
++      do                                      \
++      {                                       \
++        register YYSIZE_T yyi;                \
++        for (yyi = 0; yyi < (Count); yyi++)   \
++          (To)[yyi] = (From)[yyi];            \
++      }                                       \
++      while (0)
++#  endif
++# endif
++
++/* Relocate STACK from its old location to the new one.  The
++   local variables YYSIZE and YYSTACKSIZE give the old and new number of
++   elements in the stack, and YYPTR gives the new location of the
++   stack.  Advance YYPTR to a properly aligned location for the next
++   stack.  */
++# define YYSTACK_RELOCATE(Stack)                                      \
++    do                                                                        \
++      {                                                                       \
++      YYSIZE_T yynewbytes;                                            \
++      YYCOPY (&yyptr->Stack, Stack, yysize);                          \
++      Stack = &yyptr->Stack;                                          \
++      yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
++      yyptr += yynewbytes / sizeof (*yyptr);                          \
++      }                                                                       \
++    while (0)
+-#ifndef __cplusplus
+-#ifndef __STDC__
+-#define const
+-#endif
+ #endif
++#if defined (__STDC__) || defined (__cplusplus)
++   typedef signed char yysigned_char;
++#else
++   typedef short int yysigned_char;
++#endif
+-
+-#define       YYFINAL         117
+-#define       YYFLAG          -32768
+-#define       YYNTBASE        41
+-
+-#define YYTRANSLATE(x) ((unsigned)(x) <= 292 ? yytranslate[x] : 71)
+-
+-static const char yytranslate[] = {     0,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,    39,     2,    40,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+-     7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
+-    17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+-    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+-    37,    38
++/* YYFINAL -- State number of the termination state. */
++#define YYFINAL  53
++/* YYLAST -- Last index in YYTABLE.  */
++#define YYLAST   108
++
++/* YYNTOKENS -- Number of terminals. */
++#define YYNTOKENS  41
++/* YYNNTS -- Number of nonterminals. */
++#define YYNNTS  31
++/* YYNRULES -- Number of rules. */
++#define YYNRULES  79
++/* YYNRULES -- Number of states. */
++#define YYNSTATES  117
++
++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
++#define YYUNDEFTOK  2
++#define YYMAXUTOK   293
++
++#define YYTRANSLATE(YYX)                                              \
++  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
++
++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
++static const unsigned char yytranslate[] =
++{
++       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,    39,     2,    40,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
++       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
++      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
++      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
++      35,    36,    37,    38
+ };
+-#if YYDEBUG != 0
+-static const short yyprhs[] = {     0,
+-     0,     3,     4,     7,     8,    11,    14,    17,    20,    23,
+-    26,    29,    30,    35,    36,    40,    41,    44,    49,    52,
+-    54,    56,    58,    60,    62,    66,    67,    70,    72,    76,
+-    77,    80,    82,    86,    87,    90,    92,    96,    97,   100,
+-   102,   106,   107,   110,   113,   118,   120,   122,   124,   126,
+-   128,   131,   134,   137,   140,   143,   145,   147,   150,   152,
+-   154,   157,   158,   160,   162,   164,   166,   168,   170,   172,
+-   174,   176,   179,   180,   184,   186,   188,   190
++#if YYDEBUG
++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
++   YYRHS.  */
++static const unsigned char yyprhs[] =
++{
++       0,     0,     3,     6,     7,    10,    11,    14,    17,    20,
++      23,    26,    29,    32,    33,    38,    39,    43,    44,    47,
++      52,    55,    57,    59,    61,    63,    65,    69,    70,    73,
++      75,    79,    80,    83,    85,    89,    90,    93,    95,    99,
++     100,   103,   105,   109,   110,   113,   116,   121,   123,   125,
++     127,   129,   131,   134,   137,   140,   143,   146,   148,   150,
++     153,   155,   157,   160,   161,   163,   165,   167,   169,   171,
++     173,   175,   177,   179,   182,   183,   187,   189,   191,   193
+ };
+-static const short yyrhs[] = {    42,
+-    43,     0,     0,    44,    42,     0,     0,    45,    43,     0,
+-     3,    65,     0,     9,    50,     0,    14,    52,     0,    16,
+-    54,     0,     4,    56,     0,    25,    58,     0,     0,    28,
+-    38,    46,    47,     0,     0,    39,    48,    40,     0,     0,
+-    49,    48,     0,    21,    30,    22,    30,     0,    17,    66,
+-     0,    34,     0,    31,     0,    37,     0,    29,     0,    60,
+-     0,    39,    51,    40,     0,     0,    60,    51,     0,    61,
+-     0,    39,    53,    40,     0,     0,    61,    53,     0,    62,
+-     0,    39,    55,    40,     0,     0,    62,    55,     0,    63,
+-     0,    39,    57,    40,     0,     0,    63,    57,     0,    67,
+-     0,    39,    59,    40,     0,     0,    67,    59,     0,     3,
+-    65,     0,    21,    30,    22,    30,     0,    10,     0,    11,
+-     0,    12,     0,    13,     0,    19,     0,    17,    66,     0,
+-     3,    65,     0,     3,    65,     0,    15,    38,     0,    23,
+-    30,     0,    34,     0,    31,     0,     3,    65,     0,    32,
+-     0,    33,     0,    24,    64,     0,     0,    30,     0,     4,
+-     0,     5,     0,     6,     0,     7,     0,     8,     0,    18,
+-     0,    19,     0,    20,     0,     3,    65,     0,     0,    69,
+-    68,    70,     0,    26,     0,    27,     0,    35,     0,    36,
+-     0
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yysigned_char yyrhs[] =
++{
++      42,     0,    -1,    43,    44,    -1,    -1,    45,    43,    -1,
++      -1,    46,    44,    -1,     3,    66,    -1,     9,    51,    -1,
++      14,    53,    -1,    16,    55,    -1,     4,    57,    -1,    25,
++      59,    -1,    -1,    28,    38,    47,    48,    -1,    -1,    39,
++      49,    40,    -1,    -1,    50,    49,    -1,    21,    30,    22,
++      30,    -1,    17,    67,    -1,    34,    -1,    31,    -1,    37,
++      -1,    29,    -1,    61,    -1,    39,    52,    40,    -1,    -1,
++      61,    52,    -1,    62,    -1,    39,    54,    40,    -1,    -1,
++      62,    54,    -1,    63,    -1,    39,    56,    40,    -1,    -1,
++      63,    56,    -1,    64,    -1,    39,    58,    40,    -1,    -1,
++      64,    58,    -1,    68,    -1,    39,    60,    40,    -1,    -1,
++      68,    60,    -1,     3,    66,    -1,    21,    30,    22,    30,
++      -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,    19,
++      -1,    17,    67,    -1,     3,    66,    -1,     3,    66,    -1,
++      15,    38,    -1,    23,    30,    -1,    34,    -1,    31,    -1,
++       3,    66,    -1,    32,    -1,    33,    -1,    24,    65,    -1,
++      -1,    30,    -1,     4,    -1,     5,    -1,     6,    -1,     7,
++      -1,     8,    -1,    18,    -1,    19,    -1,    20,    -1,     3,
++      66,    -1,    -1,    70,    69,    71,    -1,    26,    -1,    27,
++      -1,    35,    -1,    36,    -1
+ };
+-#endif
+-
+-#if YYDEBUG != 0
+-static const short yyrline[] = { 0,
+-    73,    77,    78,    81,    82,   105,   110,   111,   112,   113,
+-   114,   117,   138,   140,   141,   144,   145,   148,   153,   154,
+-   158,   162,   176,   182,   184,   187,   188,   191,   193,   196,
+-   197,   200,   202,   205,   206,   209,   211,   214,   215,   218,
+-   220,   223,   224,   227,   234,   238,   247,   256,   265,   274,
+-   279,   282,   290,   295,   299,   304,   308,   314,   319,   324,
+-   328,   334,   338,   344,   349,   353,   357,   361,   367,   372,
+-   376,   382,   387,   393,   395,   400,   406,   412
++/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
++static const unsigned short int yyrline[] =
++{
++       0,    77,    77,    80,    81,    84,    85,   109,   113,   114,
++     115,   116,   117,   122,   121,   151,   152,   155,   156,   160,
++     164,   165,   169,   173,   187,   194,   195,   198,   199,   203,
++     204,   207,   208,   212,   213,   216,   217,   221,   222,   225,
++     226,   230,   231,   234,   235,   239,   245,   249,   258,   267,
++     276,   285,   290,   294,   302,   306,   310,   315,   319,   326,
++     330,   335,   339,   346,   349,   356,   360,   364,   368,   372,
++     379,   383,   387,   394,   399,   398,   407,   411,   418,   423
+ };
+ #endif
+-
+-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+-
+-static const char * const yytname[] = {   "$","error","$undefined.","TOK_LEVEL",
+-"TOK_DEBUG","TOK_INFO","TOK_WARN","TOK_ERROR","TOK_FATAL","TOK_SIG","TOK_UNI30",
+-"TOK_UNI31","TOK_UNI40","TOK_Q2963_1","TOK_SAAL","TOK_VC","TOK_IO","TOK_MODE",
+-"TOK_USER","TOK_NET","TOK_SWITCH","TOK_VPCI","TOK_ITF","TOK_PCR","TOK_TRACE",
+-"TOK_POLICY","TOK_ALLOW","TOK_REJECT","TOK_ENTITY","TOK_DEFAULT","TOK_NUMBER",
+-"TOK_MAX_RATE","TOK_DUMP_DIR","TOK_LOGFILE","TOK_QOS","TOK_FROM","TOK_TO","TOK_ROUTE",
+-"TOK_PVC","'{'","'}'","all","global","local","item","entity","@1","opt_options",
+-"options","option","sig","sig_items","saal","saal_items","io","io_items","debug",
+-"debug_items","policy","policy_items","sig_item","saal_item","io_item","debug_item",
+-"opt_trace_size","level","mode","policy_item","@2","action","direction", NULL
++#if YYDEBUG || YYERROR_VERBOSE
++/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++static const char *const yytname[] =
++{
++  "$end", "error", "$undefined", "TOK_LEVEL", "TOK_DEBUG", "TOK_INFO",
++  "TOK_WARN", "TOK_ERROR", "TOK_FATAL", "TOK_SIG", "TOK_UNI30",
++  "TOK_UNI31", "TOK_UNI40", "TOK_Q2963_1", "TOK_SAAL", "TOK_VC", "TOK_IO",
++  "TOK_MODE", "TOK_USER", "TOK_NET", "TOK_SWITCH", "TOK_VPCI", "TOK_ITF",
++  "TOK_PCR", "TOK_TRACE", "TOK_POLICY", "TOK_ALLOW", "TOK_REJECT",
++  "TOK_ENTITY", "TOK_DEFAULT", "TOK_NUMBER", "TOK_MAX_RATE",
++  "TOK_DUMP_DIR", "TOK_LOGFILE", "TOK_QOS", "TOK_FROM", "TOK_TO",
++  "TOK_ROUTE", "TOK_PVC", "'{'", "'}'", "$accept", "all", "global",
++  "local", "item", "entity", "@1", "opt_options", "options", "option",
++  "sig", "sig_items", "saal", "saal_items", "io", "io_items", "debug",
++  "debug_items", "policy", "policy_items", "sig_item", "saal_item",
++  "io_item", "debug_item", "opt_trace_size", "level", "mode",
++  "policy_item", "@2", "action", "direction", 0
+ };
+ #endif
+-static const short yyr1[] = {     0,
+-    41,    42,    42,    43,    43,    44,    44,    44,    44,    44,
+-    44,    46,    45,    47,    47,    48,    48,    49,    49,    49,
+-    49,    49,    49,    50,    50,    51,    51,    52,    52,    53,
+-    53,    54,    54,    55,    55,    56,    56,    57,    57,    58,
+-    58,    59,    59,    60,    60,    60,    60,    60,    60,    60,
+-    60,    61,    62,    62,    62,    62,    62,    63,    63,    63,
+-    63,    64,    64,    65,    65,    65,    65,    65,    66,    66,
+-    66,    67,    68,    67,    69,    69,    70,    70
++# ifdef YYPRINT
++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
++   token YYLEX-NUM.  */
++static const unsigned short int yytoknum[] =
++{
++       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
++     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
++     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
++     285,   286,   287,   288,   289,   290,   291,   292,   293,   123,
++     125
+ };
++# endif
+-static const short yyr2[] = {     0,
+-     2,     0,     2,     0,     2,     2,     2,     2,     2,     2,
+-     2,     0,     4,     0,     3,     0,     2,     4,     2,     1,
+-     1,     1,     1,     1,     3,     0,     2,     1,     3,     0,
+-     2,     1,     3,     0,     2,     1,     3,     0,     2,     1,
+-     3,     0,     2,     2,     4,     1,     1,     1,     1,     1,
+-     2,     2,     2,     2,     2,     1,     1,     2,     1,     1,
+-     2,     0,     1,     1,     1,     1,     1,     1,     1,     1,
+-     1,     2,     0,     3,     1,     1,     1,     1
++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
++static const unsigned char yyr1[] =
++{
++       0,    41,    42,    43,    43,    44,    44,    45,    45,    45,
++      45,    45,    45,    47,    46,    48,    48,    49,    49,    50,
++      50,    50,    50,    50,    50,    51,    51,    52,    52,    53,
++      53,    54,    54,    55,    55,    56,    56,    57,    57,    58,
++      58,    59,    59,    60,    60,    61,    61,    61,    61,    61,
++      61,    61,    61,    62,    63,    63,    63,    63,    63,    64,
++      64,    64,    64,    65,    65,    66,    66,    66,    66,    66,
++      67,    67,    67,    68,    69,    68,    70,    70,    71,    71
+ };
+-static const short yydefact[] = {     2,
+-     0,     0,     0,     0,     0,     0,     4,     2,    64,    65,
+-    66,    67,    68,     6,     0,    62,    59,    60,    38,    10,
+-    36,     0,    46,    47,    48,    49,     0,    50,     0,    26,
+-     7,    24,     0,    30,     8,    28,     0,     0,     0,    57,
+-    56,    34,     9,    32,     0,    75,    76,    42,    11,    40,
+-    73,     0,     1,     4,     3,    58,    63,    61,     0,    38,
+-    44,    69,    70,    71,    51,     0,     0,    26,    52,     0,
+-    30,    53,    54,    55,     0,    34,    72,     0,    42,     0,
+-    12,     5,    37,    39,     0,    25,    27,    29,    31,    33,
+-    35,    41,    43,    77,    78,    74,    14,    45,    16,    13,
+-     0,     0,    23,    21,    20,    22,     0,    16,    19,     0,
+-    15,    17,     0,    18,     0,     0,     0
++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
++static const unsigned char yyr2[] =
++{
++       0,     2,     2,     0,     2,     0,     2,     2,     2,     2,
++       2,     2,     2,     0,     4,     0,     3,     0,     2,     4,
++       2,     1,     1,     1,     1,     1,     3,     0,     2,     1,
++       3,     0,     2,     1,     3,     0,     2,     1,     3,     0,
++       2,     1,     3,     0,     2,     2,     4,     1,     1,     1,
++       1,     1,     2,     2,     2,     2,     2,     1,     1,     2,
++       1,     1,     2,     0,     1,     1,     1,     1,     1,     1,
++       1,     1,     1,     2,     0,     3,     1,     1,     1,     1
+ };
+-static const short yydefgoto[] = {   115,
+-     7,    53,     8,    54,    97,   100,   107,   108,    31,    67,
+-    35,    70,    43,    75,    20,    59,    49,    78,    68,    71,
+-    76,    60,    58,    14,    65,    79,    80,    51,    96
++/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
++   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
++   means the default is an error.  */
++static const unsigned char yydefact[] =
++{
++       3,     0,     0,     0,     0,     0,     0,     0,     5,     3,
++      65,    66,    67,    68,    69,     7,     0,    63,    60,    61,
++      39,    11,    37,     0,    47,    48,    49,    50,     0,    51,
++       0,    27,     8,    25,     0,    31,     9,    29,     0,     0,
++       0,    58,    57,    35,    10,    33,     0,    76,    77,    43,
++      12,    41,    74,     1,     0,     2,     5,     4,    59,    64,
++      62,     0,    39,    45,    70,    71,    72,    52,     0,     0,
++      27,    53,     0,    31,    54,    55,    56,     0,    35,    73,
++       0,    43,     0,    13,     6,    38,    40,     0,    26,    28,
++      30,    32,    34,    36,    42,    44,    78,    79,    75,    15,
++      46,    17,    14,     0,     0,    24,    22,    21,    23,     0,
++      17,    20,     0,    16,    18,     0,    19
+ };
+-static const short yypact[] = {    52,
+-   100,     1,    -3,    -1,    -2,     0,   -17,    52,-32768,-32768,
+--32768,-32768,-32768,-32768,   100,   -18,-32768,-32768,    25,-32768,
+--32768,   100,-32768,-32768,-32768,-32768,    60,-32768,   -15,    82,
+--32768,-32768,   100,    14,-32768,-32768,   100,   -19,   -10,-32768,
+--32768,    20,-32768,-32768,   100,-32768,-32768,    19,-32768,-32768,
+--32768,   -14,-32768,   -17,-32768,-32768,-32768,-32768,    -9,    25,
+--32768,-32768,-32768,-32768,-32768,     8,     2,    82,-32768,     4,
+-    14,-32768,-32768,-32768,     7,    20,-32768,    10,    19,   -30,
+--32768,-32768,-32768,-32768,    22,-32768,-32768,-32768,-32768,-32768,
+--32768,-32768,-32768,-32768,-32768,-32768,    21,-32768,    53,-32768,
+-    60,    23,-32768,-32768,-32768,-32768,    24,    53,-32768,    40,
+--32768,-32768,    35,-32768,    67,    69,-32768
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yysigned_char yydefgoto[] =
++{
++      -1,     7,     8,    55,     9,    56,    99,   102,   109,   110,
++      32,    69,    36,    72,    44,    77,    21,    61,    50,    80,
++      70,    73,    78,    62,    60,    15,    67,    81,    82,    52,
++      98
+ };
+-static const short yypgoto[] = {-32768,
+-    64,    27,-32768,-32768,-32768,-32768,   -35,-32768,-32768,    15,
+--32768,     5,-32768,    12,-32768,    29,-32768,    -4,    83,    87,
+-    91,    95,-32768,    26,     9,    92,-32768,-32768,-32768
++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
++   STATE-NUM.  */
++#define YYPACT_NINF -31
++static const yysigned_char yypact[] =
++{
++      53,    69,     1,    -3,    -1,    -2,     0,    11,   -16,    53,
++     -31,   -31,   -31,   -31,   -31,   -31,    69,   -15,   -31,   -31,
++      28,   -31,   -31,    69,   -31,   -31,   -31,   -31,    46,   -31,
++     -13,    80,   -31,   -31,    69,    16,   -31,   -31,    69,   -18,
++      -6,   -31,   -31,    20,   -31,   -31,    69,   -31,   -31,    19,
++     -31,   -31,   -31,   -31,   -10,   -31,   -16,   -31,   -31,   -31,
++     -31,     2,    28,   -31,   -31,   -31,   -31,   -31,     8,     4,
++      80,   -31,     7,    16,   -31,   -31,   -31,     9,    20,   -31,
++      10,    19,   -30,   -31,   -31,   -31,   -31,    23,   -31,   -31,
++     -31,   -31,   -31,   -31,   -31,   -31,   -31,   -31,   -31,    31,
++     -31,    51,   -31,    46,    49,   -31,   -31,   -31,   -31,    15,
++      51,   -31,    36,   -31,   -31,    54,   -31
+ };
+-
+-#define       YYLAST          110
+-
+-
+-static const short yytable[] = {    22,
+-    37,    33,    45,    15,    94,    95,    23,    24,    25,    26,
+-    52,    57,    38,    27,    66,    28,    33,    29,    73,    74,
+-    39,    45,    37,    81,    16,    46,    47,    15,    40,    85,
+-    83,    41,    17,    18,    38,    30,    42,    34,    48,    19,
+-    56,    86,    39,    88,    46,    47,    90,    61,    16,    92,
+-    40,    98,   110,    41,     1,     2,    17,    18,    69,    99,
+-     3,   113,    72,   111,   114,     4,   116,     5,   117,   101,
+-    77,    55,   112,   102,    93,    89,     6,    62,    63,    64,
+-    82,   103,    87,   104,    22,    32,   105,    91,    84,   106,
+-    36,    23,    24,    25,    26,    44,    21,    50,    27,     0,
+-    28,     0,    29,     9,    10,    11,    12,    13,     0,   109
++/* YYPGOTO[NTERM-NUM].  */
++static const yysigned_char yypgoto[] =
++{
++     -31,   -31,    72,    30,   -31,   -31,   -31,   -31,   -23,   -31,
++     -31,    24,   -31,    22,   -31,    18,   -31,    27,   -31,    17,
++      97,    98,    99,   101,   -31,    25,     3,   102,   -31,   -31,
++     -31
+ };
+-static const short yycheck[] = {     3,
+-     3,     3,     3,     3,    35,    36,    10,    11,    12,    13,
+-    28,    30,    15,    17,    30,    19,     3,    21,    38,    30,
+-    23,     3,     3,    38,    24,    26,    27,     3,    31,    22,
+-    40,    34,    32,    33,    15,    39,    39,    39,    39,    39,
+-    15,    40,    23,    40,    26,    27,    40,    22,    24,    40,
+-    31,    30,    30,    34,     3,     4,    32,    33,    33,    39,
+-     9,    22,    37,    40,    30,    14,     0,    16,     0,    17,
+-    45,     8,   108,    21,    79,    71,    25,    18,    19,    20,
+-    54,    29,    68,    31,     3,     3,    34,    76,    60,    37,
+-     4,    10,    11,    12,    13,     5,     2,     6,    17,    -1,
+-    19,    -1,    21,     4,     5,     6,     7,     8,    -1,   101
++/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
++   positive, shift that token.  If negative, reduce the rule which
++   number is the opposite.  If zero, do what YYDEFACT says.
++   If YYTABLE_NINF, syntax error.  */
++#define YYTABLE_NINF -1
++static const unsigned char yytable[] =
++{
++      23,    38,    34,    46,    16,    96,    97,    24,    25,    26,
++      27,    53,    54,    39,    28,    59,    29,    68,    30,    34,
++      75,    40,    46,    38,    76,    17,    47,    48,    83,    41,
++      87,    16,    42,    18,    19,    39,    31,    43,    35,    49,
++      20,    58,    85,    40,    88,    47,    48,    90,    63,    92,
++      94,    41,    17,   100,    42,   113,     1,     2,   115,    71,
++      18,    19,     3,    74,    64,    65,    66,     4,   103,     5,
++     101,    79,   104,    10,    11,    12,    13,    14,     6,   112,
++     105,    57,   106,    23,   116,   107,    84,   114,   108,    86,
++      24,    25,    26,    27,    89,    91,    93,    28,    95,    29,
++      33,    30,    37,    22,    45,     0,   111,     0,    51
+ };
+-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+-#line 3 "/usr/lib/bison.simple"
+-/* This file comes from bison-1.28.  */
+-
+-/* Skeleton output parser for bison,
+-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+-
+-   This program is free software; you can redistribute it and/or modify
+-   it under the terms of the GNU General Public License as published by
+-   the Free Software Foundation; either version 2, 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-1307, USA.  */
+-
+-/* As a special exception, when this file is copied by Bison into a
+-   Bison output file, you may use that output file without restriction.
+-   This special exception was added by the Free Software Foundation
+-   in version 1.24 of Bison.  */
++static const yysigned_char yycheck[] =
++{
++       3,     3,     3,     3,     3,    35,    36,    10,    11,    12,
++      13,     0,    28,    15,    17,    30,    19,    30,    21,     3,
++      38,    23,     3,     3,    30,    24,    26,    27,    38,    31,
++      22,     3,    34,    32,    33,    15,    39,    39,    39,    39,
++      39,    16,    40,    23,    40,    26,    27,    40,    23,    40,
++      40,    31,    24,    30,    34,    40,     3,     4,    22,    34,
++      32,    33,     9,    38,    18,    19,    20,    14,    17,    16,
++      39,    46,    21,     4,     5,     6,     7,     8,    25,    30,
++      29,     9,    31,     3,    30,    34,    56,   110,    37,    62,
++      10,    11,    12,    13,    70,    73,    78,    17,    81,    19,
++       3,    21,     4,     2,     5,    -1,   103,    -1,     6
++};
+-/* This is the parser code that is written into each bison parser
+-  when the %semantic_parser declaration is not specified in the grammar.
+-  It was written by Richard Stallman by simplifying the hairy parser
+-  used when %semantic_parser is specified.  */
+-
+-#ifndef YYSTACK_USE_ALLOCA
+-#ifdef alloca
+-#define YYSTACK_USE_ALLOCA
+-#else /* alloca not defined */
+-#ifdef __GNUC__
+-#define YYSTACK_USE_ALLOCA
+-#define alloca __builtin_alloca
+-#else /* not GNU C.  */
+-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+-#define YYSTACK_USE_ALLOCA
+-#include <alloca.h>
+-#else /* not sparc */
+-/* We think this test detects Watcom and Microsoft C.  */
+-/* This used to test MSDOS, but that is a bad idea
+-   since that symbol is in the user namespace.  */
+-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+-#if 0 /* No need for malloc.h, which pollutes the namespace;
+-       instead, just don't use alloca.  */
+-#include <malloc.h>
+-#endif
+-#else /* not MSDOS, or __TURBOC__ */
+-#if defined(_AIX)
+-/* I don't know what this was needed for, but it pollutes the namespace.
+-   So I turned it off.   rms, 2 May 1997.  */
+-/* #include <malloc.h>  */
+- #pragma alloca
+-#define YYSTACK_USE_ALLOCA
+-#else /* not MSDOS, or __TURBOC__, or _AIX */
+-#if 0
+-#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+-               and on HPUX 10.  Eventually we can turn this on.  */
+-#define YYSTACK_USE_ALLOCA
+-#define alloca __builtin_alloca
+-#endif /* __hpux */
+-#endif
+-#endif /* not _AIX */
+-#endif /* not MSDOS, or __TURBOC__ */
+-#endif /* not sparc */
+-#endif /* not GNU C */
+-#endif /* alloca not defined */
+-#endif /* YYSTACK_USE_ALLOCA not defined */
++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
++   symbol of state STATE-NUM.  */
++static const unsigned char yystos[] =
++{
++       0,     3,     4,     9,    14,    16,    25,    42,    43,    45,
++       4,     5,     6,     7,     8,    66,     3,    24,    32,    33,
++      39,    57,    64,     3,    10,    11,    12,    13,    17,    19,
++      21,    39,    51,    61,     3,    39,    53,    62,     3,    15,
++      23,    31,    34,    39,    55,    63,     3,    26,    27,    39,
++      59,    68,    70,     0,    28,    44,    46,    43,    66,    30,
++      65,    58,    64,    66,    18,    19,    20,    67,    30,    52,
++      61,    66,    54,    62,    66,    38,    30,    56,    63,    66,
++      60,    68,    69,    38,    44,    40,    58,    22,    40,    52,
++      40,    54,    40,    56,    40,    60,    35,    36,    71,    47,
++      30,    39,    48,    17,    21,    29,    31,    34,    37,    49,
++      50,    67,    30,    40,    49,    22,    30
++};
+-#ifdef YYSTACK_USE_ALLOCA
+-#define YYSTACK_ALLOC alloca
+-#else
+-#define YYSTACK_ALLOC malloc
++#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
++# define YYSIZE_T __SIZE_TYPE__
++#endif
++#if ! defined (YYSIZE_T) && defined (size_t)
++# define YYSIZE_T size_t
++#endif
++#if ! defined (YYSIZE_T)
++# if defined (__STDC__) || defined (__cplusplus)
++#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++#  define YYSIZE_T size_t
++# endif
++#endif
++#if ! defined (YYSIZE_T)
++# define YYSIZE_T unsigned int
+ #endif
+-
+-/* Note: there must be only one dollar sign in this file.
+-   It is replaced by the list of actions, each action
+-   as one case of the switch.  */
+ #define yyerrok               (yyerrstatus = 0)
+ #define yyclearin     (yychar = YYEMPTY)
+-#define YYEMPTY               -2
++#define YYEMPTY               (-2)
+ #define YYEOF         0
++
+ #define YYACCEPT      goto yyacceptlab
+-#define YYABORT       goto yyabortlab
+-#define YYERROR               goto yyerrlab1
+-/* Like YYERROR except do call yyerror.
+-   This remains here temporarily to ease the
+-   transition to the new meaning of YYERROR, for GCC.
++#define YYABORT               goto yyabortlab
++#define YYERROR               goto yyerrorlab
++
++
++/* Like YYERROR except do call yyerror.  This remains here temporarily
++   to ease the transition to the new meaning of YYERROR, for GCC.
+    Once GCC version 2 has supplanted version 1, this can go.  */
++
+ #define YYFAIL                goto yyerrlab
++
+ #define YYRECOVERING()  (!!yyerrstatus)
+-#define YYBACKUP(token, value) \
++
++#define YYBACKUP(Token, Value)                                        \
+ do                                                            \
+   if (yychar == YYEMPTY && yylen == 1)                                \
+-    { yychar = (token), yylval = (value);                     \
+-      yychar1 = YYTRANSLATE (yychar);                         \
++    {                                                         \
++      yychar = (Token);                                               \
++      yylval = (Value);                                               \
++      yytoken = YYTRANSLATE (yychar);                         \
+       YYPOPSTACK;                                             \
+       goto yybackup;                                          \
+     }                                                         \
+   else                                                                \
+-    { yyerror ("syntax error: cannot back up"); YYERROR; }    \
++    {                                                                 \
++      yyerror ("syntax error: cannot back up");\
++      YYERROR;                                                        \
++    }                                                         \
+ while (0)
+ #define YYTERROR      1
+ #define YYERRCODE     256
+-#ifndef YYPURE
+-#define YYLEX         yylex()
+-#endif
++/* YYLLOC_DEFAULT -- Compute the default location (before the actions
++   are run).  */
+-#ifdef YYPURE
+-#ifdef YYLSP_NEEDED
+-#ifdef YYLEX_PARAM
+-#define YYLEX         yylex(&yylval, &yylloc, YYLEX_PARAM)
+-#else
+-#define YYLEX         yylex(&yylval, &yylloc)
++#ifndef YYLLOC_DEFAULT
++# define YYLLOC_DEFAULT(Current, Rhs, N)              \
++   ((Current).first_line   = (Rhs)[1].first_line,     \
++    (Current).first_column = (Rhs)[1].first_column,   \
++    (Current).last_line    = (Rhs)[N].last_line,      \
++    (Current).last_column  = (Rhs)[N].last_column)
+ #endif
+-#else /* not YYLSP_NEEDED */
++
++/* YYLEX -- calling `yylex' with the right arguments.  */
++
+ #ifdef YYLEX_PARAM
+-#define YYLEX         yylex(&yylval, YYLEX_PARAM)
++# define YYLEX yylex (YYLEX_PARAM)
+ #else
+-#define YYLEX         yylex(&yylval)
+-#endif
+-#endif /* not YYLSP_NEEDED */
++# define YYLEX yylex ()
+ #endif
+-/* If nonreentrant, generate the variables here */
++/* Enable debugging if requested.  */
++#if YYDEBUG
+-#ifndef YYPURE
++# ifndef YYFPRINTF
++#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
++#  define YYFPRINTF fprintf
++# endif
++
++# define YYDPRINTF(Args)                      \
++do {                                          \
++  if (yydebug)                                        \
++    YYFPRINTF Args;                           \
++} while (0)
++
++# define YYDSYMPRINT(Args)                    \
++do {                                          \
++  if (yydebug)                                        \
++    yysymprint Args;                          \
++} while (0)
++
++# define YYDSYMPRINTF(Title, Token, Value, Location)          \
++do {                                                          \
++  if (yydebug)                                                        \
++    {                                                         \
++      YYFPRINTF (stderr, "%s ", Title);                               \
++      yysymprint (stderr,                                     \
++                  Token, Value);      \
++      YYFPRINTF (stderr, "\n");                                       \
++    }                                                         \
++} while (0)
+-int   yychar;                 /*  the lookahead symbol                */
+-YYSTYPE       yylval;                 /*  the semantic value of the           */
+-                              /*  lookahead symbol                    */
++/*------------------------------------------------------------------.
++| yy_stack_print -- Print the state stack from its BOTTOM up to its |
++| TOP (included).                                                   |
++`------------------------------------------------------------------*/
+-#ifdef YYLSP_NEEDED
+-YYLTYPE yylloc;                       /*  location data for the lookahead     */
+-                              /*  symbol                              */
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yy_stack_print (short int *bottom, short int *top)
++#else
++static void
++yy_stack_print (bottom, top)
++    short int *bottom;
++    short int *top;
+ #endif
++{
++  YYFPRINTF (stderr, "Stack now");
++  for (/* Nothing. */; bottom <= top; ++bottom)
++    YYFPRINTF (stderr, " %d", *bottom);
++  YYFPRINTF (stderr, "\n");
++}
++
++# define YY_STACK_PRINT(Bottom, Top)                          \
++do {                                                          \
++  if (yydebug)                                                        \
++    yy_stack_print ((Bottom), (Top));                         \
++} while (0)
+-int yynerrs;                  /*  number of parse errors so far       */
+-#endif  /* not YYPURE */
+-#if YYDEBUG != 0
+-int yydebug;                  /*  nonzero means print parse trace     */
+-/* Since this is uninitialized, it does not stop multiple parsers
+-   from coexisting.  */
++/*------------------------------------------------.
++| Report that the YYRULE is going to be reduced.  |
++`------------------------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yy_reduce_print (int yyrule)
++#else
++static void
++yy_reduce_print (yyrule)
++    int yyrule;
+ #endif
++{
++  int yyi;
++  unsigned int yylno = yyrline[yyrule];
++  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
++             yyrule - 1, yylno);
++  /* Print the symbols being reduced, and their result.  */
++  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
++    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
++  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++}
++
++# define YY_REDUCE_PRINT(Rule)                \
++do {                                  \
++  if (yydebug)                                \
++    yy_reduce_print (Rule);           \
++} while (0)
++
++/* Nonzero means print parse trace.  It is left uninitialized so that
++   multiple parsers can coexist.  */
++int yydebug;
++#else /* !YYDEBUG */
++# define YYDPRINTF(Args)
++# define YYDSYMPRINT(Args)
++# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_STACK_PRINT(Bottom, Top)
++# define YY_REDUCE_PRINT(Rule)
++#endif /* !YYDEBUG */
+-/*  YYINITDEPTH indicates the initial size of the parser's stacks     */
++/* YYINITDEPTH -- initial size of the parser's stacks.  */
+ #ifndef       YYINITDEPTH
+-#define YYINITDEPTH 200
++# define YYINITDEPTH 200
+ #endif
+-/*  YYMAXDEPTH is the maximum size the stacks can grow to
+-    (effective only if the built-in stack extension method is used).  */
++/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
++   if the built-in stack extension method is used).
+-#if YYMAXDEPTH == 0
+-#undef YYMAXDEPTH
++   Do not make this value too large; the results are undefined if
++   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++   evaluated with infinite-precision integer arithmetic.  */
++
++#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
++# undef YYMAXDEPTH
+ #endif
+ #ifndef YYMAXDEPTH
+-#define YYMAXDEPTH 10000
++# define YYMAXDEPTH 10000
+ #endif
++
\f
+-/* Define __yy_memcpy.  Note that the size argument
+-   should be passed with type unsigned int, because that is what the non-GCC
+-   definitions require.  With GCC, __builtin_memcpy takes an arg
+-   of type size_t, but it can handle unsigned int.  */
+-
+-#if __GNUC__ > 1              /* GNU C and GNU C++ define this.  */
+-#define __yy_memcpy(TO,FROM,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
+-#else                         /* not GNU C or C++ */
+-#ifndef __cplusplus
+-/* This is the most reliable way to avoid incompatibilities
+-   in available built-in functions on various systems.  */
+-static void
+-__yy_memcpy (to, from, count)
+-     char *to;
+-     char *from;
+-     unsigned int count;
+-{
+-  register char *f = from;
+-  register char *t = to;
+-  register int i = count;
++#if YYERROR_VERBOSE
+-  while (i-- > 0)
+-    *t++ = *f++;
++# ifndef yystrlen
++#  if defined (__GLIBC__) && defined (_STRING_H)
++#   define yystrlen strlen
++#  else
++/* Return the length of YYSTR.  */
++static YYSIZE_T
++#   if defined (__STDC__) || defined (__cplusplus)
++yystrlen (const char *yystr)
++#   else
++yystrlen (yystr)
++     const char *yystr;
++#   endif
++{
++  register const char *yys = yystr;
++
++  while (*yys++ != '\0')
++    continue;
++
++  return yys - yystr - 1;
+ }
++#  endif
++# endif
+-#else /* __cplusplus */
++# ifndef yystpcpy
++#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++#   define yystpcpy stpcpy
++#  else
++/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
++   YYDEST.  */
++static char *
++#   if defined (__STDC__) || defined (__cplusplus)
++yystpcpy (char *yydest, const char *yysrc)
++#   else
++yystpcpy (yydest, yysrc)
++     char *yydest;
++     const char *yysrc;
++#   endif
++{
++  register char *yyd = yydest;
++  register const char *yys = yysrc;
++
++  while ((*yyd++ = *yys++) != '\0')
++    continue;
++
++  return yyd - 1;
++}
++#  endif
++# endif
+-/* This is the most reliable way to avoid incompatibilities
+-   in available built-in functions on various systems.  */
++#endif /* !YYERROR_VERBOSE */
++
++\f
++
++#if YYDEBUG
++/*--------------------------------.
++| Print this symbol on YYOUTPUT.  |
++`--------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
+ static void
+-__yy_memcpy (char *to, char *from, unsigned int count)
++yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yysymprint (yyoutput, yytype, yyvaluep)
++    FILE *yyoutput;
++    int yytype;
++    YYSTYPE *yyvaluep;
++#endif
+ {
+-  register char *t = to;
+-  register char *f = from;
+-  register int i = count;
++  /* Pacify ``unused variable'' warnings.  */
++  (void) yyvaluep;
+-  while (i-- > 0)
+-    *t++ = *f++;
++  if (yytype < YYNTOKENS)
++    {
++      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++# ifdef YYPRINT
++      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# endif
++    }
++  else
++    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++  switch (yytype)
++    {
++      default:
++        break;
++    }
++  YYFPRINTF (yyoutput, ")");
+ }
++#endif /* ! YYDEBUG */
++/*-----------------------------------------------.
++| Release the memory associated to this symbol.  |
++`-----------------------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yydestruct (int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yydestruct (yytype, yyvaluep)
++    int yytype;
++    YYSTYPE *yyvaluep;
+ #endif
+-#endif
++{
++  /* Pacify ``unused variable'' warnings.  */
++  (void) yyvaluep;
++
++  switch (yytype)
++    {
++
++      default:
++        break;
++    }
++}
\f
+-#line 217 "/usr/lib/bison.simple"
+-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+-   into yyparse.  The argument should have type void *.
+-   It should actually point to an object.
+-   Grammar actions can access the variable by casting it
+-   to the proper pointer type.  */
++/* Prevent warnings from -Wmissing-prototypes.  */
+ #ifdef YYPARSE_PARAM
+-#ifdef __cplusplus
+-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+-#define YYPARSE_PARAM_DECL
+-#else /* not __cplusplus */
+-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+-#endif /* not __cplusplus */
+-#else /* not YYPARSE_PARAM */
+-#define YYPARSE_PARAM_ARG
+-#define YYPARSE_PARAM_DECL
+-#endif /* not YYPARSE_PARAM */
++# if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void *YYPARSE_PARAM);
++# else
++int yyparse ();
++# endif
++#else /* ! YYPARSE_PARAM */
++#if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void);
++#else
++int yyparse ();
++#endif
++#endif /* ! YYPARSE_PARAM */
++
++
++
++/* The lookahead symbol.  */
++int yychar;
++
++/* The semantic value of the lookahead symbol.  */
++YYSTYPE yylval;
++
++/* Number of syntax errors so far.  */
++int yynerrs;
++
++
++
++/*----------.
++| yyparse.  |
++`----------*/
+-/* Prevent warning if -Wstrict-prototypes.  */
+-#ifdef __GNUC__
+ #ifdef YYPARSE_PARAM
+-int yyparse (void *);
++# if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void *YYPARSE_PARAM)
++# else
++int yyparse (YYPARSE_PARAM)
++  void *YYPARSE_PARAM;
++# endif
++#else /* ! YYPARSE_PARAM */
++#if defined (__STDC__) || defined (__cplusplus)
++int
++yyparse (void)
+ #else
+-int yyparse (void);
++int
++yyparse ()
++
+ #endif
+ #endif
+-
+-int
+-yyparse(YYPARSE_PARAM_ARG)
+-     YYPARSE_PARAM_DECL
+ {
++  
+   register int yystate;
+   register int yyn;
+-  register short *yyssp;
++  int yyresult;
++  /* Number of tokens to shift before error messages enabled.  */
++  int yyerrstatus;
++  /* Lookahead token as an internal (translated) token number.  */
++  int yytoken = 0;
++
++  /* Three stacks and their tools:
++     `yyss': related to states,
++     `yyvs': related to semantic values,
++     `yyls': related to locations.
++
++     Refer to the stacks thru separate pointers, to allow yyoverflow
++     to reallocate them elsewhere.  */
++
++  /* The state stack.  */
++  short int yyssa[YYINITDEPTH];
++  short int *yyss = yyssa;
++  register short int *yyssp;
++
++  /* The semantic value stack.  */
++  YYSTYPE yyvsa[YYINITDEPTH];
++  YYSTYPE *yyvs = yyvsa;
+   register YYSTYPE *yyvsp;
+-  int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
+-  int yychar1 = 0;            /*  lookahead token as an internal (translated) token number */
+-  short       yyssa[YYINITDEPTH];     /*  the state stack                     */
+-  YYSTYPE yyvsa[YYINITDEPTH]; /*  the semantic value stack            */
+-  short *yyss = yyssa;                /*  refer to the stacks thru separate pointers */
+-  YYSTYPE *yyvs = yyvsa;      /*  to allow yyoverflow to reallocate them elsewhere */
+-#ifdef YYLSP_NEEDED
+-  YYLTYPE yylsa[YYINITDEPTH]; /*  the location stack                  */
+-  YYLTYPE *yyls = yylsa;
+-  YYLTYPE *yylsp;
+-
+-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+-#else
+ #define YYPOPSTACK   (yyvsp--, yyssp--)
+-#endif
+-  int yystacksize = YYINITDEPTH;
+-  int yyfree_stacks = 0;
++  YYSIZE_T yystacksize = YYINITDEPTH;
+-#ifdef YYPURE
+-  int yychar;
+-  YYSTYPE yylval;
+-  int yynerrs;
+-#ifdef YYLSP_NEEDED
+-  YYLTYPE yylloc;
+-#endif
+-#endif
++  /* The variables used to return semantic value and location from the
++     action routines.  */
++  YYSTYPE yyval;
+-  YYSTYPE yyval;              /*  the variable used to return         */
+-                              /*  semantic values from the action     */
+-                              /*  routines                            */
++  /* When reducing, the number of symbols on the RHS of the reduced
++     rule.  */
+   int yylen;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Starting parse\n");
+-#endif
++  YYDPRINTF ((stderr, "Starting parse\n"));
+   yystate = 0;
+   yyerrstatus = 0;
+@@ -614,110 +1022,97 @@
+      so that they stay on the same level as the state stack.
+      The wasted elements are never initialized.  */
+-  yyssp = yyss - 1;
++  yyssp = yyss;
+   yyvsp = yyvs;
+-#ifdef YYLSP_NEEDED
+-  yylsp = yyls;
+-#endif
+-/* Push a new state, which is found in  yystate  .  */
+-/* In all cases, when you get here, the value and location stacks
+-   have just been pushed. so pushing a state here evens the stacks.  */
+-yynewstate:
+-  *++yyssp = yystate;
++  goto yysetstate;
+-  if (yyssp >= yyss + yystacksize - 1)
+-    {
+-      /* Give user a chance to reallocate the stack */
+-      /* Use copies of these so that the &'s don't force the real ones into memory. */
+-      YYSTYPE *yyvs1 = yyvs;
+-      short *yyss1 = yyss;
+-#ifdef YYLSP_NEEDED
+-      YYLTYPE *yyls1 = yyls;
+-#endif
++/*------------------------------------------------------------.
++| yynewstate -- Push a new state, which is found in yystate.  |
++`------------------------------------------------------------*/
++ yynewstate:
++  /* In all cases, when you get here, the value and location stacks
++     have just been pushed. so pushing a state here evens the stacks.
++     */
++  yyssp++;
++ yysetstate:
++  *yyssp = yystate;
++
++  if (yyss + yystacksize - 1 <= yyssp)
++    {
+       /* Get the current used size of the three stacks, in elements.  */
+-      int size = yyssp - yyss + 1;
++      YYSIZE_T yysize = yyssp - yyss + 1;
+ #ifdef yyoverflow
+-      /* Each stack pointer address is followed by the size of
+-       the data in use in that stack, in bytes.  */
+-#ifdef YYLSP_NEEDED
+-      /* This used to be a conditional around just the two extra args,
+-       but that might be undefined if yyoverflow is a macro.  */
+-      yyoverflow("parser stack overflow",
+-               &yyss1, size * sizeof (*yyssp),
+-               &yyvs1, size * sizeof (*yyvsp),
+-               &yyls1, size * sizeof (*yylsp),
+-               &yystacksize);
+-#else
+-      yyoverflow("parser stack overflow",
+-               &yyss1, size * sizeof (*yyssp),
+-               &yyvs1, size * sizeof (*yyvsp),
+-               &yystacksize);
+-#endif
+-
+-      yyss = yyss1; yyvs = yyvs1;
+-#ifdef YYLSP_NEEDED
+-      yyls = yyls1;
+-#endif
++      {
++      /* Give user a chance to reallocate the stack. Use copies of
++         these so that the &'s don't force the real ones into
++         memory.  */
++      YYSTYPE *yyvs1 = yyvs;
++      short int *yyss1 = yyss;
++
++
++      /* Each stack pointer address is followed by the size of the
++         data in use in that stack, in bytes.  This used to be a
++         conditional around just the two extra args, but that might
++         be undefined if yyoverflow is a macro.  */
++      yyoverflow ("parser stack overflow",
++                  &yyss1, yysize * sizeof (*yyssp),
++                  &yyvs1, yysize * sizeof (*yyvsp),
++
++                  &yystacksize);
++
++      yyss = yyss1;
++      yyvs = yyvs1;
++      }
+ #else /* no yyoverflow */
++# ifndef YYSTACK_RELOCATE
++      goto yyoverflowlab;
++# else
+       /* Extend the stack our own way.  */
+-      if (yystacksize >= YYMAXDEPTH)
+-      {
+-        yyerror("parser stack overflow");
+-        if (yyfree_stacks)
+-          {
+-            free (yyss);
+-            free (yyvs);
+-#ifdef YYLSP_NEEDED
+-            free (yyls);
+-#endif
+-          }
+-        return 2;
+-      }
++      if (YYMAXDEPTH <= yystacksize)
++      goto yyoverflowlab;
+       yystacksize *= 2;
+-      if (yystacksize > YYMAXDEPTH)
++      if (YYMAXDEPTH < yystacksize)
+       yystacksize = YYMAXDEPTH;
+-#ifndef YYSTACK_USE_ALLOCA
+-      yyfree_stacks = 1;
+-#endif
+-      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+-      __yy_memcpy ((char *)yyss, (char *)yyss1,
+-                 size * (unsigned int) sizeof (*yyssp));
+-      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+-      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+-                 size * (unsigned int) sizeof (*yyvsp));
+-#ifdef YYLSP_NEEDED
+-      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+-      __yy_memcpy ((char *)yyls, (char *)yyls1,
+-                 size * (unsigned int) sizeof (*yylsp));
+-#endif
++
++      {
++      short int *yyss1 = yyss;
++      union yyalloc *yyptr =
++        (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
++      if (! yyptr)
++        goto yyoverflowlab;
++      YYSTACK_RELOCATE (yyss);
++      YYSTACK_RELOCATE (yyvs);
++
++#  undef YYSTACK_RELOCATE
++      if (yyss1 != yyssa)
++        YYSTACK_FREE (yyss1);
++      }
++# endif
+ #endif /* no yyoverflow */
+-      yyssp = yyss + size - 1;
+-      yyvsp = yyvs + size - 1;
+-#ifdef YYLSP_NEEDED
+-      yylsp = yyls + size - 1;
+-#endif
++      yyssp = yyss + yysize - 1;
++      yyvsp = yyvs + yysize - 1;
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+-#endif
+-      if (yyssp >= yyss + yystacksize - 1)
++      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
++                (unsigned long int) yystacksize));
++
++      if (yyss + yystacksize - 1 <= yyssp)
+       YYABORT;
+     }
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Entering state %d\n", yystate);
+-#endif
++  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+   goto yybackup;
+- yybackup:
++
++/*-----------.
++| yybackup.  |
++`-----------*/
++yybackup:
+ /* Do appropriate processing given the current state.  */
+ /* Read a lookahead token if we need one and don't already have one.  */
+@@ -726,135 +1121,99 @@
+   /* First try to decide what to do without reference to lookahead token.  */
+   yyn = yypact[yystate];
+-  if (yyn == YYFLAG)
++  if (yyn == YYPACT_NINF)
+     goto yydefault;
+   /* Not known => get a lookahead token if don't already have one.  */
+-  /* yychar is either YYEMPTY or YYEOF
+-     or a valid token in external form.  */
+-
++  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+   if (yychar == YYEMPTY)
+     {
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Reading a token: ");
+-#endif
++      YYDPRINTF ((stderr, "Reading a token: "));
+       yychar = YYLEX;
+     }
+-  /* Convert token to internal form (in yychar1) for indexing tables with */
+-
+-  if (yychar <= 0)            /* This means end of input. */
++  if (yychar <= YYEOF)
+     {
+-      yychar1 = 0;
+-      yychar = YYEOF;         /* Don't call YYLEX any more */
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Now at end of input.\n");
+-#endif
++      yychar = yytoken = YYEOF;
++      YYDPRINTF ((stderr, "Now at end of input.\n"));
+     }
+   else
+     {
+-      yychar1 = YYTRANSLATE(yychar);
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      {
+-        fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+-        /* Give the individual parser a way to print the precise meaning
+-           of a token, for further debugging info.  */
+-#ifdef YYPRINT
+-        YYPRINT (stderr, yychar, yylval);
+-#endif
+-        fprintf (stderr, ")\n");
+-      }
+-#endif
++      yytoken = YYTRANSLATE (yychar);
++      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+     }
+-  yyn += yychar1;
+-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
++  /* If the proper action on seeing token YYTOKEN is to reduce or to
++     detect an error, take that action.  */
++  yyn += yytoken;
++  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+     goto yydefault;
+-
+   yyn = yytable[yyn];
+-
+-  /* yyn is what to do for this token type in this state.
+-     Negative => reduce, -yyn is rule number.
+-     Positive => shift, yyn is new state.
+-       New state is final state => don't bother to shift,
+-       just return success.
+-     0, or most negative number => error.  */
+-
+-  if (yyn < 0)
++  if (yyn <= 0)
+     {
+-      if (yyn == YYFLAG)
++      if (yyn == 0 || yyn == YYTABLE_NINF)
+       goto yyerrlab;
+       yyn = -yyn;
+       goto yyreduce;
+     }
+-  else if (yyn == 0)
+-    goto yyerrlab;
+   if (yyn == YYFINAL)
+     YYACCEPT;
+   /* Shift the lookahead token.  */
+-
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+-#endif
++  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+   /* Discard the token being shifted unless it is eof.  */
+   if (yychar != YYEOF)
+     yychar = YYEMPTY;
+   *++yyvsp = yylval;
+-#ifdef YYLSP_NEEDED
+-  *++yylsp = yylloc;
+-#endif
+-  /* count tokens shifted since error; after three, turn off error status.  */
+-  if (yyerrstatus) yyerrstatus--;
++
++  /* Count tokens shifted since error; after three, turn off error
++     status.  */
++  if (yyerrstatus)
++    yyerrstatus--;
+   yystate = yyn;
+   goto yynewstate;
+-/* Do the default action for the current state.  */
+-yydefault:
++/*-----------------------------------------------------------.
++| yydefault -- do the default action for the current state.  |
++`-----------------------------------------------------------*/
++yydefault:
+   yyn = yydefact[yystate];
+   if (yyn == 0)
+     goto yyerrlab;
++  goto yyreduce;
++
+-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
++/*-----------------------------.
++| yyreduce -- Do a reduction.  |
++`-----------------------------*/
+ yyreduce:
++  /* yyn is the number of a rule to reduce with.  */
+   yylen = yyr2[yyn];
+-  if (yylen > 0)
+-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      int i;
+-
+-      fprintf (stderr, "Reducing via rule %d (line %d), ",
+-             yyn, yyrline[yyn]);
++  /* If YYLEN is nonzero, implement the default value of the action:
++     `$$ = $1'.
+-      /* Print the symbols being reduced, and their result.  */
+-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+-      fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+-    }
+-#endif
++     Otherwise, the following line sets YYVAL to garbage.
++     This behavior is undocumented and Bison
++     users should not rely upon it.  Assigning to YYVAL
++     unconditionally makes the parser a bit smaller, and it avoids a
++     GCC warning that YYVAL may be used uninitialized.  */
++  yyval = yyvsp[1-yylen];
+-  switch (yyn) {
+-
+-case 5:
+-#line 83 "cfg_y.y"
+-{
++  YY_REDUCE_PRINT (yyn);
++  switch (yyn)
++    {
++        case 6:
++#line 86 "cfg_y.y"
++    {
+           if (!curr_sig->uni)
+               curr_sig->uni =
+ #if defined(UNI30) || defined(DYNAMIC_UNI)
+@@ -873,17 +1232,19 @@
+ #endif
+ #endif
+                 ;
+-      ;
+-    break;}
+-case 6:
+-#line 107 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 7:
++#line 110 "cfg_y.y"
++    {
+           set_verbosity(NULL,yyvsp[0].num);
+-      ;
+-    break;}
+-case 12:
+-#line 119 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 13:
++#line 122 "cfg_y.y"
++    {
+           SIG_ENTITY *sig,**walk;
+           if (atmpvc_addr_in_use(_entity.signaling_pvc))
+@@ -892,37 +1253,49 @@
+           if (entities == &_entity) entities = NULL;
+           for (sig = entities; sig; sig = sig->next)
+               if (atm_equal((struct sockaddr *) &sig->signaling_pvc,
+-                (struct sockaddr *) &yyvsp[0].pvc,0,0))
+-                  yyerror("duplicate PVC address %d.%d.%d",S_PVC(sig));
++                (struct sockaddr *) &yyvsp[0].pvc,0,0)) {
++                  const char *err;
++                  asprintf(&err,"duplicate PVC address %d.%d.%d",S_PVC(sig));
++                  if(err) {
++                      yyerror(err);
++                      free(err);
++                  }
++                  else
++                      yyerror("duplicate PVC address");
++              }
+           curr_sig = alloc_t(SIG_ENTITY);
+           *curr_sig = _entity;
+           curr_sig->signaling_pvc = yyvsp[0].pvc;
+           curr_sig->next = NULL;
+           for (walk = &entities; *walk; walk = &(*walk)->next);
+           *walk = curr_sig;
+-      ;
+-    break;}
+-case 18:
+-#line 150 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 19:
++#line 161 "cfg_y.y"
++    {
+           enter_vpci(curr_sig,yyvsp[-2].num,yyvsp[0].num);
+-      ;
+-    break;}
+-case 20:
+-#line 155 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 21:
++#line 166 "cfg_y.y"
++    {
+           curr_sig->sig_qos = yyvsp[0].str;
+-      ;
+-    break;}
+-case 21:
+-#line 159 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 22:
++#line 170 "cfg_y.y"
++    {
+           curr_sig->max_rate = yyvsp[0].num;
+-      ;
+-    break;}
+-case 22:
+-#line 163 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 23:
++#line 174 "cfg_y.y"
++    {
+            struct sockaddr_atmsvc addr;
+            char *mask;
+@@ -931,464 +1304,506 @@
+           if (text2atm(yyvsp[0].str,(struct sockaddr *) &addr,sizeof(addr),
+           T2A_SVC | T2A_WILDCARD | T2A_NAME | T2A_LOCAL) < 0) {
+               yyerror("invalid address");
+-              return;
++              return 0;
+           }
+           add_route(curr_sig,&addr,mask ? strtol(mask,NULL,10) : INT_MAX);
+-      ;
+-    break;}
+-case 23:
+-#line 177 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 24:
++#line 188 "cfg_y.y"
++    {
+           add_route(curr_sig,NULL,0);
+-      ;
+-    break;}
+-case 44:
+-#line 229 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 45:
++#line 240 "cfg_y.y"
++    {
+           set_verbosity("UNI",yyvsp[0].num);
+           set_verbosity("KERNEL",yyvsp[0].num);
+           set_verbosity("SAP",yyvsp[0].num);
+-      ;
+-    break;}
+-case 45:
+-#line 235 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 46:
++#line 246 "cfg_y.y"
++    {
+           enter_vpci(curr_sig,yyvsp[-2].num,yyvsp[0].num);
+-      ;
+-    break;}
+-case 46:
+-#line 239 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 47:
++#line 250 "cfg_y.y"
++    {
+ #if defined(UNI30) || defined(ALLOW_UNI30) || defined(DYNAMIC_UNI)
+           if (curr_sig->uni & ~S_UNI31) yyerror("UNI mode is already set");
+           curr_sig->uni |= S_UNI30;
+ #else
+           yyerror("Sorry, not supported yet");
+ #endif
+-      ;
+-    break;}
+-case 47:
+-#line 248 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 48:
++#line 259 "cfg_y.y"
++    {
+ #if defined(UNI31) || defined(ALLOW_UNI30) || defined(DYNAMIC_UNI)
+           if (curr_sig->uni & ~S_UNI30) yyerror("UNI mode is already set");
+           curr_sig->uni |= S_UNI31;
+ #else
+           yyerror("Sorry, not supported yet");
+ #endif
+-      ;
+-    break;}
+-case 48:
+-#line 257 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 49:
++#line 268 "cfg_y.y"
++    {
+ #if defined(UNI40) || defined(DYNAMIC_UNI)
+           if (curr_sig->uni) yyerror("UNI mode is already set");
+           curr_sig->uni = S_UNI40;
+ #else
+           yyerror("Sorry, not supported yet");
+ #endif
+-      ;
+-    break;}
+-case 49:
+-#line 266 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 50:
++#line 277 "cfg_y.y"
++    {
+ #if defined(Q2963_1) || defined(DYNAMIC_UNI)
+           if (!(curr_sig->uni & S_UNI40)) yyerror("Incompatible UNI mode");
+           curr_sig->uni |= S_Q2963_1;
+ #else
+           yyerror("Sorry, not supported yet");
+ #endif
+-      ;
+-    break;}
+-case 50:
+-#line 275 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 51:
++#line 286 "cfg_y.y"
++    {
+           yywarn("sig net  is obsolete, please use  sig mode net  instead");
+           curr_sig->mode = sm_net;
+-      ;
+-    break;}
+-case 52:
+-#line 284 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 53:
++#line 295 "cfg_y.y"
++    {
+           set_verbosity("SSCF",yyvsp[0].num);
+           set_verbosity("SSCOP",yyvsp[0].num);
+-      ;
+-    break;}
+-case 53:
+-#line 292 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 54:
++#line 303 "cfg_y.y"
++    {
+           set_verbosity("IO",yyvsp[0].num);
+-      ;
+-    break;}
+-case 54:
+-#line 296 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 55:
++#line 307 "cfg_y.y"
++    {
+           curr_sig->signaling_pvc = yyvsp[0].pvc;
+-      ;
+-    break;}
+-case 55:
+-#line 300 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 56:
++#line 311 "cfg_y.y"
++    {
+           yywarn("io pcr  is obsolete, please use  io qos  instead");
+           curr_sig->sig_pcr = yyvsp[0].num;
+-      ;
+-    break;}
+-case 56:
+-#line 305 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 57:
++#line 316 "cfg_y.y"
++    {
+           curr_sig->sig_qos = yyvsp[0].str;
+-      ;
+-    break;}
+-case 57:
+-#line 309 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 58:
++#line 320 "cfg_y.y"
++    {
+           curr_sig->max_rate = yyvsp[0].num;
+-      ;
+-    break;}
+-case 58:
+-#line 316 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 59:
++#line 327 "cfg_y.y"
++    {
+           set_verbosity(NULL,yyvsp[0].num);
+-      ;
+-    break;}
+-case 59:
+-#line 320 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 60:
++#line 331 "cfg_y.y"
++    {
+           dump_dir = yyvsp[0].str;
+           if (!trace_size) trace_size = DEFAULT_TRACE_SIZE;
+-      ;
+-    break;}
+-case 60:
+-#line 325 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 61:
++#line 336 "cfg_y.y"
++    {
+           set_logfile(yyvsp[0].str);
+-      ;
+-    break;}
+-case 61:
+-#line 329 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 62:
++#line 340 "cfg_y.y"
++    {
+           trace_size = yyvsp[0].num;
+-      ;
+-    break;}
+-case 62:
+-#line 335 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 63:
++#line 346 "cfg_y.y"
++    {
+           yyval.num = DEFAULT_TRACE_SIZE;
+-      ;
+-    break;}
+-case 63:
+-#line 339 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 64:
++#line 350 "cfg_y.y"
++    {
+           yyval.num = yyvsp[0].num;
+-      ;
+-    break;}
+-case 64:
+-#line 346 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 65:
++#line 357 "cfg_y.y"
++    {
+           yyval.num = DIAG_DEBUG;
+-      ;
+-    break;}
+-case 65:
+-#line 350 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 66:
++#line 361 "cfg_y.y"
++    {
+           yyval.num = DIAG_INFO;
+-      ;
+-    break;}
+-case 66:
+-#line 354 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 67:
++#line 365 "cfg_y.y"
++    {
+           yyval.num = DIAG_WARN;
+-      ;
+-    break;}
+-case 67:
+-#line 358 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 68:
++#line 369 "cfg_y.y"
++    {
+           yyval.num = DIAG_ERROR;
+-      ;
+-    break;}
+-case 68:
+-#line 362 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 69:
++#line 373 "cfg_y.y"
++    {
+           yyval.num = DIAG_FATAL;
+-      ;
+-    break;}
+-case 69:
+-#line 369 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 70:
++#line 380 "cfg_y.y"
++    {
+           curr_sig->mode = sm_user;
+-      ;
+-    break;}
+-case 70:
+-#line 373 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 71:
++#line 384 "cfg_y.y"
++    {
+           curr_sig->mode = sm_net;
+-      ;
+-    break;}
+-case 71:
+-#line 377 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 72:
++#line 388 "cfg_y.y"
++    {
+           curr_sig->mode = sm_switch;
+-      ;
+-    break;}
+-case 72:
+-#line 384 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 73:
++#line 395 "cfg_y.y"
++    {
+           set_verbosity("POLICY",yyvsp[0].num);
+-      ;
+-    break;}
+-case 73:
+-#line 388 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 74:
++#line 399 "cfg_y.y"
++    {
+           rule = alloc_t(RULE);
+           rule->type = yyvsp[0].num;
+-      ;
+-    break;}
+-case 75:
+-#line 397 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 76:
++#line 408 "cfg_y.y"
++    {
+           yyval.num = ACL_ALLOW;
+-      ;
+-    break;}
+-case 76:
+-#line 401 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 77:
++#line 412 "cfg_y.y"
++    {
+           yyval.num = ACL_REJECT;
+-      ;
+-    break;}
+-case 77:
+-#line 408 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 78:
++#line 419 "cfg_y.y"
++    {
+           rule->type |= ACL_IN;
+           put_address(yyvsp[0].str);
+-      ;
+-    break;}
+-case 78:
+-#line 413 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 79:
++#line 424 "cfg_y.y"
++    {
+           rule->type |= ACL_OUT;
+           put_address(yyvsp[0].str);
+-      ;
+-    break;}
+-}
+-   /* the action file gets copied in in place of this dollarsign */
+-#line 543 "/usr/lib/bison.simple"
++      }
++    break;
++
++
++    }
++
++/* Line 1010 of yacc.c.  */
++#line 1585 "y.tab.c"
\f
+   yyvsp -= yylen;
+   yyssp -= yylen;
+-#ifdef YYLSP_NEEDED
+-  yylsp -= yylen;
+-#endif
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      short *ssp1 = yyss - 1;
+-      fprintf (stderr, "state stack now");
+-      while (ssp1 != yyssp)
+-      fprintf (stderr, " %d", *++ssp1);
+-      fprintf (stderr, "\n");
+-    }
+-#endif
++
++  YY_STACK_PRINT (yyss, yyssp);
+   *++yyvsp = yyval;
+-#ifdef YYLSP_NEEDED
+-  yylsp++;
+-  if (yylen == 0)
+-    {
+-      yylsp->first_line = yylloc.first_line;
+-      yylsp->first_column = yylloc.first_column;
+-      yylsp->last_line = (yylsp-1)->last_line;
+-      yylsp->last_column = (yylsp-1)->last_column;
+-      yylsp->text = 0;
+-    }
+-  else
+-    {
+-      yylsp->last_line = (yylsp+yylen-1)->last_line;
+-      yylsp->last_column = (yylsp+yylen-1)->last_column;
+-    }
+-#endif
+-  /* Now "shift" the result of the reduction.
+-     Determine what state that goes to,
+-     based on the state we popped back to
+-     and the rule number reduced by.  */
++  /* Now `shift' the result of the reduction.  Determine what state
++     that goes to, based on the state we popped back to and the rule
++     number reduced by.  */
+   yyn = yyr1[yyn];
+-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
++  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
++  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+     yystate = yytable[yystate];
+   else
+-    yystate = yydefgoto[yyn - YYNTBASE];
++    yystate = yydefgoto[yyn - YYNTOKENS];
+   goto yynewstate;
+-yyerrlab:   /* here on detecting error */
+-  if (! yyerrstatus)
+-    /* If not already recovering from an error, report this error.  */
++/*------------------------------------.
++| yyerrlab -- here on detecting error |
++`------------------------------------*/
++yyerrlab:
++  /* If not already recovering from an error, report this error.  */
++  if (!yyerrstatus)
+     {
+       ++yynerrs;
+-
+-#ifdef YYERROR_VERBOSE
++#if YYERROR_VERBOSE
+       yyn = yypact[yystate];
+-      if (yyn > YYFLAG && yyn < YYLAST)
++      if (YYPACT_NINF < yyn && yyn < YYLAST)
+       {
+-        int size = 0;
+-        char *msg;
+-        int x, count;
+-
+-        count = 0;
+-        /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+-        for (x = (yyn < 0 ? -yyn : 0);
+-             x < (sizeof(yytname) / sizeof(char *)); x++)
+-          if (yycheck[x + yyn] == x)
+-            size += strlen(yytname[x]) + 15, count++;
+-        msg = (char *) malloc(size + 15);
+-        if (msg != 0)
++        YYSIZE_T yysize = 0;
++        int yytype = YYTRANSLATE (yychar);
++        const char* yyprefix;
++        char *yymsg;
++        int yyx;
++
++        /* Start YYX at -YYN if negative to avoid negative indexes in
++           YYCHECK.  */
++        int yyxbegin = yyn < 0 ? -yyn : 0;
++
++        /* Stay within bounds of both yycheck and yytname.  */
++        int yychecklim = YYLAST - yyn;
++        int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++        int yycount = 0;
++
++        yyprefix = ", expecting ";
++        for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++          if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++            {
++              yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
++              yycount += 1;
++              if (yycount == 5)
++                {
++                  yysize = 0;
++                  break;
++                }
++            }
++        yysize += (sizeof ("syntax error, unexpected ")
++                   + yystrlen (yytname[yytype]));
++        yymsg = (char *) YYSTACK_ALLOC (yysize);
++        if (yymsg != 0)
+           {
+-            strcpy(msg, "parse error");
++            char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
++            yyp = yystpcpy (yyp, yytname[yytype]);
+-            if (count < 5)
++            if (yycount < 5)
+               {
+-                count = 0;
+-                for (x = (yyn < 0 ? -yyn : 0);
+-                     x < (sizeof(yytname) / sizeof(char *)); x++)
+-                  if (yycheck[x + yyn] == x)
++                yyprefix = ", expecting ";
++                for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++                  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+                     {
+-                      strcat(msg, count == 0 ? ", expecting `" : " or `");
+-                      strcat(msg, yytname[x]);
+-                      strcat(msg, "'");
+-                      count++;
++                      yyp = yystpcpy (yyp, yyprefix);
++                      yyp = yystpcpy (yyp, yytname[yyx]);
++                      yyprefix = " or ";
+                     }
+               }
+-            yyerror(msg);
+-            free(msg);
++            yyerror (yymsg);
++            YYSTACK_FREE (yymsg);
+           }
+         else
+-          yyerror ("parse error; also virtual memory exceeded");
++          yyerror ("syntax error; also virtual memory exhausted");
+       }
+       else
+ #endif /* YYERROR_VERBOSE */
+-      yyerror("parse error");
++      yyerror ("syntax error");
+     }
+-  goto yyerrlab1;
+-yyerrlab1:   /* here on error raised explicitly by an action */
++
+   if (yyerrstatus == 3)
+     {
+-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
++      /* If just tried and failed to reuse lookahead token after an
++       error, discard it.  */
+-      /* return failure if at end of input */
+-      if (yychar == YYEOF)
+-      YYABORT;
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+-#endif
++      if (yychar <= YYEOF)
++        {
++          /* If at end of input, pop the error token,
++           then the rest of the stack, then return failure.  */
++        if (yychar == YYEOF)
++           for (;;)
++             {
++               YYPOPSTACK;
++               if (yyssp == yyss)
++                 YYABORT;
++               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
++               yydestruct (yystos[*yyssp], yyvsp);
++             }
++        }
++      else
++      {
++        YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
++        yydestruct (yytoken, &yylval);
++        yychar = YYEMPTY;
+-      yychar = YYEMPTY;
++      }
+     }
+-  /* Else will try to reuse lookahead token
+-     after shifting the error token.  */
+-
+-  yyerrstatus = 3;            /* Each real token shifted decrements this */
++  /* Else will try to reuse lookahead token after shifting the error
++     token.  */
++  goto yyerrlab1;
+-  goto yyerrhandle;
+-yyerrdefault:  /* current state does not do anything special for the error token. */
++/*---------------------------------------------------.
++| yyerrorlab -- error raised explicitly by YYERROR.  |
++`---------------------------------------------------*/
++yyerrorlab:
+-#if 0
+-  /* This is wrong; only states that explicitly want error tokens
+-     should shift them.  */
+-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+-  if (yyn) goto yydefault;
++#ifdef __GNUC__
++  /* Pacify GCC when the user code never invokes YYERROR and the label
++     yyerrorlab therefore never appears in user code.  */
++  if (0)
++     goto yyerrorlab;
+ #endif
+-yyerrpop:   /* pop the current state because it cannot handle the error token */
+-
+-  if (yyssp == yyss) YYABORT;
+-  yyvsp--;
+-  yystate = *--yyssp;
+-#ifdef YYLSP_NEEDED
+-  yylsp--;
+-#endif
++  yyvsp -= yylen;
++  yyssp -= yylen;
++  yystate = *yyssp;
++  goto yyerrlab1;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      short *ssp1 = yyss - 1;
+-      fprintf (stderr, "Error: state stack now");
+-      while (ssp1 != yyssp)
+-      fprintf (stderr, " %d", *++ssp1);
+-      fprintf (stderr, "\n");
+-    }
+-#endif
+-yyerrhandle:
++/*-------------------------------------------------------------.
++| yyerrlab1 -- common code for both syntax error and YYERROR.  |
++`-------------------------------------------------------------*/
++yyerrlab1:
++  yyerrstatus = 3;    /* Each real token shifted decrements this.  */
+-  yyn = yypact[yystate];
+-  if (yyn == YYFLAG)
+-    goto yyerrdefault;
++  for (;;)
++    {
++      yyn = yypact[yystate];
++      if (yyn != YYPACT_NINF)
++      {
++        yyn += YYTERROR;
++        if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
++          {
++            yyn = yytable[yyn];
++            if (0 < yyn)
++              break;
++          }
++      }
+-  yyn += YYTERROR;
+-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+-    goto yyerrdefault;
++      /* Pop the current state because it cannot handle the error token.  */
++      if (yyssp == yyss)
++      YYABORT;
+-  yyn = yytable[yyn];
+-  if (yyn < 0)
+-    {
+-      if (yyn == YYFLAG)
+-      goto yyerrpop;
+-      yyn = -yyn;
+-      goto yyreduce;
++      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
++      yydestruct (yystos[yystate], yyvsp);
++      YYPOPSTACK;
++      yystate = *yyssp;
++      YY_STACK_PRINT (yyss, yyssp);
+     }
+-  else if (yyn == 0)
+-    goto yyerrpop;
+   if (yyn == YYFINAL)
+     YYACCEPT;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Shifting error token, ");
+-#endif
++  YYDPRINTF ((stderr, "Shifting error token, "));
+   *++yyvsp = yylval;
+-#ifdef YYLSP_NEEDED
+-  *++yylsp = yylloc;
+-#endif
++
+   yystate = yyn;
+   goto yynewstate;
+- yyacceptlab:
+-  /* YYACCEPT comes here.  */
+-  if (yyfree_stacks)
+-    {
+-      free (yyss);
+-      free (yyvs);
+-#ifdef YYLSP_NEEDED
+-      free (yyls);
+-#endif
+-    }
+-  return 0;
+- yyabortlab:
+-  /* YYABORT comes here.  */
+-  if (yyfree_stacks)
+-    {
+-      free (yyss);
+-      free (yyvs);
+-#ifdef YYLSP_NEEDED
+-      free (yyls);
++/*-------------------------------------.
++| yyacceptlab -- YYACCEPT comes here.  |
++`-------------------------------------*/
++yyacceptlab:
++  yyresult = 0;
++  goto yyreturn;
++
++/*-----------------------------------.
++| yyabortlab -- YYABORT comes here.  |
++`-----------------------------------*/
++yyabortlab:
++  yyresult = 1;
++  goto yyreturn;
++
++#ifndef yyoverflow
++/*----------------------------------------------.
++| yyoverflowlab -- parser overflow comes here.  |
++`----------------------------------------------*/
++yyoverflowlab:
++  yyerror ("parser stack overflow");
++  yyresult = 2;
++  /* Fall through.  */
++#endif
++
++yyreturn:
++#ifndef yyoverflow
++  if (yyss != yyssa)
++    YYSTACK_FREE (yyss);
+ #endif
+-    }
+-  return 1;
++  return yyresult;
+ }
+-#line 418 "cfg_y.y"
++
++
++
+--- linux-atm-2.4.1.orig/src/sigd/proto.c
++++ linux-atm-2.4.1/src/sigd/proto.c
+@@ -259,6 +259,7 @@
+               break;
+           }
+       default:
++          break;
+     }
+     va_end(ap);
+     if ((size = q_close(&dsc)) >= 0) to_signaling(sock->sig,q_buffer,size);
+@@ -288,6 +289,7 @@
+               }
+               break;
+           default:
++              break;
+       }
+       va_end(ap);
+     }
+--- linux-atm-2.4.1.orig/src/sigd/cfg_y.y
++++ linux-atm-2.4.1/src/sigd/cfg_y.y
+@@ -7,6 +7,7 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
+ #include <string.h>
+ #include <ctype.h>
+ #include <limits.h>
+@@ -19,6 +20,8 @@
+ #include "trace.h"
+ #include "policy.h"
++extern void yywarn(const char *s);
++extern void yyerror(const char *s);
+ static RULE *rule;
+ static SIG_ENTITY *curr_sig = &_entity;
+@@ -125,8 +128,16 @@
+           if (entities == &_entity) entities = NULL;
+           for (sig = entities; sig; sig = sig->next)
+               if (atm_equal((struct sockaddr *) &sig->signaling_pvc,
+-                (struct sockaddr *) &$2,0,0))
+-                  yyerror("duplicate PVC address %d.%d.%d",S_PVC(sig));
++                (struct sockaddr *) &$2,0,0)) {
++                  const char *err;
++                  asprintf(&err,"duplicate PVC address %d.%d.%d",S_PVC(sig));
++                  if(err) {
++                      yyerror(err);
++                      free(err);
++                  }
++                  else
++                      yyerror("duplicate PVC address");
++              }
+           curr_sig = alloc_t(SIG_ENTITY);
+           *curr_sig = _entity;
+           curr_sig->signaling_pvc = $2;
+@@ -169,7 +180,7 @@
+           if (text2atm($1,(struct sockaddr *) &addr,sizeof(addr),
+           T2A_SVC | T2A_WILDCARD | T2A_NAME | T2A_LOCAL) < 0) {
+               yyerror("invalid address");
+-              return;
++              return 0;
+           }
+           add_route(curr_sig,&addr,mask ? strtol(mask,NULL,10) : INT_MAX);
+       }
+--- linux-atm-2.4.1.orig/src/sigd/cfg_y.h
++++ linux-atm-2.4.1/src/sigd/cfg_y.h
+@@ -1,44 +1,127 @@
+-typedef union {
++/* A Bison parser, made by GNU Bison 1.875d.  */
++
++/* Skeleton parser for Yacc-like parsing with Bison,
++   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++
++   This program is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, 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-1307, USA.  */
++
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
++
++/* Tokens.  */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++   /* Put the tokens into the symbol table, so that GDB and other debuggers
++      know about them.  */
++   enum yytokentype {
++     TOK_LEVEL = 258,
++     TOK_DEBUG = 259,
++     TOK_INFO = 260,
++     TOK_WARN = 261,
++     TOK_ERROR = 262,
++     TOK_FATAL = 263,
++     TOK_SIG = 264,
++     TOK_UNI30 = 265,
++     TOK_UNI31 = 266,
++     TOK_UNI40 = 267,
++     TOK_Q2963_1 = 268,
++     TOK_SAAL = 269,
++     TOK_VC = 270,
++     TOK_IO = 271,
++     TOK_MODE = 272,
++     TOK_USER = 273,
++     TOK_NET = 274,
++     TOK_SWITCH = 275,
++     TOK_VPCI = 276,
++     TOK_ITF = 277,
++     TOK_PCR = 278,
++     TOK_TRACE = 279,
++     TOK_POLICY = 280,
++     TOK_ALLOW = 281,
++     TOK_REJECT = 282,
++     TOK_ENTITY = 283,
++     TOK_DEFAULT = 284,
++     TOK_NUMBER = 285,
++     TOK_MAX_RATE = 286,
++     TOK_DUMP_DIR = 287,
++     TOK_LOGFILE = 288,
++     TOK_QOS = 289,
++     TOK_FROM = 290,
++     TOK_TO = 291,
++     TOK_ROUTE = 292,
++     TOK_PVC = 293
++   };
++#endif
++#define TOK_LEVEL 258
++#define TOK_DEBUG 259
++#define TOK_INFO 260
++#define TOK_WARN 261
++#define TOK_ERROR 262
++#define TOK_FATAL 263
++#define TOK_SIG 264
++#define TOK_UNI30 265
++#define TOK_UNI31 266
++#define TOK_UNI40 267
++#define TOK_Q2963_1 268
++#define TOK_SAAL 269
++#define TOK_VC 270
++#define TOK_IO 271
++#define TOK_MODE 272
++#define TOK_USER 273
++#define TOK_NET 274
++#define TOK_SWITCH 275
++#define TOK_VPCI 276
++#define TOK_ITF 277
++#define TOK_PCR 278
++#define TOK_TRACE 279
++#define TOK_POLICY 280
++#define TOK_ALLOW 281
++#define TOK_REJECT 282
++#define TOK_ENTITY 283
++#define TOK_DEFAULT 284
++#define TOK_NUMBER 285
++#define TOK_MAX_RATE 286
++#define TOK_DUMP_DIR 287
++#define TOK_LOGFILE 288
++#define TOK_QOS 289
++#define TOK_FROM 290
++#define TOK_TO 291
++#define TOK_ROUTE 292
++#define TOK_PVC 293
++
++
++
++
++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#line 56 "cfg_y.y"
++typedef union YYSTYPE {
+     int num;
+     char *str;
+     struct sockaddr_atmpvc pvc;
+ } YYSTYPE;
+-#define       TOK_LEVEL       257
+-#define       TOK_DEBUG       258
+-#define       TOK_INFO        259
+-#define       TOK_WARN        260
+-#define       TOK_ERROR       261
+-#define       TOK_FATAL       262
+-#define       TOK_SIG 263
+-#define       TOK_UNI30       264
+-#define       TOK_UNI31       265
+-#define       TOK_UNI40       266
+-#define       TOK_Q2963_1     267
+-#define       TOK_SAAL        268
+-#define       TOK_VC  269
+-#define       TOK_IO  270
+-#define       TOK_MODE        271
+-#define       TOK_USER        272
+-#define       TOK_NET 273
+-#define       TOK_SWITCH      274
+-#define       TOK_VPCI        275
+-#define       TOK_ITF 276
+-#define       TOK_PCR 277
+-#define       TOK_TRACE       278
+-#define       TOK_POLICY      279
+-#define       TOK_ALLOW       280
+-#define       TOK_REJECT      281
+-#define       TOK_ENTITY      282
+-#define       TOK_DEFAULT     283
+-#define       TOK_NUMBER      284
+-#define       TOK_MAX_RATE    285
+-#define       TOK_DUMP_DIR    286
+-#define       TOK_LOGFILE     287
+-#define       TOK_QOS 288
+-#define       TOK_FROM        289
+-#define       TOK_TO  290
+-#define       TOK_ROUTE       291
+-#define       TOK_PVC 292
+-
++/* Line 1285 of yacc.c.  */
++#line 119 "y.tab.h"
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++# define YYSTYPE_IS_TRIVIAL 1
++#endif
+ extern YYSTYPE yylval;
++
++
++
+--- linux-atm-2.4.1.orig/src/maint/Makefile.in
++++ linux-atm-2.4.1/src/maint/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -181,8 +181,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/atmaddr.P .deps/atmdiag.P .deps/atmdump.P \
++.deps/atmloop.P .deps/atmtcp.P .deps/enitune.P .deps/esi.P \
++.deps/saaldump.P .deps/sonetdiag.P .deps/zntune.P
+ SOURCES = $(atmdiag_SOURCES) $(atmdump_SOURCES) $(sonetdiag_SOURCES) $(saaldump_SOURCES) $(atmaddr_SOURCES) $(esi_SOURCES) $(atmloop_SOURCES) $(atmtcp_SOURCES) $(enitune_SOURCES) $(zntune_SOURCES)
+ OBJECTS = $(atmdiag_OBJECTS) $(atmdump_OBJECTS) $(sonetdiag_OBJECTS) $(saaldump_OBJECTS) $(atmaddr_OBJECTS) $(esi_OBJECTS) $(atmloop_OBJECTS) $(atmtcp_OBJECTS) $(enitune_OBJECTS) $(zntune_OBJECTS)
+@@ -190,9 +193,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/maint/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/maint/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -247,9 +250,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -272,9 +272,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -388,7 +385,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -404,6 +401,11 @@
+ subdir = src/maint
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/maint/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -414,28 +416,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-atmaddr.o: atmaddr.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-atmdiag.o: atmdiag.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-atmdump.o: atmdump.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h
+-atmloop.o: atmloop.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-atmtcp.o: atmtcp.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmd.h
+-enitune.o: enitune.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-esi.o: esi.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-saaldump.o: saaldump.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/saal/pdu.h \
+-      ../../src/include/atmd.h ../../src/qgen/qlib.h
+-sonetdiag.o: sonetdiag.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
+-zntune.o: zntune.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -475,18 +487,19 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-binPROGRAMS mostlyclean-sbinPROGRAMS \
+               mostlyclean-compile mostlyclean-libtool \
+-              mostlyclean-tags mostlyclean-generic
++              mostlyclean-tags mostlyclean-depend mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-binPROGRAMS clean-sbinPROGRAMS clean-compile \
+-              clean-libtool clean-tags clean-generic mostlyclean-am
++              clean-libtool clean-tags clean-depend clean-generic \
++              mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-binPROGRAMS distclean-sbinPROGRAMS \
+               distclean-compile distclean-libtool distclean-tags \
+-              distclean-generic clean-am
++              distclean-depend distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+@@ -494,7 +507,8 @@
+ maintainer-clean-am:  maintainer-clean-binPROGRAMS \
+               maintainer-clean-sbinPROGRAMS maintainer-clean-compile \
+               maintainer-clean-libtool maintainer-clean-tags \
+-              maintainer-clean-generic distclean-am
++              maintainer-clean-depend maintainer-clean-generic \
++              distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -508,12 +522,14 @@
+ clean-compile maintainer-clean-compile mostlyclean-libtool \
+ distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
+ uninstall-man8 install-man uninstall-man tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/maint/atmtcp.c
++++ linux-atm-2.4.1/src/maint/atmtcp.c
+@@ -60,7 +60,7 @@
+ static IN *inputs = NULL;
+ static fd_set in_set;
+ static int fds = 0;
+-static int debug = 0;
++static int atmtcp_debug = 0;
+ static int links = 0;
+@@ -86,7 +86,7 @@
+ {
+     OUT *out;
+-    if (debug)
++    if (atmtcp_debug)
+       fprintf(stderr,"Emit: %d.%d, %d bytes\n",ntohs(hdr->vpi),
+         ntohs(hdr->vci),(int) ntohl(hdr->length));
+     for (out = outputs; out; out = out->next)
+@@ -99,7 +99,7 @@
+     OUT *out;
+     int changed = 0;
+-    if (debug)
++    if (atmtcp_debug)
+       fprintf(stderr,"Control: (%d.%d) %s %d.%d, vcc %s\n",
+         ntohs(msg->hdr.vpi),ntohs(msg->hdr.vci),
+         msg->type == ATMTCP_CTRL_OPEN ? "OPEN" :
+@@ -295,19 +295,19 @@
+     }
+     if ((s = socket(PF_ATMPVC,SOCK_DGRAM,0)) < 0) {
+       msg->result = -errno;
+-      if (debug) perror("socket");
++      if (atmtcp_debug) perror("socket");
+       return 1;
+     }
+     if (setsockopt(s,SOL_ATM,SO_ATMQOS,&msg->qos,sizeof(msg->qos)) < 0) {
+       msg->result = -errno;
+-      if (debug) perror("setsockopt SO_ATMQOS");
++      if (atmtcp_debug) perror("setsockopt SO_ATMQOS");
+       return 1;
+     }
+     msg->addr.sap_addr.itf = data->itf;
+     if (connect(s,(struct sockaddr *) &msg->addr,
+       sizeof(struct sockaddr_atmpvc)) < 0) {
+       msg->result = -errno;
+-      if (debug) perror("connect");
++      if (atmtcp_debug) perror("connect");
+       return 1;
+     }
+     (*vcc) = alloc_t(VCC);
+@@ -333,7 +333,7 @@
+     addr.sap_addr.vci = ntohs(hdr->vci);
+     vcc = real_lookup(data,&addr);
+     if (!*vcc) {
+-      if (debug)
++      if (atmtcp_debug)
+           fprintf(stderr,"VCC %d.%d not found\n",addr.sap_addr.vpi,
+             addr.sap_addr.vci);
+       return;
+@@ -430,7 +430,7 @@
+       exit(1);
+     }
+     if (in->bytes < sizeof(*hdr)+ntohl(hdr->length)) return;
+-    if (debug)
++    if (atmtcp_debug)
+       fprintf(stderr,"TCP %d.%d, %d bytes\n",ntohs(hdr->vpi),
+         ntohs(hdr->vci),(unsigned int) ntohl(hdr->length));
+     in->bytes = 0;
+@@ -447,7 +447,7 @@
+       fprintf(stderr,"unrecognized control message \"%s\"\n",msg);
+       return;
+     }
+-    if (debug) fprintf(stderr,"received control \"%s\"\n",msg);
++    if (atmtcp_debug) fprintf(stderr,"received control \"%s\"\n",msg);
+     ctl.hdr.vpi = htons(vpi);
+     ctl.hdr.vci = htons(vci);
+     ctl.hdr.length = htonl(ATMTCP_HDR_MAGIC);
+@@ -508,7 +508,7 @@
+     }
+     hdr->vpi = hdr->vci = htons(0);
+     hdr->length = htonl(pos-start);
+-    if (debug) fprintf(stderr,"sending control \"%s\"\n",start);
++    if (atmtcp_debug) fprintf(stderr,"sending control \"%s\"\n",start);
+     tcp_do_send(*(int *) out->user,buf,pos-buf);
+     return 0;
+ }
+@@ -555,7 +555,7 @@
+           exit(1);
+       }
+       if (in->bytes < sizeof(int)+sizeof(*hdr)+ntohl(hdr->length)) return;
+-      if (debug)
++      if (atmtcp_debug)
+           fprintf(stderr,"File %d.%d, %d bytes\n",ntohs(hdr->vpi),
+             ntohs(hdr->vci),(unsigned int) ntohl(hdr->length));
+     }
+@@ -708,7 +708,7 @@
+     while ((c = getopt(argc,argv,"dvV")) != EOF)
+       switch (c) {
+           case 'd':
+-              debug = 1;
++              atmtcp_debug = 1;
+               break;
+           case 'v':
+               verbose = 1;
+@@ -817,7 +817,8 @@
+       }
+       else if (!strcmp(ARG,"listen") ||
+         (do_background = !strcmp(ARG,"listen-bg"))) {
+-          int fd,port,addr_len;
++          int fd,port;
++          size_t addr_len;
+           int *fd2 = alloc_t(int);
+           if ((fd = socket(PF_INET,SOCK_STREAM,0)) < 0) {
+--- linux-atm-2.4.1.orig/src/maint/enitune.c
++++ linux-atm-2.4.1/src/maint/enitune.c
+@@ -44,6 +44,7 @@
+               if (*end || mult.rx <= 100) usage(name);
+               break;
+           default:
++              break;
+       }
+     if (argc != optind+1) usage(name);
+     sioc.number = strtol(argv[optind],&end,0);
+--- linux-atm-2.4.1.orig/src/arpd/Makefile.in
++++ linux-atm-2.4.1/src/arpd/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -90,8 +90,7 @@
+ sbin_PROGRAMS = atmarp atmarpd
+ atmarp_SOURCES = atmarp.c atmarp.h atmarpd.h
+-atmarpd_SOURCES = atmarpd.c atmarpd.h arp.c arp.h io.c io.h itf.c itf.h \
+-                      table.c table.h atmarp.h
++atmarpd_SOURCES = atmarpd.c atmarpd.h arp.c arp.h io.c io.h itf.c itf.h                       table.c table.h atmarp.h
+ include_HEADERS = atmarp.h atmarpd.h
+@@ -135,8 +134,10 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/arp.P .deps/atmarp.P .deps/atmarpd.P .deps/io.P \
++.deps/itf.P .deps/table.P
+ SOURCES = $(atmarp_SOURCES) $(atmarpd_SOURCES)
+ OBJECTS = $(atmarp_OBJECTS) $(atmarpd_OBJECTS)
+@@ -144,9 +145,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/arpd/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/arpd/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -176,9 +177,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -201,9 +199,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -300,7 +295,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -316,6 +311,11 @@
+ subdir = src/arpd
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/arpd/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -326,24 +326,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-arp.o: arp.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmd.h atmarp.h \
+-      atmarpd.h table.h itf.h io.h arp.h
+-atmarp.o: atmarp.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmd.h atmarpd.h
+-atmarpd.o: atmarpd.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h atmarpd.h \
+-      io.h table.h
+-io.o: io.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmd.h atmarpd.h \
+-      table.h arp.h atmarp.h itf.h io.h
+-itf.o: itf.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atmd.h ../../src/include/atm.h table.h io.h \
+-      itf.h arp.h atmarp.h atmarpd.h
+-table.o: table.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmd.h atmarpd.h \
+-      table.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -383,27 +397,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-sbinPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -416,8 +430,9 @@
+ distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
+ uninstall-man8 install-man uninstall-man uninstall-includeHEADERS \
+ install-includeHEADERS tags mostlyclean-tags distclean-tags clean-tags \
+-maintainer-clean-tags distdir info-am info dvi-am dvi check check-am \
+-installcheck-am installcheck install-exec-am install-exec \
++maintainer-clean-tags distdir mostlyclean-depend distclean-depend \
++clean-depend maintainer-clean-depend info-am info dvi-am dvi check \
++check-am installcheck-am installcheck install-exec-am install-exec \
+ install-data-am install-data install-am install uninstall-am uninstall \
+ all-redirect all-am all installdirs mostlyclean-generic \
+ distclean-generic clean-generic maintainer-clean-generic clean \
+--- linux-atm-2.4.1.orig/src/arpd/atmarp.c
++++ linux-atm-2.4.1/src/arpd/atmarp.c
+@@ -92,7 +92,7 @@
+           perror("read " ATMARP_DUMP_DIR "/" ATMARP_DUMP_FILE);
+           return 1;
+       }
+-      if (write(0,buffer,size) < 0) {
++      if (write(1,buffer,size) < 0) {
+           perror("write stdout");
+           return 1;
+       }
+--- linux-atm-2.4.1.orig/src/ilmid/Makefile.in
++++ linux-atm-2.4.1/src/ilmid/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -91,13 +91,9 @@
+ sbin_PROGRAMS = ilmid
+-ilmid_SOURCES = rfc1157_snmp.c rfc1157_snmp.h rfc1155_smi.c rfc1155_smi.h \
+-                      util.c util.h io.c io.h message.c message.h \
+-                      atmf_uni.c atmf_uni.h mib.c mib.h \
+-                      sysgroup.c sysgroup.h ilmid.c
++ilmid_SOURCES = rfc1157_snmp.c rfc1157_snmp.h rfc1155_smi.c rfc1155_smi.h                     util.c util.h io.c io.h message.c message.h                     atmf_uni.c atmf_uni.h mib.c mib.h                       sysgroup.c sysgroup.h ilmid.c
+-ilmid_LDADD = $(top_builddir)/src/lib/libatm.la \
+-              $(top_builddir)/src/ilmid/asn1/libasn1.a
++ilmid_LDADD = $(top_builddir)/src/lib/libatm.la               $(top_builddir)/src/ilmid/asn1/libasn1.a
+ ilmid_DEPENDENCIES = $(ilmid_LDADD)
+@@ -127,8 +123,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/atmf_uni.P .deps/ilmid.P .deps/io.P .deps/message.P \
++.deps/mib.P .deps/rfc1155_smi.P .deps/rfc1157_snmp.P .deps/sysgroup.P \
++.deps/util.P
+ SOURCES = $(ilmid_SOURCES)
+ OBJECTS = $(ilmid_OBJECTS)
+@@ -136,9 +135,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/ilmid/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ilmid/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -168,9 +167,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -193,9 +189,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -294,7 +287,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -310,6 +303,11 @@
+ subdir = src/ilmid
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/ilmid/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -330,62 +328,38 @@
+             || exit 1; \
+         fi; \
+       done
+-atmf_uni.o: atmf_uni.c ../../config.h atmf_uni.h asn1/asn_incl.h \
+-      asn1/asn_config.h asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h \
+-      asn1/asn_len.h asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h \
+-      asn1/asn_bits.h asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h \
+-      rfc1155_smi.h rfc1157_snmp.h mib.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h util.h
+-ilmid.o: ilmid.c ../../config.h asn1/asn_incl.h asn1/asn_config.h \
+-      asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h asn1/asn_len.h \
+-      asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h asn1/asn_bits.h \
+-      asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h rfc1155_smi.h \
+-      rfc1157_snmp.h message.h util.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h io.h mib.h \
+-      atmf_uni.h sysgroup.h
+-io.o: io.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h io.h asn1/asn_incl.h asn1/asn_config.h \
+-      asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h asn1/asn_len.h \
+-      asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h asn1/asn_bits.h \
+-      asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h rfc1155_smi.h \
+-      rfc1157_snmp.h ../../src/include/atmd.h atmf_uni.h mib.h
+-message.o: message.c ../../config.h message.h asn1/asn_incl.h \
+-      asn1/asn_config.h asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h \
+-      asn1/asn_len.h asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h \
+-      asn1/asn_bits.h asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h \
+-      rfc1155_smi.h rfc1157_snmp.h atmf_uni.h mib.h \
+-      ../../src/include/atmd.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h util.h
+-mib.o: mib.c ../../config.h mib.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h \
+-      asn1/asn_incl.h asn1/asn_config.h asn1/nibble_alloc.h \
+-      asn1/sbuf.h asn1/print.h asn1/asn_len.h asn1/asn_tag.h \
+-      asn1/asn_int.h asn1/asn_octs.h asn1/asn_bits.h asn1/asn_oid.h \
+-      asn1/asn_null.h asn1/asn_list.h rfc1155_smi.h rfc1157_snmp.h \
+-      sysgroup.h atmf_uni.h util.h
+-rfc1155_smi.o: rfc1155_smi.c ../../config.h asn1/asn_incl.h \
+-      asn1/asn_config.h asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h \
+-      asn1/asn_len.h asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h \
+-      asn1/asn_bits.h asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h \
+-      rfc1155_smi.h rfc1157_snmp.h
+-rfc1157_snmp.o: rfc1157_snmp.c ../../config.h asn1/asn_incl.h \
+-      asn1/asn_config.h asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h \
+-      asn1/asn_len.h asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h \
+-      asn1/asn_bits.h asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h \
+-      rfc1155_smi.h rfc1157_snmp.h
+-sysgroup.o: sysgroup.c ../../config.h sysgroup.h asn1/asn_incl.h \
+-      asn1/asn_config.h asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h \
+-      asn1/asn_len.h asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h \
+-      asn1/asn_bits.h asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h \
+-      rfc1155_smi.h rfc1157_snmp.h mib.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h
+-util.o: util.c ../../config.h util.h asn1/asn_incl.h asn1/asn_config.h \
+-      asn1/nibble_alloc.h asn1/sbuf.h asn1/print.h asn1/asn_len.h \
+-      asn1/asn_tag.h asn1/asn_int.h asn1/asn_octs.h asn1/asn_bits.h \
+-      asn1/asn_oid.h asn1/asn_null.h asn1/asn_list.h rfc1155_smi.h \
+-      rfc1157_snmp.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-recursive
+ dvi-am:
+@@ -424,27 +398,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-recursive
+ clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-recursive
+ distclean-am:  distclean-sbinPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-recursive
+ maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -460,12 +434,14 @@
+ all-recursive check-recursive installcheck-recursive info-recursive \
+ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs-am \
+-installdirs mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/ilmid/io.c
++++ linux-atm-2.4.1/src/ilmid/io.c
+@@ -32,6 +32,7 @@
+ #include <net/if.h>
+ #include <atm.h>
+ #include <linux/atmdev.h>
++#include <unistd.h>
+ #include "io.h"
+ #include "atmd.h"
+ #include "atmf_uni.h"
+@@ -299,4 +300,5 @@
+       diag(COMPONENT,DIAG_ERROR,"ioctl ATM_GETCIRANGE: %s",strerror(errno));
+       return error;
+     }
++    return 0;
+ }
+--- linux-atm-2.4.1.orig/src/ilmid/atmf_uni.c
++++ linux-atm-2.4.1/src/ilmid/atmf_uni.c
+@@ -187,7 +187,7 @@
+       newPrefix->name = alloc_t(AsnOid);
+       newPrefix->name->octs = alloc(varBindName->octetLen);
+       AsnOidCopy(newPrefix->name, varBindName);
+-      Q_INSERT_BEFORE((NetPrefixNode *) var->value, newPrefix, prefix);
++      Q_INSERT_BEFORE_TYPED(var->value,(NetPrefixNode *), newPrefix, prefix);
+       if(atmNetPrefix.octs == NULL)
+       {
+         atmNetPrefix.octetLen = varBindName->octetLen - NETPREFIX_LEN - 2;
+@@ -197,7 +197,7 @@
+     }
+   else if (varbind->value->a.simple->a.number == INVALID && cmp == AsnOidEqual)
+     {
+-      Q_REMOVE((NetPrefixNode *) var->value, prefix);
++      Q_REMOVE(var->value, prefix);
+     }
+   return NOERROR;
+--- linux-atm-2.4.1.orig/src/ilmid/mib.c
++++ linux-atm-2.4.1/src/ilmid/mib.c
+@@ -58,13 +58,13 @@
+   { NULL }
+ };
+-void MIBget(VarBindList *list, PDUInt *status, AsnInt *index)
++void MIBget(VarBindList *list, PDUInt *status, AsnInt *Mindex)
+ {
+   VarBind *varbind;
+   Variable *var;
+   AsnOidResult result;
+   
+-  *index = 1;
++  *Mindex = 1;
+   FOR_EACH_LIST_ELMT(varbind, list)
+   {
+     /* Find the first MIB object not lexigraphically less than the *
+@@ -91,20 +91,20 @@
+     if(*status != NOERROR)
+       return;
+     
+-    (*index)++;
++    (*Mindex)++;
+   }
+-  *index = 0;
++  *Mindex = 0;
+   return;
+ }
+   
+-void MIBgetnext(VarBindList *list, PDUInt *status, AsnInt *index)
++void MIBgetnext(VarBindList *list, PDUInt *status, AsnInt *Mindex)
+ {
+   VarBind *varbind;
+   Variable *var;
+   AsnOidResult result;
+-  *index = 1;
++  *Mindex = 1;
+   FOR_EACH_LIST_ELMT(varbind, list)
+   {
+     /* Find the first complex MIB object not lexigraphically less than *
+@@ -139,19 +139,19 @@
+     if(*status != NOERROR)
+       return;
+       
+-    (*index)++;
++    (*Mindex)++;
+   }
+-  *index = 0;
++  *Mindex = 0;
+   return;
+ }
+-void MIBset(VarBindList *list, PDUInt *status, AsnInt *index)
++void MIBset(VarBindList *list, PDUInt *status, AsnInt *Mindex)
+ {
+   VarBind *varbind;
+   Variable *var;
+   AsnOidResult result;
+-  *index = 1;
++  *Mindex = 1;
+   FOR_EACH_LIST_ELMT(varbind, list)
+   {
+     /* Find the first MIB object not lexigraphically less than the *
+@@ -182,9 +182,9 @@
+     if(*status != NOERROR)
+       return;
+       
+-    (*index)++;
++    (*Mindex)++;
+   }
+-  *index = 0;
++  *Mindex = 0;
+   return;
+ }
+--- linux-atm-2.4.1.orig/src/ilmid/mib.h
++++ linux-atm-2.4.1/src/ilmid/mib.h
+@@ -39,9 +39,9 @@
+   void *value;
+ } Variable;
+-void MIBget(VarBindList *list, PDUInt *status, AsnInt *index);
+-void MIBgetnext(VarBindList *list, PDUInt *status, AsnInt *index);
+-void MIBset(VarBindList *list, PDUInt *status, AsnInt *index);
++void MIBget(VarBindList *list, PDUInt *status, AsnInt *Mindex);
++void MIBgetnext(VarBindList *list, PDUInt *status, AsnInt *Mindex);
++void MIBset(VarBindList *list, PDUInt *status, AsnInt *Mindex);
+ void *MIBdelete(AsnOid *oid);
+ AsnInt getString(VarBind *varbind, Variable *var);
+--- linux-atm-2.4.1.orig/src/ilmid/ilmid.c
++++ linux-atm-2.4.1/src/ilmid/ilmid.c
+@@ -33,6 +33,7 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/time.h>
+ #include <errno.h>
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/Makefile.in
++++ linux-atm-2.4.1/src/ilmid/asn1/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -87,13 +87,7 @@
+ noinst_LIBRARIES = libasn1.a
+-libasn1_a_SOURCES = asn_len.c asn_len.h asn_tag.c asn_tag.h \
+-                      asn_int.c asn_int.h asn_octs.c asn_octs.h \
+-                      asn_bits.c asn_bits.h str_stk.c str_stk.h \
+-                      asn_oid.c asn_oid.h asn_null.c asn_null.h \
+-                      asn_list.c asn_list.h nibble_alloc.c nibble_alloc.h \
+-                      print.c print.h \
+-                      asn_config.h min_buf.h sbuf.h exp_buf.h
++libasn1_a_SOURCES = asn_len.c asn_len.h asn_tag.c asn_tag.h                   asn_int.c asn_int.h asn_octs.c asn_octs.h                       asn_bits.c asn_bits.h str_stk.c str_stk.h                       asn_oid.c asn_oid.h asn_null.c asn_null.h                       asn_list.c asn_list.h nibble_alloc.c nibble_alloc.h                     print.c print.h                         asn_config.h min_buf.h sbuf.h exp_buf.h
+ EXTRA_libasn1_a_SOURCES = asn_incl.h exp_buf.c
+@@ -125,8 +119,12 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/asn_bits.P .deps/asn_int.P .deps/asn_len.P \
++.deps/asn_list.P .deps/asn_null.P .deps/asn_octs.P .deps/asn_oid.P \
++.deps/asn_tag.P .deps/exp_buf.P .deps/nibble_alloc.P .deps/print.P \
++.deps/str_stk.P
+ SOURCES = $(libasn1_a_SOURCES) $(EXTRA_libasn1_a_SOURCES)
+ OBJECTS = $(libasn1_a_OBJECTS)
+@@ -134,9 +132,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/ilmid/asn1/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/ilmid/asn1/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -150,9 +148,6 @@
+ maintainer-clean-noinstLIBRARIES:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -175,9 +170,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -217,7 +209,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -233,6 +225,11 @@
+ subdir = src/ilmid/asn1
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/ilmid/asn1/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -243,30 +240,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-asn_bits.o: asn_bits.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h asn_tag.h str_stk.h asn_bits.h
+-asn_int.o: asn_int.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h asn_tag.h asn_int.h
+-asn_len.o: asn_len.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h
+-asn_list.o: asn_list.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_list.h
+-asn_null.o: asn_null.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h asn_tag.h asn_null.h
+-asn_octs.o: asn_octs.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h asn_tag.h str_stk.h asn_bits.h \
+-      asn_octs.h
+-asn_oid.o: asn_oid.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h asn_tag.h asn_octs.h asn_oid.h
+-asn_tag.o: asn_tag.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h asn_len.h asn_tag.h
+-nibble_alloc.o: nibble_alloc.c ../../../config.h asn_config.h \
+-      nibble_alloc.h sbuf.h print.h
+-print.o: print.c ../../../config.h asn_config.h nibble_alloc.h sbuf.h \
+-      print.h
+-str_stk.o: str_stk.c ../../../config.h asn_config.h nibble_alloc.h \
+-      sbuf.h print.h str_stk.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -303,27 +308,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -334,12 +339,14 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/asn_int.c
++++ linux-atm-2.4.1/src/ilmid/asn1/asn_int.c
+@@ -185,7 +185,7 @@
+ AsnInt* v _AND_
+ unsigned short int indent)
+ {
+-    fprintf(f,"%d", *v);
++    fprintf(f,"%ld", *v);
+ } 
+@@ -252,7 +252,6 @@
+ UAsnInt* data)
+ {
+     int             len;
+-    int             retLen;
+     int             i; 
+     unsigned long int   mask;
+     unsigned long int   dataCpy;
+@@ -370,5 +369,5 @@
+ UAsnInt* v _AND_
+ unsigned short int indent)
+ {
+-    fprintf(f,"%u", *v);
++    fprintf(f,"%lu", *v);
+ } 
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/asn_octs.c
++++ linux-atm-2.4.1/src/ilmid/asn1/asn_octs.c
+@@ -21,6 +21,9 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
++#include <string.h>
++
+ #include "asn_config.h"
+ #include "asn_len.h"
+ #include "asn_tag.h"
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/asn_bits.c
++++ linux-atm-2.4.1/src/ilmid/asn1/asn_bits.c
+@@ -21,6 +21,9 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
++#include <string.h>
++
+ #include "asn_config.h"
+ #include "asn_len.h"
+ #include "asn_tag.h"
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/asn_oid.c
++++ linux-atm-2.4.1/src/ilmid/asn1/asn_oid.c
+@@ -21,6 +21,9 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
++#include <string.h>
++
+ #include "asn_config.h"
+ #include "asn_len.h"
+ #include "asn_tag.h"
+@@ -125,7 +128,7 @@
+     if (firstArcNum > 2)
+         firstArcNum = 2;
+-    fprintf(f,"%u %u", firstArcNum, arcNum - (firstArcNum * 40));
++    fprintf(f,"%d %lu", firstArcNum, arcNum - (firstArcNum * 40));
+     for (; i < v->octetLen ; )
+     {
+@@ -134,7 +137,7 @@
+         arcNum = (arcNum << 7) + (v->octs[i] & 0x7f);
+         i++;
+-        fprintf(f," %u", arcNum);
++        fprintf(f," %lu", arcNum);
+     }
+     fprintf(f,"}");
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/asn_list.c
++++ linux-atm-2.4.1/src/ilmid/asn1/asn_list.c
+@@ -20,6 +20,8 @@
+ #include <config.h>
+ #endif
++#include <stdlib.h>
++
+ #include "asn_config.h"
+ #include "asn_list.h"
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/nibble_alloc.c
++++ linux-atm-2.4.1/src/ilmid/asn1/nibble_alloc.c
+@@ -20,7 +20,9 @@
+ #include <config.h>
+ #endif
++#include <string.h>
+ #include <memory.h>
++#include <stdlib.h>
+ #include "asn_config.h"
+ #include "nibble_alloc.h"
+--- linux-atm-2.4.1.orig/src/ilmid/asn1/nibble_alloc.h
++++ linux-atm-2.4.1/src/ilmid/asn1/nibble_alloc.h
+@@ -39,13 +39,13 @@
+ void InitNibbleMem PROTO((unsigned long int initialSize,
+                           unsigned long int incrementSize));
+-void ShutdownNibbleMem();
++void ShutdownNibbleMem(void);
+ void ServiceNibbleFault PROTO((unsigned long int size));
+ void* NibbleAlloc PROTO((unsigned long int size));
+-void ResetNibbleMem();
++void ResetNibbleMem(void);
+ #endif /* conditional include */
+--- linux-atm-2.4.1.orig/src/man/Makefile.in
++++ linux-atm-2.4.1/src/man/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -100,14 +100,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/man/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/man/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -159,6 +159,11 @@
+ subdir = src/man
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/man/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/led/Makefile.in
++++ linux-atm-2.4.1/src/led/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -87,9 +87,7 @@
+ sbin_PROGRAMS = zeppelin
+-zeppelin_SOURCES = join.c join.h conn.c conn.h main.c address.c address.h \
+-                      frames.c frames.h display.c display.h \
+-                      kernel.c kernel.h frame_defs.h lec.h
++zeppelin_SOURCES = join.c join.h conn.c conn.h main.c address.c address.h                     frames.c frames.h display.c display.h                   kernel.c kernel.h frame_defs.h lec.h
+ zeppelin_LDADD = $(top_builddir)/src/lib/libatm.la
+ zeppelin_DEPENDENCIES = $(zeppelin_LDADD)
+@@ -125,8 +123,10 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/address.P .deps/conn.P .deps/display.P .deps/frames.P \
++.deps/join.P .deps/kernel.P .deps/main.P
+ SOURCES = $(zeppelin_SOURCES)
+ OBJECTS = $(zeppelin_OBJECTS)
+@@ -134,9 +134,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/led/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/led/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -166,9 +166,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -191,9 +188,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -271,7 +265,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -287,6 +281,11 @@
+ subdir = src/led
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/led/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -297,28 +296,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-address.o: address.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h address.h
+-conn.o: conn.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmsap.h \
+-      ../../src/include/atmd.h conn.h display.h lec.h frames.h \
+-      frame_defs.h kernel.h
+-display.o: display.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h display.h \
+-      frame_defs.h
+-frames.o: frames.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h conn.h \
+-      lec.h frames.h frame_defs.h display.h kernel.h
+-join.o: join.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h conn.h \
+-      lec.h join.h frames.h frame_defs.h display.h
+-kernel.o: kernel.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h kernel.h \
+-      lec.h conn.h frames.h frame_defs.h
+-main.o: main.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h join.h \
+-      lec.h conn.h address.h display.h kernel.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -356,27 +365,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-sbinPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -388,12 +397,14 @@
+ clean-compile maintainer-clean-compile mostlyclean-libtool \
+ distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
+ uninstall-man8 install-man uninstall-man tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/lane/Makefile.in
++++ linux-atm-2.4.1/src/lane/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -89,14 +89,11 @@
+ LDADD = $(top_builddir)/src/lib/libatm.la
+-LES_BUS_SRCS = mem.c mem.h load.c load.h units.c units.h load_lex.l load_lex.h \
+-              timers.c timers.h dump.c dump.h lane_atm.c lane_atm.h \
+-              events.c events.h lane.c lane.h
++LES_BUS_SRCS = mem.c mem.h load.c load.h units.c units.h load_lex.l load_lex.h                timers.c timers.h dump.c dump.h lane_atm.c lane_atm.h           events.c events.h lane.c lane.h
+ les_SOURCES = $(LES_BUS_SRCS) packet.c packet.h connect.c connect.h db.c db.h
+ bus_SOURCES = $(LES_BUS_SRCS) connect_bus.c
+-lecs_SOURCES = lecs_db.l lecs_db.h lecs_load.c lecs_load.h lecs.c lecs.h \
+-              ldb.c ldb.h mem_lecs.c mem_lecs.h atm_lecs.c atm_lecs.h
++lecs_SOURCES = lecs_db.l lecs_db.h lecs_load.c lecs_load.h lecs.c lecs.h              ldb.c ldb.h mem_lecs.c mem_lecs.h atm_lecs.c atm_lecs.h
+ man_MANS = les.8 lecs.8 bus.8
+@@ -148,8 +145,13 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/atm_lecs.P .deps/connect.P .deps/connect_bus.P \
++.deps/db.P .deps/dump.P .deps/events.P .deps/lane.P .deps/lane_atm.P \
++.deps/ldb.P .deps/lecs.P .deps/lecs_db.P .deps/lecs_load.P .deps/load.P \
++.deps/load_lex.P .deps/mem.P .deps/mem_lecs.P .deps/packet.P \
++.deps/timers.P .deps/units.P
+ SOURCES = $(les_SOURCES) $(bus_SOURCES) $(lecs_SOURCES)
+ OBJECTS = $(les_OBJECTS) $(bus_OBJECTS) $(lecs_OBJECTS)
+@@ -157,9 +159,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .l .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/lane/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/lane/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -189,9 +191,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -214,9 +213,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -304,7 +300,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -320,6 +316,11 @@
+ subdir = src/lane
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/lane/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -330,62 +331,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-atm_lecs.o: atm_lecs.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmsap.h \
+-      atm_lecs.h
+-connect.o: connect.c ../../config.h ../../src/include/stdint.h mem.h \
+-      units.h lane.h dump.h ../../src/include/atm.h \
+-      ../../src/include/atmsap.h load.h connect.h timers.h events.h \
+-      db.h packet.h lane_atm.h
+-connect_bus.o: connect_bus.c ../../config.h ../../src/include/stdint.h \
+-      mem.h units.h lane.h dump.h ../../src/include/atm.h \
+-      ../../src/include/atmsap.h load.h connect.h timers.h events.h \
+-      lane_atm.h
+-db.o: db.c ../../config.h ../../src/include/stdint.h mem.h units.h \
+-      lane.h dump.h ../../src/include/atm.h \
+-      ../../src/include/atmsap.h load.h connect.h timers.h events.h \
+-      db.h
+-dump.o: dump.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmsap.h dump.h \
+-      units.h lane.h load.h
+-events.o: events.c ../../config.h events.h units.h load.h lane.h dump.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h mem.h timers.h connect.h
+-lane.o: lane.c ../../config.h units.h load.h lane.h dump.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h mem.h connect.h timers.h events.h
+-lane_atm.o: lane_atm.c ../../config.h lane_atm.h units.h lane.h \
+-      connect.h timers.h load.h events.h ../../src/include/atmsap.h \
+-      ../../src/include/stdint.h dump.h ../../src/include/atm.h mem.h
+-ldb.o: ldb.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h lecs.h ldb.h mem_lecs.h
+-lecs.o: lecs.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h lecs_load.h ldb.h mem_lecs.h lecs.h \
+-      atm_lecs.h
+-lecs_db.o: lecs_db.c ../../config.h lecs_load.h lecs_db.h
+-lecs_load.o: lecs_load.c ../../config.h lecs_load.h lecs_db.h ldb.h \
+-      lecs.h
+-load.o: load.c ../../config.h load.h units.h lane.h dump.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h mem.h load_lex.h
+-load_lex.o: load_lex.c ../../config.h ../../src/include/stdint.h \
+-      load_lex.h lane.h units.h load.h mem.h
+-mem.o: mem.c ../../config.h mem.h units.h dump.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmsap.h lane.h \
+-      load.h
+-mem_lecs.o: mem_lecs.c ../../config.h mem_lecs.h
+-packet.o: packet.c ../../config.h ../../src/include/stdint.h mem.h \
+-      units.h lane.h dump.h ../../src/include/atm.h \
+-      ../../src/include/atmsap.h load.h connect.h timers.h events.h \
+-      db.h packet.h
+-timers.o: timers.c ../../config.h timers.h units.h load.h lane.h dump.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h mem.h
+-units.o: units.c ../../config.h units.h mem.h lane.h load.h dump.h \
+-      ../../src/include/atm.h ../../src/include/stdint.h \
+-      ../../src/include/atmsap.h connect.h timers.h events.h \
+-      lane_atm.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -422,29 +399,29 @@
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ maintainer-clean-generic:
+-      -test -z "lecs_dblload_lexl" || rm -f lecs_dbl load_lexl
++      -test -z "lecs_dbcload_lexc" || rm -f lecs_dbc load_lexc
+ mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-sbinPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -456,12 +433,14 @@
+ clean-compile maintainer-clean-compile mostlyclean-libtool \
+ distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
+ uninstall-man8 install-man uninstall-man tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/mpoad/Makefile.in
++++ linux-atm-2.4.1/src/mpoad/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -89,9 +89,7 @@
+ LDADD = $(top_builddir)/src/lib/libatm.la
+-mpcd_SOURCES = get_vars.c get_vars.h io.c io.h k_interf.c k_interf.h main.c \
+-              p_factory.c  p_recogn.c id_list.c tag_list.c \
+-              poll2select.c poll2select.h lecs.c lecs.h packets.h
++mpcd_SOURCES = get_vars.c get_vars.h io.c io.h k_interf.c k_interf.h main.c           p_factory.c  p_recogn.c id_list.c tag_list.c            poll2select.c poll2select.h lecs.c lecs.h packets.h
+ man_MANS = mpcd.8
+@@ -128,8 +126,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/get_vars.P .deps/id_list.P .deps/io.P \
++.deps/k_interf.P .deps/lecs.P .deps/main.P .deps/p_factory.P \
++.deps/p_recogn.P .deps/poll2select.P .deps/tag_list.P
+ SOURCES = $(mpcd_SOURCES)
+ OBJECTS = $(mpcd_OBJECTS)
+@@ -137,9 +138,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/mpoad/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/mpoad/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -169,9 +170,6 @@
+         rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
+       done
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -194,9 +192,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -274,7 +269,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -290,6 +285,11 @@
+ subdir = src/mpoad
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/mpoad/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -300,29 +300,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-get_vars.o: get_vars.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h packets.h get_vars.h io.h
+-id_list.o: id_list.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h packets.h
+-io.o: io.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h packets.h k_interf.h io.h get_vars.h \
+-      poll2select.h
+-k_interf.o: k_interf.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h k_interf.h packets.h io.h get_vars.h
+-lecs.o: lecs.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h ../../src/include/atmsap.h lecs.h \
+-      k_interf.h
+-main.o: main.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h packets.h io.h k_interf.h get_vars.h \
+-      lecs.h
+-p_factory.o: p_factory.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atm.h packets.h get_vars.h io.h
+-p_recogn.o: p_recogn.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h io.h k_interf.h packets.h
+-poll2select.o: poll2select.c ../../config.h
+-tag_list.o: tag_list.c ../../config.h packets.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -360,27 +369,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-sbinPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -392,12 +401,14 @@
+ clean-compile maintainer-clean-compile mostlyclean-libtool \
+ distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
+ uninstall-man8 install-man uninstall-man tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/mpoad/p_factory.c
++++ linux-atm-2.4.1/src/mpoad/p_factory.c
+@@ -34,7 +34,7 @@
+         while( count > 1 )  {
+            /*  This is the inner loop */
+-               sum += * ((uint16_t *) addr)++;
++               sum += * ((uint16_t *) addr); addr += sizeof(uint16_t);
+                count -= 2;
+        }
+--- linux-atm-2.4.1.orig/src/switch/Makefile.in
++++ linux-atm-2.4.1/src/switch/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -92,11 +92,9 @@
+ swc_SOURCES = swc.c swc.h
+ swc_LDADD = $(top_builddir)/src/lib/libatm.la
+-swc_DEPENDENCIES = $(swc_LDADD) $(top_builddir)/src/include/atm.h \
+-                      $(top_builddir)/src/include/atmd.h
++swc_DEPENDENCIES = $(swc_LDADD) $(top_builddir)/src/include/atm.h                     $(top_builddir)/src/include/atmd.h
+-libsw_a_SOURCES = control.c dispatch.c dispatch.h proto.c proto.h relay.c \
+-                      route.c route.h sig.c sig.h cfg_y.y cfg_l.l fab.h
++libsw_a_SOURCES = control.c dispatch.c dispatch.h proto.c proto.h relay.c                     route.c route.h sig.c sig.h cfg_y.y cfg_l.l fab.h
+ EXTRA_DIST = cfg_y.h README
+@@ -132,8 +130,11 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/cfg_l.P .deps/cfg_y.P .deps/control.P \
++.deps/dispatch.P .deps/proto.P .deps/relay.P .deps/route.P .deps/sig.P \
++.deps/swc.P
+ SOURCES = $(libsw_a_SOURCES) $(swc_SOURCES)
+ OBJECTS = $(libsw_a_OBJECTS) $(swc_OBJECTS)
+@@ -141,9 +142,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .l .lo .o .obj .s .y
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/switch/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/switch/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -157,9 +158,6 @@
+ maintainer-clean-noinstLIBRARIES:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -182,9 +180,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -306,7 +301,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -322,6 +317,11 @@
+ subdir = src/switch
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/switch/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -342,32 +342,38 @@
+             || exit 1; \
+         fi; \
+       done
+-cfg_l.o: cfg_l.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h cfg_y.h
+-cfg_y.o: cfg_y.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h fab.h proto.h \
+-      ../../src/include/atmsap.h ../../src/include/atmd.h sig.h \
+-      route.h swc.h
+-control.o: control.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h fab.h \
+-      proto.h ../../src/include/atmsap.h sig.h dispatch.h swc.h
+-dispatch.o: dispatch.c ../../config.h ../../src/include/atmd.h \
+-      ../../src/include/stdint.h ../../src/include/atm.h dispatch.h
+-proto.o: proto.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h sig.h fab.h \
+-      proto.h ../../src/include/atmsap.h
+-relay.o: relay.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h fab.h \
+-      proto.h ../../src/include/atmsap.h sig.h dispatch.h route.h
+-route.o: route.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h route.h \
+-      sig.h
+-sig.o: sig.c ../../config.h ../../src/include/stdint.h \
+-      ../../src/include/atmd.h ../../src/include/atm.h dispatch.h \
+-      proto.h ../../src/include/atmsap.h sig.h route.h fab.h
+-swc.o: swc.c ../../config.h ../../src/include/atm.h \
+-      ../../src/include/stdint.h ../../src/include/atmd.h swc.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-recursive
+ dvi-am:
+@@ -404,22 +410,23 @@
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+ maintainer-clean-generic:
+-      -test -z "cfg_llcfg_yhcfg_yc" || rm -f cfg_ll cfg_yh cfg_yc
++      -test -z "cfg_lccfg_yhcfg_yc" || rm -f cfg_lc cfg_yh cfg_yc
+ mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
+               mostlyclean-libtool mostlyclean-noinstPROGRAMS \
+-              mostlyclean-tags mostlyclean-generic
++              mostlyclean-tags mostlyclean-depend mostlyclean-generic
+ mostlyclean: mostlyclean-recursive
+ clean-am:  clean-noinstLIBRARIES clean-compile clean-libtool \
+-              clean-noinstPROGRAMS clean-tags clean-generic \
+-              mostlyclean-am
++              clean-noinstPROGRAMS clean-tags clean-depend \
++              clean-generic mostlyclean-am
+ clean: clean-recursive
+ distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+               distclean-libtool distclean-noinstPROGRAMS \
+-              distclean-tags distclean-generic clean-am
++              distclean-tags distclean-depend distclean-generic \
++              clean-am
+       -rm -f libtool
+ distclean: distclean-recursive
+@@ -427,7 +434,8 @@
+ maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+               maintainer-clean-compile maintainer-clean-libtool \
+               maintainer-clean-noinstPROGRAMS maintainer-clean-tags \
+-              maintainer-clean-generic distclean-am
++              maintainer-clean-depend maintainer-clean-generic \
++              distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -445,12 +453,14 @@
+ all-recursive check-recursive installcheck-recursive info-recursive \
+ dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
+ maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs-am \
+-installdirs mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs-am installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/switch/cfg_y.c
++++ linux-atm-2.4.1/src/switch/cfg_y.c
+@@ -1,21 +1,87 @@
++/* A Bison parser, made by GNU Bison 1.875d.  */
+-/*  A Bison parser, made from cfg_y.y
+-    by GNU Bison version 1.28  */
++/* Skeleton parser for Yacc-like parsing with Bison,
++   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+-#define YYBISON 1  /* Identify Bison output.  */
++   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, 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-1307, USA.  */
++
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
++
++/* Written by Richard Stallman by simplifying the original so called
++   ``semantic'' parser.  */
++
++/* All symbols defined below should begin with yy or YY, to avoid
++   infringing on user name space.  This should be done even for local
++   variables, as they might otherwise be expanded by user macros.
++   There are some unavoidable exceptions within include files to
++   define necessary library symbols; they are noted "INFRINGES ON
++   USER NAME SPACE" below.  */
++
++/* Identify Bison output.  */
++#define YYBISON 1
++
++/* Skeleton name.  */
++#define YYSKELETON_NAME "yacc.c"
++
++/* Pure parsers.  */
++#define YYPURE 0
++
++/* Using locations.  */
++#define YYLSP_NEEDED 0
+-#define       TOK_COMMAND     257
+-#define       TOK_VPCI        258
+-#define       TOK_ITF 259
+-#define       TOK_DEFAULT     260
+-#define       TOK_ROUTE       261
+-#define       TOK_STR 262
+-#define       TOK_SOCKET      263
+-#define       TOK_OPTION      264
+-#define       TOK_CONTROL     265
+-#define       TOK_NUM 266
+-#define       TOK_PVC 267
++
++/* Tokens.  */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++   /* Put the tokens into the symbol table, so that GDB and other debuggers
++      know about them.  */
++   enum yytokentype {
++     TOK_COMMAND = 258,
++     TOK_VPCI = 259,
++     TOK_ITF = 260,
++     TOK_DEFAULT = 261,
++     TOK_ROUTE = 262,
++     TOK_STR = 263,
++     TOK_SOCKET = 264,
++     TOK_OPTION = 265,
++     TOK_CONTROL = 266,
++     TOK_NUM = 267,
++     TOK_PVC = 268
++   };
++#endif
++#define TOK_COMMAND 258
++#define TOK_VPCI 259
++#define TOK_ITF 260
++#define TOK_DEFAULT 261
++#define TOK_ROUTE 262
++#define TOK_STR 263
++#define TOK_SOCKET 264
++#define TOK_OPTION 265
++#define TOK_CONTROL 266
++#define TOK_NUM 267
++#define TOK_PVC 268
++
++
++
++
++/* Copy the first part of user declarations.  */
+ #line 1 "cfg_y.y"
+ /* cfg.y - switch configuration language */
+@@ -29,6 +95,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <limits.h>
++#include <stdlib.h>
+ #include "atm.h"
+@@ -38,436 +105,743 @@
+ #include "swc.h"
++extern void yyerror(const char *s);
++
+ static int itf;
+ static SIGNALING_ENTITY *sig;
+-#line 27 "cfg_y.y"
+-typedef union {
++
++/* Enabling traces.  */
++#ifndef YYDEBUG
++# define YYDEBUG 0
++#endif
++
++/* Enabling verbose error messages.  */
++#ifdef YYERROR_VERBOSE
++# undef YYERROR_VERBOSE
++# define YYERROR_VERBOSE 1
++#else
++# define YYERROR_VERBOSE 0
++#endif
++
++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#line 30 "cfg_y.y"
++typedef union YYSTYPE {
+     int num;
+     char *str;
+     struct sockaddr_atmpvc pvc;
+ } YYSTYPE;
+-#include <stdio.h>
+-
+-#ifndef __cplusplus
+-#ifndef __STDC__
+-#define const
+-#endif
++/* Line 191 of yacc.c.  */
++#line 137 "y.tab.c"
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++# define YYSTYPE_IS_TRIVIAL 1
+ #endif
+-#define       YYFINAL         31
+-#define       YYFLAG          -32768
+-#define       YYNTBASE        16
+-
+-#define YYTRANSLATE(x) ((unsigned)(x) <= 267 ? yytranslate[x] : 27)
+-
+-static const char yytranslate[] = {     0,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,    14,     2,    15,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+-     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+-     7,     8,     9,    10,    11,    12,    13
+-};
+-
+-#if YYDEBUG != 0
+-static const short yyprhs[] = {     0,
+-     0,     1,     4,     7,    10,    13,    14,    15,    25,    26,
+-    29,    30,    33,    34,    36,    37,    40,    41,    45
+-};
++/* Copy the second part of user declarations.  */
++
++
++/* Line 214 of yacc.c.  */
++#line 149 "y.tab.c"
++
++#if ! defined (yyoverflow) || YYERROR_VERBOSE
++
++# ifndef YYFREE
++#  define YYFREE free
++# endif
++# ifndef YYMALLOC
++#  define YYMALLOC malloc
++# endif
++
++/* The parser invokes alloca or malloc; define the necessary symbols.  */
++
++# ifdef YYSTACK_USE_ALLOCA
++#  if YYSTACK_USE_ALLOCA
++#   define YYSTACK_ALLOC alloca
++#  endif
++# else
++#  if defined (alloca) || defined (_ALLOCA_H)
++#   define YYSTACK_ALLOC alloca
++#  else
++#   ifdef __GNUC__
++#    define YYSTACK_ALLOC __builtin_alloca
++#   endif
++#  endif
++# endif
++
++# ifdef YYSTACK_ALLOC
++   /* Pacify GCC's `empty if-body' warning. */
++#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
++# else
++#  if defined (__STDC__) || defined (__cplusplus)
++#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
++#   define YYSIZE_T size_t
++#  endif
++#  define YYSTACK_ALLOC YYMALLOC
++#  define YYSTACK_FREE YYFREE
++# endif
++#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
++
++
++#if (! defined (yyoverflow) \
++     && (! defined (__cplusplus) \
++       || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+-static const short yyrhs[] = {    -1,
+-    17,    16,     0,    18,    16,     0,    11,    16,     0,    10,
+-     8,     0,     0,     0,    21,     9,    14,    19,    22,    20,
+-    23,    24,    15,     0,     0,     3,     8,     0,     0,     5,
+-    12,     0,     0,    13,     0,     0,    26,    24,     0,     0,
+-     6,    25,    24,     0,     7,     0
+-};
++/* A type that is properly aligned for any stack member.  */
++union yyalloc
++{
++  short int yyss;
++  YYSTYPE yyvs;
++  };
++
++/* The size of the maximum gap between one aligned stack and the next.  */
++# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
++
++/* The size of an array large to enough to hold all stacks, each with
++   N elements.  */
++# define YYSTACK_BYTES(N) \
++     ((N) * (sizeof (short int) + sizeof (YYSTYPE))                   \
++      + YYSTACK_GAP_MAXIMUM)
++
++/* Copy COUNT objects from FROM to TO.  The source and destination do
++   not overlap.  */
++# ifndef YYCOPY
++#  if defined (__GNUC__) && 1 < __GNUC__
++#   define YYCOPY(To, From, Count) \
++      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
++#  else
++#   define YYCOPY(To, From, Count)            \
++      do                                      \
++      {                                       \
++        register YYSIZE_T yyi;                \
++        for (yyi = 0; yyi < (Count); yyi++)   \
++          (To)[yyi] = (From)[yyi];            \
++      }                                       \
++      while (0)
++#  endif
++# endif
++
++/* Relocate STACK from its old location to the new one.  The
++   local variables YYSIZE and YYSTACKSIZE give the old and new number of
++   elements in the stack, and YYPTR gives the new location of the
++   stack.  Advance YYPTR to a properly aligned location for the next
++   stack.  */
++# define YYSTACK_RELOCATE(Stack)                                      \
++    do                                                                        \
++      {                                                                       \
++      YYSIZE_T yynewbytes;                                            \
++      YYCOPY (&yyptr->Stack, Stack, yysize);                          \
++      Stack = &yyptr->Stack;                                          \
++      yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
++      yyptr += yynewbytes / sizeof (*yyptr);                          \
++      }                                                                       \
++    while (0)
+ #endif
+-#if YYDEBUG != 0
+-static const short yyrline[] = { 0,
+-    43,    44,    45,    46,    52,    59,    65,    73,    76,    80,
+-    87,    88,    94,    95,   101,   102,   103,   108,   110
+-};
++#if defined (__STDC__) || defined (__cplusplus)
++   typedef signed char yysigned_char;
++#else
++   typedef short int yysigned_char;
+ #endif
++/* YYFINAL -- State number of the termination state. */
++#define YYFINAL  11
++/* YYLAST -- Last index in YYTABLE.  */
++#define YYLAST   22
++
++/* YYNTOKENS -- Number of terminals. */
++#define YYNTOKENS  16
++/* YYNNTS -- Number of nonterminals. */
++#define YYNNTS  12
++/* YYNRULES -- Number of rules. */
++#define YYNRULES  20
++/* YYNRULES -- Number of states. */
++#define YYNSTATES  31
++
++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
++#define YYUNDEFTOK  2
++#define YYMAXUTOK   268
+-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
++#define YYTRANSLATE(YYX)                                              \
++  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+-static const char * const yytname[] = {   "$","error","$undefined.","TOK_COMMAND",
+-"TOK_VPCI","TOK_ITF","TOK_DEFAULT","TOK_ROUTE","TOK_STR","TOK_SOCKET","TOK_OPTION",
+-"TOK_CONTROL","TOK_NUM","TOK_PVC","'{'","'}'","all","option","sig","@1","@2",
+-"opt_command","opt_itf","opt_via","routes","@3","route", NULL
++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
++static const unsigned char yytranslate[] =
++{
++       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,    14,     2,    15,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
++       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
++       5,     6,     7,     8,     9,    10,    11,    12,    13
+ };
+-#endif
+-static const short yyr1[] = {     0,
+-    16,    16,    16,    16,    17,    19,    20,    18,    21,    21,
+-    22,    22,    23,    23,    24,    24,    25,    24,    26
++#if YYDEBUG
++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
++   YYRHS.  */
++static const unsigned char yyprhs[] =
++{
++       0,     0,     3,     4,     7,    10,    13,    16,    17,    18,
++      28,    29,    32,    33,    36,    37,    39,    40,    43,    44,
++      48
+ };
+-static const short yyr2[] = {     0,
+-     0,     2,     2,     2,     2,     0,     0,     9,     0,     2,
+-     0,     2,     0,     1,     0,     2,     0,     3,     1
++/* YYRHS -- A `-1'-separated list of the rules' RHS. */
++static const yysigned_char yyrhs[] =
++{
++      17,     0,    -1,    -1,    18,    17,    -1,    19,    17,    -1,
++      11,    17,    -1,    10,     8,    -1,    -1,    -1,    22,     9,
++      14,    20,    23,    21,    24,    25,    15,    -1,    -1,     3,
++       8,    -1,    -1,     5,    12,    -1,    -1,    13,    -1,    -1,
++      27,    25,    -1,    -1,     6,    26,    25,    -1,     7,    -1
+ };
+-static const short yydefact[] = {     1,
+-     0,     0,     1,     1,     1,     0,    10,     5,     4,     2,
+-     3,     0,     6,    11,     0,     7,    12,    13,    14,    15,
+-    17,    19,     0,    15,    15,     8,    16,    18,     0,     0,
+-     0
++/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
++static const unsigned char yyrline[] =
++{
++       0,    46,    46,    47,    48,    49,    56,    64,    68,    63,
++      80,    83,    90,    91,    97,    98,   104,   105,   107,   106,
++     114
+ };
++#endif
+-static const short yydefgoto[] = {     9,
+-     4,     5,    14,    18,     6,    16,    20,    23,    25,    24
++#if YYDEBUG || YYERROR_VERBOSE
++/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
++   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
++static const char *const yytname[] =
++{
++  "$end", "error", "$undefined", "TOK_COMMAND", "TOK_VPCI", "TOK_ITF",
++  "TOK_DEFAULT", "TOK_ROUTE", "TOK_STR", "TOK_SOCKET", "TOK_OPTION",
++  "TOK_CONTROL", "TOK_NUM", "TOK_PVC", "'{'", "'}'", "$accept", "all",
++  "option", "sig", "@1", "@2", "opt_command", "opt_itf", "opt_via",
++  "routes", "@3", "route", 0
+ };
++#endif
+-static const short yypact[] = {    -3,
+-     3,     4,    -3,    -3,    -3,     6,-32768,-32768,-32768,-32768,
+--32768,    -1,-32768,     9,     7,-32768,-32768,     8,-32768,    -5,
+--32768,-32768,     1,    -5,    -5,-32768,-32768,-32768,    17,    18,
+--32768
++# ifdef YYPRINT
++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
++   token YYLEX-NUM.  */
++static const unsigned short int yytoknum[] =
++{
++       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
++     265,   266,   267,   268,   123,   125
+ };
++# endif
+-static const short yypgoto[] = {     5,
+--32768,-32768,-32768,-32768,-32768,-32768,-32768,   -21,-32768,-32768
++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
++static const unsigned char yyr1[] =
++{
++       0,    16,    17,    17,    17,    17,    18,    20,    21,    19,
++      22,    22,    23,    23,    24,    24,    25,    25,    26,    25,
++      27
+ };
+-
+-#define       YYLAST          21
+-
+-
+-static const short yytable[] = {     1,
+-    21,    22,    27,    28,    29,    -9,     2,     3,    10,    11,
+-     7,     8,    13,    15,    12,    26,    30,    31,    17,     0,
+-    19
++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
++static const unsigned char yyr2[] =
++{
++       0,     2,     0,     2,     2,     2,     2,     0,     0,     9,
++       0,     2,     0,     2,     0,     1,     0,     2,     0,     3,
++       1
+ };
+-static const short yycheck[] = {     3,
+-     6,     7,    24,    25,     0,     9,    10,    11,     4,     5,
+-     8,     8,    14,     5,     9,    15,     0,     0,    12,    -1,
+-    13
++/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
++   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
++   means the default is an error.  */
++static const unsigned char yydefact[] =
++{
++       2,     0,     0,     2,     0,     2,     2,     0,    11,     6,
++       5,     1,     3,     4,     0,     7,    12,     0,     8,    13,
++      14,    15,    16,    18,    20,     0,    16,    16,     9,    17,
++      19
+ };
+-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+-#line 3 "/usr/lib/bison.simple"
+-/* This file comes from bison-1.28.  */
+-/* Skeleton output parser for bison,
+-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
++/* YYDEFGOTO[NTERM-NUM]. */
++static const yysigned_char yydefgoto[] =
++{
++      -1,     4,     5,     6,    16,    20,     7,    18,    22,    25,
++      27,    26
++};
+-   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, or (at your option)
+-   any later version.
++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
++   STATE-NUM.  */
++#define YYPACT_NINF -16
++static const yysigned_char yypact[] =
++{
++      -3,    -6,     5,    -3,    14,    -3,    -3,    -4,   -16,   -16,
++     -16,   -16,   -16,   -16,     1,   -16,    11,     6,   -16,   -16,
++       4,   -16,     3,   -16,   -16,     7,     3,     3,   -16,   -16,
++     -16
++};
+-   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.
++/* YYPGOTO[NTERM-NUM].  */
++static const yysigned_char yypgoto[] =
++{
++     -16,    -2,   -16,   -16,   -16,   -16,   -16,   -16,   -16,   -15,
++     -16,   -16
++};
+-   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-1307, USA.  */
++/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
++   positive, shift that token.  If negative, reduce the rule which
++   number is the opposite.  If zero, do what YYDEFACT says.
++   If YYTABLE_NINF, syntax error.  */
++#define YYTABLE_NINF -11
++static const yysigned_char yytable[] =
++{
++       1,    10,     8,    12,    13,    14,   -10,     2,     3,    23,
++      24,    29,    30,     9,    11,    15,    17,    21,    19,     0,
++       0,     0,    28
++};
+-/* As a special exception, when this file is copied by Bison into a
+-   Bison output file, you may use that output file without restriction.
+-   This special exception was added by the Free Software Foundation
+-   in version 1.24 of Bison.  */
++static const yysigned_char yycheck[] =
++{
++       3,     3,     8,     5,     6,     9,     9,    10,    11,     6,
++       7,    26,    27,     8,     0,    14,     5,    13,    12,    -1,
++      -1,    -1,    15
++};
+-/* This is the parser code that is written into each bison parser
+-  when the %semantic_parser declaration is not specified in the grammar.
+-  It was written by Richard Stallman by simplifying the hairy parser
+-  used when %semantic_parser is specified.  */
+-
+-#ifndef YYSTACK_USE_ALLOCA
+-#ifdef alloca
+-#define YYSTACK_USE_ALLOCA
+-#else /* alloca not defined */
+-#ifdef __GNUC__
+-#define YYSTACK_USE_ALLOCA
+-#define alloca __builtin_alloca
+-#else /* not GNU C.  */
+-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+-#define YYSTACK_USE_ALLOCA
+-#include <alloca.h>
+-#else /* not sparc */
+-/* We think this test detects Watcom and Microsoft C.  */
+-/* This used to test MSDOS, but that is a bad idea
+-   since that symbol is in the user namespace.  */
+-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+-#if 0 /* No need for malloc.h, which pollutes the namespace;
+-       instead, just don't use alloca.  */
+-#include <malloc.h>
+-#endif
+-#else /* not MSDOS, or __TURBOC__ */
+-#if defined(_AIX)
+-/* I don't know what this was needed for, but it pollutes the namespace.
+-   So I turned it off.   rms, 2 May 1997.  */
+-/* #include <malloc.h>  */
+- #pragma alloca
+-#define YYSTACK_USE_ALLOCA
+-#else /* not MSDOS, or __TURBOC__, or _AIX */
+-#if 0
+-#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+-               and on HPUX 10.  Eventually we can turn this on.  */
+-#define YYSTACK_USE_ALLOCA
+-#define alloca __builtin_alloca
+-#endif /* __hpux */
+-#endif
+-#endif /* not _AIX */
+-#endif /* not MSDOS, or __TURBOC__ */
+-#endif /* not sparc */
+-#endif /* not GNU C */
+-#endif /* alloca not defined */
+-#endif /* YYSTACK_USE_ALLOCA not defined */
++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
++   symbol of state STATE-NUM.  */
++static const unsigned char yystos[] =
++{
++       0,     3,    10,    11,    17,    18,    19,    22,     8,     8,
++      17,     0,    17,    17,     9,    14,    20,     5,    23,    12,
++      21,    13,    24,     6,     7,    25,    27,    26,    15,    25,
++      25
++};
+-#ifdef YYSTACK_USE_ALLOCA
+-#define YYSTACK_ALLOC alloca
+-#else
+-#define YYSTACK_ALLOC malloc
++#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
++# define YYSIZE_T __SIZE_TYPE__
++#endif
++#if ! defined (YYSIZE_T) && defined (size_t)
++# define YYSIZE_T size_t
++#endif
++#if ! defined (YYSIZE_T)
++# if defined (__STDC__) || defined (__cplusplus)
++#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
++#  define YYSIZE_T size_t
++# endif
++#endif
++#if ! defined (YYSIZE_T)
++# define YYSIZE_T unsigned int
+ #endif
+-
+-/* Note: there must be only one dollar sign in this file.
+-   It is replaced by the list of actions, each action
+-   as one case of the switch.  */
+ #define yyerrok               (yyerrstatus = 0)
+ #define yyclearin     (yychar = YYEMPTY)
+-#define YYEMPTY               -2
++#define YYEMPTY               (-2)
+ #define YYEOF         0
++
+ #define YYACCEPT      goto yyacceptlab
+-#define YYABORT       goto yyabortlab
+-#define YYERROR               goto yyerrlab1
+-/* Like YYERROR except do call yyerror.
+-   This remains here temporarily to ease the
+-   transition to the new meaning of YYERROR, for GCC.
++#define YYABORT               goto yyabortlab
++#define YYERROR               goto yyerrorlab
++
++
++/* Like YYERROR except do call yyerror.  This remains here temporarily
++   to ease the transition to the new meaning of YYERROR, for GCC.
+    Once GCC version 2 has supplanted version 1, this can go.  */
++
+ #define YYFAIL                goto yyerrlab
++
+ #define YYRECOVERING()  (!!yyerrstatus)
+-#define YYBACKUP(token, value) \
++
++#define YYBACKUP(Token, Value)                                        \
+ do                                                            \
+   if (yychar == YYEMPTY && yylen == 1)                                \
+-    { yychar = (token), yylval = (value);                     \
+-      yychar1 = YYTRANSLATE (yychar);                         \
++    {                                                         \
++      yychar = (Token);                                               \
++      yylval = (Value);                                               \
++      yytoken = YYTRANSLATE (yychar);                         \
+       YYPOPSTACK;                                             \
+       goto yybackup;                                          \
+     }                                                         \
+   else                                                                \
+-    { yyerror ("syntax error: cannot back up"); YYERROR; }    \
++    {                                                                 \
++      yyerror ("syntax error: cannot back up");\
++      YYERROR;                                                        \
++    }                                                         \
+ while (0)
+ #define YYTERROR      1
+ #define YYERRCODE     256
+-#ifndef YYPURE
+-#define YYLEX         yylex()
+-#endif
++/* YYLLOC_DEFAULT -- Compute the default location (before the actions
++   are run).  */
+-#ifdef YYPURE
+-#ifdef YYLSP_NEEDED
+-#ifdef YYLEX_PARAM
+-#define YYLEX         yylex(&yylval, &yylloc, YYLEX_PARAM)
+-#else
+-#define YYLEX         yylex(&yylval, &yylloc)
++#ifndef YYLLOC_DEFAULT
++# define YYLLOC_DEFAULT(Current, Rhs, N)              \
++   ((Current).first_line   = (Rhs)[1].first_line,     \
++    (Current).first_column = (Rhs)[1].first_column,   \
++    (Current).last_line    = (Rhs)[N].last_line,      \
++    (Current).last_column  = (Rhs)[N].last_column)
+ #endif
+-#else /* not YYLSP_NEEDED */
++
++/* YYLEX -- calling `yylex' with the right arguments.  */
++
+ #ifdef YYLEX_PARAM
+-#define YYLEX         yylex(&yylval, YYLEX_PARAM)
++# define YYLEX yylex (YYLEX_PARAM)
+ #else
+-#define YYLEX         yylex(&yylval)
+-#endif
+-#endif /* not YYLSP_NEEDED */
++# define YYLEX yylex ()
+ #endif
+-/* If nonreentrant, generate the variables here */
++/* Enable debugging if requested.  */
++#if YYDEBUG
+-#ifndef YYPURE
++# ifndef YYFPRINTF
++#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
++#  define YYFPRINTF fprintf
++# endif
++
++# define YYDPRINTF(Args)                      \
++do {                                          \
++  if (yydebug)                                        \
++    YYFPRINTF Args;                           \
++} while (0)
++
++# define YYDSYMPRINT(Args)                    \
++do {                                          \
++  if (yydebug)                                        \
++    yysymprint Args;                          \
++} while (0)
++
++# define YYDSYMPRINTF(Title, Token, Value, Location)          \
++do {                                                          \
++  if (yydebug)                                                        \
++    {                                                         \
++      YYFPRINTF (stderr, "%s ", Title);                               \
++      yysymprint (stderr,                                     \
++                  Token, Value);      \
++      YYFPRINTF (stderr, "\n");                                       \
++    }                                                         \
++} while (0)
+-int   yychar;                 /*  the lookahead symbol                */
+-YYSTYPE       yylval;                 /*  the semantic value of the           */
+-                              /*  lookahead symbol                    */
++/*------------------------------------------------------------------.
++| yy_stack_print -- Print the state stack from its BOTTOM up to its |
++| TOP (included).                                                   |
++`------------------------------------------------------------------*/
+-#ifdef YYLSP_NEEDED
+-YYLTYPE yylloc;                       /*  location data for the lookahead     */
+-                              /*  symbol                              */
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yy_stack_print (short int *bottom, short int *top)
++#else
++static void
++yy_stack_print (bottom, top)
++    short int *bottom;
++    short int *top;
+ #endif
++{
++  YYFPRINTF (stderr, "Stack now");
++  for (/* Nothing. */; bottom <= top; ++bottom)
++    YYFPRINTF (stderr, " %d", *bottom);
++  YYFPRINTF (stderr, "\n");
++}
+-int yynerrs;                  /*  number of parse errors so far       */
+-#endif  /* not YYPURE */
++# define YY_STACK_PRINT(Bottom, Top)                          \
++do {                                                          \
++  if (yydebug)                                                        \
++    yy_stack_print ((Bottom), (Top));                         \
++} while (0)
+-#if YYDEBUG != 0
+-int yydebug;                  /*  nonzero means print parse trace     */
+-/* Since this is uninitialized, it does not stop multiple parsers
+-   from coexisting.  */
++
++/*------------------------------------------------.
++| Report that the YYRULE is going to be reduced.  |
++`------------------------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yy_reduce_print (int yyrule)
++#else
++static void
++yy_reduce_print (yyrule)
++    int yyrule;
+ #endif
++{
++  int yyi;
++  unsigned int yylno = yyrline[yyrule];
++  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
++             yyrule - 1, yylno);
++  /* Print the symbols being reduced, and their result.  */
++  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
++    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
++  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
++}
++
++# define YY_REDUCE_PRINT(Rule)                \
++do {                                  \
++  if (yydebug)                                \
++    yy_reduce_print (Rule);           \
++} while (0)
++
++/* Nonzero means print parse trace.  It is left uninitialized so that
++   multiple parsers can coexist.  */
++int yydebug;
++#else /* !YYDEBUG */
++# define YYDPRINTF(Args)
++# define YYDSYMPRINT(Args)
++# define YYDSYMPRINTF(Title, Token, Value, Location)
++# define YY_STACK_PRINT(Bottom, Top)
++# define YY_REDUCE_PRINT(Rule)
++#endif /* !YYDEBUG */
+-/*  YYINITDEPTH indicates the initial size of the parser's stacks     */
++/* YYINITDEPTH -- initial size of the parser's stacks.  */
+ #ifndef       YYINITDEPTH
+-#define YYINITDEPTH 200
++# define YYINITDEPTH 200
+ #endif
+-/*  YYMAXDEPTH is the maximum size the stacks can grow to
+-    (effective only if the built-in stack extension method is used).  */
++/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
++   if the built-in stack extension method is used).
+-#if YYMAXDEPTH == 0
+-#undef YYMAXDEPTH
++   Do not make this value too large; the results are undefined if
++   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
++   evaluated with infinite-precision integer arithmetic.  */
++
++#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
++# undef YYMAXDEPTH
+ #endif
+ #ifndef YYMAXDEPTH
+-#define YYMAXDEPTH 10000
++# define YYMAXDEPTH 10000
+ #endif
++
\f
+-/* Define __yy_memcpy.  Note that the size argument
+-   should be passed with type unsigned int, because that is what the non-GCC
+-   definitions require.  With GCC, __builtin_memcpy takes an arg
+-   of type size_t, but it can handle unsigned int.  */
+-
+-#if __GNUC__ > 1              /* GNU C and GNU C++ define this.  */
+-#define __yy_memcpy(TO,FROM,COUNT)    __builtin_memcpy(TO,FROM,COUNT)
+-#else                         /* not GNU C or C++ */
+-#ifndef __cplusplus
+-/* This is the most reliable way to avoid incompatibilities
+-   in available built-in functions on various systems.  */
+-static void
+-__yy_memcpy (to, from, count)
+-     char *to;
+-     char *from;
+-     unsigned int count;
+-{
+-  register char *f = from;
+-  register char *t = to;
+-  register int i = count;
++#if YYERROR_VERBOSE
++
++# ifndef yystrlen
++#  if defined (__GLIBC__) && defined (_STRING_H)
++#   define yystrlen strlen
++#  else
++/* Return the length of YYSTR.  */
++static YYSIZE_T
++#   if defined (__STDC__) || defined (__cplusplus)
++yystrlen (const char *yystr)
++#   else
++yystrlen (yystr)
++     const char *yystr;
++#   endif
++{
++  register const char *yys = yystr;
++
++  while (*yys++ != '\0')
++    continue;
++
++  return yys - yystr - 1;
++}
++#  endif
++# endif
++
++# ifndef yystpcpy
++#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
++#   define yystpcpy stpcpy
++#  else
++/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
++   YYDEST.  */
++static char *
++#   if defined (__STDC__) || defined (__cplusplus)
++yystpcpy (char *yydest, const char *yysrc)
++#   else
++yystpcpy (yydest, yysrc)
++     char *yydest;
++     const char *yysrc;
++#   endif
++{
++  register char *yyd = yydest;
++  register const char *yys = yysrc;
+-  while (i-- > 0)
+-    *t++ = *f++;
++  while ((*yyd++ = *yys++) != '\0')
++    continue;
++
++  return yyd - 1;
+ }
++#  endif
++# endif
++
++#endif /* !YYERROR_VERBOSE */
+-#else /* __cplusplus */
++\f
++
++#if YYDEBUG
++/*--------------------------------.
++| Print this symbol on YYOUTPUT.  |
++`--------------------------------*/
+-/* This is the most reliable way to avoid incompatibilities
+-   in available built-in functions on various systems.  */
++#if defined (__STDC__) || defined (__cplusplus)
+ static void
+-__yy_memcpy (char *to, char *from, unsigned int count)
++yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yysymprint (yyoutput, yytype, yyvaluep)
++    FILE *yyoutput;
++    int yytype;
++    YYSTYPE *yyvaluep;
++#endif
+ {
+-  register char *t = to;
+-  register char *f = from;
+-  register int i = count;
++  /* Pacify ``unused variable'' warnings.  */
++  (void) yyvaluep;
+-  while (i-- > 0)
+-    *t++ = *f++;
++  if (yytype < YYNTOKENS)
++    {
++      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
++# ifdef YYPRINT
++      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
++# endif
++    }
++  else
++    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
++
++  switch (yytype)
++    {
++      default:
++        break;
++    }
++  YYFPRINTF (yyoutput, ")");
+ }
++#endif /* ! YYDEBUG */
++/*-----------------------------------------------.
++| Release the memory associated to this symbol.  |
++`-----------------------------------------------*/
++
++#if defined (__STDC__) || defined (__cplusplus)
++static void
++yydestruct (int yytype, YYSTYPE *yyvaluep)
++#else
++static void
++yydestruct (yytype, yyvaluep)
++    int yytype;
++    YYSTYPE *yyvaluep;
+ #endif
+-#endif
++{
++  /* Pacify ``unused variable'' warnings.  */
++  (void) yyvaluep;
++
++  switch (yytype)
++    {
++
++      default:
++        break;
++    }
++}
\f
+-#line 217 "/usr/lib/bison.simple"
+-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+-   into yyparse.  The argument should have type void *.
+-   It should actually point to an object.
+-   Grammar actions can access the variable by casting it
+-   to the proper pointer type.  */
++/* Prevent warnings from -Wmissing-prototypes.  */
+ #ifdef YYPARSE_PARAM
+-#ifdef __cplusplus
+-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+-#define YYPARSE_PARAM_DECL
+-#else /* not __cplusplus */
+-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+-#endif /* not __cplusplus */
+-#else /* not YYPARSE_PARAM */
+-#define YYPARSE_PARAM_ARG
+-#define YYPARSE_PARAM_DECL
+-#endif /* not YYPARSE_PARAM */
++# if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void *YYPARSE_PARAM);
++# else
++int yyparse ();
++# endif
++#else /* ! YYPARSE_PARAM */
++#if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void);
++#else
++int yyparse ();
++#endif
++#endif /* ! YYPARSE_PARAM */
++
++
++
++/* The lookahead symbol.  */
++int yychar;
++
++/* The semantic value of the lookahead symbol.  */
++YYSTYPE yylval;
++
++/* Number of syntax errors so far.  */
++int yynerrs;
++
++
++
++/*----------.
++| yyparse.  |
++`----------*/
+-/* Prevent warning if -Wstrict-prototypes.  */
+-#ifdef __GNUC__
+ #ifdef YYPARSE_PARAM
+-int yyparse (void *);
++# if defined (__STDC__) || defined (__cplusplus)
++int yyparse (void *YYPARSE_PARAM)
++# else
++int yyparse (YYPARSE_PARAM)
++  void *YYPARSE_PARAM;
++# endif
++#else /* ! YYPARSE_PARAM */
++#if defined (__STDC__) || defined (__cplusplus)
++int
++yyparse (void)
+ #else
+-int yyparse (void);
++int
++yyparse ()
++
+ #endif
+ #endif
+-
+-int
+-yyparse(YYPARSE_PARAM_ARG)
+-     YYPARSE_PARAM_DECL
+ {
++  
+   register int yystate;
+   register int yyn;
+-  register short *yyssp;
++  int yyresult;
++  /* Number of tokens to shift before error messages enabled.  */
++  int yyerrstatus;
++  /* Lookahead token as an internal (translated) token number.  */
++  int yytoken = 0;
++
++  /* Three stacks and their tools:
++     `yyss': related to states,
++     `yyvs': related to semantic values,
++     `yyls': related to locations.
++
++     Refer to the stacks thru separate pointers, to allow yyoverflow
++     to reallocate them elsewhere.  */
++
++  /* The state stack.  */
++  short int yyssa[YYINITDEPTH];
++  short int *yyss = yyssa;
++  register short int *yyssp;
++
++  /* The semantic value stack.  */
++  YYSTYPE yyvsa[YYINITDEPTH];
++  YYSTYPE *yyvs = yyvsa;
+   register YYSTYPE *yyvsp;
+-  int yyerrstatus;    /*  number of tokens to shift before error messages enabled */
+-  int yychar1 = 0;            /*  lookahead token as an internal (translated) token number */
+-
+-  short       yyssa[YYINITDEPTH];     /*  the state stack                     */
+-  YYSTYPE yyvsa[YYINITDEPTH]; /*  the semantic value stack            */
+-  short *yyss = yyssa;                /*  refer to the stacks thru separate pointers */
+-  YYSTYPE *yyvs = yyvsa;      /*  to allow yyoverflow to reallocate them elsewhere */
+-#ifdef YYLSP_NEEDED
+-  YYLTYPE yylsa[YYINITDEPTH]; /*  the location stack                  */
+-  YYLTYPE *yyls = yylsa;
+-  YYLTYPE *yylsp;
+-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+-#else
+ #define YYPOPSTACK   (yyvsp--, yyssp--)
+-#endif
+-  int yystacksize = YYINITDEPTH;
+-  int yyfree_stacks = 0;
++  YYSIZE_T yystacksize = YYINITDEPTH;
+-#ifdef YYPURE
+-  int yychar;
+-  YYSTYPE yylval;
+-  int yynerrs;
+-#ifdef YYLSP_NEEDED
+-  YYLTYPE yylloc;
+-#endif
+-#endif
++  /* The variables used to return semantic value and location from the
++     action routines.  */
++  YYSTYPE yyval;
+-  YYSTYPE yyval;              /*  the variable used to return         */
+-                              /*  semantic values from the action     */
+-                              /*  routines                            */
++  /* When reducing, the number of symbols on the RHS of the reduced
++     rule.  */
+   int yylen;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Starting parse\n");
+-#endif
++  YYDPRINTF ((stderr, "Starting parse\n"));
+   yystate = 0;
+   yyerrstatus = 0;
+@@ -479,110 +853,97 @@
+      so that they stay on the same level as the state stack.
+      The wasted elements are never initialized.  */
+-  yyssp = yyss - 1;
++  yyssp = yyss;
+   yyvsp = yyvs;
+-#ifdef YYLSP_NEEDED
+-  yylsp = yyls;
+-#endif
+-/* Push a new state, which is found in  yystate  .  */
+-/* In all cases, when you get here, the value and location stacks
+-   have just been pushed. so pushing a state here evens the stacks.  */
+-yynewstate:
+-  *++yyssp = yystate;
++  goto yysetstate;
+-  if (yyssp >= yyss + yystacksize - 1)
+-    {
+-      /* Give user a chance to reallocate the stack */
+-      /* Use copies of these so that the &'s don't force the real ones into memory. */
+-      YYSTYPE *yyvs1 = yyvs;
+-      short *yyss1 = yyss;
+-#ifdef YYLSP_NEEDED
+-      YYLTYPE *yyls1 = yyls;
+-#endif
++/*------------------------------------------------------------.
++| yynewstate -- Push a new state, which is found in yystate.  |
++`------------------------------------------------------------*/
++ yynewstate:
++  /* In all cases, when you get here, the value and location stacks
++     have just been pushed. so pushing a state here evens the stacks.
++     */
++  yyssp++;
++ yysetstate:
++  *yyssp = yystate;
++
++  if (yyss + yystacksize - 1 <= yyssp)
++    {
+       /* Get the current used size of the three stacks, in elements.  */
+-      int size = yyssp - yyss + 1;
++      YYSIZE_T yysize = yyssp - yyss + 1;
+ #ifdef yyoverflow
+-      /* Each stack pointer address is followed by the size of
+-       the data in use in that stack, in bytes.  */
+-#ifdef YYLSP_NEEDED
+-      /* This used to be a conditional around just the two extra args,
+-       but that might be undefined if yyoverflow is a macro.  */
+-      yyoverflow("parser stack overflow",
+-               &yyss1, size * sizeof (*yyssp),
+-               &yyvs1, size * sizeof (*yyvsp),
+-               &yyls1, size * sizeof (*yylsp),
+-               &yystacksize);
+-#else
+-      yyoverflow("parser stack overflow",
+-               &yyss1, size * sizeof (*yyssp),
+-               &yyvs1, size * sizeof (*yyvsp),
+-               &yystacksize);
+-#endif
+-
+-      yyss = yyss1; yyvs = yyvs1;
+-#ifdef YYLSP_NEEDED
+-      yyls = yyls1;
+-#endif
++      {
++      /* Give user a chance to reallocate the stack. Use copies of
++         these so that the &'s don't force the real ones into
++         memory.  */
++      YYSTYPE *yyvs1 = yyvs;
++      short int *yyss1 = yyss;
++
++
++      /* Each stack pointer address is followed by the size of the
++         data in use in that stack, in bytes.  This used to be a
++         conditional around just the two extra args, but that might
++         be undefined if yyoverflow is a macro.  */
++      yyoverflow ("parser stack overflow",
++                  &yyss1, yysize * sizeof (*yyssp),
++                  &yyvs1, yysize * sizeof (*yyvsp),
++
++                  &yystacksize);
++
++      yyss = yyss1;
++      yyvs = yyvs1;
++      }
+ #else /* no yyoverflow */
++# ifndef YYSTACK_RELOCATE
++      goto yyoverflowlab;
++# else
+       /* Extend the stack our own way.  */
+-      if (yystacksize >= YYMAXDEPTH)
+-      {
+-        yyerror("parser stack overflow");
+-        if (yyfree_stacks)
+-          {
+-            free (yyss);
+-            free (yyvs);
+-#ifdef YYLSP_NEEDED
+-            free (yyls);
+-#endif
+-          }
+-        return 2;
+-      }
++      if (YYMAXDEPTH <= yystacksize)
++      goto yyoverflowlab;
+       yystacksize *= 2;
+-      if (yystacksize > YYMAXDEPTH)
++      if (YYMAXDEPTH < yystacksize)
+       yystacksize = YYMAXDEPTH;
+-#ifndef YYSTACK_USE_ALLOCA
+-      yyfree_stacks = 1;
+-#endif
+-      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+-      __yy_memcpy ((char *)yyss, (char *)yyss1,
+-                 size * (unsigned int) sizeof (*yyssp));
+-      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+-      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+-                 size * (unsigned int) sizeof (*yyvsp));
+-#ifdef YYLSP_NEEDED
+-      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+-      __yy_memcpy ((char *)yyls, (char *)yyls1,
+-                 size * (unsigned int) sizeof (*yylsp));
+-#endif
++
++      {
++      short int *yyss1 = yyss;
++      union yyalloc *yyptr =
++        (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
++      if (! yyptr)
++        goto yyoverflowlab;
++      YYSTACK_RELOCATE (yyss);
++      YYSTACK_RELOCATE (yyvs);
++
++#  undef YYSTACK_RELOCATE
++      if (yyss1 != yyssa)
++        YYSTACK_FREE (yyss1);
++      }
++# endif
+ #endif /* no yyoverflow */
+-      yyssp = yyss + size - 1;
+-      yyvsp = yyvs + size - 1;
+-#ifdef YYLSP_NEEDED
+-      yylsp = yyls + size - 1;
+-#endif
++      yyssp = yyss + yysize - 1;
++      yyvsp = yyvs + yysize - 1;
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+-#endif
+-      if (yyssp >= yyss + yystacksize - 1)
++      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
++                (unsigned long int) yystacksize));
++
++      if (yyss + yystacksize - 1 <= yyssp)
+       YYABORT;
+     }
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Entering state %d\n", yystate);
+-#endif
++  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+   goto yybackup;
+- yybackup:
++
++/*-----------.
++| yybackup.  |
++`-----------*/
++yybackup:
+ /* Do appropriate processing given the current state.  */
+ /* Read a lookahead token if we need one and don't already have one.  */
+@@ -591,194 +952,167 @@
+   /* First try to decide what to do without reference to lookahead token.  */
+   yyn = yypact[yystate];
+-  if (yyn == YYFLAG)
++  if (yyn == YYPACT_NINF)
+     goto yydefault;
+   /* Not known => get a lookahead token if don't already have one.  */
+-  /* yychar is either YYEMPTY or YYEOF
+-     or a valid token in external form.  */
+-
++  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
+   if (yychar == YYEMPTY)
+     {
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Reading a token: ");
+-#endif
++      YYDPRINTF ((stderr, "Reading a token: "));
+       yychar = YYLEX;
+     }
+-  /* Convert token to internal form (in yychar1) for indexing tables with */
+-
+-  if (yychar <= 0)            /* This means end of input. */
++  if (yychar <= YYEOF)
+     {
+-      yychar1 = 0;
+-      yychar = YYEOF;         /* Don't call YYLEX any more */
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Now at end of input.\n");
+-#endif
++      yychar = yytoken = YYEOF;
++      YYDPRINTF ((stderr, "Now at end of input.\n"));
+     }
+   else
+     {
+-      yychar1 = YYTRANSLATE(yychar);
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      {
+-        fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+-        /* Give the individual parser a way to print the precise meaning
+-           of a token, for further debugging info.  */
+-#ifdef YYPRINT
+-        YYPRINT (stderr, yychar, yylval);
+-#endif
+-        fprintf (stderr, ")\n");
+-      }
+-#endif
++      yytoken = YYTRANSLATE (yychar);
++      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+     }
+-  yyn += yychar1;
+-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
++  /* If the proper action on seeing token YYTOKEN is to reduce or to
++     detect an error, take that action.  */
++  yyn += yytoken;
++  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+     goto yydefault;
+-
+   yyn = yytable[yyn];
+-
+-  /* yyn is what to do for this token type in this state.
+-     Negative => reduce, -yyn is rule number.
+-     Positive => shift, yyn is new state.
+-       New state is final state => don't bother to shift,
+-       just return success.
+-     0, or most negative number => error.  */
+-
+-  if (yyn < 0)
++  if (yyn <= 0)
+     {
+-      if (yyn == YYFLAG)
++      if (yyn == 0 || yyn == YYTABLE_NINF)
+       goto yyerrlab;
+       yyn = -yyn;
+       goto yyreduce;
+     }
+-  else if (yyn == 0)
+-    goto yyerrlab;
+   if (yyn == YYFINAL)
+     YYACCEPT;
+   /* Shift the lookahead token.  */
+-
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+-#endif
++  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+   /* Discard the token being shifted unless it is eof.  */
+   if (yychar != YYEOF)
+     yychar = YYEMPTY;
+   *++yyvsp = yylval;
+-#ifdef YYLSP_NEEDED
+-  *++yylsp = yylloc;
+-#endif
+-  /* count tokens shifted since error; after three, turn off error status.  */
+-  if (yyerrstatus) yyerrstatus--;
++
++  /* Count tokens shifted since error; after three, turn off error
++     status.  */
++  if (yyerrstatus)
++    yyerrstatus--;
+   yystate = yyn;
+   goto yynewstate;
+-/* Do the default action for the current state.  */
+-yydefault:
++/*-----------------------------------------------------------.
++| yydefault -- do the default action for the current state.  |
++`-----------------------------------------------------------*/
++yydefault:
+   yyn = yydefact[yystate];
+   if (yyn == 0)
+     goto yyerrlab;
++  goto yyreduce;
++
+-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
++/*-----------------------------.
++| yyreduce -- Do a reduction.  |
++`-----------------------------*/
+ yyreduce:
++  /* yyn is the number of a rule to reduce with.  */
+   yylen = yyr2[yyn];
+-  if (yylen > 0)
+-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      int i;
++  /* If YYLEN is nonzero, implement the default value of the action:
++     `$$ = $1'.
+-      fprintf (stderr, "Reducing via rule %d (line %d), ",
+-             yyn, yyrline[yyn]);
++     Otherwise, the following line sets YYVAL to garbage.
++     This behavior is undocumented and Bison
++     users should not rely upon it.  Assigning to YYVAL
++     unconditionally makes the parser a bit smaller, and it avoids a
++     GCC warning that YYVAL may be used uninitialized.  */
++  yyval = yyvsp[1-yylen];
+-      /* Print the symbols being reduced, and their result.  */
+-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+-      fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+-    }
+-#endif
+-
+-  switch (yyn) {
+-
+-case 4:
+-#line 47 "cfg_y.y"
+-{
++  YY_REDUCE_PRINT (yyn);
++  switch (yyn)
++    {
++        case 5:
++#line 50 "cfg_y.y"
++    {
+           control_init(yyvsp[-1].str);
+-      ;
+-    break;}
+-case 5:
+-#line 54 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 6:
++#line 57 "cfg_y.y"
++    {
+           fab_option(yyvsp[-1].str,yyvsp[0].str);
+-      ;
+-    break;}
+-case 6:
+-#line 61 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 7:
++#line 64 "cfg_y.y"
++    {
+           itf = 0;
+-      ;
+-    break;}
+-case 7:
+-#line 65 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 8:
++#line 68 "cfg_y.y"
++    {
+           char *tmp;
+           tmp = strdup(yyvsp[-3].str);
+           if (!tmp) yyerror(strerror(errno));
+           sig = sig_vc(yyvsp[-4].str,tmp,itf);
+-      ;
+-    break;}
+-case 9:
+-#line 77 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 10:
++#line 80 "cfg_y.y"
++    {
+           yyval.str = NULL;
+-      ;
+-    break;}
+-case 10:
+-#line 81 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 11:
++#line 84 "cfg_y.y"
++    {
+           yyval.str = strdup(yyvsp[0].str);
+           if (!yyval.str) yyerror(strerror(errno));
+-      ;
+-    break;}
+-case 12:
+-#line 89 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 13:
++#line 92 "cfg_y.y"
++    {
+           itf = yyvsp[0].num;
+-      ;
+-    break;}
+-case 14:
+-#line 96 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 15:
++#line 99 "cfg_y.y"
++    {
+           sig->pvc = yyvsp[0].pvc;
+-      ;
+-    break;}
+-case 17:
+-#line 104 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 18:
++#line 107 "cfg_y.y"
++    {
+           put_route(NULL,0,sig);
+-      ;
+-    break;}
+-case 19:
+-#line 112 "cfg_y.y"
+-{
++      }
++    break;
++
++  case 20:
++#line 115 "cfg_y.y"
++    {
+           struct sockaddr_atmsvc addr;
+           char *mask;
+@@ -790,228 +1124,236 @@
+               return;
+           }
+           put_route(&addr,mask ? strtol(mask,NULL,10) : INT_MAX,sig);
+-      ;
+-    break;}
+-}
+-   /* the action file gets copied in in place of this dollarsign */
+-#line 543 "/usr/lib/bison.simple"
++      }
++    break;
++
++
++    }
++
++/* Line 1010 of yacc.c.  */
++#line 1135 "y.tab.c"
\f
+   yyvsp -= yylen;
+   yyssp -= yylen;
+-#ifdef YYLSP_NEEDED
+-  yylsp -= yylen;
+-#endif
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      short *ssp1 = yyss - 1;
+-      fprintf (stderr, "state stack now");
+-      while (ssp1 != yyssp)
+-      fprintf (stderr, " %d", *++ssp1);
+-      fprintf (stderr, "\n");
+-    }
+-#endif
++
++  YY_STACK_PRINT (yyss, yyssp);
+   *++yyvsp = yyval;
+-#ifdef YYLSP_NEEDED
+-  yylsp++;
+-  if (yylen == 0)
+-    {
+-      yylsp->first_line = yylloc.first_line;
+-      yylsp->first_column = yylloc.first_column;
+-      yylsp->last_line = (yylsp-1)->last_line;
+-      yylsp->last_column = (yylsp-1)->last_column;
+-      yylsp->text = 0;
+-    }
+-  else
+-    {
+-      yylsp->last_line = (yylsp+yylen-1)->last_line;
+-      yylsp->last_column = (yylsp+yylen-1)->last_column;
+-    }
+-#endif
+-  /* Now "shift" the result of the reduction.
+-     Determine what state that goes to,
+-     based on the state we popped back to
+-     and the rule number reduced by.  */
++  /* Now `shift' the result of the reduction.  Determine what state
++     that goes to, based on the state we popped back to and the rule
++     number reduced by.  */
+   yyn = yyr1[yyn];
+-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
++  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
++  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+     yystate = yytable[yystate];
+   else
+-    yystate = yydefgoto[yyn - YYNTBASE];
++    yystate = yydefgoto[yyn - YYNTOKENS];
+   goto yynewstate;
+-yyerrlab:   /* here on detecting error */
+-  if (! yyerrstatus)
+-    /* If not already recovering from an error, report this error.  */
++/*------------------------------------.
++| yyerrlab -- here on detecting error |
++`------------------------------------*/
++yyerrlab:
++  /* If not already recovering from an error, report this error.  */
++  if (!yyerrstatus)
+     {
+       ++yynerrs;
+-
+-#ifdef YYERROR_VERBOSE
++#if YYERROR_VERBOSE
+       yyn = yypact[yystate];
+-      if (yyn > YYFLAG && yyn < YYLAST)
++      if (YYPACT_NINF < yyn && yyn < YYLAST)
+       {
+-        int size = 0;
+-        char *msg;
+-        int x, count;
+-
+-        count = 0;
+-        /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+-        for (x = (yyn < 0 ? -yyn : 0);
+-             x < (sizeof(yytname) / sizeof(char *)); x++)
+-          if (yycheck[x + yyn] == x)
+-            size += strlen(yytname[x]) + 15, count++;
+-        msg = (char *) malloc(size + 15);
+-        if (msg != 0)
++        YYSIZE_T yysize = 0;
++        int yytype = YYTRANSLATE (yychar);
++        const char* yyprefix;
++        char *yymsg;
++        int yyx;
++
++        /* Start YYX at -YYN if negative to avoid negative indexes in
++           YYCHECK.  */
++        int yyxbegin = yyn < 0 ? -yyn : 0;
++
++        /* Stay within bounds of both yycheck and yytname.  */
++        int yychecklim = YYLAST - yyn;
++        int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
++        int yycount = 0;
++
++        yyprefix = ", expecting ";
++        for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++          if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
++            {
++              yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
++              yycount += 1;
++              if (yycount == 5)
++                {
++                  yysize = 0;
++                  break;
++                }
++            }
++        yysize += (sizeof ("syntax error, unexpected ")
++                   + yystrlen (yytname[yytype]));
++        yymsg = (char *) YYSTACK_ALLOC (yysize);
++        if (yymsg != 0)
+           {
+-            strcpy(msg, "parse error");
++            char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
++            yyp = yystpcpy (yyp, yytname[yytype]);
+-            if (count < 5)
++            if (yycount < 5)
+               {
+-                count = 0;
+-                for (x = (yyn < 0 ? -yyn : 0);
+-                     x < (sizeof(yytname) / sizeof(char *)); x++)
+-                  if (yycheck[x + yyn] == x)
++                yyprefix = ", expecting ";
++                for (yyx = yyxbegin; yyx < yyxend; ++yyx)
++                  if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+                     {
+-                      strcat(msg, count == 0 ? ", expecting `" : " or `");
+-                      strcat(msg, yytname[x]);
+-                      strcat(msg, "'");
+-                      count++;
++                      yyp = yystpcpy (yyp, yyprefix);
++                      yyp = yystpcpy (yyp, yytname[yyx]);
++                      yyprefix = " or ";
+                     }
+               }
+-            yyerror(msg);
+-            free(msg);
++            yyerror (yymsg);
++            YYSTACK_FREE (yymsg);
+           }
+         else
+-          yyerror ("parse error; also virtual memory exceeded");
++          yyerror ("syntax error; also virtual memory exhausted");
+       }
+       else
+ #endif /* YYERROR_VERBOSE */
+-      yyerror("parse error");
++      yyerror ("syntax error");
+     }
+-  goto yyerrlab1;
+-yyerrlab1:   /* here on error raised explicitly by an action */
++
+   if (yyerrstatus == 3)
+     {
+-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
++      /* If just tried and failed to reuse lookahead token after an
++       error, discard it.  */
+-      /* return failure if at end of input */
+-      if (yychar == YYEOF)
+-      YYABORT;
+-
+-#if YYDEBUG != 0
+-      if (yydebug)
+-      fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+-#endif
++      if (yychar <= YYEOF)
++        {
++          /* If at end of input, pop the error token,
++           then the rest of the stack, then return failure.  */
++        if (yychar == YYEOF)
++           for (;;)
++             {
++               YYPOPSTACK;
++               if (yyssp == yyss)
++                 YYABORT;
++               YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
++               yydestruct (yystos[*yyssp], yyvsp);
++             }
++        }
++      else
++      {
++        YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
++        yydestruct (yytoken, &yylval);
++        yychar = YYEMPTY;
+-      yychar = YYEMPTY;
++      }
+     }
+-  /* Else will try to reuse lookahead token
+-     after shifting the error token.  */
+-
+-  yyerrstatus = 3;            /* Each real token shifted decrements this */
++  /* Else will try to reuse lookahead token after shifting the error
++     token.  */
++  goto yyerrlab1;
+-  goto yyerrhandle;
+-yyerrdefault:  /* current state does not do anything special for the error token. */
++/*---------------------------------------------------.
++| yyerrorlab -- error raised explicitly by YYERROR.  |
++`---------------------------------------------------*/
++yyerrorlab:
+-#if 0
+-  /* This is wrong; only states that explicitly want error tokens
+-     should shift them.  */
+-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+-  if (yyn) goto yydefault;
++#ifdef __GNUC__
++  /* Pacify GCC when the user code never invokes YYERROR and the label
++     yyerrorlab therefore never appears in user code.  */
++  if (0)
++     goto yyerrorlab;
+ #endif
+-yyerrpop:   /* pop the current state because it cannot handle the error token */
+-
+-  if (yyssp == yyss) YYABORT;
+-  yyvsp--;
+-  yystate = *--yyssp;
+-#ifdef YYLSP_NEEDED
+-  yylsp--;
+-#endif
++  yyvsp -= yylen;
++  yyssp -= yylen;
++  yystate = *yyssp;
++  goto yyerrlab1;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    {
+-      short *ssp1 = yyss - 1;
+-      fprintf (stderr, "Error: state stack now");
+-      while (ssp1 != yyssp)
+-      fprintf (stderr, " %d", *++ssp1);
+-      fprintf (stderr, "\n");
+-    }
+-#endif
+-yyerrhandle:
++/*-------------------------------------------------------------.
++| yyerrlab1 -- common code for both syntax error and YYERROR.  |
++`-------------------------------------------------------------*/
++yyerrlab1:
++  yyerrstatus = 3;    /* Each real token shifted decrements this.  */
+-  yyn = yypact[yystate];
+-  if (yyn == YYFLAG)
+-    goto yyerrdefault;
++  for (;;)
++    {
++      yyn = yypact[yystate];
++      if (yyn != YYPACT_NINF)
++      {
++        yyn += YYTERROR;
++        if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
++          {
++            yyn = yytable[yyn];
++            if (0 < yyn)
++              break;
++          }
++      }
+-  yyn += YYTERROR;
+-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+-    goto yyerrdefault;
++      /* Pop the current state because it cannot handle the error token.  */
++      if (yyssp == yyss)
++      YYABORT;
+-  yyn = yytable[yyn];
+-  if (yyn < 0)
+-    {
+-      if (yyn == YYFLAG)
+-      goto yyerrpop;
+-      yyn = -yyn;
+-      goto yyreduce;
++      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
++      yydestruct (yystos[yystate], yyvsp);
++      YYPOPSTACK;
++      yystate = *yyssp;
++      YY_STACK_PRINT (yyss, yyssp);
+     }
+-  else if (yyn == 0)
+-    goto yyerrpop;
+   if (yyn == YYFINAL)
+     YYACCEPT;
+-#if YYDEBUG != 0
+-  if (yydebug)
+-    fprintf(stderr, "Shifting error token, ");
+-#endif
++  YYDPRINTF ((stderr, "Shifting error token, "));
+   *++yyvsp = yylval;
+-#ifdef YYLSP_NEEDED
+-  *++yylsp = yylloc;
+-#endif
++
+   yystate = yyn;
+   goto yynewstate;
+- yyacceptlab:
+-  /* YYACCEPT comes here.  */
+-  if (yyfree_stacks)
+-    {
+-      free (yyss);
+-      free (yyvs);
+-#ifdef YYLSP_NEEDED
+-      free (yyls);
+-#endif
+-    }
+-  return 0;
+- yyabortlab:
+-  /* YYABORT comes here.  */
+-  if (yyfree_stacks)
+-    {
+-      free (yyss);
+-      free (yyvs);
+-#ifdef YYLSP_NEEDED
+-      free (yyls);
++/*-------------------------------------.
++| yyacceptlab -- YYACCEPT comes here.  |
++`-------------------------------------*/
++yyacceptlab:
++  yyresult = 0;
++  goto yyreturn;
++
++/*-----------------------------------.
++| yyabortlab -- YYABORT comes here.  |
++`-----------------------------------*/
++yyabortlab:
++  yyresult = 1;
++  goto yyreturn;
++
++#ifndef yyoverflow
++/*----------------------------------------------.
++| yyoverflowlab -- parser overflow comes here.  |
++`----------------------------------------------*/
++yyoverflowlab:
++  yyerror ("parser stack overflow");
++  yyresult = 2;
++  /* Fall through.  */
++#endif
++
++yyreturn:
++#ifndef yyoverflow
++  if (yyss != yyssa)
++    YYSTACK_FREE (yyss);
+ #endif
+-    }
+-  return 1;
++  return yyresult;
+ }
+-#line 126 "cfg_y.y"
++
++
++
+--- linux-atm-2.4.1.orig/src/switch/cfg_y.y
++++ linux-atm-2.4.1/src/switch/cfg_y.y
+@@ -10,6 +10,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <limits.h>
++#include <stdlib.h>
+ #include "atm.h"
+@@ -19,6 +20,8 @@
+ #include "swc.h"
++extern void yyerror(const char *s);
++
+ static int itf;
+ static SIGNALING_ENTITY *sig;
+--- linux-atm-2.4.1.orig/src/switch/cfg_y.h
++++ linux-atm-2.4.1/src/switch/cfg_y.h
+@@ -1,19 +1,77 @@
+-typedef union {
++/* A Bison parser, made by GNU Bison 1.875d.  */
++
++/* Skeleton parser for Yacc-like parsing with Bison,
++   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
++
++   This program is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, 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-1307, USA.  */
++
++/* As a special exception, when this file is copied by Bison into a
++   Bison output file, you may use that output file without restriction.
++   This special exception was added by the Free Software Foundation
++   in version 1.24 of Bison.  */
++
++/* Tokens.  */
++#ifndef YYTOKENTYPE
++# define YYTOKENTYPE
++   /* Put the tokens into the symbol table, so that GDB and other debuggers
++      know about them.  */
++   enum yytokentype {
++     TOK_COMMAND = 258,
++     TOK_VPCI = 259,
++     TOK_ITF = 260,
++     TOK_DEFAULT = 261,
++     TOK_ROUTE = 262,
++     TOK_STR = 263,
++     TOK_SOCKET = 264,
++     TOK_OPTION = 265,
++     TOK_CONTROL = 266,
++     TOK_NUM = 267,
++     TOK_PVC = 268
++   };
++#endif
++#define TOK_COMMAND 258
++#define TOK_VPCI 259
++#define TOK_ITF 260
++#define TOK_DEFAULT 261
++#define TOK_ROUTE 262
++#define TOK_STR 263
++#define TOK_SOCKET 264
++#define TOK_OPTION 265
++#define TOK_CONTROL 266
++#define TOK_NUM 267
++#define TOK_PVC 268
++
++
++
++
++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
++#line 30 "cfg_y.y"
++typedef union YYSTYPE {
+     int num;
+     char *str;
+     struct sockaddr_atmpvc pvc;
+ } YYSTYPE;
+-#define       TOK_COMMAND     257
+-#define       TOK_VPCI        258
+-#define       TOK_ITF 259
+-#define       TOK_DEFAULT     260
+-#define       TOK_ROUTE       261
+-#define       TOK_STR 262
+-#define       TOK_SOCKET      263
+-#define       TOK_OPTION      264
+-#define       TOK_CONTROL     265
+-#define       TOK_NUM 266
+-#define       TOK_PVC 267
+-
++/* Line 1285 of yacc.c.  */
++#line 69 "y.tab.h"
++# define yystype YYSTYPE /* obsolescent; will be withdrawn */
++# define YYSTYPE_IS_DECLARED 1
++# define YYSTYPE_IS_TRIVIAL 1
++#endif
+ extern YYSTYPE yylval;
++
++
++
+--- linux-atm-2.4.1.orig/src/switch/debug/Makefile.in
++++ linux-atm-2.4.1/src/switch/debug/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -90,8 +90,7 @@
+ INCLUDES = -I$(top_builddir)/src/qgen
+ sw_debug_SOURCES = debug.c
+-sw_debug_XTRAS = $(top_builddir)/src/switch/libsw.a \
+-                      $(top_builddir)/src/lib/libatm.la
++sw_debug_XTRAS = $(top_builddir)/src/switch/libsw.a                   $(top_builddir)/src/lib/libatm.la
+ sw_debug_LDADD = $(sw_debug_XTRAS) -lfl
+@@ -121,8 +120,9 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/debug.P
+ SOURCES = $(sw_debug_SOURCES)
+ OBJECTS = $(sw_debug_OBJECTS)
+@@ -130,9 +130,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/switch/debug/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/switch/debug/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -146,9 +146,6 @@
+ maintainer-clean-noinstPROGRAMS:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -171,9 +168,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -212,7 +206,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -228,6 +222,11 @@
+ subdir = src/switch/debug
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/switch/debug/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -238,11 +237,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-debug.o: debug.c ../../../config.h ../../../src/include/atm.h \
+-      ../../../src/include/stdint.h ../../../src/include/atmd.h \
+-      ../../../src/qgen/uni.h ../fab.h ../proto.h \
+-      ../../../src/include/atmsap.h ../sig.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -279,27 +305,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-noinstPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-noinstPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-noinstPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -310,12 +336,14 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/switch/debug/debug.c
++++ linux-atm-2.4.1/src/switch/debug/debug.c
+@@ -43,7 +43,7 @@
+ void fab_init(CALL *call)
+ {
+-    PRV(call) = alloc_t(FAB);
++    call->fab = alloc_t(FAB);
+     PRV(call)->next = calls;
+     calls = call;
+ }
+@@ -59,7 +59,7 @@
+       diag(COMPONENT,DIAG_FATAL,"fab_destroy: call %p not found",call);
+     *walk = PRV(call)->next;
+     free(PRV(call));
+-    PRV(call) = NULL;
++    call->fab = NULL;
+ }
+--- linux-atm-2.4.1.orig/src/switch/tcp/Makefile.in
++++ linux-atm-2.4.1/src/switch/tcp/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -90,8 +90,7 @@
+ INCLUDES = -I$(top_builddir)/src/qgen
+ sw_tcp_SOURCES = tcpsw.c
+-sw_tcp_XTRAS = $(top_builddir)/src/switch/libsw.a \
+-              $(top_builddir)/src/lib/libatm.la
++sw_tcp_XTRAS = $(top_builddir)/src/switch/libsw.a             $(top_builddir)/src/lib/libatm.la
+ sw_tcp_LDADD = $(sw_tcp_XTRAS) -lfl
+ sw_tcp_DEPENDENCIES = $(sw_tcp_XTRAS)
+@@ -120,8 +119,9 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
++DEP_FILES =  .deps/tcpsw.P
+ SOURCES = $(sw_tcp_SOURCES)
+ OBJECTS = $(sw_tcp_OBJECTS)
+@@ -129,9 +129,9 @@
+ .SUFFIXES:
+ .SUFFIXES: .S .c .lo .o .obj .s
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/switch/tcp/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/switch/tcp/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -145,9 +145,6 @@
+ maintainer-clean-noinstPROGRAMS:
+-.c.o:
+-      $(COMPILE) -c $<
+-
+ # FIXME: We should only use cygpath when building on Windows,
+ # and only if it is available.
+ .c.obj:
+@@ -170,9 +167,6 @@
+ maintainer-clean-compile:
+-.c.lo:
+-      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+-
+ .s.lo:
+       $(LIBTOOL) --mode=compile $(COMPILE) -c $<
+@@ -211,7 +205,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -227,6 +221,11 @@
+ subdir = src/switch/tcp
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/switch/tcp/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+@@ -237,11 +236,38 @@
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+-tcpsw.o: tcpsw.c ../../../config.h ../../../src/include/stdint.h \
+-      ../../../src/include/atm.h ../../../src/include/atmd.h \
+-      ../../../src/qgen/uni.h ../fab.h ../proto.h \
+-      ../../../src/include/atmsap.h ../sig.h ../dispatch.h ../swc.h
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
+ info-am:
+ info: info-am
+ dvi-am:
+@@ -278,27 +304,27 @@
+ maintainer-clean-generic:
+ mostlyclean-am:  mostlyclean-noinstPROGRAMS mostlyclean-compile \
+-              mostlyclean-libtool mostlyclean-tags \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
+               mostlyclean-generic
+ mostlyclean: mostlyclean-am
+ clean-am:  clean-noinstPROGRAMS clean-compile clean-libtool clean-tags \
+-              clean-generic mostlyclean-am
++              clean-depend clean-generic mostlyclean-am
+ clean: clean-am
+ distclean-am:  distclean-noinstPROGRAMS distclean-compile \
+-              distclean-libtool distclean-tags distclean-generic \
+-              clean-am
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
+       -rm -f libtool
+ distclean: distclean-am
+ maintainer-clean-am:  maintainer-clean-noinstPROGRAMS \
+               maintainer-clean-compile maintainer-clean-libtool \
+-              maintainer-clean-tags maintainer-clean-generic \
+-              distclean-am
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+@@ -309,12 +335,14 @@
+ mostlyclean-compile distclean-compile clean-compile \
+ maintainer-clean-compile mostlyclean-libtool distclean-libtool \
+ clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
+-distclean-tags clean-tags maintainer-clean-tags distdir info-am info \
+-dvi-am dvi check check-am installcheck-am installcheck install-exec-am \
+-install-exec install-data-am install-data install-am install \
+-uninstall-am uninstall all-redirect all-am all installdirs \
+-mostlyclean-generic distclean-generic clean-generic \
+-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+--- linux-atm-2.4.1.orig/src/switch/tcp/tcpsw.c
++++ linux-atm-2.4.1/src/switch/tcp/tcpsw.c
+@@ -345,7 +345,7 @@
+ void fab_init(CALL *call)
+ {
+-    PRV(call) = alloc_t(FAB);
++    call->fab = alloc_t(FAB);
+     PRV(call)->active = 0;
+     PRV(call)->next = calls;
+     calls = call;
+@@ -362,7 +362,7 @@
+       diag(COMPONENT,DIAG_FATAL,"fab_destroy: call %p not found",call);
+     *walk = PRV(call)->next;
+     free(PRV(call));
+-    PRV(call) = NULL;
++    call->fab = NULL;
+ }
+--- linux-atm-2.4.1.orig/src/config/Makefile.in
++++ linux-atm-2.4.1/src/config/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -96,14 +96,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/config/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/config/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -186,7 +186,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -202,6 +202,11 @@
+ subdir = src/config
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/config/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/config/init-redhat/Makefile.in
++++ linux-atm-2.4.1/src/config/init-redhat/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -94,14 +94,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/config/init-redhat/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/config/init-redhat/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -114,6 +114,11 @@
+ subdir = src/config/init-redhat
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/config/init-redhat/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/extra/Makefile.in
++++ linux-atm-2.4.1/src/extra/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -96,14 +96,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/extra/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/extra/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -188,7 +188,7 @@
+         awk '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
+-        || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
+ mostlyclean-tags:
+@@ -204,6 +204,11 @@
+ subdir = src/extra
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/extra/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/extra/ANS/Makefile.in
++++ linux-atm-2.4.1/src/extra/ANS/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -94,14 +94,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps src/extra/ANS/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/extra/ANS/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -114,6 +114,11 @@
+ subdir = src/extra/ANS
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/extra/ANS/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/src/br2684/Makefile.am
++++ linux-atm-2.4.1/src/br2684/Makefile.am
+@@ -0,0 +1,10 @@
++sbin_PROGRAMS = br2684ctl
++
++LDADD = $(top_builddir)/src/lib/libatm.la
++
++br2684ctl_SOURCES = br2684ctl.c
++
++man_MANS = br2684ctl.8
++
++EXTRA_DIST = $(man_MANS) USAGE.br2684
++
+--- linux-atm-2.4.1.orig/src/br2684/Makefile.in
++++ linux-atm-2.4.1/src/br2684/Makefile.in
+@@ -0,0 +1,418 @@
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
++
++# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
++# This Makefile.in is free software; the Free Software Foundation
++# gives unlimited permission to copy and/or distribute it,
++# with or without modifications, as long as this notice is preserved.
++
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
++# PARTICULAR PURPOSE.
++
++
++SHELL = @SHELL@
++
++srcdir = @srcdir@
++top_srcdir = @top_srcdir@
++VPATH = @srcdir@
++prefix = @prefix@
++exec_prefix = @exec_prefix@
++
++bindir = @bindir@
++sbindir = @sbindir@
++libexecdir = @libexecdir@
++datadir = @datadir@
++sysconfdir = @sysconfdir@
++sharedstatedir = @sharedstatedir@
++localstatedir = @localstatedir@
++libdir = @libdir@
++infodir = @infodir@
++mandir = @mandir@
++includedir = @includedir@
++oldincludedir = /usr/include
++
++DESTDIR =
++
++pkgdatadir = $(datadir)/@PACKAGE@
++pkglibdir = $(libdir)/@PACKAGE@
++pkgincludedir = $(includedir)/@PACKAGE@
++
++top_builddir = ../..
++
++ACLOCAL = @ACLOCAL@
++AUTOCONF = @AUTOCONF@
++AUTOMAKE = @AUTOMAKE@
++AUTOHEADER = @AUTOHEADER@
++
++INSTALL = @INSTALL@
++INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
++INSTALL_DATA = @INSTALL_DATA@
++INSTALL_SCRIPT = @INSTALL_SCRIPT@
++transform = @program_transform_name@
++
++NORMAL_INSTALL = :
++PRE_INSTALL = :
++POST_INSTALL = :
++NORMAL_UNINSTALL = :
++PRE_UNINSTALL = :
++POST_UNINSTALL = :
++host_alias = @host_alias@
++host_triplet = @host@
++AR = @AR@
++AS = @AS@
++CC = /usr/src/openwrt/staging_dir_mipsel/bin/mipsel-linux-gcc
++CXX = @CXX@
++CXXCPP = @CXXCPP@
++DLLTOOL = @DLLTOOL@
++ECHO = @ECHO@
++EGREP = @EGREP@
++EXEEXT = @EXEEXT@
++F77 = @F77@
++GCJ = @GCJ@
++GCJFLAGS = @GCJFLAGS@
++HAVE_LIB = @HAVE_LIB@
++LEX = @LEX@
++LIB = @LIB@
++LIBTOOL = @LIBTOOL@
++LIBTOOL_DEPS = @LIBTOOL_DEPS@
++LIBVER_AGE = @LIBVER_AGE@
++LIBVER_CURRENT = @LIBVER_CURRENT@
++LIBVER_REVISION = @LIBVER_REVISION@
++LN_S = @LN_S@
++LTLIB = @LTLIB@
++MAKEINFO = @MAKEINFO@
++OBJDUMP = @OBJDUMP@
++OBJEXT = @OBJEXT@
++PACKAGE = @PACKAGE@
++PERL = @PERL@
++RANLIB = @RANLIB@
++RC = @RC@
++STRIP = @STRIP@
++VERSION = @VERSION@
++YACC = @YACC@
++
++sbin_PROGRAMS = br2684ctl
++
++LDADD = $(top_builddir)/src/lib/libatm.la
++
++br2684ctl_SOURCES = br2684ctl.c
++
++man_MANS = br2684ctl.8
++
++EXTRA_DIST = $(man_MANS) USAGE.br2684
++mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
++CONFIG_HEADER = ../../config.h
++CONFIG_CLEAN_FILES = 
++sbin_PROGRAMS =  br2684ctl$(EXEEXT)
++PROGRAMS =  $(sbin_PROGRAMS)
++
++
++DEFS = @DEFS@ -I. -I$(srcdir) -I../..
++CPPFLAGS = @CPPFLAGS@
++LDFLAGS = @LDFLAGS@
++LIBS = @LIBS@
++br2684ctl_OBJECTS =  br2684ctl.$(OBJEXT)
++br2684ctl_LDADD = $(LDADD)
++br2684ctl_DEPENDENCIES =  $(top_builddir)/src/lib/libatm.la
++br2684ctl_LDFLAGS = 
++CFLAGS = @CFLAGS@
++COMPILE = $(TARGET_CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++LTCOMPILE = $(LIBTOOL) --mode=compile $(TARGET_CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
++CCLD = $(TARGET_CC)
++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
++man8dir = $(mandir)/man8
++MANS = $(man_MANS)
++
++NROFF = nroff
++DIST_COMMON =  Makefile.am Makefile.in
++
++
++DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
++
++TAR = tar
++GZIP_ENV = --best
++DEP_FILES =  .deps/br2684ctl.P
++SOURCES = $(br2684ctl_SOURCES)
++OBJECTS = $(br2684ctl_OBJECTS)
++
++all: all-redirect
++.SUFFIXES:
++.SUFFIXES: .S .c .lo .o .obj .s
++$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu src/br2684/Makefile
++
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
++      cd $(top_builddir) \
++        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
++
++
++mostlyclean-sbinPROGRAMS:
++
++clean-sbinPROGRAMS:
++      -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
++
++distclean-sbinPROGRAMS:
++
++maintainer-clean-sbinPROGRAMS:
++
++install-sbinPROGRAMS: $(sbin_PROGRAMS)
++      @$(NORMAL_INSTALL)
++      $(mkinstalldirs) $(DESTDIR)$(sbindir)
++      @list='$(sbin_PROGRAMS)'; for p in $$list; do \
++        if test -f $$p; then \
++          echo " $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`"; \
++          $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
++        else :; fi; \
++      done
++
++uninstall-sbinPROGRAMS:
++      @$(NORMAL_UNINSTALL)
++      list='$(sbin_PROGRAMS)'; for p in $$list; do \
++        rm -f $(DESTDIR)$(sbindir)/`echo $$p|sed 's/$(EXEEXT)$$//'|sed '$(transform)'|sed 's/$$/$(EXEEXT)/'`; \
++      done
++
++# FIXME: We should only use cygpath when building on Windows,
++# and only if it is available.
++.c.obj:
++      $(COMPILE) -c `cygpath -w $<`
++
++.s.o:
++      $(COMPILE) -c $<
++
++.S.o:
++      $(COMPILE) -c $<
++
++mostlyclean-compile:
++      -rm -f *.o core *.core
++      -rm -f *.$(OBJEXT)
++
++clean-compile:
++
++distclean-compile:
++      -rm -f *.tab.c
++
++maintainer-clean-compile:
++
++.s.lo:
++      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
++
++.S.lo:
++      $(LIBTOOL) --mode=compile $(COMPILE) -c $<
++
++mostlyclean-libtool:
++      -rm -f *.lo
++
++clean-libtool:
++      -rm -rf .libs _libs
++
++distclean-libtool:
++
++maintainer-clean-libtool:
++
++br2684ctl$(EXEEXT): $(br2684ctl_OBJECTS) $(br2684ctl_DEPENDENCIES)
++      @rm -f br2684ctl$(EXEEXT)
++      $(LINK) $(br2684ctl_LDFLAGS) $(br2684ctl_OBJECTS) $(br2684ctl_LDADD) $(LIBS)
++
++install-man8:
++      $(mkinstalldirs) $(DESTDIR)$(man8dir)
++      @list='$(man8_MANS)'; \
++      l2='$(man_MANS)'; for i in $$l2; do \
++        case "$$i" in \
++          *.8*) list="$$list $$i" ;; \
++        esac; \
++      done; \
++      for i in $$list; do \
++        if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
++        else file=$$i; fi; \
++        ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++        inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++        inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++        echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst"; \
++        $(INSTALL_DATA) $$file $(DESTDIR)$(man8dir)/$$inst; \
++      done
++
++uninstall-man8:
++      @list='$(man8_MANS)'; \
++      l2='$(man_MANS)'; for i in $$l2; do \
++        case "$$i" in \
++          *.8*) list="$$list $$i" ;; \
++        esac; \
++      done; \
++      for i in $$list; do \
++        ext=`echo $$i | sed -e 's/^.*\\.//'`; \
++        inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
++        inst=`echo $$inst | sed '$(transform)'`.$$ext; \
++        echo " rm -f $(DESTDIR)$(man8dir)/$$inst"; \
++        rm -f $(DESTDIR)$(man8dir)/$$inst; \
++      done
++install-man: $(MANS)
++      @$(NORMAL_INSTALL)
++      $(MAKE) $(AM_MAKEFLAGS) install-man8
++uninstall-man:
++      @$(NORMAL_UNINSTALL)
++      $(MAKE) $(AM_MAKEFLAGS) uninstall-man8
++
++tags: TAGS
++
++ID: $(HEADERS) $(SOURCES) $(LISP)
++      list='$(SOURCES) $(HEADERS)'; \
++      unique=`for i in $$list; do echo $$i; done | \
++        awk '    { files[$$0] = 1; } \
++             END { for (i in files) print i; }'`; \
++      here=`pwd` && cd $(srcdir) \
++        && mkid -f$$here/ID $$unique $(LISP)
++
++TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
++      tags=; \
++      here=`pwd`; \
++      list='$(SOURCES) $(HEADERS)'; \
++      unique=`for i in $$list; do echo $$i; done | \
++        awk '    { files[$$0] = 1; } \
++             END { for (i in files) print i; }'`; \
++      test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
++        || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
++
++mostlyclean-tags:
++
++clean-tags:
++
++distclean-tags:
++      -rm -f TAGS ID
++
++maintainer-clean-tags:
++
++distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
++
++subdir = src/br2684
++
++distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu src/br2684/Makefile
++      @for file in $(DISTFILES); do \
++        d=$(srcdir); \
++        if test -d $$d/$$file; then \
++          cp -pr $$d/$$file $(distdir)/$$file; \
++        else \
++          test -f $(distdir)/$$file \
++          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
++          || cp -p $$d/$$file $(distdir)/$$file || :; \
++        fi; \
++      done
++
++DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)
++
++-include $(DEP_FILES)
++
++mostlyclean-depend:
++
++clean-depend:
++
++distclean-depend:
++      -rm -rf .deps
++
++maintainer-clean-depend:
++
++%.o: %.c
++      @echo '$(COMPILE) -c $<'; \
++      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-cp .deps/$(*F).pp .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm .deps/$(*F).pp
++
++%.lo: %.c
++      @echo '$(LTCOMPILE) -c $<'; \
++      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
++      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
++        < .deps/$(*F).pp > .deps/$(*F).P; \
++      tr ' ' '\012' < .deps/$(*F).pp \
++        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
++          >> .deps/$(*F).P; \
++      rm -f .deps/$(*F).pp
++info-am:
++info: info-am
++dvi-am:
++dvi: dvi-am
++check-am: all-am
++check: check-am
++installcheck-am:
++installcheck: installcheck-am
++install-exec-am: install-sbinPROGRAMS
++install-exec: install-exec-am
++
++install-data-am: install-man
++install-data: install-data-am
++
++install-am: all-am
++      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
++install: install-am
++uninstall-am: uninstall-sbinPROGRAMS uninstall-man
++uninstall: uninstall-am
++all-am: Makefile $(PROGRAMS) $(MANS)
++all-redirect: all-am
++install-strip:
++      $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
++installdirs:
++      $(mkinstalldirs)  $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man8
++
++
++mostlyclean-generic:
++
++clean-generic:
++
++distclean-generic:
++      -rm -f Makefile $(CONFIG_CLEAN_FILES)
++      -rm -f config.cache config.log stamp-h stamp-h[0-9]*
++
++maintainer-clean-generic:
++mostlyclean-am:  mostlyclean-sbinPROGRAMS mostlyclean-compile \
++              mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
++              mostlyclean-generic
++
++mostlyclean: mostlyclean-am
++
++clean-am:  clean-sbinPROGRAMS clean-compile clean-libtool clean-tags \
++              clean-depend clean-generic mostlyclean-am
++
++clean: clean-am
++
++distclean-am:  distclean-sbinPROGRAMS distclean-compile \
++              distclean-libtool distclean-tags distclean-depend \
++              distclean-generic clean-am
++      -rm -f libtool
++
++distclean: distclean-am
++
++maintainer-clean-am:  maintainer-clean-sbinPROGRAMS \
++              maintainer-clean-compile maintainer-clean-libtool \
++              maintainer-clean-tags maintainer-clean-depend \
++              maintainer-clean-generic distclean-am
++      @echo "This command is intended for maintainers to use;"
++      @echo "it deletes files that may require special tools to rebuild."
++
++maintainer-clean: maintainer-clean-am
++
++.PHONY: mostlyclean-sbinPROGRAMS distclean-sbinPROGRAMS \
++clean-sbinPROGRAMS maintainer-clean-sbinPROGRAMS uninstall-sbinPROGRAMS \
++install-sbinPROGRAMS mostlyclean-compile distclean-compile \
++clean-compile maintainer-clean-compile mostlyclean-libtool \
++distclean-libtool clean-libtool maintainer-clean-libtool install-man8 \
++uninstall-man8 install-man uninstall-man tags mostlyclean-tags \
++distclean-tags clean-tags maintainer-clean-tags distdir \
++mostlyclean-depend distclean-depend clean-depend \
++maintainer-clean-depend info-am info dvi-am dvi check check-am \
++installcheck-am installcheck install-exec-am install-exec \
++install-data-am install-data install-am install uninstall-am uninstall \
++all-redirect all-am all installdirs mostlyclean-generic \
++distclean-generic clean-generic maintainer-clean-generic clean \
++mostlyclean distclean maintainer-clean
++
++
++# Tell versions [3.59,3.63) of GNU make to not export all variables.
++# Otherwise a system limit (for SysV at least) may be exceeded.
++.NOEXPORT:
+--- linux-atm-2.4.1.orig/src/br2684/br2684ctl.8
++++ linux-atm-2.4.1/src/br2684/br2684ctl.8
+@@ -0,0 +1,74 @@
++.\"
++.TH br2684ctl 1 "7 Jul 2003"
++.SH NAME
++br2684ctl \- RFC1483/2684 Bridge Daemon
++.SH SYNOPSIS
++.B br2684ctl
++[
++.BI \-b
++] [[
++.BI \-c\  n
++] [
++.BI \-e\  0|1
++] [
++.BI \-s\  sndbuf
++] [
++.BI \-a\  [itf].vpi.vci
++]] ...
++.SH PARAMETERS
++.TP 15
++.BI \-a\  [itf].vpi.vci
++ATM PVC number, VPI and VCI.  (Required)
++.BI \-b
++Puts the process in the background.
++.TP 15
++.BI \-c\  n
++br2684 interface number such as 0, 1, ... (Required)
++.TP 15
++.BI \-e\  0|1
++Encapsulation method:  0=LLC, 1=VC mux (the default is 0 or LLC)
++.TP 15
++.TP 15
++.BI \-s\  sndbuf
++Send buffer size. Default is 8192.
++.SH DESCRIPTION
++br2684ctl handles RFC1483/2684 bridged PDUs.
++This is most often used in ADSL scenarios where
++.I usually
++the subscribers'
++ethernet traffic is encapsulated in ATM AAL5 (by bridging ADSL modems)
++according to RFC2684. 
++The subscriber-side ADSL modem can be external with an ethernet connector 
++or an internal ADSL card in a PC.
++RFC1483 has been obsoleted by RFC2684.
++
++For example it is possible to set up your Linux box to handle several
++ATM PVC's with bridged-1483 (sometimes referred as SNAP) encapsulation.
++The Linux network stack might provide DHCP, IP masquerading, IP firewall services or
++bridge the Ethernet frames just like it had several ethernet interfaces.
++In fact it can have several (logical) ethernet interfaces, where
++ATM is just used as a carrier.
++.SH USAGE
++br2684ctl creates a new network interface named nas[n]
++which is bound to an specific ATM PVC. It requires two mandatory
++arguments:  -c, the interface number, and -a, the ATM PVC. It should be
++noted that the order of the command arguments matter; -c should be
++followed by -a. You can create as many interfaces as necessary
++in one go, just make a long command line ;) 
++
++For example, following command will create a nas0 interface which uses
++the ATM PVC with VPI=0 and VCI=401. You need to configure the PVC connection
++0.401 on the ATM switch manually.
++
++% br2684ctl -c 0 -a 0.401
++
++The command will only create a new interface nas0.
++Next step is to assign an IP address and netmask to
++the interface nas0 using the ifconfig command. Using ifconfig, you can
++also assign a Ethernet MAC address to the interface nas0, if necessary.
++
++% ifconfig nas0 192.168.2.1 netmask 255.255.255.0
++.SH NOTES
++This man page is based on a tutorial by by Joonbum Byun <jbyun@megaxess.com>
++.SH SEE ALSO
++.BR qos (7)
+--- linux-atm-2.4.1.orig/doc/Makefile.in
++++ linux-atm-2.4.1/doc/Makefile.in
+@@ -1,4 +1,4 @@
+-# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
++# Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
+ # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
+ # This Makefile.in is free software; the Free Software Foundation
+@@ -96,14 +96,14 @@
+ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+-TAR = gtar
++TAR = tar
+ GZIP_ENV = --best
+ all: all-redirect
+ .SUFFIXES:
+ $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+-      cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps doc/Makefile
++      cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile
+-Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
++Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+@@ -116,6 +116,11 @@
+ subdir = doc
+ distdir: $(DISTFILES)
++      here=`cd $(top_builddir) && pwd`; \
++      top_distdir=`cd $(top_distdir) && pwd`; \
++      distdir=`cd $(distdir) && pwd`; \
++      cd $(top_srcdir) \
++        && $(AUTOMAKE) --include-deps --build-dir=$$here --srcdir-name=$(top_srcdir) --output-dir=$$top_distdir --gnu doc/Makefile
+       @for file in $(DISTFILES); do \
+         d=$(srcdir); \
+         if test -d $$d/$$file; then \
+--- linux-atm-2.4.1.orig/debian/patches/00list
++++ linux-atm-2.4.1/debian/patches/00list
+@@ -0,0 +1 @@
++10_atmbr2684.h
+--- linux-atm-2.4.1.orig/debian/patches/10_atmbr2684.h.dpatch
++++ linux-atm-2.4.1/debian/patches/10_atmbr2684.h.dpatch
+@@ -0,0 +1,598 @@
++#! /bin/sh -e
++## 01_kernel-header.dpatch by  <bengen+debian@hilluzination.de>
++##
++## All lines beginning with ## DP:' are a description of the patch.
++## DP: add header file atmbr2684.h
++
++if [ -e /usr/include/linux/atmbr2684.h ]; then exit 0; fi
++
++if [ $# -ne 1 ]; then
++    echo "basename $0: script expects -patch|-unpatch as argument" >&2
++    exit 1
++fi
++case "$1" in
++    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
++    -unpatch) patch -f --no-backup-if-mismatch -E -R -p1 < $0;;
++    *)
++        echo "basename $0: script expects -patch|-unpatch as argument" >&2
++        exit 1;;
++esac
++
++exit 0
++@DPATCH@
++
++--- linux-atm.orig/src/include/linux/atmbr2684.h
+++++ linux-atm/src/include/linux/atmbr2684.h
++@@ -0,0 +1,101 @@
+++#ifndef _LINUX_ATMBR2684_H
+++#define _LINUX_ATMBR2684_H
+++
+++#include <linux/atm.h>
+++#include <linux/if.h>                /* For IFNAMSIZ */
+++
+++/*
+++ * Type of media we're bridging (ethernet, token ring, etc)  Currently only
+++ * ethernet is supported
+++ */
+++#define BR2684_MEDIA_ETHERNET        (0)     /* 802.3 */
+++#define BR2684_MEDIA_802_4   (1)     /* 802.4 */
+++#define BR2684_MEDIA_TR              (2)     /* 802.5 - token ring */
+++#define BR2684_MEDIA_FDDI    (3)
+++#define BR2684_MEDIA_802_6   (4)     /* 802.6 */
+++
+++/*
+++ * Is there FCS inbound on this VC?  This currently isn't supported.
+++ */
+++#define BR2684_FCSIN_NO              (0)
+++#define BR2684_FCSIN_IGNORE  (1)
+++#define BR2684_FCSIN_VERIFY  (2)
+++
+++/*
+++ * Is there FCS outbound on this VC?  This currently isn't supported.
+++ */
+++#define BR2684_FCSOUT_NO     (0)
+++#define BR2684_FCSOUT_SENDZERO       (1)
+++#define BR2684_FCSOUT_GENERATE       (2)
+++
+++/*
+++ * Does this VC include LLC encapsulation?
+++ */
+++#define BR2684_ENCAPS_VC     (0)     /* VC-mux */
+++#define BR2684_ENCAPS_LLC    (1)
+++#define BR2684_ENCAPS_AUTODETECT (2) /* Unsuported */
+++
+++/*
+++ * This is for the ATM_NEWBACKENDIF call - these are like socket families:
+++ * the first element of the structure is the backend number and the rest
+++ * is per-backend specific
+++ */
+++struct atm_newif_br2684 {
+++     atm_backend_t   backend_num;    /* ATM_BACKEND_BR2684 */
+++     int             media;          /* BR2684_MEDIA_* */
+++     char            ifname[IFNAMSIZ];
+++     int             mtu;
+++};
+++
+++/*
+++ * This structure is used to specify a br2684 interface - either by a
+++ * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
+++ */
+++#define BR2684_FIND_BYNOTHING        (0)
+++#define BR2684_FIND_BYNUM    (1)
+++#define BR2684_FIND_BYIFNAME (2)
+++struct br2684_if_spec {
+++     int method;                     /* BR2684_FIND_* */
+++     union {
+++             char            ifname[IFNAMSIZ];
+++             int             devnum;
+++     } spec;
+++};
+++
+++/*
+++ * This is for the ATM_SETBACKEND call - these are like socket families:
+++ * the first element of the structure is the backend number and the rest
+++ * is per-backend specific
+++ */
+++struct atm_backend_br2684 {
+++     atm_backend_t   backend_num;    /* ATM_BACKEND_BR2684 */
+++     struct br2684_if_spec ifspec;
+++     int     fcs_in;         /* BR2684_FCSIN_* */
+++     int     fcs_out;        /* BR2684_FCSOUT_* */
+++     int     fcs_auto;       /* 1: fcs_{in,out} disabled if no FCS rx'ed */
+++     int     encaps;         /* BR2684_ENCAPS_* */
+++     int     has_vpiid;      /* 1: use vpn_id - Unsupported */
+++     __u8    vpn_id[7];
+++     int     send_padding;   /* unsupported */
+++     int     min_size;       /* we will pad smaller packets than this */
+++};
+++
+++/*
+++ * The BR2684_SETFILT ioctl is an experimental mechanism for folks
+++ * terminating a large number of IP-only vcc's.  When netfilter allows
+++ * efficient per-if in/out filters, this support will be removed
+++ */
+++struct br2684_filter {
+++     __u32   prefix;         /* network byte order */
+++     __u32   netmask;        /* 0 = disable filter */
+++};
+++
+++struct br2684_filter_set {
+++     struct br2684_if_spec ifspec;
+++     struct br2684_filter filter;
+++};
+++
+++#define BR2684_SETFILT       _IOW( 'a', ATMIOC_BACKEND + 0, \
+++                             struct br2684_filter_set)
+++
+++#endif /* _LINUX_ATMBR2684_H */
++--- linux-atm.orig/src/include/linux/atmdev.h
+++++ linux-atm/src/include/linux/atmdev.h
++@@ -0,0 +1,468 @@
+++/* atmdev.h - ATM device driver declarations and various related items */
+++ 
+++/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
+++ 
+++
+++#ifndef LINUX_ATMDEV_H
+++#define LINUX_ATMDEV_H
+++
+++
+++#include <linux/config.h>
+++#include <linux/atmapi.h>
+++#include <linux/atm.h>
+++#include <linux/atmioc.h>
+++
+++
+++#define ESI_LEN              6
+++
+++#define ATM_OC3_PCR  (155520000/270*260/8/53)
+++                     /* OC3 link rate:  155520000 bps
+++                        SONET overhead: /270*260 (9 section, 1 path)
+++                        bits per cell:  /8/53
+++                        max cell rate:  353207.547 cells/sec */
+++#define ATM_25_PCR   ((25600000/8-8000)/54)
+++                     /* 25 Mbps ATM cell rate (59111) */
+++#define ATM_OC12_PCR (622080000/1080*1040/8/53)
+++                     /* OC12 link rate: 622080000 bps
+++                        SONET overhead: /1080*1040
+++                        bits per cell:  /8/53
+++                        max cell rate:  1412830.188 cells/sec */
+++#define ATM_DS3_PCR  (8000*12)
+++                     /* DS3: 12 cells in a 125 usec time slot */
+++
+++#define ATM_SD(s)    ((s)->sk->protinfo.af_atm)
+++
+++
+++#define __AAL_STAT_ITEMS \
+++    __HANDLE_ITEM(tx);                       /* TX okay */ \
+++    __HANDLE_ITEM(tx_err);           /* TX errors */ \
+++    __HANDLE_ITEM(rx);                       /* RX okay */ \
+++    __HANDLE_ITEM(rx_err);           /* RX errors */ \
+++    __HANDLE_ITEM(rx_drop);          /* RX out of memory */
+++
+++struct atm_aal_stats {
+++#define __HANDLE_ITEM(i) int i
+++     __AAL_STAT_ITEMS
+++#undef __HANDLE_ITEM
+++};
+++
+++
+++struct atm_dev_stats {
+++     struct atm_aal_stats aal0;
+++     struct atm_aal_stats aal34;
+++     struct atm_aal_stats aal5;
+++} __ATM_API_ALIGN;
+++
+++
+++#define ATM_GETLINKRATE      _IOW('a',ATMIOC_ITF+1,struct atmif_sioc)
+++                                     /* get link rate */
+++#define ATM_GETNAMES _IOW('a',ATMIOC_ITF+3,struct atm_iobuf)
+++                                     /* get interface names (numbers) */
+++#define ATM_GETTYPE  _IOW('a',ATMIOC_ITF+4,struct atmif_sioc)
+++                                     /* get interface type name */
+++#define ATM_GETESI   _IOW('a',ATMIOC_ITF+5,struct atmif_sioc)
+++                                     /* get interface ESI */
+++#define ATM_GETADDR  _IOW('a',ATMIOC_ITF+6,struct atmif_sioc)
+++                                     /* get itf's local ATM addr. list */
+++#define ATM_RSTADDR  _IOW('a',ATMIOC_ITF+7,struct atmif_sioc)
+++                                     /* reset itf's ATM address list */
+++#define ATM_ADDADDR  _IOW('a',ATMIOC_ITF+8,struct atmif_sioc)
+++                                     /* add a local ATM address */
+++#define ATM_DELADDR  _IOW('a',ATMIOC_ITF+9,struct atmif_sioc)
+++                                     /* remove a local ATM address */
+++#define ATM_GETCIRANGE       _IOW('a',ATMIOC_ITF+10,struct atmif_sioc)
+++                                     /* get connection identifier range */
+++#define ATM_SETCIRANGE       _IOW('a',ATMIOC_ITF+11,struct atmif_sioc)
+++                                     /* set connection identifier range */
+++#define ATM_SETESI   _IOW('a',ATMIOC_ITF+12,struct atmif_sioc)
+++                                     /* set interface ESI */
+++#define ATM_SETESIF  _IOW('a',ATMIOC_ITF+13,struct atmif_sioc)
+++                                     /* force interface ESI */
+++#define ATM_GETSTAT  _IOW('a',ATMIOC_SARCOM+0,struct atmif_sioc)
+++                                     /* get AAL layer statistics */
+++#define ATM_GETSTATZ _IOW('a',ATMIOC_SARCOM+1,struct atmif_sioc)
+++                                     /* get AAL layer statistics and zero */
+++#define ATM_GETLOOP  _IOW('a',ATMIOC_SARCOM+2,struct atmif_sioc)
+++                                     /* get loopback mode */
+++#define ATM_SETLOOP  _IOW('a',ATMIOC_SARCOM+3,struct atmif_sioc)
+++                                     /* set loopback mode */
+++#define ATM_QUERYLOOP        _IOW('a',ATMIOC_SARCOM+4,struct atmif_sioc)
+++                                     /* query supported loopback modes */
+++#define ATM_SETSC    _IOW('a',ATMIOC_SPECIAL+1,int)
+++                                     /* enable or disable single-copy */
+++#define ATM_SETBACKEND       _IOW('a',ATMIOC_SPECIAL+2,atm_backend_t)
+++                                     /* set backend handler */
+++#define ATM_NEWBACKENDIF _IOW('a',ATMIOC_SPECIAL+3,atm_backend_t)
+++                                     /* use backend to make new if */
+++
+++/*
+++ * These are backend handkers that can be set via the ATM_SETBACKEND call
+++ * above.  In the future we may support dynamic loading of these - for now,
+++ * they're just being used to share the ATMIOC_BACKEND ioctls
+++ */
+++#define ATM_BACKEND_RAW              0       
+++#define ATM_BACKEND_PPP              1       /* PPPoATM - RFC2364 */
+++#define ATM_BACKEND_BR2684   2       /* Bridged RFC1483/2684 */
+++
+++/* for ATM_GETTYPE */
+++#define ATM_ITFTYP_LEN       8       /* maximum length of interface type name */
+++
+++/*
+++ * Loopback modes for ATM_{PHY,SAR}_{GET,SET}LOOP
+++ */
+++
+++/* Point of loopback                         CPU-->SAR-->PHY-->line--> ... */
+++#define __ATM_LM_NONE        0       /* no loop back     ^     ^     ^      ^      */
+++#define __ATM_LM_AAL 1       /* loop back PDUs --'     |     |      |      */
+++#define __ATM_LM_ATM 2       /* loop back ATM cells ---'     |      |      */
+++/* RESERVED          4       loop back on PHY side  ---'                   */
+++#define __ATM_LM_PHY 8       /* loop back bits (digital) ----'      |      */
+++#define __ATM_LM_ANALOG 16   /* loop back the analog signal --------'      */
+++
+++/* Direction of loopback */
+++#define __ATM_LM_MKLOC(n)    ((n))       /* Local (i.e. loop TX to RX) */
+++#define __ATM_LM_MKRMT(n)    ((n) << 8)  /* Remote (i.e. loop RX to TX) */
+++
+++#define __ATM_LM_XTLOC(n)    ((n) & 0xff)
+++#define __ATM_LM_XTRMT(n)    (((n) >> 8) & 0xff)
+++
+++#define ATM_LM_NONE  0       /* no loopback */
+++
+++#define ATM_LM_LOC_AAL       __ATM_LM_MKLOC(__ATM_LM_AAL)
+++#define ATM_LM_LOC_ATM       __ATM_LM_MKLOC(__ATM_LM_ATM)
+++#define ATM_LM_LOC_PHY       __ATM_LM_MKLOC(__ATM_LM_PHY)
+++#define ATM_LM_LOC_ANALOG __ATM_LM_MKLOC(__ATM_LM_ANALOG)
+++
+++#define ATM_LM_RMT_AAL       __ATM_LM_MKRMT(__ATM_LM_AAL)
+++#define ATM_LM_RMT_ATM       __ATM_LM_MKRMT(__ATM_LM_ATM)
+++#define ATM_LM_RMT_PHY       __ATM_LM_MKRMT(__ATM_LM_PHY)
+++#define ATM_LM_RMT_ANALOG __ATM_LM_MKRMT(__ATM_LM_ANALOG)
+++
+++/*
+++ * Note: ATM_LM_LOC_* and ATM_LM_RMT_* can be combined, provided that
+++ * __ATM_LM_XTLOC(x) <= __ATM_LM_XTRMT(x)
+++ */
+++
+++
+++struct atm_iobuf {
+++     int length;
+++     void *buffer;
+++};
+++
+++/* for ATM_GETCIRANGE / ATM_SETCIRANGE */
+++
+++#define ATM_CI_MAX      -1              /* use maximum range of VPI/VCI */
+++ 
+++struct atm_cirange {
+++     char    vpi_bits;               /* 1..8, ATM_CI_MAX (-1) for maximum */
+++     char    vci_bits;               /* 1..16, ATM_CI_MAX (-1) for maximum */
+++};
+++
+++/* for ATM_SETSC; actually taken from the ATM_VF number space */
+++
+++#define ATM_SC_RX    1024            /* enable RX single-copy */
+++#define ATM_SC_TX    2048            /* enable TX single-copy */
+++
+++#define ATM_BACKLOG_DEFAULT 32 /* if we get more, we're likely to time out
+++                               anyway */
+++
+++/* MF: change_qos (Modify) flags */
+++
+++#define ATM_MF_IMMED  1      /* Block until change is effective */
+++#define ATM_MF_INC_RSV        2      /* Change reservation on increase */
+++#define ATM_MF_INC_SHP        4      /* Change shaping on increase */
+++#define ATM_MF_DEC_RSV        8      /* Change reservation on decrease */
+++#define ATM_MF_DEC_SHP       16      /* Change shaping on decrease */
+++#define ATM_MF_BWD   32      /* Set the backward direction parameters */
+++
+++#define ATM_MF_SET   (ATM_MF_INC_RSV | ATM_MF_INC_SHP | ATM_MF_DEC_RSV | \
+++                       ATM_MF_DEC_SHP | ATM_MF_BWD)
+++
+++/*
+++ * ATM_VS_* are used to express VC state in a human-friendly way.
+++ */
+++
+++#define ATM_VS_IDLE  0       /* VC is not used */
+++#define ATM_VS_CONNECTED 1   /* VC is connected */
+++#define ATM_VS_CLOSING       2       /* VC is closing */
+++#define ATM_VS_LISTEN        3       /* VC is listening for incoming setups */
+++#define ATM_VS_INUSE 4       /* VC is in use (registered with atmsigd) */
+++#define ATM_VS_BOUND 5       /* VC is bound */
+++
+++#define ATM_VS2TXT_MAP \
+++    "IDLE", "CONNECTED", "CLOSING", "LISTEN", "INUSE", "BOUND"
+++
+++#define ATM_VF2TXT_MAP \
+++    "ADDR",  "READY",        "PARTIAL",      "REGIS", \
+++    "RELEASED", "HASQOS",    "LISTEN",       "META", \
+++    "256",   "512",          "1024",         "2048", \
+++    "SESSION",       "HASSAP",       "BOUND",        "CLOSE"
+++
+++
+++#ifndef __KERNEL__
+++#undef __AAL_STAT_ITEMS
+++#else
+++
+++#include <linux/sched.h> /* wait_queue_head_t */
+++#include <linux/time.h> /* struct timeval */
+++#include <linux/net.h>
+++#include <linux/skbuff.h> /* struct sk_buff */
+++#include <linux/uio.h>
+++#include <net/sock.h>
+++#include <asm/atomic.h>
+++
+++#ifdef CONFIG_PROC_FS
+++#include <linux/proc_fs.h>
+++#endif
+++
+++
+++struct k_atm_aal_stats {
+++#define __HANDLE_ITEM(i) atomic_t i
+++     __AAL_STAT_ITEMS
+++#undef __HANDLE_ITEM
+++};
+++
+++
+++struct k_atm_dev_stats {
+++     struct k_atm_aal_stats aal0;
+++     struct k_atm_aal_stats aal34;
+++     struct k_atm_aal_stats aal5;
+++};
+++
+++
+++enum {
+++     ATM_VF_ADDR,            /* Address is in use. Set by anybody, cleared
+++                                by device driver. */
+++     ATM_VF_READY,           /* VC is ready to transfer data. Set by device
+++                                driver, cleared by anybody. */
+++     ATM_VF_PARTIAL,         /* resources are bound to PVC (partial PVC
+++                                setup), controlled by socket layer */
+++     ATM_VF_REGIS,           /* registered with demon, controlled by SVC
+++                                socket layer */
+++     ATM_VF_BOUND,           /* local SAP is set, controlled by SVC socket
+++                                layer */
+++     ATM_VF_RELEASED,        /* demon has indicated/requested release,
+++                                controlled by SVC socket layer */
+++     ATM_VF_HASQOS,          /* QOS parameters have been set */
+++     ATM_VF_LISTEN,          /* socket is used for listening */
+++     ATM_VF_META,            /* SVC socket isn't used for normal data
+++                                traffic and doesn't depend on signaling
+++                                to be available */
+++     ATM_VF_SESSION,         /* VCC is p2mp session control descriptor */
+++     ATM_VF_HASSAP,          /* SAP has been set */
+++     ATM_VF_CLOSE,           /* asynchronous close - treat like VF_RELEASED*/
+++};
+++
+++
+++#define ATM_VF2VS(flags) \
+++    (test_bit(ATM_VF_READY,&(flags)) ? ATM_VS_CONNECTED : \
+++     test_bit(ATM_VF_RELEASED,&(flags)) ? ATM_VS_CLOSING : \
+++     test_bit(ATM_VF_LISTEN,&(flags)) ? ATM_VS_LISTEN : \
+++     test_bit(ATM_VF_REGIS,&(flags)) ? ATM_VS_INUSE : \
+++     test_bit(ATM_VF_BOUND,&(flags)) ? ATM_VS_BOUND : ATM_VS_IDLE)
+++
+++
+++enum {
+++     ATM_DF_CLOSE,           /* close device when last VCC is closed */
+++};
+++
+++
+++#define ATM_PHY_SIG_LOST    0        /* no carrier/light */
+++#define ATM_PHY_SIG_UNKNOWN 1        /* carrier/light status is unknown */
+++#define ATM_PHY_SIG_FOUND   2        /* carrier/light okay */
+++
+++#define ATM_ATMOPT_CLP       1       /* set CLP bit */
+++
+++
+++typedef struct { unsigned long bits; } atm_vcc_flags_t;
+++
+++
+++struct atm_vcc {
+++     atm_vcc_flags_t flags;          /* VCC flags (ATM_VF_*) */
+++     short           vpi;            /* VPI and VCI (types must be equal */
+++                                     /* with sockaddr) */
+++     int             vci;
+++     unsigned long   aal_options;    /* AAL layer options */
+++     unsigned long   atm_options;    /* ATM layer options */
+++     struct atm_dev  *dev;           /* device back pointer */
+++     struct atm_qos  qos;            /* QOS */
+++     struct atm_sap  sap;            /* SAP */
+++     void (*push)(struct atm_vcc *vcc,struct sk_buff *skb);
+++     void (*pop)(struct atm_vcc *vcc,struct sk_buff *skb); /* optional */
+++     int (*push_oam)(struct atm_vcc *vcc,void *cell);
+++     int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
+++     void            *dev_data;      /* per-device data */
+++     void            *proto_data;    /* per-protocol data */
+++     struct k_atm_aal_stats *stats;  /* pointer to AAL stats group */
+++     wait_queue_head_t sleep;        /* if socket is busy */
+++     struct sock     *sk;            /* socket backpointer */
+++     struct atm_vcc  *prev,*next;
+++     /* SVC part --- may move later ------------------------------------- */
+++     short           itf;            /* interface number */
+++     struct sockaddr_atmsvc local;
+++     struct sockaddr_atmsvc remote;
+++     void (*callback)(struct atm_vcc *vcc);
+++     struct sk_buff_head listenq;
+++     int             backlog_quota;  /* number of connection requests we */
+++                                     /* can still accept */
+++     int             reply;          /* also used by ATMTCP */
+++     /* Multipoint part ------------------------------------------------- */
+++     struct atm_vcc  *session;       /* session VCC descriptor */
+++     /* Other stuff ----------------------------------------------------- */
+++     void            *user_back;     /* user backlink - not touched by */
+++                                     /* native ATM stack. Currently used */
+++                                     /* by CLIP and sch_atm. */
+++};
+++
+++
+++struct atm_dev_addr {
+++     struct sockaddr_atmsvc addr;    /* ATM address */
+++     struct atm_dev_addr *next;      /* next address */
+++};
+++
+++
+++typedef struct { unsigned int bits; } atm_dev_flags_t;
+++
+++
+++struct atm_dev {
+++     const struct atmdev_ops *ops;   /* device operations; NULL if unused */
+++     const struct atmphy_ops *phy;   /* PHY operations, may be undefined */
+++                                     /* (NULL) */
+++     const char      *type;          /* device type name */
+++     int             number;         /* device index */
+++     struct atm_vcc  *vccs;          /* VCC table (or NULL) */
+++     struct atm_vcc  *last;          /* last VCC (or undefined) */
+++     void            *dev_data;      /* per-device data */
+++     void            *phy_data;      /* private PHY date */
+++     atm_dev_flags_t flags;          /* device flags (ATM_DF_*) */
+++     struct atm_dev_addr *local;     /* local ATM addresses */
+++     unsigned char   esi[ESI_LEN];   /* ESI ("MAC" addr) */
+++     struct atm_cirange ci_range;    /* VPI/VCI range */
+++     struct k_atm_dev_stats stats;   /* statistics */
+++     char            signal;         /* signal status (ATM_PHY_SIG_*) */
+++     int             link_rate;      /* link rate (default: OC3) */
+++     atomic_t        refcnt;         /* reference count */
+++     spinlock_t      lock;           /* protect internal members */
+++#ifdef CONFIG_PROC_FS
+++     struct proc_dir_entry *proc_entry; /* proc entry */
+++     char *proc_name;                /* proc entry name */
+++#endif
+++     struct list_head dev_list;      /* linkage */
+++};
+++
+++
+++/*
+++ * ioctl, getsockopt, setsockopt, and sg_send are optional and can be set to
+++ * NULL. */
+++
+++/* OF: send_Oam Flags */
+++
+++#define ATM_OF_IMMED 1       /* Attempt immediate delivery */
+++#define ATM_OF_INRATE        2       /* Attempt in-rate delivery */
+++
+++struct atmdev_ops { /* only send is required */
+++     void (*dev_close)(struct atm_dev *dev);
+++     int (*open)(struct atm_vcc *vcc,short vpi,int vci);
+++     void (*close)(struct atm_vcc *vcc);
+++     int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void *arg);
+++     int (*getsockopt)(struct atm_vcc *vcc,int level,int optname,
+++         void *optval,int optlen);
+++     int (*setsockopt)(struct atm_vcc *vcc,int level,int optname,
+++         void *optval,int optlen);
+++     int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
+++     int (*sg_send)(struct atm_vcc *vcc,unsigned long start,
+++         unsigned long size);
+++#if 0 /* keep the current hack for now */
+++     int (*send_iovec)(struct atm_vcc *vcc,struct iovec *iov,int size,
+++         void (*discard)(struct atm_vcc *vcc,void *user),void *user);
+++#endif
+++     int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags);
+++     void (*phy_put)(struct atm_dev *dev,unsigned char value,
+++         unsigned long addr);
+++     unsigned char (*phy_get)(struct atm_dev *dev,unsigned long addr);
+++     void (*feedback)(struct atm_vcc *vcc,struct sk_buff *skb,
+++         unsigned long start,unsigned long dest,int len);
+++     int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
+++     int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
+++     struct module *owner;
+++};
+++
+++
+++struct atmphy_ops {
+++     int (*start)(struct atm_dev *dev);
+++     int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void *arg);
+++     void (*interrupt)(struct atm_dev *dev);
+++     int (*stop)(struct atm_dev *dev);
+++};
+++
+++struct atm_skb_data {
+++     struct atm_vcc  *vcc;           /* ATM VCC */
+++     unsigned long   atm_options;    /* ATM layer options */
+++};
+++
+++#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb))
+++
+++struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
+++    int number,atm_dev_flags_t *flags); /* number == -1: pick first available */
+++struct atm_dev *atm_dev_lookup(int number);
+++void atm_dev_deregister(struct atm_dev *dev);
+++void shutdown_atm_dev(struct atm_dev *dev);
+++void bind_vcc(struct atm_vcc *vcc,struct atm_dev *dev);
+++
+++
+++/*
+++ * This is approximately the algorithm used by alloc_skb.
+++ *
+++ */
+++
+++static inline int atm_guess_pdu2truesize(int pdu_size)
+++{
+++     return ((pdu_size+15) & ~15) + sizeof(struct sk_buff);
+++}
+++
+++
+++static inline void atm_force_charge(struct atm_vcc *vcc,int truesize)
+++{
+++     atomic_add(truesize, &vcc->sk->rmem_alloc);
+++}
+++
+++
+++static inline void atm_return(struct atm_vcc *vcc,int truesize)
+++{
+++     atomic_sub(truesize, &vcc->sk->rmem_alloc);
+++}
+++
+++
+++static inline int atm_may_send(struct atm_vcc *vcc,unsigned int size)
+++{
+++     return (size + atomic_read(&vcc->sk->wmem_alloc)) < vcc->sk->sndbuf;
+++}
+++
+++
+++static inline void atm_dev_hold(struct atm_dev *dev)
+++{
+++     atomic_inc(&dev->refcnt);
+++}
+++
+++
+++static inline void atm_dev_release(struct atm_dev *dev)
+++{
+++     atomic_dec(&dev->refcnt);
+++
+++     if ((atomic_read(&dev->refcnt) == 1) &&
+++         test_bit(ATM_DF_CLOSE,&dev->flags))
+++             shutdown_atm_dev(dev);
+++}
+++
+++
+++int atm_charge(struct atm_vcc *vcc,int truesize);
+++struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
+++    int gfp_flags);
+++int atm_find_ci(struct atm_vcc *vcc,short *vpi,int *vci);
+++int atm_pcr_goal(struct atm_trafprm *tp);
+++
+++void atm_async_release_vcc(struct atm_vcc *vcc,int reply);
+++
+++#endif /* __KERNEL__ */
+++
+++#endif
+--- linux-atm-2.4.1.orig/debian/README.br2684
++++ linux-atm-2.4.1/debian/README.br2684
+@@ -0,0 +1,79 @@
++README.br2684
++~~~~~~~~~~~~~
++
++The linux-atm CVS includes a program called br2684 which can be used
++to configure br2684 ATM bridging. On request (#216663), the Debian
++maintainer included br2684 in the source package.
++
++This was done in a way that separates the - unreleased CVS snapshot -
++br2684 program into its own binary package so avoid shipping
++released and unreleased software in the same binary package.
++
++The modified source package (2.4.1-10) was rejected by Debian
++ftpmaster because he found the package too small to warrant its own
++.deb.
++
++Hence, atm-tools-br2684 is not built any more.
++
++You can, however, build your own atm-tools-br2684 package from the
++official Debian source package by following this "script".
++
++(0)
++Install all build dependencies plus autoconf, libtool, automake. If
++#219936 is still unfixed, copy /usr/bin/autoreconf to a local
++directory and apply the following patch after changing "+@@" to "@@"
++in the first line (this was inserted to be able to feed this readme to
++patch to apply the patch given in (1).
++
++--- /usr/bin/autoreconf
+++++ autoreconf
+++@@ -183,7 +183,7 @@
++     {
++       $autoconf   .= ' --force';
++       $autoheader .= ' --force';
++-      $automake   .= ' --force-missing';
+++      $automake   .= '';
++       $autopoint  .= ' --force';
++       $libtoolize .= ' --force';
++     }
++
++(1) Apply the following patch
++--- configure.in.orig
+++++ configure.in
++@@ -152,6 +152,7 @@
++              m4/Makefile \
++              src/Makefile \
++              src/include/Makefile \
+++             src/br2684/Makefile \
++              src/lib/Makefile \
++              src/test/Makefile \
++              src/debug/Makefile \
++--- debian/rules.orig
+++++ debian/rules
++@@ -11,7 +11,7 @@
++ export PACKAGE=linux-atm
++ 
++ buildindeppackages=atm-dev
++-buildarchpackages=atm-tools libatm1 libatm1-dev
+++buildarchpackages=atm-tools atm-tools-br2684 libatm1 libatm1-dev
++ 
++ # generate -ppackage1 -ppackage2 ... commandline for debhelper
++ dhbuildarchpackages=$(addprefix -p,$(buildarchpackages))
++--- src/Makefile.am.orig
+++++ src/Makefile.am
++@@ -1,3 +1,3 @@
++ SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \
++-             mpoad switch config extra
+++             mpoad switch config extra br2684
++ 
++
++(2)
++Invoke autoreconf -f -i
++
++(3)
++create your own changelog entry and your own local version number
++
++(4)
++Build the package as usual
++
++Marc Haber, 2003-11-05
+--- linux-atm-2.4.1.orig/debian/control
++++ linux-atm-2.4.1/debian/control
+@@ -0,0 +1,57 @@
++Source: linux-atm
++Section: net
++Priority: optional
++Maintainer: Peter De Schrijver (p2) <p2@mind.be>
++Build-Depends: debhelper (>> 4.0.0), bison, flex, perl, dpatch, automake1.4
++Standards-Version: 3.6.1
++
++Package: atm-tools
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: Base programs for ATM in Linux, the net-tools for ATM
++ This package provides all the basic programs needed for setting up,
++ monitoring and tuning ATM networks. Such as:
++  * atmsigd, an ATM signal daemon that implements the ATM UNI protocol.
++  * atmtcp, a tool to setup ATM over TCP connections.
++  * atmarpd, an implementation of the ATMARP protocol (RFC1577, RFC1755)
++  * zeppelin, an ATM LAN Emulation client daemon
++  * les and bus, ATM LAN Emulation service daemons
++ .
++ Notice that upstream still flags these tools as experimental software and
++ says that there is still a number of known bugs and issues. The
++ software is, however, in productive use at a number of sites and is
++  working reliably.
++ .
++ Homepage: http://linux-atm.sourceforge.net/
++
++Package: atm-dev
++Depends: libatm1-dev
++Architecture: all
++Section: oldlibs
++Description: Development files for compiling ATM programs (dummy package) 
++ This dummy package provides a transition from the previous atm packages.
++ It is provided for backwards compatibility only and may be removedafter 
++ the upgrade has completed or when when no other package depend on it.
++ 
++Package: libatm1
++Section: libs
++Architecture: any
++Depends: ${shlibs:Depends}
++Conflicts: atm-tools (<< 2.4.1-6)
++Description: shared library for ATM (Asynchronous Transfer Mode)
++ Shared libraries needed by ATM (Asynchronous Transfer Mode) related programs
++ .
++ Homepage: http://linux-atm.sourceforge.net/
++
++Package: libatm1-dev
++Section: libdevel
++Architecture: any
++Depends: libc6-dev, libatm1
++Replaces: atm-dev (<< 2.4.1-7)
++Conflicts: atm-dev (<< 2.4.1-7)
++Provides: libatm-dev
++Description: Development files for compiling ATM programs
++ Header files and development libraries for compiling ATM (Asynchronous 
++ Transfer Mode) related programs.
++ .
++ Homepage: http://linux-atm.sourceforge.net/
+--- linux-atm-2.4.1.orig/debian/atm-tools-br2684.dirs
++++ linux-atm-2.4.1/debian/atm-tools-br2684.dirs
+@@ -0,0 +1,2 @@
++usr/sbin
++usr/share/man/man8
+--- linux-atm-2.4.1.orig/debian/rules
++++ linux-atm-2.4.1/debian/rules
+@@ -0,0 +1,136 @@
++#!/usr/bin/make -f
++# Sample debian/rules that uses debhelper.
++# GNU copyright 1997 to 1999 by Joey Hess.
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++# This is the debhelper compatability version to use.
++export DH_COMPAT=4
++
++export PACKAGE=linux-atm
++
++buildindeppackages=atm-dev
++buildarchpackages=atm-tools libatm1 libatm1-dev
++
++# generate -ppackage1 -ppackage2 ... commandline for debhelper
++dhbuildarchpackages=$(addprefix -p,$(buildarchpackages))
++dhbuildindeppackages=$(addprefix -p,$(buildindeppackages))
++
++include /usr/share/dpatch/dpatch.make
++
++configure: configure-stamp
++configure-stamp:
++      dh_testdir
++      ./configure --prefix /usr --mandir /usr/share/man --sysconfdir /etc
++      touch configure-stamp
++
++build: configure-stamp build-stamp
++build-stamp: patch-stamp
++      dh_testdir
++
++      # Add here commands to compile the package.
++      $(MAKE) $(EXTRA_VARS)
++      cat debian/copyright.header COPYING > debian/copyright
++
++      touch build-stamp
++
++clean: clean1 unpatch
++clean1:
++      dh_testdir
++      dh_testroot
++      rm -f build-stamp configure-stamp
++
++      # Add here commands to clean up after the build process.
++      -$(MAKE) distclean
++
++      dh_clean
++      rm -rf debian/atm-tools.8 debian/copyright
++
++install: build
++      dh_testdir
++      dh_testroot
++      dh_clean -k
++      dh_installdirs
++
++      # Add here commands to install the package into debian/atm-tools
++      $(MAKE) DESTDIR=`pwd`/debian/tmp install
++
++        # manpages
++      /usr/bin/pod2man --section=8 --release="atm-tools $(PKG_VER)" --lax \
++      --center="Debian GNU/Linux" debian/atm-tools.pod > debian/atm-tools.8
++
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/aread.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/awrite.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/enitune.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/ilmid.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/saaldump.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/sonetdiag.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/ttcp_atm.8
++      ln -s atm-tools.8 debian/tmp/usr/share/man/man8/zntune.8
++
++# Build architecture-independent files here.
++binary-indep: build install
++      dh_testdir $(dhbuildindeppackages)
++      dh_testroot $(dhbuildindeppackages)
++      dh_install $(dhbuildindeppackages)
++
++#     dh_installdebconf $(dhbuildindeppackages)
++      dh_installdocs $(dhbuildindeppackages)
++      dh_installmenu $(dhbuildindeppackages)
++#     dh_installlogrotate $(dhbuildindeppackages)
++#     dh_installemacsen $(dhbuildindeppackages)
++#     dh_installpam $(dhbuildindeppackages)
++#     dh_installmime $(dhbuildindeppackages)
++      dh_installinit  $(dhbuildindeppackages) --init-script=atm -- start 34 0 6 . start 39 S .
++      dh_installcron $(dhbuildindeppackages)
++      dh_installman $(dhbuildindeppackages)
++      dh_installinfo $(dhbuildindeppackages)
++#     dh_undocumented $(dhbuildindeppackages)
++      dh_installchangelogs -i ChangeLog $(dhbuildpackages)
++      dh_link $(dhbuildindeppackages)
++      dh_strip $(dhbuildindeppackages)
++      dh_compress $(dhbuildindeppackages)
++      dh_fixperms $(dhbuildindeppackages)
++      dh_makeshlibs $(dhbuildindeppackages)
++      dh_installdeb $(dhbuildindeppackages)
++#     dh_perl $(dhbuildindeppackages)
++      dh_shlibdeps  $(dhbuildindeppackages)
++      dh_gencontrol $(dhbuildindeppackages)
++      dh_md5sums $(dhbuildindeppackages)
++      dh_builddeb $(dhbuildindeppackages)
++
++# Build architecture-dependent files here.
++binary-arch: build install
++      dh_testdir $(dhbuildarchpackages)
++      dh_testroot $(dhbuildarchpackages)
++      dh_install $(dhbuildarchpackages)
++
++#     dh_installdebconf $(dhbuildarchpackages)
++      dh_installdocs $(dhbuildarchpackages)
++      dh_installmenu $(dhbuildarchpackages)
++#     dh_installlogrotate $(dhbuildarchpackages)
++#     dh_installemacsen $(dhbuildarchpackages)
++#     dh_installpam $(dhbuildarchpackages)
++#     dh_installmime $(dhbuildarchpackages)
++      dh_installinit $(dhbuildarchpackages) --init-script=atm -- start 34 0 6 . start 39 S .
++      dh_installcron $(dhbuildarchpackages)
++      dh_installman $(dhbuildarchpackages)
++      dh_installinfo $(dhbuildarchpackages)
++#     dh_undocumented $(dhbuildarchpackages)
++      dh_installchangelogs -a ChangeLog $(dhbuildarchpackages)
++      dh_link $(dhbuildarchpackages)
++      dh_strip $(dhbuildarchpackages)
++      dh_compress $(dhbuildarchpackages)
++      dh_fixperms $(dhbuildarchpackages)
++      dh_makeshlibs $(dhbuildarchpackages)
++      dh_installdeb $(dhbuildarchpackages)
++#     dh_perl $(dhbuildarchpackages)
++      dh_shlibdeps  -a -L libatm1 -l debian/libatm1/lib $(dhbuildarchpackages)
++      dh_gencontrol $(dhbuildarchpackages)
++      dh_md5sums $(dhbuildarchpackages)
++      dh_builddeb $(dhbuildarchpackages)
++
++binary: binary-indep binary-arch
++.PHONY: build binary-indep binary-arch binary install configure
++      get-2684 patch unpatch clean1
+--- linux-atm-2.4.1.orig/debian/atm-tools-br2684.install
++++ linux-atm-2.4.1/debian/atm-tools-br2684.install
+@@ -0,0 +1 @@
++debian/tmp/usr/sbin/br2684ctl usr/sbin
+--- linux-atm-2.4.1.orig/debian/atm-tools-br2684/usr/share/doc/atm-tools-br2684/changelog.Debian
++++ linux-atm-2.4.1/debian/atm-tools-br2684/usr/share/doc/atm-tools-br2684/changelog.Debian
+@@ -0,0 +1,206 @@
++linux-atm (2.4.1-16) unstable; urgency=low
++
++  * Fix build problem with gcc 3.4 (Closes: #259422)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Thu, 15 Jul 2004 14:28:10 +0200
++
++linux-atm (2.4.1-15) unstable; urgency=low
++
++  * Updated descriptions (Closes: #239161)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Sun,  4 Apr 2004 21:10:20 +0200
++
++linux-atm (2.4.1-14) unstable; urgency=low
++
++  * Fix symlink for /usr/lib/libatm.so (Closes: #221011)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Sun,  7 Dec 2003 21:53:19 +0100
++
++linux-atm (2.4.1-13) unstable; urgency=low
++
++  * Previous version fixed #217259, but no changelog entry (Closes: #217259)
++  * Previous version fixed #216662, but no changelog entry (Closes: #216662)
++  * Added missing build dependency on automake1.4 (Closes: #221120, #221284)
++  * New Maintainer (Closes: #206982)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Mon, 17 Nov 2003 23:03:58 +0100
++
++linux-atm (2.4.1-12) unstable; urgency=low
++
++  * don't build atm-tools-br2684 by default. Thanks to ftpmaster for
++    not allowing the package to be in Debian.
++  * Since we don't build atm-tools-br2684 any more, revert back to
++    autotools output from 2.4.1-9
++  * Add README.br2684 documenting a way to build the package locally.
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed,  5 Nov 2003 21:31:42 +0000
++
++linux-atm (2.4.1-11) experimental; urgency=low
++
++  * Build-Depend on dpatch
++  * dpatch br2684 header files from later libc for old libc (woody)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 29 Oct 2003 19:05:07 +0000
++
++linux-atm (2.4.1-10) experimental; urgency=low
++
++  * add br2684 to package                                      (closes: #216663)
++  * autoreconf to actually build br2684
++  * have libatm1-dev provide libatm-dev                        (closes: #216662)
++  * move lib symlink to libatm1-dev as well            (closes: #217259)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Thu, 23 Oct 2003 17:55:43 +0000
++
++linux-atm (2.4.1-9) unstable; urgency=low
++
++  * put libatm1-dev in libdevel                                (closes: #213170)
++  * make sure that new descriptions actually make it into the package
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Thu,  9 Oct 2003 17:08:10 +0000
++
++linux-atm (2.4.1-8) unstable; urgency=low
++
++  * build arch-indep package as targets of binary-indep  (closes: #212124)
++  * use dh_installdocs to install files to libatm1-dev/docs
++  * symlink shared lib to usr/bin                        (closes: #213146)
++  * Use better long descriptions. Thanks to Javier       (closes: #209427)
++    Fernandez-Sanguino                                         (closes: #209612)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Sun, 28 Sep 2003 19:29:08 +0000
++
++linux-atm (2.4.1-7) unstable; urgency=low
++
++  * libatm1 now conflicts with atm-tools (<< 2.4.1-6) (closes: #208170)
++  * armarp now writes output to stdout.
++  * add atm-dev as empty transitional package to help upgrades
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Tue,  2 Sep 2003 09:20:33 +0000
++
++linux-atm (2.4.1-6) unstable; urgency=low
++
++  * split off shared libraries to libatm1
++  * rename atm-dev to libatm1-dev
++  * Standards-Version: 3.6.1
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Tue, 26 Aug 2003 15:46:27 +0000
++
++linux-atm (2.4.1-5) unstable; urgency=low
++
++  * move *.a and *.la to usr/lib (closes: #199506).
++  * let atm-dev depend on atm-tools to avoid dangling /lib/libatm.so
++    symlink.
++  * Standards-Version: 3.5.6
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 30 Jul 2003 11:46:19 +0000
++
++linux-atm (2.4.1-4) unstable; urgency=low
++
++  * add Build-Depends: on automake1.4
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 11 Jun 2003 16:58:21 +0000
++
++linux-atm (2.4.1-3) unstable; urgency=low
++
++  * rebuilding libtool broke src/test/Makefile.in. Applied fix to
++    Makefile.am and re-built again.
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 11 Jun 2003 11:05:26 +0000
++
++linux-atm (2.4.1-2) unstable; urgency=low
++
++  * rebuild configure script with new libtool (closes: #196909)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Tue, 10 Jun 2003 21:01:50 +0000
++
++linux-atm (2.4.1-1) unstable; urgency=low
++
++  * new upstream source
++  * remove atmarp and atmarpd from /usr/sbin as they are already in
++    /sbin (closes: #196216)
++  * lintian fixes
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Mon,  9 Jun 2003 16:03:45 +0000
++
++linux-atm (2.4.0-5) unstable; urgency=low
++
++  * Fix for src/test/Makefile.in to allow building on hppa and ia64
++    which the fix introduced to 2.4.0-4 broke. Thanks to Goswin
++    Brederlow.
++  * Move init.d priority to that atmarpd is started before network
++    interfaces are started.
++  * Move atmarpd and libatm to /sbin and /lib to allow atmarpd to be
++    started before /usr is mounted.
++  * use dh_install instead of dh_movefiles.
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Sat, 24 Aug 2002 15:13:48 +0000
++
++linux-atm (2.4.0-4) unstable; urgency=low
++
++  * new maintainer
++  * Fix for src/test/Makefile.in to allow building on sparc.
++    Thanks to Patrick Mauritz. (closes: #144225).
++  * added pseudo-manpage for manpage-less binaries.
++  * removed rpath by changing configure and make install paramaters
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Fri, 16 Aug 2002 20:39:05 +0000
++
++linux-atm (2.4.0-3) unstable; urgency=HIGH
++
++  * Re-ran libtoolize.
++    Closes: #143522
++
++  * Previous version Closes: #135328
++
++ -- Russell Coker <russell@coker.com.au>  Fri, 19 Apr 2002 01:55:00 +0200
++
++linux-atm (2.4.0-2) unstable; urgency=HIGH
++
++  * Put a "grep -v EMAXERRNO" into the build process to deal with mipsel and
++    the "#ifdef __KERNEL__" it has in it's /usr/include/asm/errno.h .
++
++ -- Russell Coker <russell@coker.com.au>  Thu, 18 Apr 2002 19:56:00 +0200
++
++linux-atm (2.4.0-1) unstable; urgency=HIGH
++
++  * New upstream version which changes source package name.
++    Closes: #138911
++
++ -- Russell Coker <russell@coker.com.au>  Mon, 18 Mar 2002 17:42:00 +0100
++
++atm (0.79-4) unstable; urgency=low
++
++  * Added build-depends on flex.
++    Closes: #111072
++
++  * Made the atm tools use a shared object to save space.
++
++  * Fixed the copyright file and put all copyright details in both packages.
++
++  * Added support for easy building with different kernel headers.
++    Closes: #110249
++
++ -- Russell Coker <russell@coker.com.au>  Sun,  7 Oct 2001 14:11:33 +0200
++
++atm (0.79-3) unstable; urgency=low
++
++  * Created /etc/init.d/atm to start and stop atmarpd.
++    Closes: #110252
++
++  * Added build-depends on bison.
++    Closes: #110576
++
++ -- Russell Coker <russell@coker.com.au>  Fri, 31 Aug 2001 15:21:44 +0200
++
++atm (0.79-2) unstable; urgency=low
++
++  * Changed the main package name to atm-tools to indicate that it doesn't
++    provide ATM (gotta have the kernel support), it just has the daemons and
++    utilities.
++
++ -- Russell Coker <russell@coker.com.au>  Sat, 25 Aug 2001 17:55:00 +0200
++
++atm (0.79-1) unstable; urgency=low
++
++  * Initial Release.
++
++ -- Russell Coker <russell@coker.com.au>  Fri, 24 Aug 2001 17:31:00 +0200
+--- linux-atm-2.4.1.orig/debian/atm-tools-br2684/usr/share/doc/atm-tools-br2684/changelog
++++ linux-atm-2.4.1/debian/atm-tools-br2684/usr/share/doc/atm-tools-br2684/changelog
+@@ -0,0 +1,3299 @@
++Version 2.4.0 to 2.4.1 (25-APR-2003)
++=====================
++
++Bug fixes
++---------
++
++ - vsprintf's changed to vsnprintf's to prevent possible stack overflows
++
++
++Version 0.79 to 2.4.0 (18-OCT-2001)
++=====================
++
++Bug fixes
++---------
++
++ - defined 'now' in src/lib/timer.c
++ - ia64 build fix for ASN (Chas Williams)
++
++Other changes
++-------------
++
++ - In general, the source tree was rearranged and the old cruft was removed
++ - Old ad hoc build system replaced in favor of a standardized autoconfiscation
++ - Build configuration options are now controlled by 'configure' script instead
++   of changes to the previous 'Rules.make' file
++ - libatm and libatmd merged into one lib: libatm
++ - Both static and shared libraries are built by default.  Binaries now built
++   with shared library by default.
++ - Sample atmsigd.conf and hosts.atm are now installed when doing 'make install'
++ - RPM spec file is now available in src/extra/
++ - New RedHat init scripts available in src/config/init-redhat/ (John Strange)
++   (old RedHat 4.0 scripts removed)
++ - ATM on Linux HOWTO now included in doc/ (much derived from usage.tex).  We
++   will publish this on the home page as well as linuxdoc.org
++ - tcpdump and libpcap ATM patches/build removed (they have been integrated into
++   their respective packages; see www.tcpdump.org)
++ - ATM Name Service (ANS) files coalesced into src/extra/ANS
++ - ANS bind patch upgraded to bind-4.9.8 (untested)
++ - rtf2e164_cc.pl removed in favor of src/extra/ANS/pdf2e164_cc.pl.  The ITU no
++   longer provides E.164 country codes in RTF format.  PDF used instead.
++
++
++Version 0.78 to 0.79 (15-AUG-2001)
++====================
++
++Bug fixes
++---------
++
++- uni.c fix for newer versions of gcc
++- mpoad/io.c quick fix for undefined OPEN_MAX
++
++
++Version 0.77 to 0.78 (7-JUL-2000)
++====================
++
++Bug fixes
++---------
++
++ - skb_migrate wasn't protected against functions accessing the list via
++   skb->list
++ - removal of MOD_xxx races in FORE 200E and atmtcp (by Jeff Garzik)
++ - CONFIG_ATM_NICSTAR_USE_IDT77105 set NEED_SUNI_MX instead of
++   NEED_IDT77105_MX (fix from mainstream)
++ - ambassador.c: changed string concatenation and offset calculation breaking
++   compilation with gcc 2.96 (by Jakub Jelinek)
++ - nicstar.c: various locking fixes for SMP (by Rui Prior)
++ - LANE vs. bridging build conflict solved (from mainstream)
++ - %%u instead of %u in mpc.c
++ - fixed formatting of /proc/net/atm/svc
++ - /proc/net/atm/clip always added + after public address, not only if followed
++   by private address
++ - atmsigd now returns EINVAL if attempting to change max_sdu
++ - atm_change_qos now calls adjust_to for additional parameter checking
++ - sendmsg now returns error if size > max_sdu (reported by Alan Kennington)
++ - removed explicit defaults in Config.in (by Christoph Hellwig)
++ - Fore200E: removed #ifdef MODULE
++ - ipcommon.c didn't export skb_migrate to modules (by Mitchell Blank)
++ - ENI: /proc/net/atm/eni:* claimed backlog was in bytes instead of packets
++ - br, bw, window: changed variables receiving possibly negative return values
++   from size_t to ssize_t (reported by Alan Kennington)
++ - LANE: fixed stray errors on lack of ATM address, ATM address change, or ESI
++   change (by Heikki Vatiainen)
++ - LANE: could loop forwever when trying to connect to LECS (by Heikki
++   Vatiainen)
++
++New features
++------------
++
++ - upgraded to the 2.4.0-test3-pre4 kernel
++
++Other changes
++-------------
++
++ - as_reject now returns the errno value in msg->reply
++ - removed save_qos hack in svc_change_qos
++ - atmsigd: sap_encode now always includes both max_sdu fields, even if one
++   contains the null value for some reason (by Mohsen Souissi)
++ - PCI updates for Ambassador, FORE 200E, Horizon, Iphase, nicstar, ENI, and
++   ZATM (by Jeff Garzik)
++ - removal of unnecessary #ifdef MODULE for nicstar, idt77105, and FORE 200E
++   (by Jeff Garzik)
++ - generalized skb_migrate to append to an arbitrary sk_buff list
++ - iphase.c: timer initialization cleanup (from mainstream)
++ - clip: dev->name initialization change (from mainstream)
++ - idt77105: cleaned up timer initialization
++ - clip.c: some general cleanup
++ - removed redundant return in clip.c (by Heikki Vatiainen)
++ - changed atm_change_qos to static
++ - fore200e.c: re-enabled anti-unloading code
++ - lec.c: now drops packets on overrun instead of growing infinite queue (by
++   Heikki Vatiainen)
++ - COPYING still mentioned the old led code with partial DEC copyright
++   (reported by Chris Pimlott)
++ - Horizon: removed const warning by casting to (hrz_flags *)
++ - Iphase: tried to print unsigned long with %x when errors are enabled
++ - ENI: eni_send tries to use do_tx instead of tasklet_schedule to reduce delay
++ - ENI: removed eni_dev->backlog_len (information is already in backlog->qlen)
++ - changed the kernel source tree references from .gz to .bz2 compression
++ - changed mkdiff to allow more flexible selection of additional patch
++
++
++Version 0.76 to 0.77 (29-APR-2000)
++====================
++
++Bug fixes
++---------
++
++ - atmaddr.8, atmarp.8, atmdump.8, atmloop.8, esi.8 didn't print all options
++   in bold
++ - atmsigd crashed if an interface had more than one local ATM address
++ - atmarpd continued to use VCs after closing if they were closed because
++   ATMARP_SETENTRY failed (reported by Joseph Gooch)
++
++New features
++------------
++
++ - upgraded to the 2.3.99-pre6 kernel
++
++Other changes
++-------------
++
++ - CLIP now uses NETDEV_GOING_DOWN instead of NETDEV_DOWN; also avoids
++   "clip_device_event: unknown event 9" warning
++ - added ubr:pcr example to qos(7)
++ - added -V option to atmaddr, atmarp, atmarpd, atmloop, atmsigd, atmtcp, esi,
++   ilmid
++ - sock->sk->sleep now points to vcc->sleep (by Alexander Viro)
++ - CLIP: ATMARP server now reponds to query for local IP address (suggested by
++   Joseph Gooch)
++ - updated t2a.pl
++
++
++Version 0.75 to 0.76 (13-APR-2000)
++====================
++
++Bug fixes
++---------
++
++ - ttcp_atm declared port as "short" instead of "unsigned short", yielding
++   confusing diagnostic output
++
++New features
++------------
++
++ - upgraded to the 2.3.99-pre5 kernel
++
++Other changes
++-------------
++
++ - eliminated eni_send-tasklet synchronization
++ - PCA200: merged unconditional #inclusion of linux/pci.h from pre5
++
++
++Version 0.74 to 0.75 (7-APR-2000)
++====================
++
++Bug fixes
++---------
++
++ - ENI: moved send operation into tasklet to correct synchronization (reported
++   by Heikki Vatiainen)
++ - MPOA: possible deadlock fix (by Heikki Vatiainen)
++ - atm_vcc_flags_t was too small on PPC, causing an overlap with vcc->family
++   (fixed by Chas Williams)
++ - CLIP: needs spin_lock_irqsave instead of only spin_lock (by Rui Prior)
++ - CLIP: clip_push may be called from an interrupt, so the kfree_skb has to
++   become dev_kfree_skb_any (by Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - removed INCLUDES from atm/ilmid/asn1/Makefile (suggested by Jean Marc
++   Lacroix)
++ - atm/maint/Makefile no longer special-cases atmdiag.c (suggested by Jean Marc
++   Lacroix)
++
++
++Version 0.73 to 0.74 (2-APR-2000)
++====================
++
++Bug fixes
++---------
++
++ - atm_poll tried to sleep on two wait queues, which is no longer possible.
++   Removed vcc->wsleep to solve this. (Reported by Joseph Gooch)
++ - lec.c:lec_arp_clear_vccs changed the VCC flags of the wrong VCC, fortunately
++   only in commented-out code
++ - major revision of MPOA ingress and egress cache locking (Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - removed last remnants of bogus bridging lock from lane_mpoa_init.c
++   (reported by Heikki Vatiainen)
++ - removed last traces of TNET1570A driver
++ - atmdev_init still knew about ENI, but ENI now uses new-style initialization
++ - improved Fore 200E configuration to catch useless settings already at
++   configuration time (by Christophe Lizzi)
++
++
++Version 0.72 to 0.73 (29-MAR-2000)
++====================
++
++Bug fixes
++---------
++
++ - ambassador.c and horizon.c had module loading races (fixed by Giuliano
++   Procida)
++ - fore200e: one set_bit was accidently converted to clear_bit, preventing VCs
++   from being opened (fixed by Christophe Lizzi)
++
++Other changes
++-------------
++
++ - fore200e: moved interrupt handler work to tasklet (by Christophe Lizzi)
++ - fore200e: fixed SBUS DMA direction flags (by Christophe Lizzi)
++ - fore200e: the compile no longer fails when the driver is compiled without
++   any hardware support (and displays a warning; by Christophe Lizzi)
++ - oops, atm/README was lagging behind a few versions
++
++
++Version 0.71 to 0.72 (25-MAR-2000)
++====================
++
++Bug fixes
++---------
++
++ - fore200e.h and lec.h didn't #include <linux/config.h> (fixed by David S.
++   Miller ?)
++ - atmloop.c always assumed -q to be present
++
++New features
++------------
++
++ - upgraded to the 2.3.99-pre3 kernel
++
++Other changes
++-------------
++
++ - kernel patch still included wd.c hack (reported by David S. Miller)
++ - removed bogus initialization of skb->rx_dev (spotted by Alexey Kuznetsov)
++ - removed bogus lane_bridge_hook_lock (by Heikki Vatiainen)
++ - added sparc64 support for ATM_QUERYLOOP (by Christophe Lizzi)
++ - minor Fore driver cleanup (by Christophe Lizzi)
++ - eni.c: moved interrupt handler work to tasklet
++
++
++Version 0.70 to 0.71 (21-MAR-2000)
++====================
++
++Bug fixes
++---------
++
++ - eni.c: fixed potential SMP deadlock on tx_wait
++ - clip.c and lec.c didn't initialize skb->rx_dev
++ - net/atm/svc.c:svc_connect left wait entry in queue on return in some cases
++ - idiot bug in skb_migrate caused weird crashes
++ - atmloop usage erroneously claimed -s was optional
++
++New features
++------------
++
++ - upgraded to the 2.3.99-pre2 kernel
++ - added atmloop.8 man page
++ - added enqueuing result NET_XMIT_BYPASS for qdiscs that send packets on a
++   path without dequeue (e.g. sch_atm)
++
++Other changes
++-------------
++
++ - ambassador.c: removed warnings when compiling with CONFIG_SMP (by Giuliano
++   Procida)
++ - changed drivers/atm target from atm.a to atm.o, to make initcalls work
++ - converted eni.c to use pci_register_driver and initcall
++ - cleaned up #ifdef hell in net/atm/signaling.c:sigd_put_skb
++
++
++Version 0.69 to 0.70 (20-MAR-2000)
++====================
++
++Bug fixes
++---------
++
++ - LEC compilation as a module still left it in the kernel
++
++Other changes
++-------------
++
++ - moved LANE-bridging interface code from lec.c to lane_mpoa_init.c (by
++   Heikki Vatiainen)
++ - made SONET and ATM statistics counters atomic to avoid cli() when reading
++   (not updated: similar mechanism in idt77105.c and private shadow statistics
++   of ambassador.c)
++ - changed access to VCC and device flags (ATM_VF_* and ATM_DF_*) to bit set
++   operations
++ - changed flag types to structs to fail compilation of old code
++ - changed last argument of atm_dev_register to a pointer to a bit set for
++   easier migration
++ - net/atm/*.c: eliminated all sleep_on and cli (except in lec.c)
++ - ditto for eni.c and suni.c
++ - corrected indentation of some "permanent" debugging code in zatm.c
++ - made skb_migrate partially atomic, obsoleting yet another cli() in clip.c
++
++
++Version 0.68 to 0.69 (19-MAR-2000)
++====================
++
++Bug fixes
++---------
++
++ - ambassador.c: corrected location of initial PLX window for use on Alpha (by
++   Giuliano Procida)
++ - zeppelin: fixed address initialization (found by Christophe Lizzi)
++ - atmsigd.conf man page erroneously described the option "q.2963.1" as
++   "q2963_1"
++ - LANE didn't compile when bridging was enabled (fixed by Heikki Vatiainen;
++   note that bridging also needs an update which is being merged via the
++   mainstream kernel)
++
++New features
++------------
++
++ - atmsigd: added command-line option -u to set the UNI mode
++ - added ioctl ATM_QUERYLOOP to determine supported loopback modes
++ - added atmloop(8) option -q
++
++Other changes
++-------------
++
++ - added CREDITS entry of Giuliano Procida
++ - various cosmetic changes to horizon.c (by Giuliano Procida)
++ - ambassador.c: various bits of cleanup (by Giuliano Procida)
++ - added -S <tos> option to ttcp_atm to set the IPv4 TOS byte (this is not
++   really related to ATM)
++ - changed loopback mode values to a bit set
++ - idt77105_ioctl: returned sizeof(int) instead of 0 on ATM_GETLOOP
++ - added phy_ops->stop to suni.c and uPD98402_stop, cleaned up suni.c in the
++   process
++ - removed (very obsolete) mmuio.o from net/atm/Makefile
++
++
++Version 0.67 to 0.68 (28-FEB-2000)
++====================
++
++Bug fixes
++---------
++
++ - removed potential dev_kfree_skb(NULL) from *_send of eni.c, zatm.c, iphase.c
++ - eni.c, zatm.c, iphase.c sometimes returned PCI error codes instead of errno
++   codes
++ - arpd/io.c could try to de-reference entry->addr with addr == NULL (fixed by
++   Thomas Dietz)
++ - LANE copied more than dev->addr_len address bytes (fixed by Heikki
++   Vatiainen)
++ - sch_atm didn't remove filters on destroy
++ - fixed typo in esi.c error message
++ - esi.8 claimed to be the man page of atmarp, and it wasn't installed
++ - added checking for VPI/VCI when sending AAL0 cells (by Mitchell Blank)
++ - atmtcp allowed sending on receive-only VCs
++ - various ioctl permission checks were missing (fixed by Mitchell Blank)
++ - fore200e.c and horizon.c didn't always free skbs on send error (fixed by
++   Mitchell Blank)
++ - included an ugly hack to fix the wd.c driver that was broken around 2.3.47
++   (not related to ATM at all...)
++
++New features
++------------
++
++ - upgraded to the 2.3.48 kernel
++ - added device-independent SAR/PHY loopback setting interface (with many good
++   ideas from Greg Banks and Mitchell Blank), and removed old loopback ioctls
++ - new utility atmloop to set loopback mode
++ - added "stop" to atmphy_ops (requested by Mitchell Blank)
++
++Other changes
++-------------
++
++ - mkdiff can now also use pre-release kernels
++ - changed *kfree_skb to dev_kfree_skb_{irq,any} in eni.c, zatm.c, and raw.c,
++   where necessary (with help from Heikki Vatiainen)
++ - changed {dev_,}kfree_skb to dev_kfree_skb_any in ambassador.c, horizon.c,
++   iphase.c, and nicstar.c (needs further cleanup)
++ - softnet updates for LANE (by Heikki Vatiainen)
++ - fixed firmeware license of Fore 200E driver and general 0.46/0.47 updates
++   (Christophe Lizzi)
++ - more CREDITS file additions
++ - softnet updates for sch_atm
++ - softnet updates for CLIP (also cleaned up flow control for > 1 VCC/itf;
++   reported by Alexey Kuznetsov)
++ - updated documentation for iproute2-2.2.4-now-ss000225 and streamlined the
++   build procedure
++ - PCI DMA updates for ENI driver
++ - changed the default install location of executables and man pages from
++   /usr/local to /usr
++ - make install no longer installs align, aping, br, bw, delay, isp, svctor,
++   sw_debug, sw_tcp, swc, and window
++ - eni.c: made highly controversial aal5 = ... line more readable
++ - moved /proc/atm to /proc/net/atm
++ - added vcc->send function to allow for AAL-specific processing (may be set
++   to dev->ops->send)
++ - atm_do_connect_dev now calls bind_vcc before AAL initialization to make
++   vcc->dev available
++ - change_qos no longer allows changing of AAL or traffic class (by Mitchell
++   Blank)
++ - changes for new loopback support to fore200e driver and sparc64 code (by
++   Christophe Lizzi)
++
++
++Version 0.66 to 0.67 (2-FEB-2000)
++====================
++
++New features
++------------
++
++ - upgraded to 2.3.42
++ - added sunimode utility to set SUNI loopback mode (by Christophe Lizzi)
++
++Other changes
++-------------
++
++ - removed unused variable warning in net/sched/sch_atm.c
++ - changed ENI_SETMULT from ATMIOC_SARPRV+1 to ATMIOC_SARPRV+7
++ - changed atmarpd's complaint about VCC-less non-ATMARP-server entries from
++   DIAG_ERROR to DIAG_INFO (the condition is okay for an ATMARP server)
++
++
++Version 0.65 to 0.66 (31-JAN-2000)
++====================
++
++Bug fixes
++---------
++
++ - atmsigd crashed on reception of as_accept, etc., because of inverted NULL
++   pointer test (reported by Kevin Vargo, Rui Prior, fixed by Julian Cable)
++ - fixed various SPARC build problems (by Christophe Lizzi)
++ - atmsigd insisted that calling party number is local in switch mode
++ - debug switch didn't initialize any ports
++ - net/atm/signaling.c:sigd_enq didn't properly zero the message, yielding
++   kernel pointers partially containing junk
++ - accept(2) didn't copy local ATM address to VCC descriptor (reported by
++   Pedro Brandao)
++ - ilmid/io.c didn't compile on SPARC (reported by Christophe Lizzi)
++ - usage.txt didn't define the %: macro, leaving garbage in usage.txt
++
++New features
++------------
++
++ - upgraded to 2.3.41
++ - Fore 200E driver now also works for SBA-200E (by Christophe Lizzi)
++
++Other changes
++-------------
++
++ - added various CREDITS entries
++ - changed TIOC{IN,OUT}Q to SIOC{IN,OUT}Q (no user space rebuild required;
++   the values are identical)
++ - added script atm/switch/tcp/mkfiles for automatic extraction of
++   configuration files
++ - atmsigd called ATM_GETLINKRATE "ATM_GETLINERATE" in complaints
++ - atmsigd tried to obtain link speed in switch mode, although it's not used
++ - Ambassador NIC: various files still had the wrong copyright/licensing text
++   (patch by Giuliano Procida)
++
++
++Version 0.64 to 0.65 (21-JAN-2000)
++====================
++
++Bug fixes
++---------
++
++ - fixed 32/64 bit %p formatting problem in /proc/atm/vc
++ - atmtcp: fixed RX/TX statistics (by Jens Axboe) 
++ - sparc64-specific ioctl 32/64 bit marshalling fixes (by Christophe Lizzi,
++   with further improvements by Jens Axboe)
++ - zeppelin -l option handling (reported by Mike Prudence, fixed by Heikki
++   Vatiainen)
++ - mkpatch didn't include drivers/atm/eni.h
++ - updated eni.h (tx->backlog_len was missing)
++ - fixed various uint32_t build problems of user space tools by including
++   atm.h before anything other ATM headers (first reported by Rashmi Dravid)
++ - "natmtcp virtual" didn't parse the command line properly
++ - natmtcp's TCP link changed VPI/VCI to 0.0 on close
++ - CLIP: fixed crash after sending ARP (reported by Rui Prior)
++
++New features
++------------
++
++ - upgraded to 2.3.40 (with help from Jens Axboe)
++ - added sparc64 changes for ENI driver (by Heikki Vatiainen)
++ - added the Fore PCA-200E(/SBA-200E) driver (by Uwe Dannowski and Christophe
++   Lizzi)
++ - added the Interphase ATM PCI (i)Chip (x575, x525, x531, etc.) driver (by
++   Monalisa Agrawal and Peter Wang)
++ - added ABR fields to struct atm_trafprm (by Peter Wang)
++ - nicstar driver now supports setting of the CLP bit (by Rui Prior)
++ - added ENI_SETMULT ioctl and enitune utility to change ENI buffer size
++   multipliers at run time
++
++Other changes
++-------------
++
++ - atmsigd: changed default UNI version from 3.0 to dynamic (which defaults
++   to 3.0)
++ - atmtcp: removed ugly ../../net/atm/protocols.h include 
++ - ioctls now internally return -ENOIOCTLCMD if ioctl command number is not
++   recognized
++ - removed ATM_CREATE_LEAF ioctl (wasn't used and suggested the wrong design
++   approach anyway)
++ - updated README.DRIVERS
++ - natmtcp now uses port 2812 (assigned by IANA)
++ - moved Documentation/atm.txt to Documentation/networking
++ - improved atm_kptr_int_t for non-Sparc architectures (by Christophe Lizzi)
++ - removed two compiler warnings from nicstar.c
++ - some minor nicstar cleanup (by Rui Prior)
++ - added "vbr" and "abr" to text2qos/qos2text ("vbr" not used for anything
++   right now)
++ - natmtcp: added commands "create", "remove", "switch", corresponding to
++   options -p, -r, and -s of atmtcp
++ - natmtcp: added link type "print" (write PDU content to stdout)
++ - natmtcp: now uses atm_kptr_int_t for VCC kernel pointer instead of unsigned
++   long
++ - added apologetic man page for natmtcp
++ - renamed natmtcp to atmtcp and removed the old atmtcp
++ - changed some user-space code to avoid patronizing "ambiguous `else'"
++   warnings from egcs, adding as few ugly redundant curly braces as possible
++ - fixed some other compiler warnings
++ - kernel part: trimmed operations structure initializers which consisted
++   mainly of NULL pointers
++ - kernel pointers sent as opaque references to user space are now of type
++   atm_kptr_t. Added support functions kptr_eq and kptr_print. (With help from
++   Richard Johnson and Mitchell Blank)
++ - removed various "overriding commands" warnings in user-space build process
++ - mkdist now creates arcvie in current directory if ~/l/arch doesn't exist
++ - make clean && make  now works also if dependencies are present (make clean
++   used to remove sigd/q.out.h, which the dependencies required)
++ - atmtcp uses command bg instead of -b for backgrounding. Also, listen-bg
++   listens and backgrounds before calling accept.
++
++
++Version 0.63 to 0.64 (1-DEC-1999)
++====================
++
++Bug fixes
++---------
++
++ - atmapi.h logic was still wrong (fixed by Christophe Lizzi)
++ - LANE: fixed BUS filtering and net/atm/lec.c cleanup (by Heikki Vatiainen)
++ - arpd/io.c assumed that diag() preserves errno
++ - atmarpd didn't include QOS in output if getsockopt failed
++
++New features
++------------
++
++ - /proc/atm/eni:* now also shows transmit queue and backlog length
++ - added option "sndbuf" to atmarp
++ - added option "sndbuf" to tc ... atm ...
++ - /proc/atm/vc lists internal details for all VCs (flags, buffers, etc.);
++   added ATM_VF2TXT_MAP to atmdev.h to allow translation of flag values
++
++Other changes
++-------------
++
++ - ATM now uses sk->sndbuf/rvcbuf instead of atm_vcc->tx_quota/rx_quota
++ - removed rx_quota hack from zatm.c
++ - removed net/atm/tunable.h
++ - CLIP and sch_atm now only send packets if the VC's send queue allows them to
++ - implemented correct "requeue" function in sch_atm 
++ - updated zeppelin(8) man page (Heikki Vatiainen)
++ - atmarp:  atmarp -q qos_spec  usage is obsolete; use atmarp -q qos qos_spec
++   instead
++ - /proc/atm/svc now prints "N/A@xxxxxxxx" instead of "Unassigned", with the
++   address of the descriptor in xxxxxxxx
++ - removed all traces of CONFIG_MMU_HACKS
++ - obsoleted ATM_SETSC (single-copy control)
++
++
++Version 0.62 to 0.63 (22-NOV-1999)
++====================
++
++Bug fixes
++---------
++
++ - horizon.c: cleared weird rate_lock/rates_lock patch conflict
++ - saaldump output formatting was completely wrecked; added option -q for
++   "quiet" output (no Q.2931 printing)
++ - fixed LANE Ethernet interface MTU mapping (patch by Rob Scott)
++ - atmsigd incorrectly rejected CONNECTION AVAILABLE (Q.2963.1)
++ - SVC address was wrong in /proc/atm/arp if using private and public part
++ - RESTART ACKNOWLEDGE was not sent with the correct global call reference
++   value (reported by Peter Ryan)
++ - zatm: usec timestamps need 64 division of x86, so this option must be
++   unavailable on other architectures (reported by Matti Aarnio)
++ - nicstar: added "fix3" and "fix4" (by Rui Prior)
++ - LANE: non-proxy didn't filter packets coming from BUS (fix by Marko Kiiskila
++   and Heikki Vatiainen)
++
++New features
++------------
++
++ - upgraded to kernel version 2.3.28
++ - atmtcp now reports VC open/close and generates timestamps (Note: the
++   protocol used between the kernel and the atmtcp utility has changed)
++ - new utility "natmtcp" which combines the ATMTCP protocol, ATMTCP ("virtual")
++   interfaces, "real" ATM interfaces, and log files (experimental)
++ - added ILMI 4.0 MIB variables atmfPortMyIdentifier and atmfMySystemIdentifier
++   (by Thomas Seidel)
++ - zeppelin: new command line option -I to select interface, allowing the use
++   of LANE with multiple physical interfaces (by Heikki Vatiainen)
++ - UltraSparc (sparc64) support (by Christophe Lizzi)
++ - nicstar: added IDT77105 PHY support (by Greg Banks)
++ - added utility loop25 to control ForeRunner LE loopback mode (by Greg Banks)
++ - added support for DNS lookup of NSAP addresses (by Rui Prior)
++ - added utility debug/dnstest (by Rui Prior)
++
++Other changes
++-------------
++
++ - net/atm/tunable.h cleanup
++ - removed SO_BCTXOPT, SO_BCRXOPT, and struct atm_buffconst
++ - removed obsolete field "next" from struct atm_blli
++ - changed potentially unaligned 32 bit accesses in SAAL to use read_netl
++   (spotted by Christophe Lizzi)
++ - added __attribute__ ((aligned(8))) to many structures containing structures
++   which are shared by kernel and user space to enfore uniform packing on
++   sparc64 (with help from Christophe Lizzi)
++ - changed  unsigned long  to  unsigned int  at API for compatibility with
++   architecture where  sizeof(long)  differs between user and kernel space
++   (e.g.  sparc64; suggested by Christophe Lizzi)
++ - changed struct atmsvc_msg.{vcc,listen_vcc} from  unsigned long  to new type
++   atm_kptr_int_t; changed atmsigd accordingly (NB: debugging output may strip
++   upper bits)
++ - changed various casts pointer->int to pointer->long->int (where the pointer
++   does indeed only contain an int, e.g. in ioctl) for Alpha (reported by
++   Matti Aarnio)
++ - nicstar: changes card->membase from u32 to unsigned long
++ - added  __attribute__ ((unused))  to mpc.c and mpoa_caches.c to remove
++   warnings about variables used only for debugging
++ - drivers/atm/Config.in: changed  ! "$foo" = "x"  to  "$foo" != "x"
++
++
++Version 0.61 to 0.62 (27-AUG-1999)
++====================
++
++Bug fixes
++---------
++
++ - lib/diag.c:set_logfile didn't set log_to_initialized (reported by Lars
++   Burgstahler)
++ - sch_atm did not use classifiers attached to the x:0 class (reported by Lars
++   Burgstahler)
++ - net/atm/atm_misc.c EXPORT'ed atm_return, which is an inline function (fixed
++   by Mitchell Blank)
++ - work-around for SO_LEVEL range problems (by Mitchell Blank)
++ - nicstar oops fix (by Rui Prior and John Brosnan)
++ - nicstar should now work also as non-module (by Rui Prior)
++ - nicstar fix for chip bug showing up on 64-bit CPCI bus systems (by Jay
++   Talbott)
++ - cleared confusion about inclusion of suni.o when building both nicstar and
++   ENI
++ - suni.c now always exports suni_init
++ - various fixes and cleanups in the Madge drivers (by Giuliano Procida)
++ - fixed new set of atm_pdu2truesize problems by introducing atm_alloc_charge
++   which handles the allocation too (problem report and work-around by Alexey
++   Kuznetsov)
++ - getsockname on unbound PVC socket caused an oops
++ - LANE: Token Ring source route bridge support fix (by Heikki Vatiainen)
++
++New features
++------------
++
++ - upgraded to kernel version 2.3.15 (mainly by Alexey Kuznetsov and Mitchell
++   Blank)
++ - new socket option SO_ATMPVC to retrieve the "PVC" address (PVC & SVC) (based
++   on a patch by Jay Talbott)
++ - zeppelin -l now also accepts only the selector byte (by Robert Slaski)
++
++Other changes
++-------------
++
++ - removed obsolete drivers/atm/nicstar.c.old_skb
++ - removed all references to Arequipa (obsolete)
++ - SO_BCTXOPT/SO_BCRXOPT are now obsolete, given that the final verdict on page
++   flipping has been spoken in linux-kernel
++ - interface statistics are now counted in  struct net_device_stats  instead of
++   struct enet_statistics (by Mitchell Blank)
++ - added pointer to mailing list to Documentation/atm.txt
++ - Documentation/Configure.help now points to Documentation/atm.txt instead of
++   directly to the Web page.
++ - usage.tex: clarified the consequences of interrupting atmtcp
++ - changed the highly misleading "atmarpd:ITF: no such interface" message to
++   DIAG_DEBUG
++
++
++Version 0.60 to 0.61 (11-JUN-1999)
++====================
++
++Bug fixes
++---------
++
++ - nicstar: driver sometimes crashed when starting for 25 Mbps cards (Rui
++   Prior)
++ - Zeitnet driver: uPD98402.c wasn't compiled with -DEXPORT_SYMTAB when
++   building as a module
++ - net/atm/raw.c didn't export atm_init_aal5, so ATMTCP didn't load as a module
++ - atmtcp could still be accessed after loading and then unloading, yielding an
++   Oops
++
++Other changes
++-------------
++
++ - PPC configuration now also includes ATM (Jay Talbott)
++ - lots of cleanup in the Madge drivers (Giuliano Procida)
++ - tamed down a bit the tone in README
++
++
++Version 0.59 to 0.60 (3-JUN-1999)
++====================
++
++New features
++------------
++
++ - upgraded to kernel version 2.3.3 (main change is slightly different wait
++   queue handling; affects all drivers)
++
++Other changes
++-------------
++
++ - mkdiff script now takes .bz2 kernel if no .gz can be found
++ - made a few changes to the Madge drivers to reduce the number of warnings
++
++
++Version 0.58 to 0.59 (3-JUN-1999)
++====================
++
++New features
++------------
++
++ - upgrade to kernel version 2.2.9
++ - zeppelin now adjusts MTU when joining ELAN (Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - adjusted tr interface name limit to 8 characters (down from a wasteful 9)
++
++
++Version 0.57 to 0.58 (3-JUN-1999)
++====================
++
++Bug fixes
++---------
++
++ - ENI drivers sometimes directly dereferenced pointers instead of using readl/
++   writel (fixed by Mitchell Blank)
++ - nicstar driver no longer uses floating point (fixed by Rui Prior)
++ - nicstar driver may have refused CBR VC in some cases even with enough
++   bandwidth available (fixed by Rui Prior)
++ - usage.tex failed to build (fixed by Bill Brooks)
++ - zeppelin got byte order in BLLI wrong (reported by Chas Williams; fixed by
++   Mitchell Blank and Heikki Vatiainen)
++ - zeppelin did not work when the host had multiple ATM addresses (reported by
++   Benoit Steiner; fixed by Heikki Vatiainen)
++ - zeppelin incorrectly parsed -i command line option (reported by Benoit
++   Steiner; fixed by Heikki Vatiainen)
++ - atm_connect_vcc and /proc/atm/pvc report AAL0 now properly (reported by Zhu
++   Qun Ying and Uwe Dannowski)
++
++New features
++------------
++
++ - nicstar driver now support SONET diagnostics (by Rui Prior)
++ - nicstar driver now works on PowerPC (by Jay Talbott)
++ - LANE now also supports Token Ring (Heikki Vatiainen, with testing by
++   Holger Smolinski)
++
++Other changes
++-------------
++
++ - major non-i386 architecture and other cleanup in ENI driver (by Mitchell
++   Blank)
++ - number of lec devices is 40+8 (lec0-lec39 are Ethernet and lec40-lec47 are
++   Token Ring; Heikki Vatiainen)
++ - lec.c and mpc.c now use atm_force_charge (Heikki Vatiainen)
++ - net/802/tr.c limited interface names to 4 characters (fixed by Heikki
++   Vatiainen)
++ - zeppelin man page updated (Heikki Vatiainen)
++ - "zeppelin.new" is now "zeppelin", the old "zeppelin" is gone
++ - set "atm_connect" printk to KERN_DEBUG
++ - removed ATM_SAAL from include/linux/atm.h (there never was any support for
++   SAAL in the kernel)
++
++
++Version 0.56 to 0.57 (18-MAY-1999)
++====================
++
++Bug fixes
++---------
++
++ - atmarpd complained "invalid control msg type" when changing interface
++   characteristics (reported by Soo-Khim Ho)
++ - sch_atm didn't compile without CLIP (reported by Zhu Qun Ying)
++ - LANE & MPOA: plugged a few memory leaks after failure to atm_charge (Heikki
++   Vatiainen)
++ - mpcd could not be killed if MPS's address was not known (fixed by Heikki
++   Vatiainen)
++ - nicstar: fixed the sleeping in interrupt issue (Rui Prior)
++
++New features
++------------
++
++ - drivers for the Madge "Ambassador" and "Horizon [Ultra]" NICs, also known
++   as Collage PCI 155 Server, 25, and 155 Client (by Giuliano Procida)
++
++Other changes
++-------------
++
++ - MPOA code cleanup and debugging printks are now conditional (Heikki
++   Vatiainen)
++ - removed both led/USAGE files
++ - removed the old atmsigd (was in atm/sig.old/)
++ - nicstar driver now works around TSQ bug on older chips (77201) (by Rui
++   Prior, with the detective work by Jay Talbott)
++
++
++Version 0.55 to 0.56 (22-APR-1999)
++====================
++
++Bug fixes
++---------
++
++ - atm/doc/Makefile assumed . to be included in PATH when invoking rlatex
++   (fix by Heikki Vatiainen)
++ - usage.txt leaked Arequipa configuration examples (fix by Heikki Vatiainen)
++ - plugged a small memory leak in led.new which occurred when using the LANE
++   client as a proxy (Heikki Vatiainen)
++ - atmarpd crashed when printing ATMARP table entries with flag 0x8000 set
++   (reported by Vinay Kulkarni)
++ - CLIP interfaces now follow netmask changes
++ - Nicstar: 25.6 Mbps cell rate corrected (by Rui Prior)
++ - atm_equal could loop forever when comparing NSAP-encoded E.164 addresses
++   (reported by Valley Zhizhkun)
++ - [AP]F_ATM[PS]VC definitions in lib/atm.h conflicted with glibc 2.1
++   (reported by Heikki Vatiainen and Jens Vagelpohl)
++ - changed a few  non-int main  to  int main  (reported by Heikki Vatiainen)
++ - changed lib/diag.c work with glibc 2.1, where stderr is no longer a constant
++   (based on a patch by Heikki Vatiainen, also reported by Giuliano Procida)
++ - make clean didn't remove qgen/q.test.c, qgen/qd.out.h, qgen/qd.test.c,
++   sigd/q.out.h and sigd.old/q.out.h (reported by Giuliano Procida)
++ - optional headers were installed even with system headers present if
++   INSTROOT was different from / (reported by Giuliano Procida)
++ - lib/stdint.h was used even on systems that had a "real" stdlib.h (based on a
++   patch by Heikki Vatiainen, also reported by Giuliano Procida)
++ - renamed net/atm/misc.c to atm_misc.c to avoid name clash with
++   drivers/char/misc.c on include/linux/modules/misc.* (reported by Borek
++   Lupomesky)
++  
++New features
++------------
++
++ - new ioctl ATM_GETLINKRATE to query link rate of an interface (suggested by
++   Vitaly Lavrov)
++ - new atmsigd.conf option  io max_rate  to specify rate to signal if
++   application requests the "maximum"
++ - added decription of CONFIG_ATM_LANE and CONFIG_ATM_MPOA to the kernel
++   configuration help (Heikki Vatiainen)
++ - added description of LANE to usage.tex (Heikki Vatiainen)
++ - new function atm_force_charge to unconditionally add data to a receive
++   buffer
++
++Other changes
++-------------
++
++ - atmsigd now determines maximum link rate by querying interfaces (suggested
++   by Vitaly Lavrov)
++ - moved local address registry from a global table to VPCI structures
++ - changed unknown net device notification severity from KERN_ERR to
++   KERN_WARNING
++ - atmarpd now overwrites old atmarpd.table on startup (it used to keep it
++   until the first configuration change)
++ - shutdown(2) of native ATM VCs now returns 0 instead of -EOPNOTSUPP
++   (suggested by Mitchell Blank)
++ - Nicstar: IRQ sharing is now allowed (by Rui Prior)
++ - Nicstar: default maximum number of cards is now 4 (by Rui Prior)
++ - Nicstar: when compiled as a module, the driver may no longer be removed
++   while in use (by Rui Prior)
++ - Nicstar: loss of cells is no longer reported as a plain CRC error (by Rui
++   Prior)
++ - atmsigd now always clears the endpoint reference flag if in UNI 3.0 mode
++   (based on a patch by Heikki Vatiainen)
++
++
++Version 0.54 to 0.55 (1-MAR-1999)
++====================
++
++Bug fixes
++---------
++
++ - SELECT_TOP_PCR didn't take intro account the "pcr" field, causing SVC with
++   QoS pcr=xxx to be set up at link speed
++ - qos_equal didn't detect differences in the "pcr" fields
++ - sch_atm only accepted parent == root or absent (reported by John Loughney)
++ - sch_atm:atm_tc_put accessed flow structure after kfree'ing it
++ - sch_atm:atm_tc_change didn't put excess traffic class if class creation
++   failed
++ - sch_atm:atm_tc_dump_class didn't return class ID in tcm->tcm_handle
++ - sch_atm:atm_tc_delete refused to delete classes because it expected
++   ref == 1, but ref == 2 (reported by John Loughney)
++
++
++Version 0.53 to 0.54 (19-FEB-1999)
++====================
++
++Bug fixes
++---------
++
++ - led.new: fixed build problem and warning (Heikki Vatiainen)
++ - fixed LANE arp cache timeouts (Heikki Vatiainen)
++ - ilmid -i option fell through into -l, causing logging to go into a file
++   named after the local address
++ - flipping the highest bit of ep_ref made it negative which was erroneously
++   interpreted to mean "absent" (reported by Giuliano Procida and Chas
++   Williams)
++ - ilmid used the result of AsnOidCompare inconsistently, causing network
++   prefix registration to fail with some switches (based on a patch by Giuliano
++   Procida)
++
++New features
++------------
++
++ - tc:q_atm: new option "clip" to select Classical IP processing of inbound
++   traffic
++ - new sch_atm class attribute TCA_ATM_STATE to retrieve VC state
++
++Other changes
++-------------
++
++ - led.new: improved handling of LANE flush protocol (Heikki Vatiainen)
++ - copied USAGE from led/ to led.new/
++ - added description of ilmid options -i and -u to USAGE (Heikki Vatiainen)
++ - ilmid -u now also works without -DDYNAMIC_UNI (all values but the default
++   are refused)
++ - tcpdump patch updated to tcpdump version 3.4 (Heikki Vatiainen)
++ - updated "tc" patch to iproute2 version 2.1.99-now-ss990203
++
++
++Version 0.52 to 0.53 (9-FEB-1999)
++====================
++
++Bug fixes
++---------
++
++ - atmsigd: selecting the UNI version via compile-time options didn't yield
++   the desired result in some cases (reported by Vinay Kulkarni and others)
++ - ATM VCCs now use struct sock, as required by protocol-independent layer
++   starting with recent 2.1 kernels (by Mitchell Blank)
++ - led fixes: htons/htonl bugs in LANEv2 code, one duplicate close() removed
++   (by Heikki Vatiainen)
++
++New features
++------------
++
++ - upgraded to the 2.2.1 kernel (by Mitchell Blank)
++ - LANE: added bridging support (by Heikki Vatiainen)
++ - complete rewrite of led (in led.new), which is now leaner and no longer
++   contains code (c) Digital (by Heikki Vatiainen)
++ - added macros for local AESA format and group addresses, and support in
++   atm2text (by Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - ENI: buffer sizes are now limited to MID_MAX_BUF_SIZE even if max_sdu >
++   MID_MAX_BUF_SIZE/3 (reported by Andrew Lunn)
++ - plenty of NICStAR changes (Rui Prior and Mitchell Blank)
++ - LANE interface to upper layer looks more like Ethernet, so adding bridge and
++   802.1Q support is easier, and tcpdump does not need any extra patches (by
++   Heikki Vatiainen)
++
++
++Version 0.51 to 0.52 (5-DEC-1998)
++====================
++
++Bug fixes
++---------
++
++ - atmsigd crashed when receiving STATUS ENQUIRY for call in Null state
++   (reported by Heikki Vatiainen)
++ - outbound endpoint reference didin't have the 16th bit toggled (fixed by
++   Andrew Lunn)
++ - lec.c: fixed a bug in kernel which could cause kernel part to deadlock when
++   signalling was not started successfully (by Heikki Vatiainen)
++ - MPOA: bug fixes and other changes, see atm/mpoa/CHANGELOG (by Heikki
++   Vatiainen)
++
++New features
++------------
++
++ - LANE: both kernel & daemon: support for ELANs which have MTUs greater than
++   1516 (by Eric H. Kinzie)
++ - MPOA: can now ask LECS for configuratino information (by Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - zeppelin.8: updated (Heikki Vatiainen)
++
++
++Version 0.50 to 0.51 (6-NOV-1998)
++====================
++
++Bug fixes
++---------
++
++ - atmsigd: typo prevented kernel.c from compiling with UNI30 disabled (fix by
++   Andrew Lunn and Uwe Dannowski)
++ - option -u crashed ilmid (reported by Michael Wolf)
++
++Other changes
++-------------
++
++ - bearer capability is now set to "CBR" for CBR (suggested by Heikki
++   Vatiainen)
++
++
++Version 0.49 to 0.50 (3-NOV-1998)
++====================
++
++Bug fixes
++---------
++
++ - atmsigd didn't compile for -DUNI31 -DALLOW_UNI30 (fixed by Richard Gooch)
++ - atmsigd crashed on as_bind and also had problems with as_connect after
++   as_bind (reported by Heiko Krupp, Heikki Vatiainen, and many others)
++
++Other changes
++-------------
++
++ - atmsigd now enables tracing by default (use  -t 0  to turn it off)
++ - added "terminate" message to test/isp
++ - mpoad defaults to UBR if service category is absent (by Heikki Vatiainen)
++ - LANE now avoids blocking intact connections when other connections have
++   problems by queuing packets independently per destination while waiting for
++   a connection (by Heikki Vatiainen)
++
++
++Version 0.48 to 0.49 (1-NOV-1998)
++====================
++
++Bug fixes
++---------
++
++ - q_atm.c passed TCA_ATM_EXCESS even if zero, while the kernel expected it
++   to be absent in this case (changed q_atm.c)
++ - q_atm: tc class show  didn't separate fields properly with blanks
++ - removed double inclusion of atm/config from mkdist
++
++New features
++------------
++
++ - upgraded to the 2.1.126 kernel
++
++Other changes
++-------------
++
++ - "new" atmsigd is now the default (atm/sigd got renamed to atm/sigd.old,
++   atm/sigd.new to atm/sigd)
++ - updated extra/tc/README
++
++
++Version 0.47 to 0.48 (30-OCT-1998)
++====================
++
++Bug fixes
++---------
++
++ - ilmid didn't recognize the -u option
++ - ATM_GETCIRANGE copied wrong amount of data (fix by Heikki Vatiainen)
++ - sch_atm didn't compile without policing enabled (reported by Calin Poenaru)
++ - BHLI octets: qgen/msg.fmt allowed nine instead of eight bytes for ISO and
++   user specified, include/linux/atmsap.h:ATM_MAX_HLI was 7 instead of 8 (by
++   Damian Gilmurray and Paisit Thamsakorn)
++ - MPOA: bug fixes and other changes, see atm/mpoa/CHANGELOG (by Heikki
++   Vatiainen)
++
++New features
++------------
++
++ - ilmid: new option -i to set local IP address (suggested by Andrew May)
++ - ilmid now also supports the MIB variables atmfAtmLayerMaxVpiBits and
++   atmfAtmLayerMaxVciBits (based on a patch by Uwe Dannowski)
++
++Other changes
++-------------
++
++ - ilmid: search for local IP address didn't consider LANE interfaces (lec*)
++ - consolidated most of the various calls to gethostbyname and friends into
++   text2ip (libatmd)
++ - corrected some glitches in net/sched/sch_atm.c (untested)
++ - removed debug/encopy, debug/endump, and debug/zndump from the distribution.
++   They were almost useless and caused problems with  make depend
++ - SYMFILES in qgen/Makefile now determines location of atmsap.h at run time to
++   avoid problems when kernel headers are not in /usr/include/linux (reported
++   by Uwe Dannowski)
++
++
++Version 0.46 to 0.47 (6-OCT-1998)
++====================
++
++Bug fixes
++---------
++
++ - qgen didn't build for all UNI versions (fixed by Richard Gooch)
++
++New features
++------------
++
++ - ilmid: new option -u to set UNI version (3.0, 3.1, or 4.0). Only available
++   if compiled with -DDYNAMIC_UNI.
++
++Other changes
++-------------
++
++ - ilmid: getIpAddr: improved robustness and added debugging output
++
++
++Version 0.45 to 0.46 (5-OCT-1998)
++====================
++
++Bug fixes
++---------
++
++ - ENI and ZATM driver used to read IRQ directly from PCI configuration,
++   bypassing any fixups (reported by Richard Gooch)
++ - atmsigd.new: removed "Known bug" memory leak (when tracing)
++ - led/lec_ctrl.c: signalling bug fixed, max_sdu now has correct value instead
++   of 1 (by Heikki Vatiainen, reported by Josh Baratz <jbaratz@lucentctc.com>
++   and Wolfgang Platzer <wplatzer@iaik.tu-graz.ac.at>)
++ - lots of MPOA bug fixes and other changes, see atm/mpoa/CHANGELOG (by Heikki
++   Vatiainen)
++ - atmsigd reported "Q.2931.1" when configured to support Q.2963.1
++
++New features
++------------
++
++ - atmsigd.new now supports run-time configuration of the signaling protocol
++   version (via atmsigd.conf)
++
++Other changes
++-------------
++
++ - added 16W bursts to ENI burst size configuration (NB: 16W may actually be
++   *slower* than 8W)
++ - lec_ctrl.c: zeppelin now uses LE_REGISTER protocol when TLVs are associated
++   with client's MAC address (by Heikki Vatiainen)
++
++
++Version 0.44 to 0.45 (1-OCT-1998)
++====================
++
++Bug fixes
++---------
++
++ - ENI driver didn't do four-word bursts on RX for sizes < 8 words
++ - arequipad, atmarpd, bus, lecs, les, mpcd, sw_*, and zeppelin silently
++   ignored extra command-line arguments instead of complaining
++
++New features
++------------
++
++ - ENI: added configuration options to fine-tune burst sizes (in reponse to
++   incompatibility found by Dave Airlie)
++
++Other changes
++-------------
++
++ - changed the way how ATM-specific data is stored in skbs. Tentatively updated
++   the the stack, including drivers. Use CONFIG_ATM_SKB to enable the new-style
++   skbs.
++ - Rules.make no longer discards the previous value of LDLIBS
++ - sw_tcp now only establishes bi-directional VCs if both directions are really
++   requested in the QoS structure
++ - moved manual switch control from sw_tcp to the generic switch code; "tcpswc"
++   is now called "swc", the corresponding switch.conf clause is now
++   'control <path>' instead of 'option control "<path>"'
++
++
++Version 0.43 to 0.44 (24-SEP-1998)
++====================
++
++Bug fixes
++---------
++
++ - CONNECT messages no longer contain the AAL type IE if EP ref is present and
++   non-zero (reported by Heikki Vatiainen)
++ - SSCOP: added mode for partial compatibility with Q.SAAL1 (to get rid of
++   warnings reported by Heikki Vatiainen and of interoperability problems with
++   Virata switches reported by Damian Gilmurray)
++ - ilmid now returns a valid response for atmfMyIpNmAddress (by Uwe Dannowski)
++ - configuration on-line help for CLIP didn't work because tag was different
++   from configuration variable
++ - atmsigd crashed when adding multiple local addresses on an interface
++   (reported by Heiko Krupp)
++ - atmaddr.8 said "ATMARP" in the header (reported by Hans Einsiedler)
++ - net/atm/misc.c didn't include linux/config.h and linux/module.h, causing
++   symbols to be missing when rebuilding the kernel after enabling modules
++   (reported by Thomas Parvais)
++
++New features
++------------
++
++ - new maintenance utility tcpswc to control sw_tcp "switches" (description at
++   the end of switch/tcp/README)
++ - added support for setting the CLP bit (untested; see doc/README.CLP)
++ - added support for policing to the ATM qdisc (untested; see extra/tc/README)
++ - ilmid: added support for atmfAtmLayerUniVersion (by Uwe Dannowski)
++
++Other changes
++-------------
++
++ - updated the NICStAR driver to version 008b (by Rui Prior)
++ - new switch fabric function fab_option to pass configuration options
++ - atm2text now also supports unspecified and wildcard components in PVC
++   addresses
++ - added configuration option CONFIG_ATM_CLIP_NO_ICMP to discard packets for
++   which no ATMARP entry exists silently instead of sending an ICMP (this is an
++   ugly hack-around for the revalidation problem reported by Gerald Hanusch)
++ - various minor documentation updates
++ - atmarpd now sends InARP requests when active VC setup completes in order to
++   tell the peer our IP address(es)
++
++
++Version 0.42 to 0.43 (21-AUG-1998)
++====================
++
++Bug fixes
++---------
++
++ - trying to use atmtcp when compiled as a module with the module not loaded
++   crashed the kernel
++
++New features
++------------
++
++ - upgraded to the 2.1.117 kernel
++ - included NICStAR driver by Rui Prior at INESC (this driver also includes
++   parts of an earlier driver written by Matt Welsh, then enhanced by R. D.
++   Rechenmacher and Jawaid Bazyar)
++ - new atmsigd with support for multiple signaling entities (experimental)
++
++Other changes
++-------------
++
++ - removed register dumping code from suni.c (leaked out into the distribution)
++
++
++Version 0.41 to 0.42 (19-AUG-1998)
++====================
++
++Bug fixes
++---------
++
++ - atm.patch was out of sync again :-(
++
++
++Version 0.40 to 0.41 (19-AUG-1998)
++====================
++
++Bug fixes
++---------
++
++ - 0.40 contained an older atm.patch than the one that was supposed to go with
++   it (some changes to sch_atm and MPOA were missing)
++ - kernel didn't build with LANE enabled and MPOA disabled (fix by Mitchell
++   Blank Jr)
++
++New features
++------------
++
++ - MPOA now also supports CBR SVCs (by Heikki Vatiainen and Sampo Saaristo)
++
++Other changes
++-------------
++
++ - atmtcp may work as a module (untested)
++ - kernel code now uses capabilities instead of suser()
++ - removed obsolete recycle_buffer code
++ - distribution now also includes mkpatch, the script that's used to create
++   atm.patch
++
++
++Version 0.39 to 0.40 (13-AUG-1998)
++====================
++
++Bug fixes
++---------
++
++ - ilmid defined the value of "invalid" as 0 instead of 2 (fix by Timo
++   Parnanen)
++ - bash-2 doesn't like  for n in $(SUBDIR); ...  if SUBDIR is undefined (fix
++   by Heikki Vatiainen)
++ - LANE still cleared ATM_VF_RELEASED instead of calling atm_async_release_vcc,
++   which apparently led to stray kernel crashes in signaling (found with a lot
++   of help from John McPherson)
++ - ATM qdisc now properly re-allocates skb memory to grow headers, if necessary
++ - atm/switch/Makefile didn't build SUBDIRS
++ - atmarpd sent garbage ATM addresses in InARP responses over PVCs (reported by
++   Stefan Keller-Tuberg)
++
++New features
++------------
++
++ - MPOA (Multi-Protocol Over ATM) client support written by Heikki Vatiainen
++   and Sampo Saaristo
++ - LANE client (zeppelin) now also supports LANE2 (by Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - accept() now also returns on ATM_VF_CLOSE
++ - ATM qdisc now uses the same data format on rtnetlink as other qdiscs; new
++   option for user-provided headers
++ - atm/switch can now use "external" routing (e.g. provided by the fab control)
++
++
++Version 0.38 to 0.39 (4-AUG-1998)
++====================
++
++Bug fixes
++---------
++
++ - added missing #include <atm.h> in tcpsw.c (fixed by Heikki Vatiainen)
++ - atmsigd allowed both sides to initiate PCR modification; Q.2963.1 only
++   allows the connection owner (i.e. the caller) to do this
++ - atmarpd no longer tries to use incoming SVCs with zero backward bandwidth
++   for ATMARP
++ - ENI and ZATM drivers didn't invoke vcc->pop on dev->ops->send failure
++ - make install  didn't probe correctly for presence of /usr/include/stdint.h
++   (needed on GLIBC 1 systems)
++ - net/atm/resources.c didn't export bind_vcc to modules (fix by Oliver
++   Frommel)
++ - net/arpd/atmarp didn't build without  make depend  (reported by Stefano
++   Giacometti)
++ - clip_mkip zeroed vcc->rx_inuse and didn't take into account that clip_push
++   calls atm_return, which subtracts from vcc->rx_inuse too
++ - fixed typos in qgen/uni.h (and msg.fmt) for causes 38, 41, and 43
++ - atmsigd wrote exit trace to stderr when it had a dump directory and vice
++   versa
++ - documentation still claimed that atmtcp yields messages at boot time
++
++New features
++------------
++
++ - added flow to ATM VCC mapping queuing discipline (experimental)
++ - module for setting up ATM PVC/SVC mappings with "tc" in extra/tc (see
++   extra/tc/README)
++ - atmarpd: new request type art_query to request resolution without VC setup
++ - atmarp: new undocumented option -Q to test art_query
++ - added ATMTCP interfaces that survive disconnects (persistent; new atmtcp(8)
++   options -p and -r; new ioctls ATMTCP_CREATE and ATMTCP_REMOVE)
++
++Other changes
++-------------
++
++ - zeppelin didn't explicitly set the AAL type for outbound connections (by
++   Heikki Vatiainen)
++ - CLIP also allows SVCs to have no idle timeout at all (timeout = 0)
++ - moved SUNI private ioctls (SUNI_GETLOOP and SUNI_SETLOOP) from
++   drivers/atm/suni.h to include/linux/atm_suni.h
++ - atmarpd now shows QoS information for VCs where it differs from the default
++   or where no default is applicable
++ - removed the file atm/WARNING, which gave an overly pessimistic perspective
++   of the state of things
++ - switch: fab_op now returns the cause value plus (optionally) a pointer to
++   diagnostics in the callback instead of a simple okay/not okay indication
++ - updated and corrected the atmtcp man page
++ - further cleanup of the build procedure
++ - README now mainly refers to http://lrcwww.epfl.ch/linux-atm/info.html
++ - updated and trimmed BUGS
++ - added a note to CREDITS indicating its obsolescence
++
++
++Version 0.37 to 0.38 (25-JUN-1998)
++====================
++
++Bug fixes
++---------
++
++ - fixed the remaining few #include <linux/atm.h>
++ - invoking fcntl() or socketpair() on an ATM socket caused an "Oops" (reported
++   by Jonathan Chan)
++ - CLIP PVCs caused an "Oops" when cat'ing /proc/atm/pvc (reported by Marko
++   Kiiskila and Robert Olsson)
++ - atm/qgen/default.nl wasn't removed after build failure
++ - debugging switch (sw_debug) did not stop operations after the first error
++ - svc_accept returned apparent success instead of -EAGAIN, usually leading to
++   a later -ENOTCONN
++ - ttcp.c didn't initialize port_name, leading to erratic behaviour when making
++   slight changes to the build process
++ - atm_pdu2truesize diverged from alloc_skb, leading to sudden failure of VCs
++   or of ATMARP (reported by Robert Olsson)
++ - corrected use of '~' when applied to unsigned longs representing memory
++   addresses in aread, ENI, and ZATM (reported by Wai-Sun Chia)
++ - atmtcp and LANE didn't use bind_vcc when setting up control VCs
++ - atmtcp got ENOMEM/EBUSY wrong when failing to create an interface
++ - sig level <level> in atmsigd.conf didn't affect UNI diagnostics
++
++New features
++------------
++
++ - upgraded to the 2.1.105 kernel
++ - added ATMTCP "switch" in atm/switch/tcp
++ - atmtcp: new mode -s to connect to an ATMTCP "switch"
++ - atmtcp: new option -d for debugging output
++ - added -b option (the usual "background") to switch/relay.c
++
++Other changes
++-------------
++
++ - changed "PDU" to "SDU" in the atmtcp(8) man page
++ - atmarpd now includes the interface netmask in ATMARP table dumps
++ - added ATM devices also to the Alpha architecture, because at least ATMTCP
++   works (by Wai-Sun Chia)
++ - added the removal of -Wmissing-prototypes to the 0.37 changes
++ - removed -Wcast-align from Rules.make because of a conflict with
++   /usr/include/socketbits.h of glibc 2 on Alphas (reported by Wai-Sun Chia)
++ - atmsigd.conf.4: documented that  debug log stderr  works too
++ - sap_equal now also allows wildcard matches for BHLI (with SXE_COMPATIBLE)
++ - atmsigd now uses  -m <mode>  instead of -N and -A
++ - atmsigd.conf now uses  sig mode <mode>  instead of  sig net
++
++
++Version 0.36 to 0.37 (6-JUN-1998)
++====================
++
++Bug fixes
++---------
++
++ - lib/atm.h defined AF_ATMPVC to 20, but the correct value is 8. Likewise,
++   AF_ATMSVC should be 20, not 21. (Reported by Luke Diamand)
++ - fixed bad ASN encoding in ilmid (by Vesa-Matti Puro)
++ - make install and make instdirs didn't stop on error
++
++New features
++------------
++
++ - upgraded to the 2.1.104 kernel
++ - included a script to demonstrate the debug switch (see switch/debug/README)
++
++Other changes
++-------------
++
++ - moved definitions not used by the kernel from linux/atmarp.h to atmarp.h
++ - removed linux/atm_stdint.h (linux/types.h has now caught up)
++ - changed ENI and ZATM driver to use new PCI interface
++ - net/atm/clip.c no longer uses ether_setup (suggested by Alexey Kuznetsov)
++ - more header file cleanup (main change: applications should now
++   #include <atm.h> instead of #include <linux/atm.h>)
++ - removed -Wmissing-prototypes from Rules.make because of a conflict with
++   include/linux/byteorder/swab.h
++
++
++Version 0.35 to 0.36 (23-APR-1998)
++====================
++
++Bug fixes
++---------
++
++ - changed the numeric values of PF/AF_ATMPVC/SVC and SOL_ATM/AAL to avoid
++   conflicts with other allocations. This breaks binary compatibility with
++   ATM programs compiled under older kernels
++ - RESTART ACK was sent with the wrong class when acknowledging the restart of
++   the indicated virtual channel (fix by Mohsen Souissi)
++ - RELEASE was retransmitted forever (to avoid having to perform a RESTART),
++   although it's sufficient to retransmit once and then drop the connection
++ - esi.c checked the kernel version code without including linux/version.h
++ - CLIP changes magically fixed hangs on SICGIFCONF (reported by Wayne Salamon)
++ - atmsigd usually didn't set pvc.sap_family in ISP messages
++
++New features
++------------
++
++ - added build-time option -DTHOMFLEX to send RESTART when SAAL comes up, which
++   works around a bug in some Thomson Thomflex 5000 switches (by Mohsen
++   Souissi)
++ - atmtcp: new option "-i itf" to request a specific interface number
++ - the "debug switch" (switch/debug/sw_debug) is now capable of successfully
++   signaling a UNI 3.x call (see switch/debug/README for details)
++
++Other changes
++-------------
++
++ - atm_equal can now also compare PVC addresses. The argument type has
++   therefore been changed from struct sockaddr_atmsvc * to struct sockaddr *
++ - moved driver-private data from skb->atm.* into skb->cb
++ - complete redesign of communication between atmarp(8) and atmarpd(8) (now
++   uses a UNIX domain socket; suggested by Alexey Kuznetsov)
++ - atmarp -a now also produces correct output if atmarpd is running with -d
++ - removed clip(8)
++ - moved atmarp(8) from atm/ip into atm/arpd, removed atm/ip
++ - /proc/atm/svc shows listening sockets again
++ - cleaned up a few cases where diag(...,DIAG_FATAL,...) was followed by an
++   "else" or a "return".
++ - atmsigd now uses Unix domain sockets (instead of named pipes) to communicate
++   with non-kernel ISP users (updated test/isp too)
++ - net/atm/resources.c:atm_dev_register can now be asked to assign a specific
++   interface number (-1 yields the old behaviour)
++
++
++Version 0.34 to 0.35 (27-MAR-1998)
++====================
++
++Bug fixes
++---------
++
++ - ilmid compared memcmp results with -1,1, which fails under optimization
++   (fixed by Damian Gilmurray)
++ - various fixes and cleanup in how CLIP interacts with the neighbour cache
++   (spotted by Alexey Kuznetsov)
++ - Rules.make complained about missing "optprocess" command on some occasions
++
++New features
++------------
++
++ - upgraded to the 2.1.90 kernel
++ - added some components for ATM switch control (not properly integrated yet,
++   so they don't do anything useful at the moment; written by Roman Pletka)
++
++Other changes
++-------------
++
++ - eliminated various compiler warnings when compiling with glibc2
++ - removed clip_hard_header (suggested by Alexey Kuznetsov)
++
++
++Version 0.33 to 0.34 (13-MAR-1998)
++====================
++
++Bug fixes
++---------
++
++ - eni.c didn't include config.h (fix by Pete Wyckoff)
++ - (yet another) VCC list handling bug (fixed by Heikki Vatiainen)
++ - kernel also applied idle timeout to CLIP PVCs
++ - make clean  didn't remove test/errnos.inc
++ - atmsigd errored as_connect and as_accept with as_close instead of as_error
++ - eni: bandwidth was sometimes reserved for UBR VCs
++ - eni: checking of bandwidth changes was broken
++ - eni: error handling after failed bw change checks destroyed the free list
++ - test/errnos.inc sometimes wasn't generated because of mtime granularity (fix
++   by Brian Armstrong and Corinne Rosier)
++ - fixed use of return code of get/put_user and copy_from/to_user
++ - kernel: fixed a few minor race conditions
++ - ATM_GETADDR left address list locked on fault
++ - maximum length of high layer information was 7 bytes instead of 8 for ISO
++   and User Specific high layer information (reported by Damian Gilmurray)
++ - some tools didn't include errno.h although they use errno or Exxx
++ - atmsigd usually accessed deallocated memory when writing traces, which
++   sometimes led to crashes (reported by Heikki Vatiainen)
++ - indentation of the first two lines of UNI signaling messages in traces was
++   missing
++ - LANE: duplicate data direct connections to entities where we already
++   have a connection are now forbidden. LES and BUS can now co-reside.
++   (Reported by Jean-Francois Moine, fixed by Heikki Vatiainen)
++ - LANE: plugged a file descriptor leak (by Heikki Vatiainen)
++ - atmsigd.conf.4 incorrectly stated that diagnostics must have a higher
++   priority than the specified level to get printed (they're also printed if
++   their priority is equal to that level)
++ - zatm driver didn't virt_to_bus the back pointer of TX rings, leading to
++   crash after sending the 32nd PDU of a VCC (reported by Ajay Bakre)
++ - zatm_feedback sometimes returned with interrupts disabled
++ - ENI driver didn't treat requests for UBR at link speed as "unlimited" and
++   allocated one shaper for each such VCC
++ - atm_async_release_vcc now has its own flag ATM_VF_CLOSE. Overloading
++   ATM_VF_RELEASED caused hung SVCs under some conditions.
++ - atmsigd sometimes released listening sockets before kernel completed its
++   cleanup, yielding warnings and zombies
++ - atmsigd accessed already deallocated data structures when handling
++   unparseable signaling messages
++
++
++New features
++------------
++
++ - upgraded to the 2.1.79 kernel
++ - CLIP now handles NETDEV_CHANGE (proposed by Pete Wyckoff; untested)
++ - various minor signaling changes for operation as switch control
++ - new device operation proc_read: device drivers can now register in /proc
++   (e.g. /proc/atm/eni:0)
++ - added some more BHLI definitions to include/atmsap.h, including draft
++   mapping of well-known TCP/UDP port numbers
++ - added support for TIOCOUTQ/TIOCINQ on native ATM
++ - new library function sap_equal
++ - added convenience function atmpvc_addr_in_use to linux/atm.h
++ - major overhaul of "isp", which is now a good tool for signaling regression
++   tests. See atm/test/README.isp
++ - LANE can now be compiled as a kernel module (by Heikki Vatiainen)
++ - new tool debug/svctor.c to torture signaling by setting up and releasing
++   lots of SVCs (see the source for details)
++
++Other changes
++-------------
++
++ - cleaned up the copying terms: libraries are now covered by LGPL instead of
++   GPL and qgen doesn't "taint" the code it generates
++ - atmarpd: IP addresses are now __u32 instead of unsigned long
++ - atmarpd: changed printf("... %08x ...",(unsigned long) ptr) to %p ...",ptr
++ - /proc support now allocates inode numbers dynamically
++ - added comment to clarify motivation for useless buffer alignment in aread.c
++   (reported by Jeon Jong Hwan)
++ - suni.c and uPD98402.c: SONET_GETSTATZ no longer clears the statistics if the
++   copy faults
++ - ilmid should now work on any interface (patch by Heikki Vatiainen)
++ - changed all __uNN of tools to uintNN_t for glibc2-compatibility
++ - added stdint.h to lib for compatibility with future versions of glibc2
++ - various other evil hacks in tools to make things compile with glibc2
++ - the NIC debugging programs ed, encopy, endump, zndump, and znth are no
++   longer built and installed by default
++ - for compatibility with POSIX 1003.1g, accept now returns ECONNABORTED
++   instead of ECONNREFUSED if connection is already gone (proposed by Heikki
++   Vatiainen)
++ - listening sockets now return instantly if the signaling demon dies
++ - various minor LANE updates to track API changes (by Heikki Vatiainen)
++ - SUNI now also warns if signal is missing at initialization time
++ - zatm: added work-around for unfair buffer space accounting
++ - clarified some of atmarpd's diagnostics
++ - documentation updates
++
++
++Version 0.32 to 0.33 (19-NOV-1997)
++====================
++
++Bug fixes
++---------
++
++ - SSCOP did poll sequence number comparisons in the (data) sequence number
++   space, typically leading to periodic SSCOP restarts (reported by Heikki
++   Vatiainen)
++ - atmsigd now releases calls on receipt of STATUS with call state 0 (reported
++   by Heikki Vatiainen)
++ - qgen tried to print the names of unnamed groups (fix by Simon Leinen)
++ - make clean  in qgen left all the .c and .h files produced by qgen
++ - minor fixes to signaling message format description (qgen/msg.fmt,
++   previously qgen/uni*)
++ - /usr/include/atm.h was calling itself "atmlib" (found by Leena Chandran)
++ - atmsigd: the address format of the calling party number was used to
++   determine the format of the called party number in a SETUP message
++ - added some semicolons to Rules.make for bash 2.0 compatibility (by Tan Chang
++   Hu and Rolf Kunisch)
++ - select/poll indicated an exception when a non-blocking connect terminated.
++   Now it indicates writability, and an error only if the connect failed.
++ - LES/BUS can now co-exist at the same address (by Heikki Vatiainen)
++ - fixed race condition between asynchronous release (e.g. on ATMARP idle timer
++   expiration) and signaling demon response
++ - fixed a typo "[itf]." instead of "[itf.]" in atmsigd.conf.8
++ - "ATM drivers" kernel configuration section is no longer a top-level menu
++   item but it's now under "Network devices"
++ - sigd_close forgot to purge VCs not connected to devices (e.g. closing ones),
++   so they hung
++ - the list of unconnected VCs was sometimes garbled
++ - atmsigd printed null string for as_itf_notify message name when debugging
++ - Arequipa: check_aq_vcc also accepted VCs that were already released by
++   signaling
++ - ATM_VF_PARTIAL and ATM_VF_BOUND had the same value
++ - atmaddr still used old calling convention of ATM_GETNAMES
++ - the atmarpd man page referred to atmarpd as "atmsigd"
++ - various atmtcp bug fixes
++ - atm_recvmsg sometimes returned with interrupts disabled (reported by Pete
++   Wyckoff)
++ - fixed ttcp_atm dependencies (.depend contains dependencies for "ttcp.o")
++ - UNI message format: "more" was missing for def_pck_size
++ - eni/suni didn't compile as modules (fixed by Pete Wyckoff and Ladislav
++   Lhotka)
++ - further net/atm/Makefile cleanup
++ - arequipa_close always left the socket with arequipa_expect enabled. Now it
++   returns it to the previous state.
++ - ENI driver was leaking buffer memory on failure of set_tx
++ - atmarpd didn't print symbolic names of "new" flags (ATF_ARPSRV, etc.)
++ - ATM ARP server didn't make client entries public (reported by Tom Mahieu)
++ - drivers/atm/Config.in had extra "endmenu" (fixed by Ladislav Lhotka)
++ - atmarpd got confused when receiving InARP reply without source ATM address
++ - atmsigd sometimes didn't stop timers if Q.2963.1 wasn't enabled
++ - when rejecting a call, the kernel freed the VCC twice
++
++New features
++------------
++
++ - merged source tree (except Arequipa, single-copy, and various NIC drivers)
++   with 2.1.65-Linus tree
++ - qgen can now handle repeated information elements
++ - added ATM_SETESI[F] ioctl and esi utility (boards without a real ESI in ROM
++   should now set the default ESI to 0x000000000000)
++ - new socket option SO_ATMSAP along with struct atm_sap (using a fixed-size
++   BLLI array instead of the linked list in struct sockaddr_atmsvc)
++ - added Q.2963.1 PCR modification in signaling and the ENI driver
++ - aread: new option -c to print received data as characters (similar to od -c)
++ - new tool test/align to test handling of mis-alignment in NIC drivers
++ - atmsigd now supports policy restrictions for incoming/outgoing calls (see
++   atmsigd.conf.4, "policy")
++ - atmsigd can now also use a pair of named pipes (or, actually, any named
++   object in the file system) for communicating with the user of signaling
++   (normally the kernel)
++ - new tool called "isp" (for "Internal Signaling Protocol") to talk ISP with
++   atmsigd over named pipes
++ - new functions sap2text and text2sap to converts SAPs to/from textual
++   representation, and a sap(7) man page
++ - new traffic parameter field "pcr" to indicate the desired PCR. min_pcr and
++   max_pcr can the be used to indicate the acceptable range.
++ - new function atm_pcr_goal to help drivers to interpret traffic parameters
++
++Other changes
++-------------
++
++ - removed some more obsolete CLIP-related ioctls
++ - qgen: simplified generation of engines with a prefix other than "q" or "qd"
++ - ENI and ZATM drivers now use shareable interrupts
++ - cleaned up some 32bit-isms in ENI driver
++ - cleaned up several 32bit-isms in SSCOP (reported by Tan Chang Hu)
++ - SSCOP: work-arounds for buggy ntohl prototype in some early versions of
++   glibc (reported by Tan Chang Hu, further explored by David S. Miller and
++   Richard Henderson)
++ - started updating the ZATM driver for 2.1 (still crashes under load)
++ - added missing 2.1 pieces in ENI's SUNI driver
++ - added __initfunc and __initdata where appropriate
++ - tools tree now compiles under 0.31 (2.0.25 kernel) and 0.33 (2.1.55 kernel)
++ - gratuitous improvement of identifier tree allocation in qgen
++ - the interface number is now optional for sonetdiag (like for atmdiag)
++ - started implementing the kernel side of point-to-multipoint signaling
++   support
++ - /proc/atm/arp now displays "resolving" or "expired" (with the number of
++   times the entry is referenced) instead of "incomplete".
++ - moved ATM_MAX_BLLI from linux/atm.h to linux/atmsap.h
++ - changed ttcp_atm to use SO_ATMSAP (if available) to set BHLI
++   Note: ttcp_atm previously didn't use a BHLI, so old and new versions of
++   ttcp_atm don't interoperate.
++ - updated all other programs using SAPs too, except for LANE
++ - ENI: failure to allocate a traffic shaper now yields EBUSY instead of EAGAIN
++ - instead of just complaining, the ENI driver now handles all kinds of
++   mis-alignment in the TX path properly
++ - re-implemented send and receive side of Arequipa
++ - merged qgen/uni3x and qgen/uni40 into msg.fmt
++ - added missing Q.2931/UNI 4.0 items to qgen/q2931.h and msg.fmt
++ - also added BLLI L3 H.310 codepoint with related encodings
++ - various file name and identifier changes to give a more appropriate name
++   (e.g. "uni" or "call") to something that's never been Q.2931
++ - added library dependencies
++ - atmsigd produces more readable and usually more comprehensive debugging
++   output
++ - atmsigd.conf.4 now mentions that -d is the debugging output addict's choice
++ - all programs accepting -l syslog now also accept -l stderr. (This is useful
++   for atmsigd if atmsigd.conf sets logging to something else.)
++ - atmsigd now issues ATM_GETADDR ioctls on the signaling socket, not on the
++   kernel socket
++ - WARNING: text2qos: "pcr" is no longer a synonym for "max_pcr" !
++ - text2qos now refuses min_pcr=max
++ - device driver interface: removed vcc->peek; device drivers now choose their
++   own allocation strategy (change motivated by bug report from Furquan Ansari)
++ - drive driver interface: new helper functions atm_charge/atm_return to handle
++   buffer space allocation
++ - device driver interface: vcc->push no longer allocates buffer space. This is
++   now done by the driver, via atm_charge
++ - updated eni, zatm, and atmtcp to use the new mechanism
++ - zero padding in eni driver failed due to mis-alignment on some systems
++   (fixed by Pete Wyckoff)
++ - various compiler warnings removed (by Pete Wyckoff)
++ - removed support for pre-AREQUIPA_WORK mechanism
++ - arequipa close mechanism cleanup
++ - further cleaned up QOS parameter checking
++ - new ISP message as_identify for parallel call processing (not supported yet)
++ - zatm: renamed  struct zatm_thist  to  struct zatm_t_hist  after wondering
++   myself what on earth "this t" could be ...
++ - doc/Makefile now invokes dvips with -o
++
++
++Version 0.31 to 0.32 (10-JUL-1997)
++====================
++
++Bug fixes
++---------
++
++ - manipulation of local ATM addresses didn't check for permission
++
++New features
++------------
++
++ - ilmid now supports the system group and a couple of ILMI MIB objects (by
++   Scott Shumate)
++ - device and VCC allocation is now dynamic
++ - E.164 addressing support and corrections to address coding in uni3x/uni40
++   (by S. A.  Wright, T. C. Jepsen, and Z. Zhang)
++ - support for device de-allocation via per-device operation dev_close
++
++Other changes
++-------------
++
++ - upgrade to kernel version 2.1.37
++ - ENI driver cleanup (uses readl/writel, skb_put, etc.)
++ - socket option handling has changed: optval is now void * (to improve
++   compile-time type checking) and optlen is int (not int *) in getsockopt
++ - socket option "names" now encode the level and the size (based on an idea of
++   Elwyn Davies)
++ - cleaned up some of the #includes in net/atm/proc.c
++ - total rewrite of ATMTCP (now the data forwarding is done in user space,
++   which makes things slower but a lot more flexible)
++ - separated PDU parsing and printing from SSCOP state machine
++ - new per-device operation dev_close to shut down devices
++ - changed a few DIAG_WARNs to DIAG_INFO in ilmid
++
++Removed features
++----------------
++
++ - polled ATM devices are no longer supported
++ - CLIP is gone (use ATMARP instead)
++ - Arequipa and LANE don't work yet (will come back later)
++
++
++Version 0.30 to 0.31 (22-APR-1997)
++====================
++
++Bug fixes
++---------
++
++ - atmarpd even refused IP address changes by the ATMARP server, which
++   typically led to the creation of one extra SVC
++ - ATMARP timeouts were computed at the wrong place (found by Gerald Hanusch)
++ - aqtest's usage didn't mention the -v option
++ - some tools used 0x%p instead of %p (which is fine in the kernel, by the way)
++ - skb_migrate didn't update skb->list
++ - zeppelin: incurred spurious core dumps on unsuccessful attempts to connect
++   to LANE servers, ESI parsing from command line seg faulted, obtaining ESI
++   from NIC left an ATM socket hanging, man page didn't describe all options
++   (by Marko Kiiskila and Heikki Vatiainen)
++
++Other changes
++-------------
++
++ - arequipa_close now only returns after the Arequipa connection has been
++   successfully closed. This allows applications to reliably close and
++   re-create Arequipa SVCs, e.g. to change the traffic parameters.
++ - the arequipad operations 3rd party close and synchronization are now handled
++   inside the kernel and survive arequipad restarts
++
++
++Version 0.29 to 0.30 (10-APR-1997)
++====================
++
++Bug fixes
++---------
++
++ - atmtcp didn't use vcc->push and therefore got the buffer usage accounting
++   wrong (fix by Gerald Hanusch)
++ - when closing a VC, the ENI driver didn't wait until all TX data has really
++   left the board, which created a close/open race (found by Richard Jones)
++ - SSCOP sometimes omitted the last element in a STAT PDU (fix - even with
++   optimization vs. Q.2110 - by Ngo Bach Long)
++ - atmarpd allowed ARP information to change permanent entries (found by Gerald
++   Hanusch)
++ - atmsigd's get_pvc used the maximum SDU size, thereby wasting buffer space
++   very quickly, which led to signaling problems (reported by Richard Jones and
++   Rik Wade)
++ - oops, the BUGS file was always one version number ahead
++ - ATMARP had a race between packets sent by the remote station and the
++   ATMARP_MKIP ioctl. This caused the dreaded "unknown hw protocol 0xaaaa"
++   error. (Finally fixed thanks to a dump provided by Patrick Flynn)
++ - Arequipa had the same race for AREQUIPA_INCOMING. This probably caused the
++   occasional "loss" (they were actually kept in vcc->recvq until the
++   connection was closed) of the first packet(s).
++
++
++Version 0.28 to 0.29 (4-APR-1997)
++====================
++
++Bug fixes
++---------
++
++ - saal/sscop.c: NORMALIZE macro was weird and broken (fix by Ngo Bach Long)
++ - InARP queries didn't contain the target ATM address, even if it is known,
++   which stretches the allowances RFC1577 makes for violating RFC1293 (found
++   by Juha Heinanen)
++ - tcp_conn_request: Arequipa modification to MTU size calculation used wrong
++   socket (fix by Gerald Hanusch)
++ - kernel ATMARP table handling had some obscure races
++ - temporary work-around: added A2T_LOCAL when using A2T_NAME in atmsigd and
++   atmarpd. Before, systems using ANS where the name server is reached via (IP
++   over) ATM exhibited truly bizarre failure patterns when refreshing ATMARP
++   entries. (With a lot of help from Juha Heinanen)
++ - ditto for arequipad, although the effects were less dramatic
++ - atmarpd: if not using -m, incoming connections for which a valid entry
++   already existed (e.g. due to manual configuration) were not entered in the
++   kernel ATMARP table until after the entry timed out for the first time (by
++   Gerald Hanusch)
++ - skb data areas are now aligned using skb_reserve instead of directly
++   tampering with skb->data (and forgetting skb->tail in the process ...)
++   (found by Uwe Dannowski)
++
++New features
++------------
++
++ - atmarpd is now automatically notified of IP over ATM interfaces already
++   existing at startup. This greatly simplifies the atmarpd restart ritual.
++   (All ATMARP table entries and the default QoS are still lost, though.)
++
++Other changes
++-------------
++
++ - cleaned up some weird and partially dead code in arpd/arp.c (found by
++   Gerald Hanusch)
++ - removed superfluous continue in arp.c:atmarp_setentry
++ - device-driver specific declarations now reside in
++   /usr/include/linux/atm_<drv_name>.h, so that disgusting hacks like
++   #include "/usr/src/linux/..." can be avoided (based on proposal by Uwe
++   Dannowski)
++ - updated the list of supported NICs in README and the on-line help
++ - arpd/atmarpd.8: documented that atmarpd -m may violate RFC1577 in subtle
++   ways (pointed out by Gerald Hanusch)
++ - updated MPR usage description to version 1.5 and removed mpr.patch
++ - removed MEM_DEBUG from the build process (MPR 1.5 initializes itself
++   automatically)
++
++
++Version 0.27 to 0.28 (27-MAR-1997)
++====================
++
++Bug fixes
++---------
++
++ - atmarpd restarted timers on as_valid -> as_valid transitions, illegally
++   delayed necessary refreshes (reported by Juha Heinanen)
++ - SSCOP cleared POLL timer on IDLE timer expiry (fix by Ngo Bach Long)
++ - atmsigd didn't initialize "now" soon enough, causing an unnecessary
++   retransmission of the first BGN PDU (by Ngo Bach Long)
++ - atmsigd responded to RELEASE COMPLETE in ss_rel_ind with a STATUS instead of
++   entering ss_wait_close (by Steve Pope)
++
++New features
++------------
++
++ - new tool aqpvc to declare incoming Arequipa traffic on a PVC to the system
++   (caveat: removing such a PVC can turn out to be surprisingly difficult)
++
++Other changes
++-------------
++
++ - removed some useless code in atmarpd's handling of VC disconnects
++ - removed unused signaling state ss_hold (equivalent to ss_wait_rel)
++
++
++Version 0.26 to 0.27 (11-MAR-1997)
++====================
++
++Bug fixes
++---------
++
++ - oops, forgot to include atm/lib/rtf2e164_cc.pl in the distribution
++ - atmsigd's VCI allocation in -N mode was too simplistic and failed after some
++   signaling activity (reported by Richard Jones)
++ - atm_connect was rejecting ATM_{VPI,VCI}_ANY
++ - aq_prev in the list of Arequipa connections wasn't set properly, leading to
++   random crashes when using Arequipa (found and fixed by Richard Jones, after
++   weeks of tearing his hair out)
++ - arequipa_close didn't remove the Arequipa route, which kept the upper layer
++   protocol connection alive for a rather long time (reported by Richard Jones)
++
++New features
++------------
++
++ - ilmid enhancements: vastly improved retry mechanism, workaround for a bug in
++   the ATML Virata switch, -v option for very detailed debug output (Scott
++   Shumate)
++ - atmsigd now also accepts the signaling VC as a command line argument
++ - qos2text appended colon to traffic type even if nothing else followed
++ - new program debug/aqtest to test Arequipa (based on work by Mehdi Tazi)
++
++Other changes
++-------------
++
++ - added a few missing NULLs to struct atmdev_ops initialization in various
++   drivers (this change does not alter any semantics)
++ - changed  printk ...%lx... (unsigned long) ptr  to  ...%p... ptr at many
++   places
++ - removed atm/lib/rtf2cc.pl and atm/lib/cc.inc (they were only used by an
++   interim version of cc_len)
++ - atmarp's usage no longer contains lines longer than 80 characters
++ - added get_logfile() and get_verbosity() to libatm (for ilmid, by Scott
++   Shumate)
++ - select() consumed CPU time unnecessarily if testing for one direction while
++   there's a lot of activity in the other direction (e.g. atmarpd wasted cycles
++   in select() for each outbound packet while waiting for ARP messages)
++ - the value of ATM_AAL0 has changed (from zero to 13), so all programs using
++   AAL0 need to be recompiled
++ - MAX_ATM_QOS_LEN has changed, so most programs using qos2text need to be
++   recompiled
++ - the AAL can now also be set along with the QoS parameters. This approach
++   should be used instead of specifying it in the socket() call.
++ - if no AAL is specified, the kernel now defaults to AAL5 (was AAL0)
++ - updated most demons, tools, and library functions to set the AAL along with
++   the QoS parameters
++   
++
++Version 0.25 to 0.26 (29-JAN-1997)
++====================
++
++Bug fixes
++---------
++
++ - ATMARP VCCs could stay around forever even after timing out, because the
++   process was not woken up.
++ - the ATMARP "fix" in 0.25 introduced an infinite loop. Fixed that one too.
++ - bit 8 in octets 6 and 7 of BLLI ("ext") were set to 1 instead of 0 when
++   using ATM_L2_USER/ATM_L3_USER (reported by ukl2@rz.uni-karlsruhe.de)
++ - qlib added silly offset (which fortunately happened to be zero most of the
++   time) to dumps of large fields (fixed by Jean-Francois Moine)
++ - IP over ATM restricted MTU changes to valid Ethernet MTU sizes
++ - LANE: fixed two bugs that crashed zeppelin when the connection to the
++   servers failed (by Marko Kiiskila)
++
++New features
++------------
++
++ - lib/ans.c now properly computes the length of the country prefix of E.164
++   addresses for reverse lookups (needs file /etc/e164_cc, see USAGE)
++ - if the new -m option is set, atmarpd now merges incoming calls into the
++   ATMARP table if the ATM address is known (see atmarpd.8 for details)
++ - included an RPM spec file (this is still very experimental)
++ - NICStAR driver now also works with IP over ATM (by Stuart Daniel)
++ - usage.txt: added description of how to run ATM NICs back-to-back (by Richard
++   Jones)
++
++Other changes
++-------------
++
++ - signaling traces now also include SAAL up/down transitions
++ - qgen no longer (unnecessarily) depends on libatm.a
++ - started work on letting qgen handle items that appear at more than one
++   place, e.g. repeated IEs (after an idea by Jean-Francois Moine)
++ - did some cleanup and added comments to qlib.[ch]
++ - added -m option to atmarp in config/redhat-4.0/atm.init
++ - added new make target "filenames" to generate a list of all the files which
++   are installed
++ - config/redhat-4.0 now contains an example hosts.atm file and also a Makefile
++   for more convenient installation
++ - atmsigd now reads atmsigd.conf before parsing the command-line options,
++   thereby allowing values set in the file to be superseeded
++ - atmsigd now also logs the internal reference and the caller's address on
++   calls establishment
++ - ilmid: very dirty hack to give switches some time to process ILMI cold start
++   (by Joseph Evans)
++
++
++Version 0.24 to 0.25 (20-DEC-1996)
++====================
++
++Bug fixes
++---------
++
++ - net/atm/atmarp.c:idle_timer_check only expired every other entry (reported
++   by Marko Kiiskila)
++
++New features
++------------
++
++ - LANE now also supports IPX (SNAP and 802.3; by Marko Kiiskila)
++ - NICStAR driver now supports VPI != 0 and has configurable settings in
++   nicstar.h (by Stuart Daniel)
++
++Other changes
++-------------
++
++ - ENI: TX DMA scratch are is now stored per device. This should allow multiple
++   NICs to coexist.
++
++
++Version 0.23 to 0.24 (29-NOV-1996)
++====================
++
++Bug fixes
++---------
++
++ - atm/test/window.c was missing in 0.23
++ - atm/debug/delay didn't build unless atm/lib headers were already installed
++   in /usr/include
++ - atm/debug/znth had undefined return value
++ - SSCOP: fixed typo (that could probably kill the SSCOP connection in case of
++   a retransmission); fix by Olivier Bonaventure
++ - corrected unnecessarily large buffer allocation in zatm.c:pool_index (by
++   Jonathan Larmour)
++ - hosts2ans.pl generated reverse addresses for the domain "ATM.INT" instead of
++   "ATMA.INT"
++ - atmarpd "forgot" any pre-set QOS when receiving new ARP information for the
++   respective entry (reported by Gerald Hanusch)
++ - window scale didn't scale the window sent in the SYNACK packet (reported by
++   Juan-Antonio Ibanez)
++ - LANE: better connection failure handling in zeppelin (by Marko Kiiskila)
++ - LEC kernel timer wasn't restarted when restarting zeppelin (found by Gerald
++   Hanusch, fixed by Marko Kiiskila)
++ - LANE: le_flush_request was sent too early when establishing connection (by
++   Marko Kiiskila)
++ - zeppelin stopped operation (unwantedly) in random cases when LANE servers
++   were down (by Marko Kiiskila)
++ - LANE: non-blocking connections, VCC and LE ARP timeouts, and TLV fields in
++   LE_CONFIG_RESPONSE fixed (by Marko Kiiskila)
++
++New features
++------------
++
++ - atm2text now also uses ANS
++ - signaling traces now also contain error reports from qgen
++ - added new build-time configuration option "CISCO" (in atm/Rules.make) to
++   work around a bug in Cisco's point-to-multipoint signaling
++ - included example configuration files for RedHat 4.0 (see
++   atm/config/redhat-4.0/README)
++
++Other changes
++-------------
++
++ - local variable "link" in atm/debug/delay.c:loop was shadowing "link" system
++   call
++ - cleaned up various Makefiles
++ - qgen: bytes left in qet_space are now more meaningful
++ - named (ANS) now also starts even if atmsigd is not running and retries to
++   create the ATM socket in 15 minute intervals until is succeeds (by Marko
++   Kiiskila)
++ - LANE: (too) short le_flush_responses (Cisco 7010, sw ??.??) are now handled
++   (by Marko Kiiskila)
++
++
++Version 0.22 to 0.23 (16-NOV-1996)
++====================
++
++Bug fixes
++---------
++
++ - fixed stupid typos in atm/lib/atmres.h and an unnecessary dependency on
++   libresolv.a in atm/lib/Makefile (reported by Gerald Hanusch)
++ - fixed warning about implicit declaration of function bigphysarea_init in
++   init/main.c
++ - I think I fixed the SSCOP VR(MR) problems that were first reported by
++   Edouard Lamboray in '95, then by Heinz Schuerch, and that finally led to a
++   total SSCOP breakdown (in 0.22) reported by Gerald Hanusch
++
++New features
++------------
++
++ - integrated the IDT 77201 (NICStAR) driver by Matt Welsh and Stuart Daniel
++   <stuartd@eecs.umich.edu>. Note that this driver currently only supports
++   native ATM.
++ - new throughput and latency benchmark test/window (by Matt Welsh)
++
++Other changes
++-------------
++
++ - upgrade to kernel version 2.0.25
++ - changed drivers/atm/eni.c:do_tx:dma to static in order to reduce kernel
++   stack use (by 480 bytes). Note that this hack may crash systems with more
++   than one ENI adapter.
++ - qlib now also complains if changing a field without a fixed list of values
++ - made a few changes to the native ATM data delivery path to handle some
++   strangeness required by the IDT driver
++
++
++Version 0.21 to 0.22 (13-NOV-1996)
++====================
++
++Bug fixes
++---------
++
++ - (dummy) depend target was missing in atm/man (reported by Bernd Wolf)
++ - net/atm/arequipa.c:make_aq_vcc didn't set ATM_VF_AQINUSE, thereby allowing
++   race conditions to slip through
++ - fixed a few potential race conditions when activating Arequipa
++ - text2qos didn't complain if unit was omitted after multiplier, allowing
++   misleading settings like pcr=50M (that's 19.2 Gbps)
++ - SSCOP: took wrong branch if POLL_AFTER_RETRANSMISSION was enabled (fix by
++   Jonathan Larmour)
++ - SSCOP: rel_ind for ENDAK and BGREJ PDU in sscop_inconn was sent with "user"
++   = 1 (must be 0 for "Source := SSCOP")
++ - initialize_vr_mr now initializes vr_mr to a constant value (instead of
++   garbage plus constant value)
++ - atm_recvmsg now ignores msg->msg_name, as it should by POSIX 1003.1g (fix by
++   Mike Wooten)
++ - atm_sendmsg now fails with EISCONN instead of with EINVAL if msg->msg_name
++   is set, as it should by POSIX 1003.1g (reported by Mike Wooten)
++ - atm_recvmsg and atm_sendmsg now return ENOTCONN if not connected and
++   EOPNOTSUP if flags are passed, as they should by POSIX 1003.1g
++ - the QOS zeppelin uses for its connections can now be set with the option -q
++ - atmarpd didn't include the QOS in PVC entries, so atmarp -a complained about
++   them
++
++New features
++------------
++
++ - kernel changes to support tcpdump with LANE (by Marko Kiiskila)
++ - patch for tcpdump 3.0.4 (installed as tcpdump_atm) to support Classical IP
++   and LANE (by Marko Kiiskila)
++ - patch for BIND 4.9.5 to support ANS (ATM Name Service) functionality (by
++   Marko Kiiskila)
++ - added hierarchy extra/ for packages for which only patches are contained in
++   the ATM on Linux distribution
++ - enhanced text2atm to use ANS if local lookups fail (atm2text will be updated
++   later)
++ - wrote script extra/hosts2ans.pl to convert hosts.atm file to ANS zone files
++
++Other changes
++-------------
++
++ - changed ATM_VF_AQINUSE to ATM_VF_AQDANG and changed aq_list membership to
++   be for dangling VCs only
++ - added the new command-line options to ttcp_atm's online help (finally !)
++ - atm_sendmsg now returns error codes from the driver's send function
++   (suggested by Jonathan Larmour)
++ - text2qos now performs a syntax check if NULL is passed in the qos argument
++ - various minor LANE cleanup (Marko Kiiskila)
++ - upgraded to the latest version of t2a.pl
++ - {A2T,T2A}_REMOTE is obsolete; instead, {A2T,T2A}_LOCAL should be used if
++   ANS lookups are _not_ desired
++
++
++Version 0.20 to 0.21 (18-OCT-1996)
++====================
++
++Bug fixes
++---------
++
++ - net/atm/common.c:atm_connect didn't refuse traffic_class == ATM_NONE in both
++   directions
++ - include/linux/atmsvc.h:SELECT_TOP_PCR didn't default to ATM_MAX_PCR if
++   min_pcr == 0 && max_pcr == 0
++ - debug/delay swallowed one-byte packets
++ - oops, forgot man/Makefile, so qos.7 wasn't installed
++ - atmarpd left max_sdu at zero for automatically generated entries
++ - atmarpd now only uses the default QOS if the traffic type is set in neither
++   direction
++ - signaling: if the listen queue was full, new connections were rejected with
++   as_close instead of as_reject, thereby upsetting atmsigd
++ - svc_accept didn't adjust the listen queue quota when rejecting incoming
++   connection requests
++ - fixed a few bad font selections in atmsigd(8)
++
++New features
++------------
++
++ - included the window scale patch by Randy Scott <scottr@belle.bork.com> and
++   Robert Hill <rhill@tisl.ukans.edu>
++ - -q option for ilmid to set the QOS (like in atmsigd)
++ - new script mkbindist to install the utilities into a tar.gz file
++
++Other changes
++-------------
++
++ - debug/delay now prints the usage if invoked without arguments
++ - removed the pretentious usec resolution for delays in debug/delay
++ - removed the UBR semantics change warning
++ - qos.7: clarified that bps are the user data rate
++ - arequipa_attach_unchecked now also adjusts the upper layer MTU (which can
++   violate RFC1122, but I'll tackle that later)
++ - text2qos now also accepts fractional values, e.g. 9.6kbps
++
++
++Version 0.19 to 0.20 (14-OCT-1996)
++====================
++
++Bug fixes
++---------
++
++ - fixed a few typos and errors in the 0.18 to 0.19 change log
++ - signaling traces only included hl_type bytes instead of hl_length
++   bytes
++ - TNET1570 driver: various fixes (DMA allocation, seg ring overflow,
++   timeouts, etc.) (Christian Paetz)
++ - TNET1570 driver: removed most compiler warnings (Christian Paetz)
++ - listen() on an arequipa_preset() socket and arequipa_preset() on a listening
++   socket now both return EPROTO
++ - oops, forgot to enable the "rm" in  make uninstall
++ - kernel didn't set interface number field in act_create messages to atmarpd
++
++New features
++------------
++
++ - added ioctl ATM_SETSC to enable or disable RX and TX single-copy per VC
++ - new device driver operation change_qos (not yet implemented)
++ - TNET1570 driver supports DEC Alphas and 64 bit PCI transfer (for CIA PCI
++   chipsets) (Christian Paetz)
++ - TNET1570 driver also supports the UniNET1570 board (Christian Paetz)
++ - new functions text2qos and qos2text to convert between textual and binary
++   QOS specifications (the format is described in  man qos)
++ - atmarp -q ip_addr qos  sets the default QOS to use for all VCs created for
++   that IP interface
++ - new utility debug/delay to use machine as AAL5-level delay line
++
++Other changes
++-------------
++
++ - NLPIDs and vendor-specific application identifiers are now collected in
++   the new file /usr/include/atmsap.h
++ - SO_ATMQOS now attempts to change the QOS settings when invoked on an active
++   connection
++ - included Matt Welsh's bigphysarea patch (this isn't related to ATM, but it
++   keeps my development source tree simpler)
++ - arequipa_preset now initializes max_sdu to RFC1626_MTU+RFC1483LLC_LEN if
++   zero
++ - atmarp: new option  qos <spec>  to set the QOS parameters (uses text2qos)
++   Use of  pcr <pcr>  is deprecated.
++ - ttcp_atm's -P option now also accepts a QOS specification string. (use of
++   -P <number>  is deprecated.
++ - atmsigd: new option  -q <qos> and configuration clause  io qos <qos>  to
++   set the QOS of the signaling VC. Use of  -P <pcr>  or  io pcr <pcr>  is
++   deprecated.
++ - removed the backward compatibility  #define class traffic_class  in
++   linux/atm.h
++ - removed obsolete keywords from atmsigd.conf language
++ - atmarp -a now also includes QOS parameters
++ - UBR now respects txtp.max_pcr if set
++ - new rules for the use of [rt]xtp.traffic_class: both fields must be either
++   equal or zero, e.g. ATM_CBR in TX and ATM_UBR in RX no longer works
++ - doc/usage.tex now points to the man pages instead of repeating their content
++
++
++Version 0.18 to 0.19 (27-SEP-1996)
++====================
++
++Bug fixes
++---------
++
++ - sscop.c:data_sd had a comparison inversed, so generation of USTAT PDUs was
++   wrong in some cases (by Juhana Rasanen)
++ - sigd_enq: accessed vcc->qos without checking for vcc == NULL, causing an
++   "Oops" in atmaddr
++ - svc_accept: generated a general protection fault when atmsigd was killed
++   while a process was waiting for new incoming connections
++ - atmaddr didn't zero the address structure before calling text2atm
++ - LANE: fixed usage of kernel timers and LE_ARP_REQUESTs should now get sent
++   until the entry expires or a response is received (by Marko Kiiskila)
++ - less compiler warnings from LANE servers (Marko Kiiskila)
++ - SSCOP: fixed SDU size in AA-RETRIEVE.indication (reported by Heinz Schuerch)
++ - NULL encapsulation for ATMARP works now (reported by Gerald Hanusch)
++ - fixed stray EINVAL from get{sock,peer}name on PVCs (reported by Gerald
++   Hanusch)
++ - clip now sets max_sdu to RFC1626_MTU+RFC1483LLC_LEN when using LLC/SNAP
++   encapsulation
++ - if parsing of a Q.2931 message fails, atmsigd now aborts the call instead of
++   (stupidly) trying to process the incomplete and probably inconsistent data
++ - SUNI driver didn't properly mask out unused highest bits of some statistics
++   counters, thereby yielding absurdly high values
++ - zatm: changed timing of RX channel closing, so the dreaded "can't close RX
++   channel" message should be history
++ - fixed race between Arequipa attachment due to packet reception and closing
++   of the Arequipa VC
++ - local address validity check (for ATM_???ADDR) was all wrong (reported by
++   David Simpson)
++ - message dumper ignored fatal errors if debugging was not enabled
++
++New features
++------------
++
++ - man pages for lecs, les, bus, and zeppelin (Marko Kiiskila)
++ - configuration file name for les and bus can be defined (Marko Kiiskila)
++ - zatm: new kernel configuration option CONFIG_ATM_ZATM_EXACT_TS now supports
++   reception timestamps with microsecond resolution (the accuracy is only in
++   the ms range, though)
++ - new utility znth (ZeitNet Timer History) to monitor timer synchronization
++ - LANE now supports up to 4 LEC network interfaces (Marko Kiiskila)
++ - the Q.2931 message parser now recovers nicely from IE errors, logs the
++   event, and continues parsing. The higher layers of the signaling stack
++   don't use this information yet, though.
++
++Other changes
++-------------
++
++ - Arequipa's BHLI now uses a "vendor-specific application identifier" under
++   the EPFL OUI
++ - moved buffer/queue handling from lib/libatmd to saal/, because it is rather
++   SSCOP-specific anyway
++ - atm_release_vcc now complains if rx_inuse != 0 when closing (if this ever
++   happens, it may point out dangerous races with upper layer protocols)
++ - SO_ATMQOS now issues a warning when using UBR with {min,max}_pcr != 0
++ - max_sdu is now set by atmarpd to MTU+RFC1483LLC_LEN (atmarp could still
++   override this, if necessary)
++ - atmdump: new option -i to display the arrival interval instead of the
++   absolute time. Also changed the time format to be more readable.
++ - updated the kernel configuration documentation to indicate that the SMC
++   ATM Power155 adapters are compatible with the Efficient ENI-155
++ - atmarpd now deletes the old table file (containing stale information) if
++   invoked with -d (debug)
++
++
++Version 0.17 to 0.18 (9-SEP-1996)
++====================
++
++Bug fixes
++---------
++
++ - atmsigd didn't respond to SETUP followed by RELEASE with a RELEASE COMPLETE
++ - atmsigd now implements incoming call rejection (as_indicate -> as_close)
++ - kernel now opens the VC before sending the as_accept. This a) allows to
++   check if the parameters are acceptable, and b) avoids a race condition
++   between the sender and the local VC open procedure, which frequently led to
++   loss of the beginning of the first PDU sent on a new connection.
++ - qdump: _q_parse used the wrong length when dumping variable-length fields,
++   yielding a fatal internal error
++ - clip didn't set rxtp.max_sdu
++ - svc_accept didn't set ATM_VF_HASQOS, so getsockopt SO_ATMQOS didn't work
++   (by Marko Kiiskila)
++ - ttcp_atm calculated Mbps as 2^20 bits/sec instead of 10^6, thereby making
++   all results come out approximately 5% too low (by Fraz Ahmad)
++ - added $(LDLIBS) to linking of lane/lecs (by Lawrence MacIntyre)
++ - interface number allocation in clip and atmarp did not check for collision
++   with the respective other name space
++ - atmarp's -c option didn't work when omitting the "atm" in the interface name
++
++New features
++------------
++
++ - new man page: arequipad.8
++
++Other changes
++-------------
++
++ - simplified the internal signaling protocol by adding the as_reject message
++   (sent by kernel in response to as_indicate; not acknowledged by demon)
++ - packets received from Arequipa are no longer forwarded to other hosts
++ - further ilmid improvements to use RSTADDR less frequently (by Gerald
++   Hanusch; with a slight modification)
++
++
++Version 0.16 to 0.17 (2-SEP-1996)
++====================
++
++Bug fixes
++---------
++
++ - lib/diag.c didn't fflush when logging to a file
++ - arequipad didn't accept the -l option
++ - qgen: possible weird crashes because second.c:find_required accessed
++   value->tag even if vt_id
++ - qgen: fixed wrong PC indication in one error message in _q_parse
++ - make spotless didn't know about new $(*PGMS) targets
++ - atmsigd: fixed memory leak when sending messages to the kernel
++ - atmarpd: fixed memory leak when sending messages to the network
++ - atmsigd: didn't send final as_close when kernel closed connection
++   immediately after requesting it (as_connect)
++ - several minor corrections
++
++New features
++------------
++
++ - added make target "uninstall" to remove all files installed by
++   make install
++ - atmsigd has two new options: -D dump_dir to set the dump directory and
++   -t trace_length to set the length of the trace buffer
++ - wrote a few man pages: atmarp.8, atmarpd.8, atmsigd.8, atmsigd.conf.4
++ - added automatic support for memory debugging if MPR is installed (and
++   included a patch to make MPR 1.1 work with ELF). atmarpd and atmsigd
++   currently use this feature.
++
++Other changes
++-------------
++
++ - changed "class" to "traffic_class" everywhere
++ - make install  is now implemented in a more elegant way
++ - q.dump is now much better at finding symbolic names for numbers
++ - q.dump no longer prints zero-length fields
++ - qgen no longer includes constructor "microcode" in dumper
++ - atmarp now gives more informative error messages on ioctl failure
++ - removed obsolete ioctls SIOCGIFATMADDR and SIOCSIFATMADDR
++ - added hack to allow ilmid to be less hostile to locally configured addresses
++   (by Gerald Hanusch; with slight modifications)
++ - atmarpd now automatically sets ATF_PERM of PVC entries with NULL
++   encapsulation
++
++
++Version 0.15 to 0.16 (29-AUG-1996)
++====================
++
++Bug fixes
++---------
++
++ - fixed an "unterminated character constant" warning by CPP in qgen/uni3x
++ - atm/sigd/q2931.c always tried to read the Cause IE of RELEASE COMPLETE
++   messages even if it wasn't included
++ - LANE: fixed buffer allocation and VCC timeouts (Marko Kiiskila)
++ - LANE: when connecting directly to LES, name of the ELAN was not set
++   properly (discoverd by Gerald Hanusch; fixed by Marko Kiiskila)
++ - LANE, ATMARP, signaling: control sockets didn't account for messages sent
++   back from demons (fixed by Marko Kiiskila)
++ - permanent ATMARP entries for SVCs were ignored if no ATMARP server was
++   configured (reported by Gerald Hanusch)
++ - atmarp option "temp" mis-spelled as "term" (fixed by Gerald Hanusch)
++ - forgot to undo experimental rcvbuf/sndbuf change to unsigned long
++ - make modules didn't generate ATM modules
++ - atmtcp_attach_hook wasn't defined when compiling ATMTCP as a module
++ - ATM patch set dev->ip_atm to ether_arp in net/ppp.c and net/eql.c, so they
++   failed to work as modules
++
++New features
++------------
++
++ - added LANE servers (LECS, LES, and BUS) by Marko Kiiskila
++ - Rules.make: new variable INSTROOT for easier cross-installation
++ - atmsigd: added option -P to set the maximum PCR used on the signaling VC
++ - atmarp: added option "pcr <value>" (proposed by Gerald Hanusch)
++ - added the usual  -l <logfile>  option to arequipad
++
++Other changes
++-------------
++
++ - upgrade to kernel version 2.0.14
++ - SVCs can now be bound with any SEL value
++ - messages of size > quota can be sent if the send buffer is empty
++ - ilmid no longer empties the address list when refreshing the NSAP address
++   (by Gerald Hanusch)
++ - LANE client should now survive network reset (e.g. restart) gracefully
++   (Marko Kiiskila)
++ - LANE: major cleanup of zeppelin code (Marko Kiiskila)
++ - improved loadable module support for eni and zatm (i.e. loading works now)
++ - the message dumper can now be linked to programs that also use the
++   compilation/parsing functions
++
++
++Version 0.14 to 0.15 (31-JUL-1996)
++====================
++
++Bug fixes
++---------
++
++ - zatm: fixed traffic shaper settings for UBR (with a little help from Joern
++   Wohlrab)
++ - atmsigd compilation didn't use the same UNI version configuration as qgen
++ - field "class" in struct atm_traform broke compilation of ATM applications
++   written in C++, so it has been renamed to "traffic_class" (reported by
++   Furquan Ansari)
++ - AAL parameters IE wasn't included in CONNECT, which violated RFC1755
++   (discovered by Robert Olsson)
++ - zatm: removed broken sanity check for in-sequence skb delivery on RX
++ - clip didn't have clip_open function, so SIOCSIFFLAGS on the interface failed
++   with ENODEV
++ - single-copy compiles again
++ - zatm: driver doesn't pretend any longer to support single-copy (but
++   single-copy will come back later)
++ - QOS IE was sent with the wrong coding standard when using UNI 3.1 (with help
++   from Fraz Ahmad)
++ - zatm: forgot to remove some debugging code (around ZATM_TUNE)
++ - qlib.c didn't zero the length array, leading to (rare) "not enough space"
++   errors from QMSG (actually, the "break" mechanism seems to be flaky - will
++   have to check)
++ - fixed Arequipa race condition when the upper layer protocol and signaling
++   decided to close the SVC at the same time
++ - alloc_tx used to return NULL in out of memory conditions, thereby possibly
++   hanging atm_sendmsg
++
++New features
++------------
++
++ - ttcp_atm now also accepts names with -p
++ - (finally !) added send/receive buffer limits and cleaned up the use of
++   vcc->[rt]x_{inuse,quota}
++ - added mkdiff script for automatic generation of diffs
++ - Arequipa now works for PVCs too (but arequipad is now required for any
++   use of Arequipa, not only for incoming connections)
++
++Other changes
++-------------
++
++ - atm/atm-<version>.patch is now called atm/atm.patch (to make the diffs more
++   useful)
++ - the maximum SDU size is now checked in net/atm/common.c:adjust_tp
++ - text2atm/atm2text now accepts/generates E.164 addresses with a leading +
++   sign, as required by ANS (atm95-1532)
++ - internal signaling protocol: added message as_error to un-overload as_close
++ - internal signaling protocol: split as_establish into as_connect and
++   as_accept
++ - internal signaling prococol: as_close.reply no longer contains positive
++   numbers
++ - internal signaling prococol: as_bind now also carries the AAL type
++ - atmsigd: now also checks the AAL type in as_bind messages
++ - kernel signaling: a few minor changes
++ - STANDARDS (i.e. UNI version) configuration option has been moved from
++   atm/qgen/Makefile to atm/Rules.make
++ - atmsigd's startup message now gives more useful indication of which UNI
++   version(s) it supports
++ - signaling no longer uses sa[sp]_[rt]xtp, so ...
++ - sa[sp]_[rt]xtp is gone
++ - removed atm/sigd/svc.c from the distribution. We now have many other tools
++   for testing SVCs, so it's superfluous.
++ - atmarpd: revalidation is now less frequent (use -DFREQUENT_REVAL for
++   the faster timeout)
++ - ioctl CLIP_PVC now returns the number of the new interface and clip prints
++   its name to standard output (like atmarp -c)
++ - clip now issues the CLIP_PVC ioctl after binding, which avoids wasting
++   interface numbers on failed setup attempts
++ - atmsigd -d now sets the debug level for qgen and SSCOP to DIAG_INFO, and
++   doesn't set q_dump
++ - zatm: added protection against I > M
++ - atm_peek_aal5 now only aligns to page boundaries for pdu_size >= PAGE_SIZE
++ - eni driver now spits out CRC error messages at most every other second
++ - zatm driver now repeats RX error messages at most every other second
++ - ttcp_atm now sleeps for a second after setting up an SVC, because the
++   switch seems to lag behind (need to examine this further)
++ - moved SAAL from sigd/ to saal/ (for sharing with UNI 4.0 signaling)
++ - Arequipa sockets are now closed via arequipad instead of via atmsigd (new
++   ioctls AREQUIPA_CTRL and AREQUIPA_CLS3RD)
++ - various minor changes
++
++
++Version 0.13 to 0.14 (19-JUL-1996)
++====================
++
++Bug fixes
++---------
++
++ - LANE: reaction to LE_ARP_RESPONSE's wasn't always correct
++ - LANE: compiler warnings fixed
++ - LANE: comparing ATM addresses in checking whether connection is formed was
++   wrong
++ - zntune didn't divide by 1024 when displaying the "k"
++ - .depend wasn't deleted by make spotless
++ - ATM_GETSTAT and ATM_GETSTATZ used wrong argument type for coding ioctl
++   number. WARNING: programs using ATM_GETSTAT{,Z} need to be recompiled.
++ - requests to set up SVCs with ATM_NONE in both directions are now caught by
++   svc_connect (used to yield an invalid SETUP message)
++ - signaling: fixed connection identifier setting when acting as network side
++   (fix by Elwyn B Davies)
++ - ATMARP server ARP entries were undeletable
++ - atmarp showed wrong argument in error message when given an invalid ATM
++   address
++ - zatm: do_tx left interrupts turned off when returning with RING_BUSY
++ - LANE ARP hash table handling bugs fixed
++ - atmarp: act_create is now only sent on interface creation
++ - atmarp: act_down is now only sent once per transition
++ - demon control SVCs are no longer closed when atmsigd dies (new VCC flag
++   ATM_VF_META)
++ - netdevice notifier is now properly unregistered when atmarpd goes down
++   (not doing so caused endless loop in kernel on atmarpd restart)
++ - sigd_enq{_atomic} never calls schedule()
++ - atmsigd no longer "forgets" to bring up ARP server SVC before sending an
++   InARP
++ - atmarpd no longer dies with "timer in state 3" when the ARP server becomes
++   unreachable
++ - atm/atmarp.c: clip_create() now refuses creation of already existing
++   interface
++ - Documentation/Configure.help gave an obsolete URL for CONFIG_AREQUIPA
++   and doc/usage.tex also mentioned the old file name
++ - Arequipa didn't work in the outbound direction for TCP, because
++   net/ipv4/tcp.c was missing in the kernel patch
++ - drivers/atm/eni.c:foo raced with initialization of eni_boards if the
++   board lost the signal _immediately_ after being initialized
++ - atmarpd: fixed a few uninitialized entry->timer pointers (discovered by
++   Gerald Hanusch)
++ - atmarpd: arps entry should no longer get stuck in as_resolv
++
++New features
++------------
++
++ - compiles on SparcLinux too (but only atmtcp works)
++
++Other changes
++-------------
++
++ - upgrade to kernel version 2.0.0
++ - BHLI matching changed: SAPs without BHLI are now incompatible with calls
++   that specify a BHLI
++ - LANE: interface stays up when zeppelin dies -> possibility for
++   wrapper script around zeppelin
++ - LANE: LUNI interoperability test (ATM Forum/96-0805) is now followed
++   in setting ELAN name in LE_CONFIG_RESPONSE and LE_JOIN_RESPONSE,
++   there is also a delay of 1 second before sending LE_CONFIG_REQUEST and
++   LE_JOIN_REQUEST. This allows 'slow' LE servers to catch up.
++ - LANE: no longer uses sa[sp]_[rt]xtp
++ - LANE: now adjusts better to ATM address changes
++ - zeppelin: new option -m to select debugging output
++ - updated aping, aread, awrite, br, bw, atmdump, ilmid, atmarp, clip, atmarpd,
++   and zeppelin to use setsockopt SO_ATMQOS
++ - added option -x for ilmid to disable variable bindings (caused
++   interoperability problems with certain switches, e.g. the LS100)
++ - changed SO_CIRANGE into a pair of ioctls
++ - changed return value of fetch() (passed to atm_vcc->peek) from unsigned long
++   to __u32
++ - atmarp now accepts  arpsrv  option also for -d
++ - zatm driver can now also read ESIs of rev. 10 boards (with help from Nikos
++   Anerousis)
++ - awrite: fixed txtp.max_sdu calculation in awrite (was using uninitialized
++   variable "offset")
++ - atmarpd: IP interface removal now has the desired effect (used to do
++   nothing)
++ - atmarpd: now reports and ignores unexpected interface transitions
++ - added sigd_enq_atomic for atomic sigd_enq (so that non-Arequipa SVCs can
++   still use the "safe" but non-atomic version)
++ - made SIOCGIF* failures in atmarpd non-fatal (itf.c:itf_up was handling them
++   anyway)
++ - moved Arequipa-specific code from net/atm/clip.c to net/atm/arequipa.c, and
++   put code common to CLIP, Arequipa, and - to a lesser extent - ATMARP into
++   net/atm/ipcommon.[ch]
++ - Arequipa can now be complied without CLIP
++ - various minor documentation changes
++ - moved ATM device initialization from net/atm/pvc.c to drivers/block/genhd.c,
++   where most other devices are initialized too
++ - preparation for new binary locations: tools build process now knows about
++   four types of programs: for booting, for system use, for users, and for
++   internal use during build
++ - make install  now hides the  for  loops
++ - non-user binaries are now installed in /usr/local/sbin
++ - struct atm_iobuf.buffer is now of type void * (was int*). Also,
++   ATM_GETNAMES now returns the length in bytes in that field.
++
++
++Version 0.12 to 0.13 (7-JUN-1996)
++====================
++
++Bug fixes
++---------
++
++ - BHLI type used the ATM_HL_* values (which are off by one) in qgen/uni3x
++ - atmarpd ended up in a tight select-accept loop if atmsigd went away
++ - removed sleep in ZATM's do_tx (so it works with IP over ATM again)
++
++New features
++------------
++
++ - added experimental support for Application requested IP over ATM (Arequipa),
++   prototyped by Jean-Michel Pittet
++ - new traffic class ATM_ANYCLASS to accept incoming SVCs without looking at
++   the traffic parameters
++ - added (untested) support for SO_BCTXOPT/SO_BCRXOPT
++
++Other changes
++-------------
++
++ - SVCs used to listen are now marked as "LISTEN" in /proc/atm/svc
++ - added option -Q <atm_addr> to ttcp_atm to support AREQUIPA
++ - cleaned up the FILE macro and removed atm_dir in net/atm/proc.c
++
++
++Version 0.11 to 0.12 (3-JUN-1996)
++====================
++
++Bug fixes
++---------
++
++ - atm/lib/Makefile: had to comment out PGMS=test
++ - distribution didn't include atm/doc/usage.txt
++ - patch didn't include arch/i386/config.in
++ - return 0;  was missing at the end of net/atm/mmuio.c:mmu_step
++ - atm/ilmid didn't install into INSTBIN; also made some other Makefile
++   changes
++ - read() returned garbage instead of error when network drops connections
++ - POLL_AFTER_RETRANSMISSION in SSCOP didn't even compile
++ - SVCs: bind to wildcard addresses should now work even if no local address
++   is known yet
++ - make clean  in atm/qgen left some dirt
++ - ATM drivers didn't free skbs when detecting an error in TX direction
++ - SIOCMKCLIP was in the wrong #ifdef, so CLIP had to be enabled to make
++   ATMARP usable
++ - signaling didn't respond properly to messages with non-existent call
++   reference
++
++New features
++------------
++
++ - merged in LAN Emulation client support written by Marko Kiiskila
++ - new socket option SO_ATMQOS at SOL_ATM to set/get QOS parameters
++
++Other changes
++-------------
++
++ - t2a.pl now also works with Perl 5.001
++ - changed the TX side of the ZATM driver to use a ring instead of a list in
++   order to improve stability and throughput (needs some more testing)
++
++
++Version 0.10 to 0.11 (21-MAY-1996)
++====================
++
++Bug fixes
++---------
++
++ - README.DRIVERS still referenced INSTALL (it's now in USAGE)
++ - sap_decode didn't clear BLLI part of address structure
++ - trying to connect to NULL address fails locally instead of yielding an
++   invalid SETUP message
++ - bind now properly sets the local address
++ - SVC getname now returns the traffic parameters
++ - oops, zatm open_tx didn't return PCR
++ - awrite printed errors for connect() as "bind: ..."
++ - atmsigd no longer generates dummy call references (0x7fffff)
++ - atmtcp: changed a few kfree_skb to dev_kfree_skb, which should make it
++   work better (does anybody care to try ?)
++ - some more dev_kfree_skb fixed for control messages from or to demons (led
++   to some minor memory leaks)
++ - various major fixes for CBR SVCs
++ - RELEASE was signaled for SVCs before all data was sent
++ - single copy tried to access mem_map with user space addresses, leading to
++   crashes or worse
++ - zatm: sleep_on was racing with TX completion in close_tx, leading to hangs
++ - zatm: now fails attempts to open AAL0 VCs (used to accept them and to
++   crash later)
++ - BHLI encoding/decoding was broken in several ways
++
++New features
++------------
++
++ - hacked in primitive leaf-only p2m support (based on an idea by Marko
++   Kiiskil{)
++ - the socket layer, and the zatm, eni, and atmtcp drivers now support
++   two-phase connect
++ - PVCs now respect max_pcr (SVCs can't for now)
++ - lib/diag.c can now also log to a file or to syslog, and atmarpd, atmsigd,
++   and ilmid now have a -l option to use that
++ - new option  -c config_file  for atmsigd
++ - zatm and atmtcp now also support timestamps (but zatm timestamps can be
++   improved a lot by using the timestamps the uPD98401 generates)
++ - Classical IP over ATM support is now configurable
++ - added on-line help texts for configuration
++ - added atm/test/aping, a round-trip tester for PVCs
++ - added "flags" field to struct atm_dev and to atm_dev_register, on request
++   by Bureau 13
++
++Other changes
++-------------
++
++ - past versions of the BUGS list aren't included in the distribution anymore
++   because I didn't update them anyway
++ - invalid connect() calls now return an error instead of panicing atmsigd
++ - text2atm no longer clobbers sas_addr.{blli,bhli}
++ - greatly simplified zatm traffic shaper settings calculation (and it's
++   better than before too)
++ - atmsigd: diagnostics class "sig" (in atmsigd.conf) now also includes "SAP"
++ - DPRINTK now uses GNU-specific #define foo(bar...)
++ - signaling: PCR is now also indicated (0) for directions in which ATM_NONE
++   is requested, which is probably "cleaner" (for CBR)
++ - added logging priorities to most printks
++ - the default location for atmsigd.conf changed from . to /etc
++ - ipv4/af_inet.c: atmtcp_attach_hook is now only included when using ATM over
++   TCP
++ - configuration options for extended driver debugging, (old) CLIP, and
++   ATM over TCP are turned off by default
++
++
++Version 0.9 to 0.10 (21-MAR-1996)
++===================
++
++Bug fixes
++---------
++
++ - zatm: deallocated UBR shaper when closing UBR VC, which the other UBR VCs
++   didn't really appreciate
++ - fixed nasty memory leak for native ATM (spotted by Rolf Fiedler)
++
++New features
++------------
++
++ - added Rolf Fiedler's driver for his adapter based on the TI TNETA1570
++ - single-copy is back again !
++
++Other changes
++-------------
++
++ - eni buffers are now slightly (50%) bigger, allowing for more effective
++   overlapped operations
++ - documented zntune
++
++
++Version 0.8 to 0.9 (14-MAR-1996)
++==================
++
++Bug fixes
++---------
++
++ - oops, accidently removed ZN1221 from drivers/pci/pci.c (so /proc/pci
++   reported it as "unknown")
++ - sigd didn't poll for the default interface on startup
++ - atmarpd didn't initialize timer field in newly allocated table entries,
++   which led to crashes
++ - removed a few stray debugging printks in net/atm/svc.c:svc_bind
++ - ATMARP tried to send queued packet before adding new table entry, so the
++   packet was always discarded
++ - sigd/sap.c: didn't allow to use different traffic classes for fwd and bwd
++   direction
++ - atm2text accepted SVC addresses of all zeroes
++ - atmsigd didn't refresh its local address list properly after ilmid restart
++ - net/atm/common.c: returned positive error codes (-vcc->reply) instead of
++   negative ones
++ - forgot to include maint/zntune.c in the distribution
++
++New features
++------------
++
++ - sigd/svc now accepts ATM addresses in all formats supported by text2atm
++
++Other changes
++-------------
++
++ - upgraded to kernel version 1.3.73
++ - the called party number must now match the local address (if bound)
++ - renamed ttcp.atm to ttcp_atm
++ - all executables are now explicitly linked (so make works even without
++   dependencies)
++
++
++Version 0.7 to 0.8 (12-MAR-1996)
++==================
++
++Bug fixes
++---------
++
++ - fixed stray segmentation violation in arpd/arp.c:learn
++ - fixed coding standard of the QoS IE if using UNI 3.0 (and made coding
++   standard variable)
++ - made coding standard variable for Cause IE
++ - SSCOP didn't properly set N(MR)
++ - list elements in STAT PDUs had host byte order
++ - SSCF didn't call sscop_estab_resp on restart (AA-EST.ind in 1/1)
++ - signaling didn't handle SAPs with >= 2 BLLI IEs properly
++ - uni3x: iso_hli and user_hli were confined to 7 bytes, but UNI allows up to 8
++ - q_read choked on non-variable-length fields
++ - qgen sometimes didn't read all IEs of a signaling message
++ - fixed usage line of test/bw
++ - qgen no longer complains about missing required fields after a break
++ - fixed compiler warning in zntune.c
++ - fixed ATMARP table additions (caused GPF when flushing ATMARP entry at
++   the end of the table and possibly other problems)
++ - qgen: q_put or'ed data instead of overwriting it, which caused problems
++   only on surprisingly few occasions
++
++New features
++------------
++
++ - atm2text and text2atm now also do name lookups via a /etc/hosts.atm file
++ - atmaddr, atmarpd, and atmsigd now pretty-print addresses using name
++   translation (unless invoked with -n)
++ - atmarpd now dumps its table into /var/run/atmarpd.table and atmarp -a
++   reads it from there
++ - started modularizing the ENI and ZATM drivers
++ - ilmid and atmsigd now support multiple interfaces (untested)
++
++Other changes
++-------------
++
++ - the documentation is now available in LaTeX and in ASCII
++ - rewrote most of the SAP handling code (now everything is in sigd/sap.c)
++ - proto.c:lookup_sap now picks wildcard SAP last
++ - signaling always includes SSCS type = 0 in SETUP messages (for LANE)
++ - changed the message format for the the kernel-demon signaling protocol
++ - qgen is now a bit more tolerant when being fed with bad data
++ - qgen now assumes that q_report(Q_FATAL,...) doesn't return
++ - marked sigd/test.c as obsolete
++ - svc_accept failing in atm_connect no longer returns success
++ - atmsigd -n is now atmsigd -N
++ - qgen now puts the PC in q.out.c and qd.out.c at the beginning of the code
++   line and not on a line by itself
++
++
++Version 0.6 to 0.7 (2-FEB-1996)
++==================
++
++Bug fixes
++---------
++
++ - removed TTL setting ioctl (1234) used for something entirely unrelated to
++   ATM, oops
++ - changed kfree_skb in atm_pop_raw to dev_kfree_skb (this fixes the socket
++   "leak")
++ - more unusual configurations (no PCI, no IP, no /proc) should compile now
++ - atm_equal didn't recognize wildcards in embedded E.164 addresses
++ - fixed net/atm/proc.c:svc_addr (too many bugs to mention)
++ - atmarpd didn't check for ARP traffic on inbound connections
++ - atmarpd didn't properly merge incoming connections with existing entries
++ - various other ATMARP fixes
++ - free list was too short in ENI driver for worst case fragmentation on
++   2 MB boards
++ - signaling didn't set ISO/IEC TR9577 IPI and NLPID correctly in active open
++ - getname looked at *sockaddr_len, which is uninitialized (need to fix this
++   later in the common socket code)
++ - SSCOP generated incorrect error code ("1" instead of "B") for BGN PDU
++   problems
++
++New features
++------------
++
++ - new ioctls ATM_GETADDR, ATM_RSTADDR, ATM_ADDADDR, and ATM_DELADDR to
++   manage local ATM addresses
++ - signaling now handles incoming RESTART, SAAL failure, and SAAL
++   re-establishment
++ - ATMARP now times out idle connection; ATMARP_MKIP ioctl takes a timeout
++   argument
++ - ATMARP (kernel) now queues one skb per pending ARP request and limits the
++   rate of requests for the same address (default 2 req/min)
++ - atmsigd now prints cause values when receiving a RELEASE or a RELEASE
++   COMPLETE and returns more informative error codes
++ - atmarpd falls back to PVC-only operation if signaling is unavailable at
++   startup
++ - kernel can now assign next free number on IP interface creation (atmarp
++   prints the interface name)
++ - qgen -D generates a Q.2931 message dumper (see USAGE for details)
++ - qgen now checks for proper use of repetition indicator (but doesn't
++   support repeated IEs yet)
++ - protocols and device drivers can now use their own memory allocator in the
++   TX direction by changing vcc->alloc_tx
++
++Other changes
++-------------
++
++ - upgraded to kernel version 1.3.53
++ - build process now uses Perl
++ - ATM ioctls writing back data now always return the size of the data
++   structure written
++ - struct atmif_sioc now has a length field (recompile all atmarpd, ilmid,
++   debug/ed, and everything in maint)
++ - PHY driver no longer has to check validity (permissions and access) for
++   "standard" ioctls
++ - signaling should now also work on an interface > 0 (but there's still only
++   one interface using signaling per host)
++ - make install  now adds /usr/include/atm.h and /usr/include/atmd.h
++ - atmarpd now also displays if SVC has been opened actively or passively
++ - atmaddr(8) now uses new ioctls and has different command-line syntax
++   and even has a man page
++ - example IP addresses in USAGE now conform to RFC1597
++ - diagnostics now also include the application name (optional)
++
++
++Version 0.5 to 0.6 (21-DEC-1995)
++==================
++
++Bug fixes
++---------
++
++ - ARP ioctls stopped working for most non-ATM devices, oops
++ - ATMTCP driver counted lack of memory as rx_err instead of rx_drop
++ - select on driver using polling may have hung
++ - atmarp man page and usage didn't indicate that the interface number is
++   optional
++ - restricted atmarpd and signaling control, and SIOCSIFATMADDR to the super
++   user
++ - atmtcp: fixed handling of VPI/VCI <= 0 for setsockopt(SO_CIRANGE)
++ - eni and zn driver had static UBR shaper pointer, making it difficult to have
++   more than one such device per system
++ - eni driver initialization didn't work properly in systems with ASIC Tonga
++ - suni.[ch]: confused MC (Master Config) and MCT (Master ConTrol) registers
++ - (SVC) accept now returns PVC -EAGAIN as -EBUSY because the operation cannot
++   be retried
++ - qgen: fixed several bugs in case handling (and made defaults work for
++   parsing)
++ - svc_dup passed PF_ATMSVC instead of AAL to svc_create
++ - plugged a few skb leaks in svc_accept
++ - text2atm didn't properly NUL-terminate E.164 addresses
++
++New features
++------------
++
++ - ZN1221 driver works partially for AAL5 (still hangs after a few dozen MB)
++   (also wrote maint/zntune to monitor/adjust free buffer pools)
++ - ENI driver now supports new Tonga ASIC boards
++ - added Scott Shumate's ILMI demon (for automatic address registration)
++ - text2atm: added wildcard support for SVCs (syntax: addr/bits)
++ - new library function atm_equal to compare SVC addresses
++ - new ioctl ATM_GETTYPE to obtain interface type name
++ - new ioctl ATM_GETESI to obtain ESI (parallels /proc/atm/devices)
++ - new ioctls SONET_SETFRAMING, SONET_GETFRAMING, and SONET_GETFRSENSE to
++   handle SONET vs. SDH framing
++ - added socket option SO_AALTYPE (SOL_AAL) to query AAL type (getsockopt
++   only)
++ - signaling demon is now notified on address changes (new message
++   as_itf_notify)
++
++Other changes
++-------------
++
++ - known bugs are now listed in a file called BUGS
++ - all utility programs (aread, awrite, atmdump, br, bw, clip, ttcp) now use
++   the notation [itf.]vpi.vci for PVCs (was  itf vpi vci , except for ttcp,
++   where it was only  vpi vci  (no itf))
++ - all ioctl values have changed
++   Note: most programs have to be recompiled because of this
++ - sigd and arpd now register their control sockets via ioctls
++ - (old) clip now creates interfaces with an ioctl
++ - text2atm now returns the wildcard length, i.e. a non-zero return value
++   no longer implies failure
++ - push_oam now returns an int (was void)
++ - push_oam now has several flags (in a bit set) instead of the immed
++   argument
++ - the peek function must now update the statistics if it rejects a packet
++ - (ATM device) close is now only invoked after a successful open
++ - the SUNI_GETLOOP ioctl now has an int * argument (was unsigned long *)
++ - uPD98402 driver no longer tries to detect return of the signal (didn't
++   work anyway - would have to sample section errors)
++ - ATMARP no longer supports mixed PVC/SVC entries (I'm sure this will be
++   missed a lot :-)
++ - ATMARP no longer supports "IP address discovery" via InARP for PVCs
++   (maybe later)
++ - specifying an invalid AAL now yields EPROTOTYPE
++ - specifying an invalid address family (connect, bind) now yields EAFNOSUPPORT
++ - make install  now also installs libraries (in /usr/lib)
++ - improved many header file comments
++ - re-arranged some comments to simplify automated document generation
++ - added copyright statement
++ - UNI 3.0 IE fields are now always recognized (but we shouldn't generate them)
++ - UNI 3.0 wants octet 5a when using BCOB-X, so we'll set it to twice "No
++   indication"
++ - aread, awrite, br, bw, ttcp, atmsigd, and atmdump now set max_sdu
++ - aread and awrite no longer print strerror(errno) on success
++
++
++Version 0.4 to 0.5 (26-OCT-1995)
++==================
++
++Bug fixes
++---------
++
++ - now only root can open a CLIP socket (thereby creating an IP interface)
++ - now only root can issue CLIP_NULENCAP and CLIP_LLCENCAP ioctls
++ - atmdump: forgot  default  in getopt switch
++ - eni driver: called misc_int on every interrupt
++ - Q.2931 message description: various fixes and improvements
++ - linux/atm.h: ATM_*_UNSPEC used the same value as ATM_*_ANY, oops !
++ - SSCOP is now more careful about not accessing the descriptor if it might
++   possibly have been deleted
++ - typo in SSCF leading to wrong response to AA-RECOVER.indication
++ - SSCOP now correctly copies N(PS) from POLL to STAT PDUs
++ - SSCF now discards data when not ready instead of issuing a fatal error
++ - AAL initialization failure no longer leaks memory
++ - closing an SVC without VCC no longer yields a GPF
++
++New features
++------------
++
++ - ZN1221 driver is starting to work
++ - new, ARP-based mechanism for IP over ATM (with atmarpd, atmarp, etc.)
++ - /proc/atm/pvc now displays more information for CLIP PVCs (after a patch
++   by Raghavan Menon)
++ - added max_pcr to struct atm_trafprm (also fixed a few comments in atm.h)
++   Note: all programs using sockaddr_atm* will have to be recompiled.
++ - qgen now handles value lists in named selections
++ - signaling now supports bhli/blli, plus various other minor extensions
++ - new ioctls to set/get local ATM address
++ - added library with address to/from text conversion functions
++ - finally implemented getname()
++
++Other changes
++-------------
++
++ - eni driver: avoided potential generation of superfluous code if extended
++   debugging is disabled
++ - eni driver: detects new boards using ASIC PCI chip (doesn't support them
++   yet, though)
++ - qgen: semicolon is now comment character and no longer used to terminate
++   clauses
++ - qgen: replaced term "item" with "field"
++ - linux/include/atmsap.h: removed obsolete comment "protocol cannot be fully
++   encoded in current structure". Also re-arranged some comments to simplify
++   automated document generation.
++ - saal,sscf,sscop: callbacks don't pass the pointer to the descriptor of the
++   calling protocol anymore
++ - SSCOP no longer prints a number for non-'V' errors
++ - improved handling of STATUS messages
++ - select now indicates ready for writing if max_sdu packet can be enqueued
++   without blocking
++ - select can now also be used to check status of non-blocking connect
++ - moved some common demon functions from sigd into a common demon library
++
++
++Version 0.3 to 0.4 (27-SEP-1995)
++==================
++
++Bug fixes
++---------
++
++ - various minor documentation fixes
++ - clip.c:atm_push_clip now updates statistics before forwarding the skb to
++   the upper layer (which may free and overwrite the skb)
++
++New features
++------------
++
++ - added partial UNI 3.x signaling
++ - added various adapter debugging programs to the distribution
++ - new config option CONFIG_ATM_ENI_DEBUG to enable extended debugging
++   in eni driver
++
++Other changes
++-------------
++
++ - upgraded to kernel version 1.3.24
++ - changed the distribution directory structure (programs are now in maint/,
++   test/, ip/, debug/, and sigd/, see INSTALL)
++ - ATM interfaces are no longer named, only numbered. This affects the
++   ATM_GETNAMES ioctl, all ioctls using struct atmif_sioc, the usage of atmdiag
++   and sonetdiag, and various diagnostic kernel messages.
++ - ATM socket state is now recorded in field "flags" (this also replaces the
++   SVC fields "released", "registered", and "state")
++ - added #ifdef __KERNEL__ to some header files
++ - added "int immed" argument to send_oam
++ - some minor modifications to the distribution process (mkdist)
++ - removed devmap.c
++ - SVC sockets no longer hang if the signaling demon dies
++
++
++Version 0.2 to 0.3 (8-SEP-1995)
++==================
++
++Bug fixes
++---------
++
++ - select(2) didn't work (was sleeping on sock->wait instead of
++   &ATM_SD(sock)->sleep)
++ - ENI driver did allow binding to VPI/VCI already in use
++ - ENI driver now properly handles PDUs with CRC errors
++ - ENI driver had race condition when discarding PDUs causing new PDUs to be
++   shifted in adapter memory by one word (which confused the driver quite a
++   bit)
++ - ENI driver now enables VC _after_ setting all pointers (caused crashes if
++   data was already coming in while opening VC)
++ - various bugs fixes related to SVC sockets
++ - fixed GPF (in kernel) when running atmdiag without arguments
++ - atmdiag now left-adjusts interface names
++ - fixed ttcp.atm crash when not specifying vpi.vci
++ - clip_xmit now checks for NULL vcc (e.g. after failure to connect)
++
++New features
++------------
++
++ - zatm driver now reads ESI correctly
++ - blocking svc_connect is now interruptible
++ - atmdump now also displays the numeric PTI value of incoming cells
++ - added RX/TX buffer quotas (default is 64 kB)
++ - added OAM hooks to device driver interface (but there's no OAM support yet)
++
++Other changes
++-------------
++
++ - ENI driver now checks ID field of reassembly buffer descriptors
++ - ENI driver now uses vremap
++ - ENI driver now prints more useful physical layer type information (e.g.
++   "MMF" and "UTP" instead of "UTOPIA")
++ - some redesign of the protocol used for signaling between kernel and demon
++ - disabled "Grr, servicing VCC twice" message in ENI driver
++ - device drivers now have to adapt AAL0 cell header byte order
++ - some cleanup in common.c:atm_getsockopt
++ - device drivers are now required to use the peek function; protocols now
++   must provide it
++
++
++Version 0.1 to 0.2 (15-AUG-1995)
++==================
++
++Bug fixes
++---------
++
++ - VCC family field is now correctly set to protocol family in
++   common.c:atm_create (was pvc.c:pvc_create). With protocol set to zero,
++   this created all types of strange problems, because the family field
++   is used to indicate whether an VCC slot is busy/free.
++ - fixed race condition in common.c:atm_read (reader might have blocked
++   even if data is ready)
++ - fixed dereferencing of uninitialized skb->dev pointer in
++   clip.c:atm_push_clip
++ - SIOCSIFATMTCP now refuses to attach the same socket twice
++ - zatm.c: fixed setting of the VPI/VCI mask
++ - USAGE said ttcp uses -B for the bandwidth, but it's -P
++ - mkdist didn't include man pages
++
++New features
++------------
++
++ - added some /proc/atm functionality
++ - added support for ATM_{VPI,VCI}_ANY
++ - SIOCSIFATMTCP now returns the interface number and atmtcp(8) prints it
++ - wrote atmtcp man page
++ - added kernel part of SVC support
++
++Other changes
++-------------
++
++ - common.c: only root is now allowed to bind to reserved VCIs
++ - Classical IP interfaces are now removed by downing by ifconfig; clip(8)
++   returns immediately
++ - PVC-connect for non-existing device now returns ENODEV instead of EINVAL
++ - new field (type) in struct atm_dev to indicate device type
++ - moved getsockopt(SO_CIRANGE) to common.c (removed atmtcp's own version)
++ - added ci_range to struct atm_dev (and removed it from atmtcp's private
++   structure)
++ - added code to read the ESI to zatm.c (but that code doesn't seem to work
++   yet)
+--- linux-atm-2.4.1.orig/debian/atm-tools-br2684.manpages
++++ linux-atm-2.4.1/debian/atm-tools-br2684.manpages
+@@ -0,0 +1 @@
++debian/tmp/usr/share/man/man8/br2684ctl.8
+--- linux-atm-2.4.1.orig/debian/atm-tools.atm
++++ linux-atm-2.4.1/debian/atm-tools.atm
+@@ -0,0 +1,27 @@
++#!/bin/sh
++# Start/stop the atm daemon(s).
++
++DAEMON="/sbin/atmarpd"
++
++test -f $DAEMON || exit 0
++
++case "$1" in
++start)  echo -n "Starting ATM ARP Daemon: "
++        start-stop-daemon --start --quiet --exec $DAEMON -b
++        /bin/sleep 2
++        echo "atmarpd."
++        ;;
++stop)   echo -n "Stopping ATM ARP Daemon: "
++        start-stop-daemon --stop --quiet --exec $DAEMON
++        echo "atmarpd."
++        ;;
++restart|force-reload) echo -n "Re-starting ATM ARP Daemon: "
++        start-stop-daemon --stop --quiet --exec $DAEMON
++        start-stop-daemon --start --quiet --exec $DAEMON -b
++        /bin/sleep 2
++        echo "atmarpd."
++        ;;
++*)      echo "Usage: /etc/init.d/atm start|stop|restart|force-reload"; exit 1
++        ;;
++esac
++exit 0
+--- linux-atm-2.4.1.orig/debian/atm-tools.docs
++++ linux-atm-2.4.1/debian/atm-tools.docs
+@@ -0,0 +1,4 @@
++BUGS
++README
++doc/README.tc
++debian/README.br2684
+--- linux-atm-2.4.1.orig/debian/control.old
++++ linux-atm-2.4.1/debian/control.old
+@@ -0,0 +1,72 @@
++Source: linux-atm
++Section: net
++Priority: optional
++Maintainer: Peter De Schrijver (p2) <p2@mind.be>
++Build-Depends: debhelper (>> 4.0.0), bison, flex, perl, dpatch, automake1.4
++Standards-Version: 3.6.1
++
++Package: atm-tools
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: Base programs for ATM in Linux, the net-tools for ATM
++ This package provides all the basic programs needed for setting up,
++ monitoring and tuning ATM networks. Such as:
++  * atmsigd, an ATM signal daemon that implements the ATM UNI protocol.
++  * atmtcp, a tool to setup ATM over TCP connections.
++  * atmarpd, an implementation of the ATMARP protocol (RFC1577, RFC1755)
++  * zeppelin, an ATM LAN Emulation client daemon
++  * les and bus, ATM LAN Emulation service daemons
++ .
++ Notice that upstream still flags these tools as experimental software and
++ says that there is still a number of known bugs and issues. The
++ software is, however, in productive use at a number of sites and is
++  working reliably.
++ .
++ Homepage: http://linux-atm.sourceforge.net/
++
++Package: atm-tools-br2684
++Architecture: any
++Depends: ${shlibs:Depends}
++Description: br2864ctl - RFC1483/2864 Bridge Daemon for ATM Networks
++ br2684ctl handles RFC1483/2684 bridged PDUs. This is most often
++ used  in  ADSL scenarios where usually the subscribers' ethernet
++ traffic is encapsulated in ATM AAL5 (by  bridging  ADSL  modems)
++ according to RFC2684
++ .
++ The sources for br2684ctl has been pulled from linux-atm's CVS
++ repository. Warning: This is unreleased software that can break any
++ time, any place. If it does, you get to keep the pieces. linux-atm's
++ upstream flags even the released software as experimental software.
++ There is still a number of known bugs and issues.
++
++Package: atm-dev
++Depends: libatm1-dev
++Architecture: all
++Section: oldlibs
++Description: Development files for compiling ATM programs (dummy package) 
++ This dummy package provides a transition from the previous atm packages.
++ It is provided for backwards compatibility only and may be removedafter 
++ the upgrade has completed or when when no other package depend on it.
++ 
++Package: libatm1
++Section: libs
++Architecture: any
++Depends: ${shlibs:Depends}
++Conflicts: atm-tools (<< 2.4.1-6)
++Description: shared library for ATM (Asynchronous Transfer Mode)
++ Shared libraries needed by ATM (Asynchronous Transfer Mode) related programs
++ .
++ Homepage: http://linux-atm.sourceforge.net/
++
++Package: libatm1-dev
++Section: libdevel
++Architecture: any
++Depends: libc6-dev, libatm1
++Replaces: atm-dev (<< 2.4.1-7)
++Conflicts: atm-dev (<< 2.4.1-7)
++Provides: libatm-dev
++Description: Development files for compiling ATM programs
++ Header files and development libraries for compiling ATM (Asynchronous 
++ Transfer Mode) related programs.
++ .
++ Homepage: http://linux-atm.sourceforge.net/
+--- linux-atm-2.4.1.orig/debian/atm-tools.install
++++ linux-atm-2.4.1/debian/atm-tools.install
+@@ -0,0 +1,18 @@
++debian/tmp/usr/share/man/*
++debian/tmp/usr/bin/*
++debian/tmp/usr/sbin/atmsigd
++debian/tmp/usr/sbin/atmaddr
++debian/tmp/usr/sbin/esi
++debian/tmp/usr/sbin/atmloop
++debian/tmp/usr/sbin/atmtcp
++debian/tmp/usr/sbin/enitune
++debian/tmp/usr/sbin/zntune
++debian/tmp/usr/sbin/atmarp sbin
++debian/tmp/usr/sbin/atmarpd sbin
++debian/tmp/usr/sbin/ilmid
++debian/tmp/usr/sbin/zeppelin
++debian/tmp/usr/sbin/les
++debian/tmp/usr/sbin/bus
++debian/tmp/usr/sbin/lecs
++debian/tmp/usr/sbin/mpcd
++debian/tmp/etc/atmsigd.conf
+--- linux-atm-2.4.1.orig/debian/atm-tools.manpages
++++ linux-atm-2.4.1/debian/atm-tools.manpages
+@@ -0,0 +1 @@
++debian/atm-tools.8
+--- linux-atm-2.4.1.orig/debian/atm-tools.pod
++++ linux-atm-2.4.1/debian/atm-tools.pod
+@@ -0,0 +1,27 @@
++=head1 NAME
++
++linux-atm - preliminary manpage
++aread
++awrite
++enitune
++ilmid
++saaldump
++sonetdiag
++ttcp_atm
++zntune
++
++=head1 DOCUMENTATION
++
++atm-tools is a package containing the basic tools that are needed for
++setting up, monitoring, and tuning ATM networks. All available
++documentation can be found in /usr/share/doc/atnm-tools in Debian
++systems, and on the Web on: http://linux-atm.sourceforge.net.
++
++=head1 BUGS
++
++Many. Be prepared to debug.
++
++=head1 AUTHOR
++
++This manpage was written by Marc Haber for linux-atm packaging in
++Debian/GNU Operating System.
+--- linux-atm-2.4.1.orig/debian/changelog
++++ linux-atm-2.4.1/debian/changelog
+@@ -0,0 +1,212 @@
++linux-atm (2.4.1-17) unstable; urgency=low
++
++  * Fix build problem with gcc 4.0 (Closes: )
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Thu, 17 Mar 2005 23:02:03 +0100
++
++linux-atm (2.4.1-16) unstable; urgency=low
++
++  * Fix build problem with gcc 3.4 (Closes: #259422)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Thu, 15 Jul 2004 14:28:10 +0200
++
++linux-atm (2.4.1-15) unstable; urgency=low
++
++  * Updated descriptions (Closes: #239161)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Sun,  4 Apr 2004 21:10:20 +0200
++
++linux-atm (2.4.1-14) unstable; urgency=low
++
++  * Fix symlink for /usr/lib/libatm.so (Closes: #221011)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Sun,  7 Dec 2003 21:53:19 +0100
++
++linux-atm (2.4.1-13) unstable; urgency=low
++
++  * Previous version fixed #217259, but no changelog entry (Closes: #217259)
++  * Previous version fixed #216662, but no changelog entry (Closes: #216662)
++  * Added missing build dependency on automake1.4 (Closes: #221120, #221284)
++  * New Maintainer (Closes: #206982)
++
++ -- Peter De Schrijver (p2) <p2@mind.be>  Mon, 17 Nov 2003 23:03:58 +0100
++
++linux-atm (2.4.1-12) unstable; urgency=low
++
++  * don't build atm-tools-br2684 by default. Thanks to ftpmaster for
++    not allowing the package to be in Debian.
++  * Since we don't build atm-tools-br2684 any more, revert back to
++    autotools output from 2.4.1-9
++  * Add README.br2684 documenting a way to build the package locally.
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed,  5 Nov 2003 21:31:42 +0000
++
++linux-atm (2.4.1-11) experimental; urgency=low
++
++  * Build-Depend on dpatch
++  * dpatch br2684 header files from later libc for old libc (woody)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 29 Oct 2003 19:05:07 +0000
++
++linux-atm (2.4.1-10) experimental; urgency=low
++
++  * add br2684 to package                                      (closes: #216663)
++  * autoreconf to actually build br2684
++  * have libatm1-dev provide libatm-dev                        (closes: #216662)
++  * move lib symlink to libatm1-dev as well            (closes: #217259)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Thu, 23 Oct 2003 17:55:43 +0000
++
++linux-atm (2.4.1-9) unstable; urgency=low
++
++  * put libatm1-dev in libdevel                                (closes: #213170)
++  * make sure that new descriptions actually make it into the package
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Thu,  9 Oct 2003 17:08:10 +0000
++
++linux-atm (2.4.1-8) unstable; urgency=low
++
++  * build arch-indep package as targets of binary-indep  (closes: #212124)
++  * use dh_installdocs to install files to libatm1-dev/docs
++  * symlink shared lib to usr/bin                        (closes: #213146)
++  * Use better long descriptions. Thanks to Javier       (closes: #209427)
++    Fernandez-Sanguino                                         (closes: #209612)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Sun, 28 Sep 2003 19:29:08 +0000
++
++linux-atm (2.4.1-7) unstable; urgency=low
++
++  * libatm1 now conflicts with atm-tools (<< 2.4.1-6) (closes: #208170)
++  * armarp now writes output to stdout.
++  * add atm-dev as empty transitional package to help upgrades
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Tue,  2 Sep 2003 09:20:33 +0000
++
++linux-atm (2.4.1-6) unstable; urgency=low
++
++  * split off shared libraries to libatm1
++  * rename atm-dev to libatm1-dev
++  * Standards-Version: 3.6.1
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Tue, 26 Aug 2003 15:46:27 +0000
++
++linux-atm (2.4.1-5) unstable; urgency=low
++
++  * move *.a and *.la to usr/lib (closes: #199506).
++  * let atm-dev depend on atm-tools to avoid dangling /lib/libatm.so
++    symlink.
++  * Standards-Version: 3.5.6
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 30 Jul 2003 11:46:19 +0000
++
++linux-atm (2.4.1-4) unstable; urgency=low
++
++  * add Build-Depends: on automake1.4
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 11 Jun 2003 16:58:21 +0000
++
++linux-atm (2.4.1-3) unstable; urgency=low
++
++  * rebuilding libtool broke src/test/Makefile.in. Applied fix to
++    Makefile.am and re-built again.
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Wed, 11 Jun 2003 11:05:26 +0000
++
++linux-atm (2.4.1-2) unstable; urgency=low
++
++  * rebuild configure script with new libtool (closes: #196909)
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Tue, 10 Jun 2003 21:01:50 +0000
++
++linux-atm (2.4.1-1) unstable; urgency=low
++
++  * new upstream source
++  * remove atmarp and atmarpd from /usr/sbin as they are already in
++    /sbin (closes: #196216)
++  * lintian fixes
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Mon,  9 Jun 2003 16:03:45 +0000
++
++linux-atm (2.4.0-5) unstable; urgency=low
++
++  * Fix for src/test/Makefile.in to allow building on hppa and ia64
++    which the fix introduced to 2.4.0-4 broke. Thanks to Goswin
++    Brederlow.
++  * Move init.d priority to that atmarpd is started before network
++    interfaces are started.
++  * Move atmarpd and libatm to /sbin and /lib to allow atmarpd to be
++    started before /usr is mounted.
++  * use dh_install instead of dh_movefiles.
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Sat, 24 Aug 2002 15:13:48 +0000
++
++linux-atm (2.4.0-4) unstable; urgency=low
++
++  * new maintainer
++  * Fix for src/test/Makefile.in to allow building on sparc.
++    Thanks to Patrick Mauritz. (closes: #144225).
++  * added pseudo-manpage for manpage-less binaries.
++  * removed rpath by changing configure and make install paramaters
++
++ -- Marc Haber <mh+debian-packages@zugschlus.de>  Fri, 16 Aug 2002 20:39:05 +0000
++
++linux-atm (2.4.0-3) unstable; urgency=HIGH
++
++  * Re-ran libtoolize.
++    Closes: #143522
++
++  * Previous version Closes: #135328
++
++ -- Russell Coker <russell@coker.com.au>  Fri, 19 Apr 2002 01:55:00 +0200
++
++linux-atm (2.4.0-2) unstable; urgency=HIGH
++
++  * Put a "grep -v EMAXERRNO" into the build process to deal with mipsel and
++    the "#ifdef __KERNEL__" it has in it's /usr/include/asm/errno.h .
++
++ -- Russell Coker <russell@coker.com.au>  Thu, 18 Apr 2002 19:56:00 +0200
++
++linux-atm (2.4.0-1) unstable; urgency=HIGH
++
++  * New upstream version which changes source package name.
++    Closes: #138911
++
++ -- Russell Coker <russell@coker.com.au>  Mon, 18 Mar 2002 17:42:00 +0100
++
++atm (0.79-4) unstable; urgency=low
++
++  * Added build-depends on flex.
++    Closes: #111072
++
++  * Made the atm tools use a shared object to save space.
++
++  * Fixed the copyright file and put all copyright details in both packages.
++
++  * Added support for easy building with different kernel headers.
++    Closes: #110249
++
++ -- Russell Coker <russell@coker.com.au>  Sun,  7 Oct 2001 14:11:33 +0200
++
++atm (0.79-3) unstable; urgency=low
++
++  * Created /etc/init.d/atm to start and stop atmarpd.
++    Closes: #110252
++
++  * Added build-depends on bison.
++    Closes: #110576
++
++ -- Russell Coker <russell@coker.com.au>  Fri, 31 Aug 2001 15:21:44 +0200
++
++atm (0.79-2) unstable; urgency=low
++
++  * Changed the main package name to atm-tools to indicate that it doesn't
++    provide ATM (gotta have the kernel support), it just has the daemons and
++    utilities.
++
++ -- Russell Coker <russell@coker.com.au>  Sat, 25 Aug 2001 17:55:00 +0200
++
++atm (0.79-1) unstable; urgency=low
++
++  * Initial Release.
++
++ -- Russell Coker <russell@coker.com.au>  Fri, 24 Aug 2001 17:31:00 +0200
+--- linux-atm-2.4.1.orig/debian/checkout-br2684
++++ linux-atm-2.4.1/debian/checkout-br2684
+@@ -0,0 +1,25 @@
++#!/bin/bash -x
++
++set -e
++
++# check out br2684 from upstream CVS. We need to jump through hoops if
++# the local source package is under cvs control as well.
++
++CVSDIR=":pserver:anonymous:@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm"
++DIR="br2684"
++TMPDIR="/tmp"
++TARGETDIR="src"
++
++cvs -d${CVSDIR} login
++
++mkdir -p $TMPDIR
++pushd $TMPDIR
++cvs -z6 -d${CVSDIR} export -d $DIR -r V2_5_0 linux-atm/src/br2684
++
++popd
++
++mv $TMPDIR/$DIR/* $TARGETDIR/$DIR
++rm -rf $TMPDIR/$DIR
++
++autoreconf -i -f
++
+--- linux-atm-2.4.1.orig/debian/copyright.header
++++ linux-atm-2.4.1/debian/copyright.header
+@@ -0,0 +1,18 @@
++This package was debianized by Russell Coker <russell@coker.com.au> on
++Fri, 24 Aug 2001 16:11:12 +0200 and is now maintained by Marc Haber
++<mh+debian-packages@zugschlus.de>.
++
++It was downloaded from http://www.sourceforge.net/projects/linux-atm/
++
++See also http://linux-atm.sourceforge.net/dist.php
++
++Upstream Authors: 
++Werner Almesberger EPFL ICA <Werner.Almesberger@epfl.ch>
++Mitchell Blank Jr. <mitch@sfgoth.com>
++Paul B Schroeder <paulsch@us.ibm.com>
++
++Copyright:
++
++GPL 2.0
++
++See /usr/share/common-licenses/GPL-2
+--- linux-atm-2.4.1.orig/debian/libatm1-dev.dirs
++++ linux-atm-2.4.1/debian/libatm1-dev.dirs
+@@ -0,0 +1,2 @@
++usr/lib
++usr/include
+--- linux-atm-2.4.1.orig/debian/libatm1-dev.docs
++++ linux-atm-2.4.1/debian/libatm1-dev.docs
+@@ -0,0 +1,2 @@
++doc/README.CLP
++doc/atm-linux-howto.txt
+--- linux-atm-2.4.1.orig/debian/libatm1-dev.install
++++ linux-atm-2.4.1/debian/libatm1-dev.install
+@@ -0,0 +1,2 @@
++debian/tmp/usr/include/*
++debian/tmp/usr/lib/*.a usr/lib
+--- linux-atm-2.4.1.orig/debian/libatm1-dev.links
++++ linux-atm-2.4.1/debian/libatm1-dev.links
+@@ -0,0 +1 @@
++lib/libatm.so.1 usr/lib/libatm.so
+--- linux-atm-2.4.1.orig/debian/libatm1.dirs
++++ linux-atm-2.4.1/debian/libatm1.dirs
+@@ -0,0 +1 @@
++/lib
+--- linux-atm-2.4.1.orig/debian/libatm1.install
++++ linux-atm-2.4.1/debian/libatm1.install
+@@ -0,0 +1 @@
++debian/tmp/usr/lib/libatm.so.* lib
diff --git a/openwrt/package/linux-atm/patches/100-br2684.patch b/openwrt/package/linux-atm/patches/100-br2684.patch
new file mode 100644 (file)
index 0000000..2eddf00
--- /dev/null
@@ -0,0 +1,311 @@
+--- linux-atm-2.4.1.orig/src/br2684/br2684ctl.c
++++ linux-atm-2.4.1/src/br2684/br2684ctl.c
+@@ -0,0 +1,251 @@
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <errno.h>
++#include <sys/ioctl.h>
++#include <string.h>
++#include <syslog.h>
++#include <atm.h>
++#include <linux/atmdev.h>
++#include <linux/atmbr2684.h>
++
++/* Written by Marcell GAL <cell@sch.bme.hu> to make use of the */
++/* ioctls defined in the br2684... kernel patch */
++/* Compile with cc -o br2684ctl br2684ctl.c -latm */
++
++/*
++  Modified feb 2001 by Stephen Aaskov (saa@lasat.com)
++  - Added daemonization code
++  - Added syslog
++  
++  TODO: Delete interfaces after exit?
++*/
++
++
++#define LOG_NAME "RFC1483/2684 bridge"
++#define LOG_OPTION     LOG_PERROR
++#define LOG_FACILITY   LOG_LOCAL0
++
++
++int lastsock, lastitf;
++
++
++void fatal(const char *str, int i)
++{
++  syslog (LOG_ERR,"Fatal: %s",str);
++  exit(-2);
++};
++
++
++void exitFunc(void)
++{
++  syslog (LOG_PID,"Daemon terminated\n");     
++}
++
++
++int create_br(char *nstr)
++{
++  int num, err;
++  
++  if(lastsock<0) {
++    lastsock = socket(PF_ATMPVC, SOCK_DGRAM, ATM_AAL5);
++  }
++  if (lastsock<0) {
++    syslog(LOG_ERR, "socket creation failed: %s",strerror(errno));
++  } else {
++    /* create the device with ioctl: */
++    num=atoi(nstr);
++    if( num>=0 && num<1234567890){
++      struct atm_newif_br2684 ni;
++      ni.backend_num = ATM_BACKEND_BR2684;
++      ni.media = BR2684_MEDIA_ETHERNET;
++      ni.mtu = 1500;
++      sprintf(ni.ifname, "nas%d", num);
++      err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni);
++  
++      if (err == 0)
++      syslog(LOG_INFO, "Interface \"%s\" created sucessfully\n",ni.ifname);
++      else
++      syslog(LOG_INFO, "Interface \"%s\" could not be created, reason: %s\n",
++             ni.ifname,
++             strerror(errno));
++      lastitf=num;    /* even if we didn't create, because existed, assign_vcc wil want to know it! */
++    } else {
++      syslog(LOG_ERR,"err: strange interface number %d", num );
++    }
++  }
++  return 0;
++}
++
++
++int assign_vcc(char *astr, int encap, int bufsize, struct atm_qos qos)
++{
++    int err;
++    struct sockaddr_atmpvc addr;
++    int fd;
++    struct atm_backend_br2684 be;
++
++    memset(&addr, 0, sizeof(addr));
++    err=text2atm(astr,(struct sockaddr *)(&addr), sizeof(addr), T2A_PVC);
++    if (err!=0)
++      syslog(LOG_ERR,"Could not parse ATM parameters (error=%d)\n",err);
++    
++#if 0
++    addr.sap_family = AF_ATMPVC;
++    addr.sap_addr.itf = itf;
++    addr.sap_addr.vpi = 0;
++    addr.sap_addr.vci = vci;
++#endif
++    syslog(LOG_INFO,"Communicating over ATM %d.%d.%d, encapsulation: %s\n", addr.sap_addr.itf,
++         addr.sap_addr.vpi,
++         addr.sap_addr.vci,
++         encap?"VC mux":"LLC");
++    
++    if ((fd = socket(PF_ATMPVC, SOCK_DGRAM, ATM_AAL5)) < 0)
++      syslog(LOG_ERR,"failed to create socket %d, reason: %s", errno,strerror(errno));
++    
++    if (qos.aal == 0) {
++      qos.aal                     = ATM_AAL5;
++      qos.txtp.traffic_class      = ATM_UBR;
++      qos.txtp.max_sdu            = 1524;
++      qos.txtp.pcr                = ATM_MAX_PCR;
++      qos.rxtp = qos.txtp;
++    }
++
++    if ( (err=setsockopt(fd,SOL_SOCKET,SO_SNDBUF, &bufsize ,sizeof(bufsize))) )
++      syslog(LOG_ERR,"setsockopt SO_SNDBUF: (%d) %s\n",err, strerror(err));
++    
++    if (setsockopt(fd, SOL_ATM, SO_ATMQOS, &qos, sizeof(qos)) < 0)
++      syslog(LOG_ERR,"setsockopt SO_ATMQOS %d", errno);
++
++    err = connect(fd, (struct sockaddr*)&addr, sizeof(struct sockaddr_atmpvc));
++    
++    if (err < 0)
++      fatal("failed to connect on socket", err);
++    
++    /* attach the vcc to device: */
++    
++    be.backend_num = ATM_BACKEND_BR2684;
++    be.ifspec.method = BR2684_FIND_BYIFNAME;
++    sprintf(be.ifspec.spec.ifname, "nas%d", lastitf);
++    be.fcs_in = BR2684_FCSIN_NO;
++    be.fcs_out = BR2684_FCSOUT_NO;
++    be.fcs_auto = 0;
++    be.encaps = encap ? BR2684_ENCAPS_VC : BR2684_ENCAPS_LLC;
++    be.has_vpiid = 0;
++    be.send_padding = 0;
++    be.min_size = 0;
++    err=ioctl (fd, ATM_SETBACKEND, &be);
++    if (err == 0)
++      syslog (LOG_INFO,"Interface configured");
++    else {
++      syslog (LOG_ERR,"Could not configure interface:%s",strerror(errno));
++      exit(2);
++    }
++    return fd ;
++}
++
++
++void usage(char *s)
++{
++  printf("usage: %s [-b] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-a [itf.]vpi.vci]*]*\n", s);
++  exit(1);
++}
++
++
++
++int main (int argc, char **argv)
++{
++  int c, background=0, encap=0, sndbuf=8192;
++  struct atm_qos reqqos;
++  lastsock=-1;
++  lastitf=0;
++  
++  /* st qos to 0 */
++  memset(&reqqos, 0, sizeof(reqqos));
++
++  openlog (LOG_NAME,LOG_OPTION,LOG_FACILITY);
++  if (argc>1)
++    while ((c = getopt(argc, argv,"q:a:bc:e:s:?h")) !=EOF)
++      switch (c) {
++      case 'q':
++      printf ("optarg : %s",optarg);
++      if (text2qos(optarg,&reqqos,0)) fprintf(stderr,"QOS parameter invalid\n"); 
++      break;
++      case 'a':
++      assign_vcc(optarg, encap, sndbuf, reqqos);
++      break;
++      case 'b':
++      background=1;
++      break;
++      case 'c':
++      create_br(optarg);
++      break;
++      case 'e':
++      encap=(atoi(optarg));
++      if(encap<0){
++        syslog (LOG_ERR, "invalid encapsulation: %s:\n",optarg);
++        encap=0;
++      }
++      break;
++      case 's':
++      sndbuf=(atoi(optarg));
++      if(sndbuf<0){
++        syslog(LOG_ERR, "Invalid sndbuf: %s, using size of 8192 instead\n",optarg);
++        sndbuf=8192;
++      }
++      break;
++      case '?':
++      case 'h':
++      default:
++      usage(argv[0]);
++      }
++  else
++    usage(argv[0]);
++
++  if (argc != optind) usage(argv[0]);
++  
++  if(lastsock>=0) close(lastsock);
++  
++  if (background) {
++    pid_t pid;
++    
++    pid=fork();
++    if (pid < 0) {
++      fprintf(stderr,"Error detaching\n");
++      exit(2);
++    } else if (pid) 
++      exit(0); // This is the parent
++    
++    // Become a process group and session group leader
++    if (setsid()<0) {
++      fprintf (stderr,"Could not set process group\n");
++      exit(2);
++    }
++    
++    // Fork again to let process group leader exit
++    pid = fork();
++    if (pid < 0) {
++      fprintf(stderr,"Error detaching during second fork\n");
++      exit(2);
++    } else if (pid)
++      exit(0); // This is the parent
++    
++    // Now we're ready for buisness
++    chdir("/");            // Don't keep directories in use
++    close(0); close(1); close(2);  // Close stdin, -out and -error
++    /*
++      Note that this implementation does not keep an open 
++      stdout/err.
++      If we need them they can be opened now
++    */
++    
++  }
++  
++  syslog (LOG_INFO, "RFC 1483/2684 bridge daemon started\n"); 
++  atexit (exitFunc);
++  
++  while (1) sleep(30);        /* to keep the sockets... */
++  return 0;
++}
++
+diff -ruN linux-atm-2.4.1/configure.in linux-atm-2.4.1.new/configure.in
+--- linux-atm-2.4.1/configure.in       2003-04-25 04:17:05.000000000 +0200
++++ linux-atm-2.4.1.new/configure.in   2005-07-27 15:45:49.532396543 +0200
+@@ -153,26 +153,6 @@
+               src/Makefile \
+               src/include/Makefile \
+               src/lib/Makefile \
+-              src/test/Makefile \
+-              src/debug/Makefile \
+-              src/qgen/Makefile \
+-              src/saal/Makefile \
+-              src/sigd/Makefile \
+-              src/maint/Makefile \
+-              src/arpd/Makefile \
+-              src/ilmid/Makefile \
+-              src/ilmid/asn1/Makefile \
+-              src/man/Makefile \
+-              src/led/Makefile \
+-              src/lane/Makefile \
+-              src/mpoad/Makefile \
+-              src/switch/Makefile \
+-              src/switch/debug/Makefile \
+-              src/switch/tcp/Makefile \
+-              src/config/Makefile \
+-              src/config/init-redhat/Makefile \
+-              src/extra/Makefile \
+-              src/extra/linux-atm.spec \
+-              src/extra/ANS/Makefile
++              src/br2684/Makefile \
+               )
+diff -ruN linux-atm-2.4.1/src/br2684/Makefile linux-atm-2.4.1.new/src/br2684/Makefile
+--- linux-atm-2.4.1/src/br2684/Makefile        1970-01-01 02:00:00.000000000 +0200
++++ linux-atm-2.4.1.new/src/br2684/Makefile    2002-07-15 23:44:25.000000000 +0200
+@@ -0,0 +1,13 @@
++PREFIX=${TI_FILESYSTEM}
++
++all: br2684ctl
++
++br2684ctl: br2684ctl.c
++      gcc -latm -o br2684ctl br2684ctl.c 
++      strip br2684ctl
++
++install: br2684ctl
++      cp br2684ctl $(PREFIX)/usr/sbin/
++
++clean:
++      rm -rf br2684ctl *.o
+diff -ruN linux-atm-2.4.1/src/Makefile.am linux-atm-2.4.1.new/src/Makefile.am
+--- linux-atm-2.4.1/src/Makefile.am    2001-10-03 23:14:53.000000000 +0200
++++ linux-atm-2.4.1.new/src/Makefile.am        2005-07-27 15:33:52.389309711 +0200
+@@ -1,3 +1,2 @@
+-SUBDIRS = include lib test debug qgen saal sigd maint arpd ilmid man led lane \
+-              mpoad switch config extra
++SUBDIRS = include lib br2684
+
diff --git a/openwrt/package/linux-atm/patches/200-no_libfl.patch b/openwrt/package/linux-atm/patches/200-no_libfl.patch
new file mode 100644 (file)
index 0000000..1b538b2
--- /dev/null
@@ -0,0 +1,193 @@
+diff -ruN linux-atm-2.4.1/src/qgen/Makefile.am linux-atm-2.4.1.new/src/qgen/Makefile.am
+--- linux-atm-2.4.1/src/qgen/Makefile.am       2001-09-03 20:41:05.000000000 +0200
++++ linux-atm-2.4.1.new/src/qgen/Makefile.am   2005-07-26 14:49:05.000000000 +0200
+@@ -3,7 +3,7 @@
+ qgen_SOURCES = common.c common.h file.c file.h first.c ql_y.y ql_l.l qgen.c \
+               qgen.h second.c third.c
+-qgen_LDADD = -lfl
++qgen_LDADD = 
+ q_dump_SOURCES = common.c
+ q_dump_LDADD = qd.dump.standalone.o
+diff -ruN linux-atm-2.4.1/src/qgen/Makefile.in linux-atm-2.4.1.new/src/qgen/Makefile.in
+--- linux-atm-2.4.1/src/qgen/Makefile.in       2003-04-30 16:44:01.000000000 +0200
++++ linux-atm-2.4.1.new/src/qgen/Makefile.in   2005-07-26 14:49:13.000000000 +0200
+@@ -91,7 +91,7 @@
+ qgen_SOURCES = common.c common.h file.c file.h first.c ql_y.y ql_l.l qgen.c \
+               qgen.h second.c third.c
+-qgen_LDADD = -lfl
++qgen_LDADD = 
+ q_dump_SOURCES = common.c
+ q_dump_LDADD = qd.dump.standalone.o
+diff -ruN linux-atm-2.4.1/src/qgen/ql_l.c linux-atm-2.4.1.new/src/qgen/ql_l.c
+--- linux-atm-2.4.1/src/qgen/ql_l.c    2003-04-24 21:46:49.000000000 +0200
++++ linux-atm-2.4.1.new/src/qgen/ql_l.c        2005-07-26 20:45:40.000000000 +0200
+@@ -11,6 +11,11 @@
+ #include <stdio.h>
+ #include <unistd.h>
++int yywrap(void)
++{
++        return 1;
++}
++
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+diff -ruN linux-atm-2.4.1/src/sigd/cfg_l.c linux-atm-2.4.1.new/src/sigd/cfg_l.c
+--- linux-atm-2.4.1/src/sigd/cfg_l.c   2003-04-24 21:47:21.000000000 +0200
++++ linux-atm-2.4.1.new/src/sigd/cfg_l.c       2005-07-26 22:04:13.000000000 +0200
+@@ -11,6 +11,10 @@
+ #include <stdio.h>
+ #include <unistd.h>
++int yywrap(void)
++{
++        return 1;
++}
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+diff -ruN linux-atm-2.4.1/src/sigd/Makefile.am linux-atm-2.4.1.new/src/sigd/Makefile.am
+--- linux-atm-2.4.1/src/sigd/Makefile.am       2001-10-04 23:17:26.000000000 +0200
++++ linux-atm-2.4.1.new/src/sigd/Makefile.am   2005-07-26 14:49:44.000000000 +0200
+@@ -8,7 +8,7 @@
+                       $(top_builddir)/src/qgen/qd.dump.o \
+                       $(top_builddir)/src/lib/libatm.la \
+                       $(top_builddir)/src/saal/libsaal.a
+-atmsigd_LDADD = $(atmsigd_XTRAS) -lfl
++atmsigd_LDADD = $(atmsigd_XTRAS) 
+ atmsigd_DEPENDENCIES = mess.c $(atmsigd_XTRAS)
+ CLEANFILES = mess.c
+diff -ruN linux-atm-2.4.1/src/sigd/Makefile.in linux-atm-2.4.1.new/src/sigd/Makefile.in
+--- linux-atm-2.4.1/src/sigd/Makefile.in       2003-04-30 16:44:03.000000000 +0200
++++ linux-atm-2.4.1.new/src/sigd/Makefile.in   2005-07-26 14:49:48.000000000 +0200
+@@ -97,7 +97,7 @@
+                       $(top_builddir)/src/lib/libatm.la \
+                       $(top_builddir)/src/saal/libsaal.a
+-atmsigd_LDADD = $(atmsigd_XTRAS) -lfl
++atmsigd_LDADD = $(atmsigd_XTRAS) 
+ atmsigd_DEPENDENCIES = mess.c $(atmsigd_XTRAS)
+ CLEANFILES = mess.c
+diff -ruN linux-atm-2.4.1/src/switch/debug/debug.c linux-atm-2.4.1.new/src/switch/debug/debug.c
+--- linux-atm-2.4.1/src/switch/debug/debug.c   2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1.new/src/switch/debug/debug.c       2005-07-26 22:06:53.000000000 +0200
+@@ -20,6 +20,11 @@
+ #define PRV(call) ((FAB *) (call)->fab)
++int yywrap(void)
++{
++        return 1;
++}
++
+ typedef struct _fab {
+     CALL *next; /* relay.c may not keep track of calls, but WE are */
+diff -ruN linux-atm-2.4.1/src/switch/debug/Makefile.am linux-atm-2.4.1.new/src/switch/debug/Makefile.am
+--- linux-atm-2.4.1/src/switch/debug/Makefile.am       2001-10-04 23:17:26.000000000 +0200
++++ linux-atm-2.4.1.new/src/switch/debug/Makefile.am   2005-07-26 14:50:03.000000000 +0200
+@@ -5,7 +5,7 @@
+ sw_debug_SOURCES = debug.c
+ sw_debug_XTRAS = $(top_builddir)/src/switch/libsw.a \
+                       $(top_builddir)/src/lib/libatm.la
+-sw_debug_LDADD = $(sw_debug_XTRAS) -lfl
++sw_debug_LDADD = $(sw_debug_XTRAS) 
+                       
+ sw_debug_DEPENDENCIES = $(sw_debug_XTRAS)
+diff -ruN linux-atm-2.4.1/src/switch/debug/Makefile.in linux-atm-2.4.1.new/src/switch/debug/Makefile.in
+--- linux-atm-2.4.1/src/switch/debug/Makefile.in       2003-04-30 16:44:13.000000000 +0200
++++ linux-atm-2.4.1.new/src/switch/debug/Makefile.in   2005-07-26 14:50:08.000000000 +0200
+@@ -93,7 +93,7 @@
+ sw_debug_XTRAS = $(top_builddir)/src/switch/libsw.a \
+                       $(top_builddir)/src/lib/libatm.la
+-sw_debug_LDADD = $(sw_debug_XTRAS) -lfl
++sw_debug_LDADD = $(sw_debug_XTRAS) 
+ sw_debug_DEPENDENCIES = $(sw_debug_XTRAS)
+diff -ruN linux-atm-2.4.1/src/switch/tcp/Makefile.am linux-atm-2.4.1.new/src/switch/tcp/Makefile.am
+--- linux-atm-2.4.1/src/switch/tcp/Makefile.am 2001-10-04 23:17:27.000000000 +0200
++++ linux-atm-2.4.1.new/src/switch/tcp/Makefile.am     2005-07-26 14:50:16.000000000 +0200
+@@ -5,7 +5,7 @@
+ sw_tcp_SOURCES = tcpsw.c
+ sw_tcp_XTRAS = $(top_builddir)/src/switch/libsw.a \
+               $(top_builddir)/src/lib/libatm.la
+-sw_tcp_LDADD = $(sw_tcp_XTRAS) -lfl
++sw_tcp_LDADD = $(sw_tcp_XTRAS) 
+ sw_tcp_DEPENDENCIES = $(sw_tcp_XTRAS)
+ EXTRA_DIST = mkfiles README
+diff -ruN linux-atm-2.4.1/src/switch/tcp/Makefile.in linux-atm-2.4.1.new/src/switch/tcp/Makefile.in
+--- linux-atm-2.4.1/src/switch/tcp/Makefile.in 2003-04-30 16:44:14.000000000 +0200
++++ linux-atm-2.4.1.new/src/switch/tcp/Makefile.in     2005-07-26 14:50:19.000000000 +0200
+@@ -93,7 +93,7 @@
+ sw_tcp_XTRAS = $(top_builddir)/src/switch/libsw.a \
+               $(top_builddir)/src/lib/libatm.la
+-sw_tcp_LDADD = $(sw_tcp_XTRAS) -lfl
++sw_tcp_LDADD = $(sw_tcp_XTRAS) 
+ sw_tcp_DEPENDENCIES = $(sw_tcp_XTRAS)
+ EXTRA_DIST = mkfiles README
+diff -ruN linux-atm-2.4.1/src/switch/tcp/tcpsw.c linux-atm-2.4.1.new/src/switch/tcp/tcpsw.c
+--- linux-atm-2.4.1/src/switch/tcp/tcpsw.c     2001-09-03 20:41:06.000000000 +0200
++++ linux-atm-2.4.1.new/src/switch/tcp/tcpsw.c 2005-07-26 22:08:25.000000000 +0200
+@@ -35,6 +35,10 @@
+ #define MAX_PACKET (ATM_MAX_AAL5_PDU+sizeof(struct atmtcp_hdr))
+ #define BUFFER_SIZE (MAX_PACKET*2)
++int yywrap(void)
++{
++        return 1;
++}
+ typedef struct _table {
+     struct _link *out;        /* output port */
+diff -ruN linux-atm-2.4.1/src/test/ispl_l.c linux-atm-2.4.1.new/src/test/ispl_l.c
+--- linux-atm-2.4.1/src/test/ispl_l.c  2003-04-24 21:46:39.000000000 +0200
++++ linux-atm-2.4.1.new/src/test/ispl_l.c      2005-07-26 20:45:19.000000000 +0200
+@@ -11,6 +11,11 @@
+ #include <stdio.h>
+ #include <unistd.h>
++int yywrap(void)
++{
++      return 1;
++}
++
+ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+ #ifdef c_plusplus
+diff -ruN linux-atm-2.4.1/src/test/Makefile.am linux-atm-2.4.1.new/src/test/Makefile.am
+--- linux-atm-2.4.1/src/test/Makefile.am       2001-10-04 23:17:27.000000000 +0200
++++ linux-atm-2.4.1.new/src/test/Makefile.am   2005-07-26 14:49:27.000000000 +0200
+@@ -15,7 +15,7 @@
+ bw_SOURCES = bw.c
+ isp_SOURCES = isp.c isp.h ispl_y.y ispl_l.l
+ isp_XTRAS = $(LDADD)
+-isp_LDADD = $(isp_XTRAS) -lfl
++isp_LDADD = $(isp_XTRAS) 
+ isp_DEPENDENCIES = $(isp_XTRAS) errnos.inc
+ window_SOURCES = window.c
+diff -ruN linux-atm-2.4.1/src/test/Makefile.in linux-atm-2.4.1.new/src/test/Makefile.in
+--- linux-atm-2.4.1/src/test/Makefile.in       2003-04-30 16:43:59.000000000 +0200
++++ linux-atm-2.4.1.new/src/test/Makefile.in   2005-07-26 14:49:32.000000000 +0200
+@@ -102,7 +102,7 @@
+ bw_SOURCES = bw.c
+ isp_SOURCES = isp.c isp.h ispl_y.y ispl_l.l
+ isp_XTRAS = $(LDADD)
+-isp_LDADD = $(isp_XTRAS) -lfl
++isp_LDADD = $(isp_XTRAS) 
+ isp_DEPENDENCIES = $(isp_XTRAS) errnos.inc
+ window_SOURCES = window.c
index 354517f..bed3a81 100644 (file)
@@ -1,6 +1,6 @@
 diff -urN linux.old/drivers/atm/Config.in linux.dev/drivers/atm/Config.in
---- linux.old/drivers/atm/Config.in    2004-08-08 01:26:04.000000000 +0200
-+++ linux.dev/drivers/atm/Config.in    2005-07-10 08:02:01.417115464 +0200
+--- linux.old/drivers/atm/Config.in    2005-08-13 00:39:58.084910600 +0200
++++ linux.dev/drivers/atm/Config.in    2005-08-13 02:47:40.527042336 +0200
 @@ -99,4 +99,10 @@
      bool 'Use S/UNI PHY driver' CONFIG_ATM_HE_USE_SUNI
    fi
@@ -13,8 +13,8 @@ diff -urN linux.old/drivers/atm/Config.in linux.dev/drivers/atm/Config.in
 +fi
  endmenu
 diff -urN linux.old/drivers/atm/Makefile linux.dev/drivers/atm/Makefile
---- linux.old/drivers/atm/Makefile     2005-01-19 15:09:40.000000000 +0100
-+++ linux.dev/drivers/atm/Makefile     2005-07-10 08:02:01.417115464 +0200
+--- linux.old/drivers/atm/Makefile     2005-08-13 00:39:58.085910448 +0200
++++ linux.dev/drivers/atm/Makefile     2005-08-13 02:47:40.527042336 +0200
 @@ -14,6 +14,32 @@
  obj-$(CONFIG_ATM_NICSTAR) += nicstar.o
  obj-$(CONFIG_ATM_IDT77252) += idt77252.o
@@ -50,7 +50,7 @@ diff -urN linux.old/drivers/atm/Makefile linux.dev/drivers/atm/Makefile
  endif
 diff -urN linux.old/drivers/atm/sangam_atm/aal5sar.c linux.dev/drivers/atm/sangam_atm/aal5sar.c
 --- linux.old/drivers/atm/sangam_atm/aal5sar.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/aal5sar.c 2005-07-10 08:02:01.420115008 +0200
++++ linux.dev/drivers/atm/sangam_atm/aal5sar.c 2005-08-13 02:47:40.530041880 +0200
 @@ -0,0 +1,2962 @@
 +
 +/**
@@ -3016,7 +3016,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/aal5sar.c linux.dev/drivers/atm/sanga
 +  }
 diff -urN linux.old/drivers/atm/sangam_atm/aal5sar.h linux.dev/drivers/atm/sangam_atm/aal5sar.h
 --- linux.old/drivers/atm/sangam_atm/aal5sar.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/aal5sar.h 2005-07-10 08:02:01.421114856 +0200
++++ linux.dev/drivers/atm/sangam_atm/aal5sar.h 2005-08-13 02:47:40.531041728 +0200
 @@ -0,0 +1,198 @@
 +/**@file************************************************************************
 + *  TNETDxxxx Software Support
@@ -3218,7 +3218,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/aal5sar.h linux.dev/drivers/atm/sanga
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpaal5.c linux.dev/drivers/atm/sangam_atm/cpcommon_cpaal5.c
 --- linux.old/drivers/atm/sangam_atm/cpcommon_cpaal5.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpaal5.c 2005-07-10 08:02:01.422114704 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpaal5.c 2005-08-13 02:47:40.532041576 +0200
 @@ -0,0 +1,728 @@
 +#ifndef _INC_CPCOMMON_C
 +#define _INC_CPCOMMON_C
@@ -3950,7 +3950,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpaal5.c linux.dev/drivers/a
 +#endif  /* _INC  */
 diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpaal5.h linux.dev/drivers/atm/sangam_atm/cpcommon_cpaal5.h
 --- linux.old/drivers/atm/sangam_atm/cpcommon_cpaal5.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpaal5.h 2005-07-10 08:02:01.422114704 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpaal5.h 2005-08-13 02:47:40.532041576 +0200
 @@ -0,0 +1,79 @@
 +#ifndef _INC_CPCOMMON_H
 +#define _INC_CPCOMMON_H
@@ -4033,7 +4033,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpaal5.h linux.dev/drivers/a
 +
 diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpsar.c linux.dev/drivers/atm/sangam_atm/cpcommon_cpsar.c
 --- linux.old/drivers/atm/sangam_atm/cpcommon_cpsar.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpsar.c  2005-07-10 08:02:01.423114552 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpsar.c  2005-08-13 02:47:40.533041424 +0200
 @@ -0,0 +1,728 @@
 +#ifndef _INC_CPCOMMON_C
 +#define _INC_CPCOMMON_C
@@ -4765,7 +4765,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpsar.c linux.dev/drivers/at
 +#endif  /* _INC  */
 diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpsar.h linux.dev/drivers/atm/sangam_atm/cpcommon_cpsar.h
 --- linux.old/drivers/atm/sangam_atm/cpcommon_cpsar.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpsar.h  2005-07-10 08:02:01.423114552 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpcommon_cpsar.h  2005-08-13 02:47:40.533041424 +0200
 @@ -0,0 +1,79 @@
 +#ifndef _INC_CPCOMMON_H
 +#define _INC_CPCOMMON_H
@@ -4848,7 +4848,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpcommon_cpsar.h linux.dev/drivers/at
 +
 diff -urN linux.old/drivers/atm/sangam_atm/cppi_cpaal5.c linux.dev/drivers/atm/sangam_atm/cppi_cpaal5.c
 --- linux.old/drivers/atm/sangam_atm/cppi_cpaal5.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cppi_cpaal5.c     2005-07-10 08:02:01.425114248 +0200
++++ linux.dev/drivers/atm/sangam_atm/cppi_cpaal5.c     2005-08-13 02:47:40.535041120 +0200
 @@ -0,0 +1,1483 @@
 +/*************************************************************************
 + *  TNETDxxxx Software Support
@@ -6335,7 +6335,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cppi_cpaal5.c linux.dev/drivers/atm/s
 +  }
 diff -urN linux.old/drivers/atm/sangam_atm/cpremap_cpaal5.c linux.dev/drivers/atm/sangam_atm/cpremap_cpaal5.c
 --- linux.old/drivers/atm/sangam_atm/cpremap_cpaal5.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpremap_cpaal5.c  2005-07-10 08:02:01.425114248 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpremap_cpaal5.c  2005-08-13 02:47:40.535041120 +0200
 @@ -0,0 +1,27 @@
 +#ifndef _INC_CPREMAP_C
 +#define _INC_CPREMAP_C
@@ -6366,7 +6366,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpremap_cpaal5.c linux.dev/drivers/at
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/cpremap_cpsar.c linux.dev/drivers/atm/sangam_atm/cpremap_cpsar.c
 --- linux.old/drivers/atm/sangam_atm/cpremap_cpsar.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpremap_cpsar.c   2005-07-10 08:02:01.426114096 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpremap_cpsar.c   2005-08-13 02:47:40.535041120 +0200
 @@ -0,0 +1,27 @@
 +#ifndef _INC_CPREMAP_C
 +#define _INC_CPREMAP_C
@@ -6397,7 +6397,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpremap_cpsar.c linux.dev/drivers/atm
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/cpsar.c linux.dev/drivers/atm/sangam_atm/cpsar.c
 --- linux.old/drivers/atm/sangam_atm/cpsar.c   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpsar.c   2005-07-10 08:02:01.427113944 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpsar.c   2005-08-13 02:47:40.536040968 +0200
 @@ -0,0 +1,881 @@
 +/**
 + *  cpsar.c
@@ -7282,7 +7282,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpsar.c linux.dev/drivers/atm/sangam_
 +  }
 diff -urN linux.old/drivers/atm/sangam_atm/cpsar_cpaal5.h linux.dev/drivers/atm/sangam_atm/cpsar_cpaal5.h
 --- linux.old/drivers/atm/sangam_atm/cpsar_cpaal5.h    1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpsar_cpaal5.h    2005-07-10 08:02:01.427113944 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpsar_cpaal5.h    2005-08-13 02:47:40.536040968 +0200
 @@ -0,0 +1,103 @@
 +/*******************************************************************************
 + *  TNETDxxxx Software Support
@@ -7389,7 +7389,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpsar_cpaal5.h linux.dev/drivers/atm/
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/cpsar.h linux.dev/drivers/atm/sangam_atm/cpsar.h
 --- linux.old/drivers/atm/sangam_atm/cpsar.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpsar.h   2005-07-10 08:02:01.427113944 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpsar.h   2005-08-13 02:47:40.536040968 +0200
 @@ -0,0 +1,103 @@
 +/*******************************************************************************
 + *  TNETDxxxx Software Support
@@ -7496,7 +7496,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpsar.h linux.dev/drivers/atm/sangam_
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/cp_sar_reg.h linux.dev/drivers/atm/sangam_atm/cp_sar_reg.h
 --- linux.old/drivers/atm/sangam_atm/cp_sar_reg.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cp_sar_reg.h      2005-07-10 08:02:01.428113792 +0200
++++ linux.dev/drivers/atm/sangam_atm/cp_sar_reg.h      2005-08-13 02:47:40.537040816 +0200
 @@ -0,0 +1,217 @@
 +/***************************************************************************
 +        TNETD73xx Software Support
@@ -7717,7 +7717,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cp_sar_reg.h linux.dev/drivers/atm/sa
 +#endif _INC_SAR_REG
 diff -urN linux.old/drivers/atm/sangam_atm/cpswhal_cpaal5.h linux.dev/drivers/atm/sangam_atm/cpswhal_cpaal5.h
 --- linux.old/drivers/atm/sangam_atm/cpswhal_cpaal5.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpswhal_cpaal5.h  2005-07-10 08:02:01.429113640 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpswhal_cpaal5.h  2005-08-13 02:47:40.538040664 +0200
 @@ -0,0 +1,629 @@
 +/************************************************************************
 + *  TNETDxxxx Software Support
@@ -8350,7 +8350,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpswhal_cpaal5.h linux.dev/drivers/at
 +#endif  /*  end of _INC_    */
 diff -urN linux.old/drivers/atm/sangam_atm/cpswhal_cpsar.h linux.dev/drivers/atm/sangam_atm/cpswhal_cpsar.h
 --- linux.old/drivers/atm/sangam_atm/cpswhal_cpsar.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/cpswhal_cpsar.h   2005-07-10 08:02:01.430113488 +0200
++++ linux.dev/drivers/atm/sangam_atm/cpswhal_cpsar.h   2005-08-13 02:47:40.539040512 +0200
 @@ -0,0 +1,629 @@
 +/************************************************************************
 + *  TNETDxxxx Software Support
@@ -8983,7 +8983,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/cpswhal_cpsar.h linux.dev/drivers/atm
 +#endif  /*  end of _INC_    */
 diff -urN linux.old/drivers/atm/sangam_atm/dev_host_interface.h linux.dev/drivers/atm/sangam_atm/dev_host_interface.h
 --- linux.old/drivers/atm/sangam_atm/dev_host_interface.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dev_host_interface.h      2005-07-10 08:02:01.432113184 +0200
++++ linux.dev/drivers/atm/sangam_atm/dev_host_interface.h      2005-08-13 02:47:40.540040360 +0200
 @@ -0,0 +1,1162 @@
 +#ifndef __DEV_HOST_INTERFACE_H__
 +#define __DEV_HOST_INTERFACE_H__ 1
@@ -10149,7 +10149,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dev_host_interface.h linux.dev/driver
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/dev_host_verdef.h linux.dev/drivers/atm/sangam_atm/dev_host_verdef.h
 --- linux.old/drivers/atm/sangam_atm/dev_host_verdef.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dev_host_verdef.h 2005-07-10 08:02:01.432113184 +0200
++++ linux.dev/drivers/atm/sangam_atm/dev_host_verdef.h 2005-08-13 02:47:40.541040208 +0200
 @@ -0,0 +1,102 @@
 +#ifndef __DEV_HOST_VERDEF_H__
 +#define __DEV_HOST_VERDEF_H__ 1
@@ -10255,7 +10255,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dev_host_verdef.h linux.dev/drivers/a
 +#endif // __DEV_HOST_VERDEF_H__
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_api.c linux.dev/drivers/atm/sangam_atm/dsl_hal_api.c
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_api.c     1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_api.c     2005-07-10 08:02:01.436112576 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_api.c     2005-08-13 02:47:40.545039600 +0200
 @@ -0,0 +1,3339 @@
 +/*******************************************************************************
 +* FILE PURPOSE:     DSL Driver API functions for Sangam
@@ -13598,7 +13598,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_api.c linux.dev/drivers/atm/s
 +
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_api.h linux.dev/drivers/atm/sangam_atm/dsl_hal_api.h
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_api.h     1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_api.h     2005-07-10 08:02:01.438112272 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_api.h     2005-08-13 02:47:40.552038536 +0200
 @@ -0,0 +1,1721 @@
 +#ifndef __DSL_HAL_API_H__
 +#define __DSL_HAL_API_H__ 1
@@ -15323,7 +15323,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_api.h linux.dev/drivers/atm/s
 +#endif /* pairs #ifndef __DSL_APPLICATION_INTERFACE_H__ */
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_logtable.h linux.dev/drivers/atm/sangam_atm/dsl_hal_logtable.h
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_logtable.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_logtable.h        2005-07-10 08:02:01.439112120 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_logtable.h        2005-08-13 02:47:40.574035192 +0200
 @@ -0,0 +1,259 @@
 +unsigned int log10[]=
 +{
@@ -15586,7 +15586,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_logtable.h linux.dev/drivers/
 +    };
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_register.h linux.dev/drivers/atm/sangam_atm/dsl_hal_register.h
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_register.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_register.h        2005-07-10 08:02:01.440111968 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_register.h        2005-08-13 02:47:40.574035192 +0200
 @@ -0,0 +1,337 @@
 +#ifndef ___DSL_REGISTER_DEFINES_H___
 +#define ___DSL_REGISTER_DEFINES_H___ 1
@@ -15927,7 +15927,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_register.h linux.dev/drivers/
 +#endif /* pairs #ifndef ___DSL_REGISTER_DEFINES_H___ */
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_support.c linux.dev/drivers/atm/sangam_atm/dsl_hal_support.c
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_support.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_support.c 2005-07-10 08:02:01.443111512 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_support.c 2005-08-13 02:47:40.578034584 +0200
 @@ -0,0 +1,2788 @@
 +/*******************************************************************************
 +* FILE PURPOSE:     DSL Driver API functions for Sangam
@@ -18719,7 +18719,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_support.c linux.dev/drivers/a
 +} /* end of dslhal_support_byteSwap32() */
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_support.h linux.dev/drivers/atm/sangam_atm/dsl_hal_support.h
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_support.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_support.h 2005-07-10 08:02:01.444111360 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_support.h 2005-08-13 02:47:40.579034432 +0200
 @@ -0,0 +1,718 @@
 +#ifndef DSL_HAL_SUPPORT_H__
 +#define DSL_HAL_SUPPORT_H__ 1
@@ -19441,7 +19441,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_support.h linux.dev/drivers/a
 +#endif /* Pairs #ifndef DSL_HAL_FUNCTIONDEFINES_H__ */
 diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_version.h linux.dev/drivers/atm/sangam_atm/dsl_hal_version.h
 --- linux.old/drivers/atm/sangam_atm/dsl_hal_version.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/dsl_hal_version.h 2005-07-10 08:02:01.444111360 +0200
++++ linux.dev/drivers/atm/sangam_atm/dsl_hal_version.h 2005-08-13 02:47:40.579034432 +0200
 @@ -0,0 +1,94 @@
 +#ifndef __SYSSW_VERSION_H__
 +#define __SYSSW_VERSION_H__ 1
@@ -19539,7 +19539,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/dsl_hal_version.h linux.dev/drivers/a
 +#endif /* pairs with #ifndef __SYSSW_VERSION_H__ */
 diff -urN linux.old/drivers/atm/sangam_atm/ec_errors_cpaal5.h linux.dev/drivers/atm/sangam_atm/ec_errors_cpaal5.h
 --- linux.old/drivers/atm/sangam_atm/ec_errors_cpaal5.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/ec_errors_cpaal5.h        2005-07-10 08:02:01.445111208 +0200
++++ linux.dev/drivers/atm/sangam_atm/ec_errors_cpaal5.h        2005-08-13 02:47:40.760006920 +0200
 @@ -0,0 +1,118 @@
 +/***************************************************************************
 + Copyright(c) 2001, Texas Instruments Incorporated. All Rights Reserved.
@@ -19661,7 +19661,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/ec_errors_cpaal5.h linux.dev/drivers/
 +#endif /* _INC_EC_ERRORS */
 diff -urN linux.old/drivers/atm/sangam_atm/ec_errors_cpsar.h linux.dev/drivers/atm/sangam_atm/ec_errors_cpsar.h
 --- linux.old/drivers/atm/sangam_atm/ec_errors_cpsar.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/ec_errors_cpsar.h 2005-07-10 08:02:01.445111208 +0200
++++ linux.dev/drivers/atm/sangam_atm/ec_errors_cpsar.h 2005-08-13 02:47:40.761006768 +0200
 @@ -0,0 +1,118 @@
 +/***************************************************************************
 + Copyright(c) 2001, Texas Instruments Incorporated. All Rights Reserved.
@@ -19783,7 +19783,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/ec_errors_cpsar.h linux.dev/drivers/a
 +#endif /* _INC_EC_ERRORS */
 diff -urN linux.old/drivers/atm/sangam_atm/env_def_defines.h linux.dev/drivers/atm/sangam_atm/env_def_defines.h
 --- linux.old/drivers/atm/sangam_atm/env_def_defines.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/env_def_defines.h 2005-07-10 08:02:01.446111056 +0200
++++ linux.dev/drivers/atm/sangam_atm/env_def_defines.h 2005-08-13 02:47:40.762006616 +0200
 @@ -0,0 +1,926 @@
 +#ifndef __ENV_DEF_DEFINES_H__
 +#define __ENV_DEF_DEFINES_H__ 1
@@ -20713,7 +20713,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/env_def_defines.h linux.dev/drivers/a
 +
 diff -urN linux.old/drivers/atm/sangam_atm/env_def_typedefs.h linux.dev/drivers/atm/sangam_atm/env_def_typedefs.h
 --- linux.old/drivers/atm/sangam_atm/env_def_typedefs.h        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/env_def_typedefs.h        2005-07-10 08:02:01.447110904 +0200
++++ linux.dev/drivers/atm/sangam_atm/env_def_typedefs.h        2005-08-13 02:47:40.763006464 +0200
 @@ -0,0 +1,228 @@
 +#ifndef __ENV_DEF_TYPEDEFS_H__
 +#define __ENV_DEF_TYPEDEFS_H__ 1
@@ -20945,7 +20945,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/env_def_typedefs.h linux.dev/drivers/
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/Makefile linux.dev/drivers/atm/sangam_atm/Makefile
 --- linux.old/drivers/atm/sangam_atm/Makefile  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/Makefile  2005-07-10 08:02:01.448110752 +0200
++++ linux.dev/drivers/atm/sangam_atm/Makefile  2005-08-13 02:47:40.763006464 +0200
 @@ -0,0 +1,35 @@
 +# File: drivers/net/avalanche_cpmac/Makefile
 +#
@@ -20984,7 +20984,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/Makefile linux.dev/drivers/atm/sangam
 +      rm -f core *.o *.a *.s
 diff -urN linux.old/drivers/atm/sangam_atm/queue.h linux.dev/drivers/atm/sangam_atm/queue.h
 --- linux.old/drivers/atm/sangam_atm/queue.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/queue.h   2005-07-10 08:02:01.448110752 +0200
++++ linux.dev/drivers/atm/sangam_atm/queue.h   2005-08-13 02:47:40.763006464 +0200
 @@ -0,0 +1,167 @@
 +
 +#if !defined( __QUEUE_H__ )
@@ -21155,7 +21155,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/queue.h linux.dev/drivers/atm/sangam_
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/release.txt linux.dev/drivers/atm/sangam_atm/release.txt
 --- linux.old/drivers/atm/sangam_atm/release.txt       1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/release.txt       2005-07-10 08:02:01.449110600 +0200
++++ linux.dev/drivers/atm/sangam_atm/release.txt       2005-08-13 02:47:40.764006312 +0200
 @@ -0,0 +1,118 @@
 +This is release notes for AR7 Linux ATM driver.
 +
@@ -21277,7 +21277,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/release.txt linux.dev/drivers/atm/san
 +   
 diff -urN linux.old/drivers/atm/sangam_atm/syssw_version.h linux.dev/drivers/atm/sangam_atm/syssw_version.h
 --- linux.old/drivers/atm/sangam_atm/syssw_version.h   1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/syssw_version.h   2005-07-10 08:02:01.449110600 +0200
++++ linux.dev/drivers/atm/sangam_atm/syssw_version.h   2005-08-13 02:47:40.764006312 +0200
 @@ -0,0 +1,94 @@
 +#ifndef __SYSSW_VERSION_H__
 +#define __SYSSW_VERSION_H__ 1
@@ -21375,7 +21375,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/syssw_version.h linux.dev/drivers/atm
 +#endif /* pairs with #ifndef __SYSSW_VERSION_H__ */
 diff -urN linux.old/drivers/atm/sangam_atm/tn7api.h linux.dev/drivers/atm/sangam_atm/tn7api.h
 --- linux.old/drivers/atm/sangam_atm/tn7api.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/tn7api.h  2005-07-10 08:02:01.450110448 +0200
++++ linux.dev/drivers/atm/sangam_atm/tn7api.h  2005-08-13 02:47:40.764006312 +0200
 @@ -0,0 +1,54 @@
 +/* 
 + *    Tnetd73xx ATM driver.
@@ -21433,7 +21433,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/tn7api.h linux.dev/drivers/atm/sangam
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/tn7atm.c linux.dev/drivers/atm/sangam_atm/tn7atm.c
 --- linux.old/drivers/atm/sangam_atm/tn7atm.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/tn7atm.c  2005-07-10 19:35:40.033466344 +0200
++++ linux.dev/drivers/atm/sangam_atm/tn7atm.c  2005-08-13 02:47:40.766006008 +0200
 @@ -0,0 +1,1212 @@
 +/* 
 + *   tn7.c
@@ -22649,7 +22649,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/tn7atm.c linux.dev/drivers/atm/sangam
 +#endif /* MODULE */
 diff -urN linux.old/drivers/atm/sangam_atm/tn7atm.h linux.dev/drivers/atm/sangam_atm/tn7atm.h
 --- linux.old/drivers/atm/sangam_atm/tn7atm.h  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/tn7atm.h  2005-07-10 08:02:01.452110144 +0200
++++ linux.dev/drivers/atm/sangam_atm/tn7atm.h  2005-08-13 02:47:40.766006008 +0200
 @@ -0,0 +1,115 @@
 +/* 
 + *    Tnetd73xx ATM driver.
@@ -22768,7 +22768,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/tn7atm.h linux.dev/drivers/atm/sangam
 +#endif
 diff -urN linux.old/drivers/atm/sangam_atm/tn7dsl.c linux.dev/drivers/atm/sangam_atm/tn7dsl.c
 --- linux.old/drivers/atm/sangam_atm/tn7dsl.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/tn7dsl.c  2005-07-10 08:27:39.683263464 +0200
++++ linux.dev/drivers/atm/sangam_atm/tn7dsl.c  2005-08-13 02:47:40.768005704 +0200
 @@ -0,0 +1,1778 @@
 +/* 
 + *  $Id$
@@ -24550,7 +24550,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/tn7dsl.c linux.dev/drivers/atm/sangam
 +
 diff -urN linux.old/drivers/atm/sangam_atm/tn7sar.c linux.dev/drivers/atm/sangam_atm/tn7sar.c
 --- linux.old/drivers/atm/sangam_atm/tn7sar.c  1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/tn7sar.c  2005-07-10 08:02:01.454109840 +0200
++++ linux.dev/drivers/atm/sangam_atm/tn7sar.c  2005-08-13 02:47:40.769005552 +0200
 @@ -0,0 +1,1376 @@
 +/******************************************************************************
 + * FILE PURPOSE:    OS files for CPSAR
@@ -25930,7 +25930,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/tn7sar.c linux.dev/drivers/atm/sangam
 +}
 diff -urN linux.old/drivers/atm/sangam_atm/tnetd7300_sar_firm.h linux.dev/drivers/atm/sangam_atm/tnetd7300_sar_firm.h
 --- linux.old/drivers/atm/sangam_atm/tnetd7300_sar_firm.h      1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/tnetd7300_sar_firm.h      2005-07-10 08:02:01.456109536 +0200
++++ linux.dev/drivers/atm/sangam_atm/tnetd7300_sar_firm.h      2005-08-13 02:47:40.771005248 +0200
 @@ -0,0 +1,988 @@
 +//SarPdspFirmware Revision:  49
 +
@@ -26922,7 +26922,7 @@ diff -urN linux.old/drivers/atm/sangam_atm/tnetd7300_sar_firm.h linux.dev/driver
 +                             0x209e0000};
 diff -urN linux.old/drivers/atm/sangam_atm/turbodsl.c linux.dev/drivers/atm/sangam_atm/turbodsl.c
 --- linux.old/drivers/atm/sangam_atm/turbodsl.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux.dev/drivers/atm/sangam_atm/turbodsl.c        2005-07-10 08:02:01.456109536 +0200
++++ linux.dev/drivers/atm/sangam_atm/turbodsl.c        2005-08-13 02:47:40.771005248 +0200
 @@ -0,0 +1,223 @@
 +
 +
@@ -27148,8 +27148,8 @@ diff -urN linux.old/drivers/atm/sangam_atm/turbodsl.c linux.dev/drivers/atm/sang
 +
 +  
 diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
---- linux.old/include/linux/atmdev.h   2004-08-08 01:26:06.000000000 +0200
-+++ linux.dev/include/linux/atmdev.h   2005-07-10 08:02:01.476106496 +0200
+--- linux.old/include/linux/atmdev.h   2005-08-13 00:39:58.131903456 +0200
++++ linux.dev/include/linux/atmdev.h   2005-08-13 03:25:29.311134728 +0200
 @@ -30,6 +30,9 @@
  #define ATM_DS3_PCR   (8000*12)
                        /* DS3: 12 cells in a 125 usec time slot */
@@ -27189,11 +27189,8 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
        short           vpi;            /* VPI and VCI (types must be equal */
                                        /* with sockaddr) */
        int             vci;
-@@ -285,20 +292,31 @@
-       struct atm_dev  *dev;           /* device back pointer */
-       struct atm_qos  qos;            /* QOS */
+@@ -287,18 +294,28 @@
        struct atm_sap  sap;            /* SAP */
-+      atomic_t        tx_inuse,rx_inuse; /* buffer space in use */
        void (*push)(struct atm_vcc *vcc,struct sk_buff *skb);
        void (*pop)(struct atm_vcc *vcc,struct sk_buff *skb); /* optional */
 +      struct sk_buff *(*alloc_tx)(struct atm_vcc *vcc,unsigned int size);
@@ -27221,7 +27218,7 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
        int             reply;          /* also used by ATMTCP */
        /* Multipoint part ------------------------------------------------- */
        struct atm_vcc  *session;       /* session VCC descriptor */
-@@ -324,6 +342,8 @@
+@@ -324,6 +341,8 @@
                                        /* (NULL) */
        const char      *type;          /* device type name */
        int             number;         /* device index */
@@ -27230,7 +27227,7 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
        void            *dev_data;      /* per-device data */
        void            *phy_data;      /* private PHY date */
        atm_dev_flags_t flags;          /* device flags (ATM_DF_*) */
-@@ -333,13 +353,15 @@
+@@ -333,13 +352,15 @@
        struct k_atm_dev_stats stats;   /* statistics */
        char            signal;         /* signal status (ATM_PHY_SIG_*) */
        int             link_rate;      /* link rate (default: OC3) */
@@ -27249,7 +27246,7 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
  };
  
  
-@@ -375,6 +397,8 @@
+@@ -375,6 +396,8 @@
        void (*feedback)(struct atm_vcc *vcc,struct sk_buff *skb,
            unsigned long start,unsigned long dest,int len);
        int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
@@ -27258,7 +27255,7 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
        int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
        struct module *owner;
  };
-@@ -389,6 +413,7 @@
+@@ -389,6 +412,7 @@
  
  struct atm_skb_data {
        struct atm_vcc  *vcc;           /* ATM VCC */
@@ -27266,56 +27263,479 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
        unsigned long   atm_options;    /* ATM layer options */
  };
  
-@@ -399,11 +424,10 @@
- struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
-     int number,atm_dev_flags_t *flags); /* number == -1: pick first available */
--struct atm_dev *atm_dev_lookup(int number);
-+struct atm_dev *atm_find_dev(int number);
- void atm_dev_deregister(struct atm_dev *dev);
+@@ -404,7 +428,7 @@
  void shutdown_atm_dev(struct atm_dev *dev);
--void vcc_insert_socket(struct sock *sk);
--void vcc_remove_socket(struct sock *sk);
+ void vcc_insert_socket(struct sock *sk);
+ void vcc_remove_socket(struct sock *sk);
+-
 +void bind_vcc(struct atm_vcc *vcc,struct atm_dev *dev);
  
  /*
-@@ -411,54 +435,52 @@
-  *
-  */
--static inline int atm_guess_pdu2truesize(int size)
+  * This is approximately the algorithm used by alloc_skb.
+diff -urN linux.old/include/linux/atmdev.h.orig linux.dev/include/linux/atmdev.h.orig
+--- linux.old/include/linux/atmdev.h.orig      1970-01-01 01:00:00.000000000 +0100
++++ linux.dev/include/linux/atmdev.h.orig      2005-08-13 03:18:36.129947816 +0200
+@@ -0,0 +1,485 @@
++/* atmdev.h - ATM device driver declarations and various related items */
++ 
++/* Written 1995-2000 by Werner Almesberger, EPFL LRC/ICA */
++ 
++
++#ifndef LINUX_ATMDEV_H
++#define LINUX_ATMDEV_H
++
++
++#include <linux/config.h>
++#include <linux/atmapi.h>
++#include <linux/atm.h>
++#include <linux/atmioc.h>
++
++
++#define ESI_LEN               6
++
++#define ATM_OC3_PCR   (155520000/270*260/8/53)
++                      /* OC3 link rate:  155520000 bps
++                         SONET overhead: /270*260 (9 section, 1 path)
++                         bits per cell:  /8/53
++                         max cell rate:  353207.547 cells/sec */
++#define ATM_25_PCR    ((25600000/8-8000)/54)
++                      /* 25 Mbps ATM cell rate (59111) */
++#define ATM_OC12_PCR  (622080000/1080*1040/8/53)
++                      /* OC12 link rate: 622080000 bps
++                         SONET overhead: /1080*1040
++                         bits per cell:  /8/53
++                         max cell rate:  1412830.188 cells/sec */
++#define ATM_DS3_PCR   (8000*12)
++                      /* DS3: 12 cells in a 125 usec time slot */
++
++#define ATM_PDU_OVHD  0       /* number of bytes to charge against buffer
++                                 quota per PDU */
++
++#define ATM_SD(s)     ((s)->sk->protinfo.af_atm)
++
++
++#define __AAL_STAT_ITEMS \
++    __HANDLE_ITEM(tx);                        /* TX okay */ \
++    __HANDLE_ITEM(tx_err);            /* TX errors */ \
++    __HANDLE_ITEM(rx);                        /* RX okay */ \
++    __HANDLE_ITEM(rx_err);            /* RX errors */ \
++    __HANDLE_ITEM(rx_drop);           /* RX out of memory */
++
++struct atm_aal_stats {
++#define __HANDLE_ITEM(i) int i
++      __AAL_STAT_ITEMS
++#undef __HANDLE_ITEM
++};
++
++
++struct atm_dev_stats {
++      struct atm_aal_stats aal0;
++      struct atm_aal_stats aal34;
++      struct atm_aal_stats aal5;
++} __ATM_API_ALIGN;
++
++
++#define ATM_GETLINKRATE       _IOW('a',ATMIOC_ITF+1,struct atmif_sioc)
++                                      /* get link rate */
++#define ATM_GETNAMES  _IOW('a',ATMIOC_ITF+3,struct atm_iobuf)
++                                      /* get interface names (numbers) */
++#define ATM_GETTYPE   _IOW('a',ATMIOC_ITF+4,struct atmif_sioc)
++                                      /* get interface type name */
++#define ATM_GETESI    _IOW('a',ATMIOC_ITF+5,struct atmif_sioc)
++                                      /* get interface ESI */
++#define ATM_GETADDR   _IOW('a',ATMIOC_ITF+6,struct atmif_sioc)
++                                      /* get itf's local ATM addr. list */
++#define ATM_RSTADDR   _IOW('a',ATMIOC_ITF+7,struct atmif_sioc)
++                                      /* reset itf's ATM address list */
++#define ATM_ADDADDR   _IOW('a',ATMIOC_ITF+8,struct atmif_sioc)
++                                      /* add a local ATM address */
++#define ATM_DELADDR   _IOW('a',ATMIOC_ITF+9,struct atmif_sioc)
++                                      /* remove a local ATM address */
++#define ATM_GETCIRANGE        _IOW('a',ATMIOC_ITF+10,struct atmif_sioc)
++                                      /* get connection identifier range */
++#define ATM_SETCIRANGE        _IOW('a',ATMIOC_ITF+11,struct atmif_sioc)
++                                      /* set connection identifier range */
++#define ATM_SETESI    _IOW('a',ATMIOC_ITF+12,struct atmif_sioc)
++                                      /* set interface ESI */
++#define ATM_SETESIF   _IOW('a',ATMIOC_ITF+13,struct atmif_sioc)
++                                      /* force interface ESI */
++#define ATM_GETSTAT   _IOW('a',ATMIOC_SARCOM+0,struct atmif_sioc)
++                                      /* get AAL layer statistics */
++#define ATM_GETSTATZ  _IOW('a',ATMIOC_SARCOM+1,struct atmif_sioc)
++                                      /* get AAL layer statistics and zero */
++#define ATM_GETLOOP   _IOW('a',ATMIOC_SARCOM+2,struct atmif_sioc)
++                                      /* get loopback mode */
++#define ATM_SETLOOP   _IOW('a',ATMIOC_SARCOM+3,struct atmif_sioc)
++                                      /* set loopback mode */
++#define ATM_QUERYLOOP _IOW('a',ATMIOC_SARCOM+4,struct atmif_sioc)
++                                      /* query supported loopback modes */
++#define ATM_SETSC     _IOW('a',ATMIOC_SPECIAL+1,int)
++                                      /* enable or disable single-copy */
++#define ATM_SETBACKEND        _IOW('a',ATMIOC_SPECIAL+2,atm_backend_t)
++                                      /* set backend handler */
++#define ATM_NEWBACKENDIF _IOW('a',ATMIOC_SPECIAL+3,atm_backend_t)
++                                      /* use backend to make new if */
++#define ATM_STOPTX      _IOW('a',ATMIOC_SPECIAL+4,struct atmif_sioc)
++                                      /* Stop Tx on Sangam DSL */
++/*
++ * These are backend handkers that can be set via the ATM_SETBACKEND call
++ * above.  In the future we may support dynamic loading of these - for now,
++ * they're just being used to share the ATMIOC_BACKEND ioctls
++ */
++#define ATM_BACKEND_RAW               0       
++#define ATM_BACKEND_PPP               1       /* PPPoATM - RFC2364 */
++#define ATM_BACKEND_BR2684    2       /* Bridged RFC1483/2684 */
++
++/* for ATM_GETTYPE */
++#define ATM_ITFTYP_LEN        8       /* maximum length of interface type name */
++
++/*
++ * Loopback modes for ATM_{PHY,SAR}_{GET,SET}LOOP
++ */
++
++/* Point of loopback                          CPU-->SAR-->PHY-->line--> ... */
++#define __ATM_LM_NONE 0       /* no loop back     ^     ^     ^      ^      */
++#define __ATM_LM_AAL  1       /* loop back PDUs --'     |     |      |      */
++#define __ATM_LM_ATM  2       /* loop back ATM cells ---'     |      |      */
++/* RESERVED           4       loop back on PHY side  ---'                   */
++#define __ATM_LM_PHY  8       /* loop back bits (digital) ----'      |      */
++#define __ATM_LM_ANALOG 16    /* loop back the analog signal --------'      */
++
++/* Direction of loopback */
++#define __ATM_LM_MKLOC(n)     ((n))       /* Local (i.e. loop TX to RX) */
++#define __ATM_LM_MKRMT(n)     ((n) << 8)  /* Remote (i.e. loop RX to TX) */
++
++#define __ATM_LM_XTLOC(n)     ((n) & 0xff)
++#define __ATM_LM_XTRMT(n)     (((n) >> 8) & 0xff)
++
++#define ATM_LM_NONE   0       /* no loopback */
++
++#define ATM_LM_LOC_AAL        __ATM_LM_MKLOC(__ATM_LM_AAL)
++#define ATM_LM_LOC_ATM        __ATM_LM_MKLOC(__ATM_LM_ATM)
++#define ATM_LM_LOC_PHY        __ATM_LM_MKLOC(__ATM_LM_PHY)
++#define ATM_LM_LOC_ANALOG __ATM_LM_MKLOC(__ATM_LM_ANALOG)
++
++#define ATM_LM_RMT_AAL        __ATM_LM_MKRMT(__ATM_LM_AAL)
++#define ATM_LM_RMT_ATM        __ATM_LM_MKRMT(__ATM_LM_ATM)
++#define ATM_LM_RMT_PHY        __ATM_LM_MKRMT(__ATM_LM_PHY)
++#define ATM_LM_RMT_ANALOG __ATM_LM_MKRMT(__ATM_LM_ANALOG)
++
++/*
++ * Note: ATM_LM_LOC_* and ATM_LM_RMT_* can be combined, provided that
++ * __ATM_LM_XTLOC(x) <= __ATM_LM_XTRMT(x)
++ */
++
++
++struct atm_iobuf {
++      int length;
++      void *buffer;
++};
++
++/* for ATM_GETCIRANGE / ATM_SETCIRANGE */
++
++#define ATM_CI_MAX      -1              /* use maximum range of VPI/VCI */
++ 
++struct atm_cirange {
++      char    vpi_bits;               /* 1..8, ATM_CI_MAX (-1) for maximum */
++      char    vci_bits;               /* 1..16, ATM_CI_MAX (-1) for maximum */
++};
++
++/* for ATM_SETSC; actually taken from the ATM_VF number space */
++
++#define ATM_SC_RX     1024            /* enable RX single-copy */
++#define ATM_SC_TX     2048            /* enable TX single-copy */
++
++#define ATM_BACKLOG_DEFAULT 32 /* if we get more, we're likely to time out
++                                anyway */
++
++/* MF: change_qos (Modify) flags */
++
++#define ATM_MF_IMMED   1      /* Block until change is effective */
++#define ATM_MF_INC_RSV         2      /* Change reservation on increase */
++#define ATM_MF_INC_SHP         4      /* Change shaping on increase */
++#define ATM_MF_DEC_RSV         8      /* Change reservation on decrease */
++#define ATM_MF_DEC_SHP        16      /* Change shaping on decrease */
++#define ATM_MF_BWD    32      /* Set the backward direction parameters */
++
++#define ATM_MF_SET    (ATM_MF_INC_RSV | ATM_MF_INC_SHP | ATM_MF_DEC_RSV | \
++                        ATM_MF_DEC_SHP | ATM_MF_BWD)
++
++/*
++ * ATM_VS_* are used to express VC state in a human-friendly way.
++ */
++
++#define ATM_VS_IDLE   0       /* VC is not used */
++#define ATM_VS_CONNECTED 1    /* VC is connected */
++#define ATM_VS_CLOSING        2       /* VC is closing */
++#define ATM_VS_LISTEN 3       /* VC is listening for incoming setups */
++#define ATM_VS_INUSE  4       /* VC is in use (registered with atmsigd) */
++#define ATM_VS_BOUND  5       /* VC is bound */
++
++#define ATM_VS2TXT_MAP \
++    "IDLE", "CONNECTED", "CLOSING", "LISTEN", "INUSE", "BOUND"
++
++#define ATM_VF2TXT_MAP \
++    "ADDR",   "READY",        "PARTIAL",      "REGIS", \
++    "RELEASED", "HASQOS",     "LISTEN",       "META", \
++    "256",    "512",          "1024",         "2048", \
++    "SESSION",        "HASSAP",       "BOUND",        "CLOSE"
++
++
++#ifndef __KERNEL__
++#undef __AAL_STAT_ITEMS
++#else
++
++#include <linux/sched.h> /* wait_queue_head_t */
++#include <linux/time.h> /* struct timeval */
++#include <linux/net.h>
++#include <linux/skbuff.h> /* struct sk_buff */
++#include <linux/uio.h>
++#include <net/sock.h>
++#include <asm/atomic.h>
++
++#ifdef CONFIG_PROC_FS
++#include <linux/proc_fs.h>
++#endif
++
++
++struct k_atm_aal_stats {
++#define __HANDLE_ITEM(i) atomic_t i
++      __AAL_STAT_ITEMS
++#undef __HANDLE_ITEM
++};
++
++
++struct k_atm_dev_stats {
++      struct k_atm_aal_stats aal0;
++      struct k_atm_aal_stats aal34;
++      struct k_atm_aal_stats aal5;
++};
++
++
++enum {
++      ATM_VF_ADDR,            /* Address is in use. Set by anybody, cleared
++                                 by device driver. */
++      ATM_VF_READY,           /* VC is ready to transfer data. Set by device
++                                 driver, cleared by anybody. */
++      ATM_VF_PARTIAL,         /* resources are bound to PVC (partial PVC
++                                 setup), controlled by socket layer */
++      ATM_VF_REGIS,           /* registered with demon, controlled by SVC
++                                 socket layer */
++      ATM_VF_BOUND,           /* local SAP is set, controlled by SVC socket
++                                 layer */
++      ATM_VF_RELEASED,        /* demon has indicated/requested release,
++                                 controlled by SVC socket layer */
++      ATM_VF_HASQOS,          /* QOS parameters have been set */
++      ATM_VF_LISTEN,          /* socket is used for listening */
++      ATM_VF_META,            /* SVC socket isn't used for normal data
++                                 traffic and doesn't depend on signaling
++                                 to be available */
++      ATM_VF_SESSION,         /* VCC is p2mp session control descriptor */
++      ATM_VF_HASSAP,          /* SAP has been set */
++      ATM_VF_CLOSE,           /* asynchronous close - treat like VF_RELEASED*/
++};
++
++
++#define ATM_VF2VS(flags) \
++    (test_bit(ATM_VF_READY,&(flags)) ? ATM_VS_CONNECTED : \
++     test_bit(ATM_VF_RELEASED,&(flags)) ? ATM_VS_CLOSING : \
++     test_bit(ATM_VF_LISTEN,&(flags)) ? ATM_VS_LISTEN : \
++     test_bit(ATM_VF_REGIS,&(flags)) ? ATM_VS_INUSE : \
++     test_bit(ATM_VF_BOUND,&(flags)) ? ATM_VS_BOUND : ATM_VS_IDLE)
++
++
++enum {
++      ATM_DF_CLOSE,           /* close device when last VCC is closed */
++};
++
++
++#define ATM_PHY_SIG_LOST    0 /* no carrier/light */
++#define ATM_PHY_SIG_UNKNOWN 1 /* carrier/light status is unknown */
++#define ATM_PHY_SIG_FOUND   2 /* carrier/light okay */
++
++#define ATM_ATMOPT_CLP        1       /* set CLP bit */
++
++
++typedef struct { unsigned long bits; } atm_vcc_flags_t;
++
++
++struct atm_vcc {
++      atm_vcc_flags_t flags;          /* VCC flags (ATM_VF_*) */
++      unsigned char   family;         /* address family; 0 if unused */
++      short           vpi;            /* VPI and VCI (types must be equal */
++                                      /* with sockaddr) */
++      int             vci;
++      unsigned long   aal_options;    /* AAL layer options */
++      unsigned long   atm_options;    /* ATM layer options */
++      struct atm_dev  *dev;           /* device back pointer */
++      struct atm_qos  qos;            /* QOS */
++      struct atm_sap  sap;            /* SAP */
++      void (*push)(struct atm_vcc *vcc,struct sk_buff *skb);
++      void (*pop)(struct atm_vcc *vcc,struct sk_buff *skb); /* optional */
++      struct sk_buff *(*alloc_tx)(struct atm_vcc *vcc,unsigned int size);
++                                      /* TX allocation routine - can be */
++                                      /* modified by protocol or by driver.*/
++                                      /* NOTE: this interface will change */
++      int (*push_oam)(struct atm_vcc *vcc,void *cell);
++      int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
++      void            *dev_data;      /* per-device data */
++      void            *proto_data;    /* per-protocol data */
++      struct timeval  timestamp;      /* AAL timestamps */
++      struct sk_buff_head recvq;      /* receive queue */
++      struct k_atm_aal_stats *stats;  /* pointer to AAL stats group */
++      wait_queue_head_t sleep;        /* if socket is busy */
++      struct sock     *sk;            /* socket backpointer */
++      struct atm_vcc  *prev,*next;
++      /* SVC part --- may move later ------------------------------------- */
++      short           itf;            /* interface number */
++      struct sockaddr_atmsvc local;
++      struct sockaddr_atmsvc remote;
++      void (*callback)(struct atm_vcc *vcc);
++      struct sk_buff_head listenq;
++      int             backlog_quota;  /* number of connection requests we */
++                                      /* can still accept */
++      int             reply;          /* also used by ATMTCP */
++      /* Multipoint part ------------------------------------------------- */
++      struct atm_vcc  *session;       /* session VCC descriptor */
++      /* Other stuff ----------------------------------------------------- */
++      void            *user_back;     /* user backlink - not touched by */
++                                      /* native ATM stack. Currently used */
++                                      /* by CLIP and sch_atm. */
++};
++
++
++struct atm_dev_addr {
++      struct sockaddr_atmsvc addr;    /* ATM address */
++      struct atm_dev_addr *next;      /* next address */
++};
++
++
++typedef struct { unsigned int bits; } atm_dev_flags_t;
++
++
++struct atm_dev {
++      const struct atmdev_ops *ops;   /* device operations; NULL if unused */
++      const struct atmphy_ops *phy;   /* PHY operations, may be undefined */
++                                      /* (NULL) */
++      const char      *type;          /* device type name */
++      int             number;         /* device index */
++      struct atm_vcc  *vccs;          /* VCC table (or NULL) */
++      struct atm_vcc  *last;          /* last VCC (or undefined) */
++      void            *dev_data;      /* per-device data */
++      void            *phy_data;      /* private PHY date */
++      atm_dev_flags_t flags;          /* device flags (ATM_DF_*) */
++      struct atm_dev_addr *local;     /* local ATM addresses */
++      unsigned char   esi[ESI_LEN];   /* ESI ("MAC" addr) */
++      struct atm_cirange ci_range;    /* VPI/VCI range */
++      struct k_atm_dev_stats stats;   /* statistics */
++      char            signal;         /* signal status (ATM_PHY_SIG_*) */
++      int             link_rate;      /* link rate (default: OC3) */
++        atomic_t        refcnt;         /* reference count */
++        spinlock_t      lock;           /* protect internal members */
++#ifdef CONFIG_PROC_FS
++      struct proc_dir_entry *proc_entry; /* proc entry */
++      char *proc_name;                /* proc entry name */
++#endif
++      struct atm_dev  *prev,*next;    /* linkage */
++      struct list_head dev_list;      /* linkage */
++
++};
++
++
++/*
++ * ioctl, getsockopt, setsockopt, and sg_send are optional and can be set to
++ * NULL. */
++
++/* OF: send_Oam Flags */
++
++#define ATM_OF_IMMED  1       /* Attempt immediate delivery */
++#define ATM_OF_INRATE 2       /* Attempt in-rate delivery */
++
++struct atmdev_ops { /* only send is required */
++      void (*dev_close)(struct atm_dev *dev);
++      int (*open)(struct atm_vcc *vcc,short vpi,int vci);
++      void (*close)(struct atm_vcc *vcc);
++      int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void *arg);
++      int (*getsockopt)(struct atm_vcc *vcc,int level,int optname,
++          void *optval,int optlen);
++      int (*setsockopt)(struct atm_vcc *vcc,int level,int optname,
++          void *optval,int optlen);
++      int (*send)(struct atm_vcc *vcc,struct sk_buff *skb);
++      int (*sg_send)(struct atm_vcc *vcc,unsigned long start,
++          unsigned long size);
++#if 0 /* keep the current hack for now */
++      int (*send_iovec)(struct atm_vcc *vcc,struct iovec *iov,int size,
++          void (*discard)(struct atm_vcc *vcc,void *user),void *user);
++#endif
++      int (*send_oam)(struct atm_vcc *vcc,void *cell,int flags);
++      void (*phy_put)(struct atm_dev *dev,unsigned char value,
++          unsigned long addr);
++      unsigned char (*phy_get)(struct atm_dev *dev,unsigned long addr);
++      void (*feedback)(struct atm_vcc *vcc,struct sk_buff *skb,
++          unsigned long start,unsigned long dest,int len);
++      int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
++      void (*free_rx_skb)(struct atm_vcc *vcc, struct sk_buff *skb);
++              /* @@@ temporary hack */
++      int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
++      struct module *owner;
++};
++
++
++struct atmphy_ops {
++      int (*start)(struct atm_dev *dev);
++      int (*ioctl)(struct atm_dev *dev,unsigned int cmd,void *arg);
++      void (*interrupt)(struct atm_dev *dev);
++      int (*stop)(struct atm_dev *dev);
++};
++
++struct atm_skb_data {
++      struct atm_vcc  *vcc;           /* ATM VCC */
++      int             iovcnt;         /* 0 for "normal" operation */
++      unsigned long   atm_options;    /* ATM layer options */
++};
++
++extern struct sock *vcc_sklist;
++extern rwlock_t vcc_sklist_lock;
++
++#define ATM_SKB(skb) (((struct atm_skb_data *) (skb)->cb))
++
++struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
++    int number,atm_dev_flags_t *flags); /* number == -1: pick first available */
++struct atm_dev *atm_find_dev(int number);
++void atm_dev_deregister(struct atm_dev *dev);
++void shutdown_atm_dev(struct atm_dev *dev);
++void bind_vcc(struct atm_vcc *vcc,struct atm_dev *dev);
++
++
++/*
++ * This is approximately the algorithm used by alloc_skb.
++ *
++ */
++
 +static __inline__ int atm_guess_pdu2truesize(int pdu_size)
- {
--      return (SKB_DATA_ALIGN(size) + sizeof(struct skb_shared_info));
++{
 +      return ((pdu_size+15) & ~15) + sizeof(struct sk_buff);
- }
--static inline void atm_force_charge(struct atm_vcc *vcc,int truesize)
++}
++
++
 +static __inline__ void atm_force_charge(struct atm_vcc *vcc,int truesize)
- {
--      atomic_add(truesize, &vcc->sk->rmem_alloc);
++{
 +      atomic_add(truesize+ATM_PDU_OVHD,&vcc->rx_inuse);
- }
--static inline void atm_return(struct atm_vcc *vcc,int truesize)
++}
++
++
 +static __inline__ void atm_return(struct atm_vcc *vcc,int truesize)
- {
--      atomic_sub(truesize, &vcc->sk->rmem_alloc);
++{
 +      atomic_sub(truesize+ATM_PDU_OVHD,&vcc->rx_inuse);
- }
--static inline int atm_may_send(struct atm_vcc *vcc,unsigned int size)
++}
++
++
 +static __inline__ int atm_may_send(struct atm_vcc *vcc,unsigned int size)
- {
--      return (size + atomic_read(&vcc->sk->wmem_alloc)) < vcc->sk->sndbuf;
++{
 +      return size+atomic_read(&vcc->tx_inuse)+ATM_PDU_OVHD < vcc->sk->sndbuf;
- }
++}
++
++
 +int atm_charge(struct atm_vcc *vcc,int truesize);
 +struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
 +    int gfp_flags);
@@ -27324,41 +27744,26 @@ diff -urN linux.old/include/linux/atmdev.h linux.dev/include/linux/atmdev.h
 +
 +void atm_async_release_vcc(struct atm_vcc *vcc,int reply);
 +
- static inline void atm_dev_hold(struct atm_dev *dev)
- {
--      atomic_inc(&dev->refcnt);
++static inline void atm_dev_hold(struct atm_dev *dev)
++{
 +        atomic_inc(&dev->refcnt);
- }
--
- static inline void atm_dev_put(struct atm_dev *dev)
- {
--      atomic_dec(&dev->refcnt);
++}
++
++static inline void atm_dev_put(struct atm_dev *dev)
++{
 +        atomic_dec(&dev->refcnt);
--      if ((atomic_read(&dev->refcnt) == 1) &&
--          test_bit(ATM_DF_CLOSE,&dev->flags))
--              shutdown_atm_dev(dev);
++
 +        if ((atomic_read(&dev->refcnt) == 1) &&
 +            test_bit(ATM_DF_CLOSE,&dev->flags))
 +                shutdown_atm_dev(dev);
- }
--
--int atm_charge(struct atm_vcc *vcc,int truesize);
--struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc,int pdu_size,
--    int gfp_flags);
--int atm_find_ci(struct atm_vcc *vcc,short *vpi,int *vci);
--int atm_pcr_goal(struct atm_trafprm *tp);
--
--void vcc_release_async(struct atm_vcc *vcc, int reply);
--
- #endif /* __KERNEL__ */
- #endif
++}
++
++#endif /* __KERNEL__ */
++
++#endif
 diff -urN linux.old/include/linux/atm.h linux.dev/include/linux/atm.h
---- linux.old/include/linux/atm.h      2001-11-22 20:48:41.000000000 +0100
-+++ linux.dev/include/linux/atm.h      2005-07-10 08:02:01.476106496 +0200
+--- linux.old/include/linux/atm.h      2005-08-13 00:39:58.131903456 +0200
++++ linux.dev/include/linux/atm.h      2005-08-13 02:47:40.877988984 +0200
 @@ -135,9 +135,12 @@
        unsigned char   traffic_class;  /* traffic class (ATM_UBR, ...) */
        int             max_pcr;        /* maximum PCR in cells per second */
@@ -27372,3 +27777,155 @@ diff -urN linux.old/include/linux/atm.h linux.dev/include/linux/atm.h
          /* extra params for ABR */
          unsigned int  icr;            /* Initial Cell Rate (24-bit) */
          unsigned int  tbe;            /* Transient Buffer Exposure (24-bit) */ 
+diff -urN linux.old/net/atm/clip.c linux.dev/net/atm/clip.c
+--- linux.old/net/atm/clip.c   2004-11-17 12:54:22.000000000 +0100
++++ linux.dev/net/atm/clip.c   2005-08-13 03:26:40.842260344 +0200
+@@ -722,7 +722,7 @@
+       set_bit(ATM_VF_META,&vcc->flags);
+       set_bit(ATM_VF_READY,&vcc->flags);
+           /* allow replies and avoid getting closed if signaling dies */
+-      vcc->dev = &atmarpd_dev;
++      bind_vcc(vcc, &atmarpd_dev);
+       vcc_insert_socket(vcc->sk);
+       vcc->push = NULL;
+       vcc->pop = NULL; /* crash */
+diff -urN linux.old/net/atm/common.c linux.dev/net/atm/common.c
+--- linux.old/net/atm/common.c 2004-02-18 14:36:32.000000000 +0100
++++ linux.dev/net/atm/common.c 2005-08-13 04:08:54.066151776 +0200
+@@ -385,7 +385,7 @@
+       error = 0;
+       if (!try_inc_mod_count(dev->ops->owner))
+               return -ENODEV;
+-      vcc->dev = dev;
++      bind_vcc(vcc, dev);
+       vcc_insert_socket(vcc->sk);
+       switch (vcc->qos.aal) {
+               case ATM_AAL0:
+@@ -427,7 +427,7 @@
+       if (dev->ops->owner)
+               __MOD_DEC_USE_COUNT(dev->ops->owner);
+       /* ensure we get dev module ref count correct */
+-      vcc->dev = NULL;
++      bind_vcc(vcc, NULL);
+       return error;
+       
+ }
+@@ -460,8 +460,10 @@
+           vcc->qos.rxtp.max_pcr,vcc->qos.rxtp.max_sdu,
+           vcc->qos.aal == ATM_AAL5 ? "" : vcc->qos.aal == ATM_AAL0 ? "" :
+           " ??? code ",vcc->qos.aal == ATM_AAL0 ? 0 : vcc->qos.aal);
++#if 0
+       if (!test_bit(ATM_VF_HASQOS, &vcc->flags))
+               return -EBADFD;
++#endif
+       if (vcc->qos.txtp.traffic_class == ATM_ANYCLASS ||
+           vcc->qos.rxtp.traffic_class == ATM_ANYCLASS)
+               return -EINVAL;
+diff -urN linux.old/net/atm/lec.c linux.dev/net/atm/lec.c
+--- linux.old/net/atm/lec.c    2004-11-17 12:54:22.000000000 +0100
++++ linux.dev/net/atm/lec.c    2005-08-13 03:30:50.951238000 +0200
+@@ -811,7 +811,7 @@
+         lec_arp_init(priv);
+       priv->itfnum = i;  /* LANE2 addition */
+         priv->lecd = vcc;
+-        vcc->dev = &lecatm_dev;
++        bind_vcc(vcc, &lecatm_dev);
+         vcc_insert_socket(vcc->sk);
+         
+         vcc->proto_data = dev_lec[i];
+diff -urN linux.old/net/atm/mpc.c linux.dev/net/atm/mpc.c
+--- linux.old/net/atm/mpc.c    2003-11-28 19:26:21.000000000 +0100
++++ linux.dev/net/atm/mpc.c    2005-08-13 03:31:04.569167760 +0200
+@@ -787,7 +787,7 @@
+       }
+       mpc->mpoad_vcc = vcc;
+-      vcc->dev = &mpc_dev;
++      bind_vcc(vcc, &mpc_dev);
+       vcc_insert_socket(vcc->sk);
+       set_bit(ATM_VF_META,&vcc->flags);
+       set_bit(ATM_VF_READY,&vcc->flags);
+diff -urN linux.old/net/atm/pvc.c linux.dev/net/atm/pvc.c
+--- linux.old/net/atm/pvc.c    2003-11-28 19:26:21.000000000 +0100
++++ linux.dev/net/atm/pvc.c    2005-08-13 04:03:41.850615752 +0200
+@@ -38,10 +38,12 @@
+       if (addr->sap_family != AF_ATMPVC) return -EAFNOSUPPORT;
+       lock_sock(sk);
+       vcc = ATM_SD(sock);
++#if 0
+       if (!test_bit(ATM_VF_HASQOS, &vcc->flags)) {
+               error = -EBADFD;
+               goto out;
+       }
++#endif
+       if (test_bit(ATM_VF_PARTIAL,&vcc->flags)) {
+               if (vcc->vpi != ATM_VPI_UNSPEC) addr->sap_addr.vpi = vcc->vpi;
+               if (vcc->vci != ATM_VCI_UNSPEC) addr->sap_addr.vci = vcc->vci;
+diff -urN linux.old/net/atm/resources.c linux.dev/net/atm/resources.c
+--- linux.old/net/atm/resources.c      2003-11-28 19:26:21.000000000 +0100
++++ linux.dev/net/atm/resources.c      2005-08-13 03:37:16.748587888 +0200
+@@ -398,8 +398,23 @@
+       return error;
+ }
++void bind_vcc(struct atm_vcc *vcc,struct atm_dev *dev)
++{
++      vcc->dev = dev;
++      if (dev) {
++              vcc->next = NULL;
++              vcc->prev = dev->last;
++              if (dev->vccs)
++                      dev->last->next = vcc;
++              else
++                      dev->vccs = vcc;
++              dev->last = vcc;
++      }
++}
++
+ EXPORT_SYMBOL(atm_dev_register);
+ EXPORT_SYMBOL(atm_dev_deregister);
+ EXPORT_SYMBOL(atm_dev_lookup);
++EXPORT_SYMBOL(bind_vcc);
+ EXPORT_SYMBOL(shutdown_atm_dev);
+diff -urN linux.old/net/atm/signaling.c linux.dev/net/atm/signaling.c
+--- linux.old/net/atm/signaling.c      2003-11-28 19:26:21.000000000 +0100
++++ linux.dev/net/atm/signaling.c      2005-08-13 03:36:24.880473040 +0200
+@@ -251,7 +251,7 @@
+       if (sigd) return -EADDRINUSE;
+       DPRINTK("sigd_attach\n");
+       sigd = vcc;
+-      vcc->dev = &sigd_dev;
++      bind_vcc(vcc, &sigd_dev);
+       vcc_insert_socket(vcc->sk);
+       set_bit(ATM_VF_META,&vcc->flags);
+       set_bit(ATM_VF_READY,&vcc->flags);
+diff -urN linux.old/net/atm/svc.c linux.dev/net/atm/svc.c
+--- linux.old/net/atm/svc.c    2003-11-28 19:26:21.000000000 +0100
++++ linux.dev/net/atm/svc.c    2005-08-13 04:08:16.126919416 +0200
+@@ -141,10 +141,12 @@
+       clear_bit(ATM_VF_BOUND,&vcc->flags);
+           /* failing rebind will kill old binding */
+       /* @@@ check memory (de)allocation on rebind */
++#if 0
+       if (!test_bit(ATM_VF_HASQOS,&vcc->flags)) {
+               error = -EBADFD;
+               goto out;
+       }
++#endif
+       vcc->local = *addr;
+       vcc->reply = WAITING;
+       add_wait_queue(&vcc->sleep,&wait);
+@@ -212,10 +214,12 @@
+                       error = -EAFNOSUPPORT;
+                       goto out;
+               }
++#if 0
+               if (!test_bit(ATM_VF_HASQOS, &vcc->flags)) {
+                       error = -EBADFD;
+                       goto out;
+               }
++#endif
+               if (vcc->qos.txtp.traffic_class == ATM_ANYCLASS ||
+                   vcc->qos.rxtp.traffic_class == ATM_ANYCLASS) {
+                       error = -EINVAL;
This page took 0.725115 seconds and 4 git commands to generate.