diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in index 4ac95504f6..8493012e46 100644 --- a/openwrt/package/Config.in +++ b/openwrt/package/Config.in @@ -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" diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile index ceb7b72e1e..7ee1512405 100644 --- a/openwrt/package/Makefile +++ b/openwrt/package/Makefile @@ -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 index 0000000000..8d75c9df18 --- /dev/null +++ b/openwrt/package/linux-atm/Config.in @@ -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 index 0000000000..ac36e39651 --- /dev/null +++ b/openwrt/package/linux-atm/Makefile @@ -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 index 0000000000..b465792ff5 --- /dev/null +++ b/openwrt/package/linux-atm/ipkg/linux-atm.control @@ -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 index 0000000000..41dc437ca4 --- /dev/null +++ b/openwrt/package/linux-atm/patches/000-debian_16.patch @@ -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 <> 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 ++ # , 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 <&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.so instead of +- # lib.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.so ++ # instead of lib.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 . +-# Please send patches to . ++# Originally written by Per Bothner . ++# Please send patches to . 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 <$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 /* 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 + +@@ -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 +@@ -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 + 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 ++ #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 < /* 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 < +-#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 <$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 < +-#ifdef __cplusplus +-#include /* 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 ++ #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' /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 ++ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort ++ # says + 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 < +@@ -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 . ++# Please send patches to . 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 ++#if HAVE_SYS_TYPES_H ++# include ++#endif ++#if HAVE_SYS_STAT_H ++# include ++#endif ++#if STDC_HEADERS ++# include ++# include ++#else ++# if HAVE_STDLIB_H ++# include ++# endif ++#endif ++#if HAVE_STRING_H ++# if !STDC_HEADERS && HAVE_MEMORY_H ++# include ++# endif ++# include ++#endif ++#if HAVE_STRINGS_H ++# include ++#endif ++#if HAVE_INTTYPES_H ++# include ++#else ++# if HAVE_STDINT_H ++# include ++# endif ++#endif ++#if HAVE_UNISTD_H ++# include ++#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 if you have libraries in a ++ nonstandard directory ++ CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have ++ headers in a nonstandard directory ++ 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 <>confdefs.h <<_ACEOF + #define PACKAGE "$PACKAGE" +-EOF ++_ACEOF + +-cat >> confdefs.h <>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 &5\"") >&5 ++ (eval $ac_compiler --version &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 ++ (eval $ac_compiler -v &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 ++ (eval $ac_compiler -V &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 <&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 ++#include ++#include ++#include ++/* 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 < +-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 < +-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 < +-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 ++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 <&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 <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 <&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 <&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 &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 <> 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 to if __STDC__ is defined, since ++ # 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 ++#else ++# include ++#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 +-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 ++_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 <&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 to if __STDC__ is defined, since ++ # 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 ++#else ++# include ++#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 ++_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 ++#include ++#include ++#include ++ ++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 ++ ++_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 ++ ++_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 ++#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 <&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 <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 <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 <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 <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 ++ # , 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 <&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.so instead of +- # lib.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.so ++ # instead of lib.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 <&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 <&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 ++ which can conflict with char shl_load (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#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 <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 ++ which can conflict with char dlopen (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#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 <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 <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 <&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 <&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 <&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 +-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 ++_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 <&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 +-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 ++_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 <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 <&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 <>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 <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 <&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 <&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 <$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 ." ++_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 <> $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 <> $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 <>$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 <> $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 <>$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 </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 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 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 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 ++#include ++#include + #include + #include + #include +@@ -67,6 +69,7 @@ + #include /* struct timeval */ + #include + #include ++#include + + #if defined(SYSV) + #include +@@ -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 +-#include ++#include ++#include ++#include + ++/* 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 . Non-C99 systems may or may not. */ ++ ++#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L ++#include ++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 +- +-/* 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 +-#include +-#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 ++#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 +-#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 ++/* 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 /* 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 +-#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 +-#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 */ +- #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 /* 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 /* 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 ++ + +-/* 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 */ ++ ++ ++ ++#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; ++ } ++} + +-#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" + + 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 "" ++# 1 "" ++# 1 "" ++# 1 "" ++ ++ ++ ++ ++ ++# 1 "../../config.h" 1 ++# 7 "" 2 ++ ++ ++ ++ ++include "atmsap.h" ++include "uni.h" ++# 26 "" ++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 "" ++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 "" ++ 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 "" ++ _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 + #endif + ++#include + #include + #include + #include +@@ -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 ++/* 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 /* 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 +-#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 +-#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 */ +- #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 /* 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 /* 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 ++ + +-/* 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 */ ++ ++ ++ ++#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; ++ } ++} + +-#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" + + 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 + #endif + ++#include + #include + #include + #include +@@ -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 + #include + #include ++#include + #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 + #endif + ++#include + #include + #include + #include +--- 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 + #endif + ++#include ++#include ++ + #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 + #endif + ++#include ++#include ++ + #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 + #endif + ++#include ++#include ++ + #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 + #endif + ++#include ++ + #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 + #endif + ++#include + #include ++#include + #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 + #include + #include ++#include + + #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 +- +-#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 /* 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 +-#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 +-#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 */ +- #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 /* 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 /* 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 ++ + +-/* 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 */ ++ ++ ++#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; ++ } ++} + +-#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" + + 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 + #include + #include ++#include + + #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 ++.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 ++## ++## 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 +++#include /* 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 +++#include +++#include +++#include +++ +++ +++#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 /* wait_queue_head_t */ +++#include /* struct timeval */ +++#include +++#include /* struct sk_buff */ +++#include +++#include +++#include +++ +++#ifdef CONFIG_PROC_FS +++#include +++#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) ++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) 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) 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) 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) 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 25 Aug 2001 17:55:00 +0200 ++ ++atm (0.79-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Russell Coker 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 (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 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 ++ and Wolfgang Platzer ) ++ - 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 ' instead of 'option control ""' ++ ++ ++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 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 ++ - 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 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 instead of -N and -A ++ - atmsigd.conf now uses sig 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 instead of #include ) ++ - 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_.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 ++ . 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 and ++ Robert Hill ++ - -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 to set the QOS parameters (uses text2qos) ++ Use of pcr is deprecated. ++ - ttcp_atm's -P option now also accepts a QOS specification string. (use of ++ -P is deprecated. ++ - atmsigd: new option -q and configuration clause io qos to ++ set the QOS of the signaling VC. Use of -P or io 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 " (proposed by Gerald Hanusch) ++ - added the usual -l 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-.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 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) ++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) 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) 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) 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) 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) 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sat, 25 Aug 2001 17:55:00 +0200 ++ ++atm (0.79-1) unstable; urgency=low ++ ++ * Initial Release. ++ ++ -- Russell Coker 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 on ++Fri, 24 Aug 2001 16:11:12 +0200 and is now maintained by Marc Haber ++. ++ ++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 ++Mitchell Blank Jr. ++Paul B Schroeder ++ ++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 index 0000000000..2eddf008e7 --- /dev/null +++ b/openwrt/package/linux-atm/patches/100-br2684.patch @@ -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 ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Written by Marcell GAL 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 index 0000000000..1b538b2a3b --- /dev/null +++ b/openwrt/package/linux-atm/patches/200-no_libfl.patch @@ -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 + #include + ++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 + #include + ++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 + #include + ++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 + diff --git a/openwrt/target/linux/linux-2.4/patches/ar7/004-atm_driver.patch b/openwrt/target/linux/linux-2.4/patches/ar7/004-atm_driver.patch index 354517f0b6..bed3a8160d 100644 --- a/openwrt/target/linux/linux-2.4/patches/ar7/004-atm_driver.patch +++ b/openwrt/target/linux/linux-2.4/patches/ar7/004-atm_driver.patch @@ -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 ++#include ++#include ++#include ++ ++ ++#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 /* wait_queue_head_t */ ++#include /* struct timeval */ ++#include ++#include /* struct sk_buff */ ++#include ++#include ++#include ++ ++#ifdef CONFIG_PROC_FS ++#include ++#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;