diff -urN avr-libc-20020203/Makefile.am avr-libc-20020203-patchc++/Makefile.am
--- avr-libc-20020203/Makefile.am	Sun Jan  6 09:54:48 2002
+++ avr-libc-20020203-patchc++/Makefile.am	Fri Mar  1 16:05:55 2002
@@ -44,19 +44,20 @@
 
 FLAGS_TO_PASS = $(AM_MAKEFLAGS)
 
-SUBDIRS = libc libm
+SUBDIRS = libc libm libcpp
 
 tooldir = $(exec_prefix)/$(host_alias)
 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
 
 AR_FLAGS = rc
 
-toollib_LIBRARIES = libc.a libm.a
+toollib_LIBRARIES = libc.a libm.a libcpp.a
 toollib_DATA = $(AVR_CRT_AT90) $(AVR_CRT_TINY) $(AVR_CRT_MEGA) $(AVR_CRT_OTHER)
 
 # must be defined as empty, so that make dist will work
 libc_a_SOURCES =
 libm_a_SOURCES =
+libcpp_a_SOURCES =
 
 EXTRA_DIST = config-ml.in doconf dodist domake reconf LICENSE common include doc
 
@@ -72,6 +73,12 @@
 
 libm/libm.a: ; @true
 
+libcpp.a: libcpp/libcpp.a
+	rm -f $@
+	ln libcpp/libcpp.a $@ >/dev/null 2>/dev/null || cp libcpp/libcpp.a $@
+
+libcpp/libcpp.a: ; @true
+
 crt%.o: libc/crt%.o
 	rm -f $@					       
 	ln $< $@ >/dev/null 2>/dev/null || cp $< $@
diff -urN avr-libc-20020203/Makefile.in avr-libc-20020203-patchc++/Makefile.in
--- avr-libc-20020203/Makefile.in	Mon Feb  4 08:51:22 2002
+++ avr-libc-20020203-patchc++/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -75,6 +75,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -94,24 +95,54 @@
 # Work around what appears to be a GNU make bug handling MAKEFLAGS
 # values defined in terms of make variables, as is the case for CC and
 # friends when we are called from the top level Makefile.
-AM_MAKEFLAGS =  	"AR_FLAGS=$(AR_FLAGS)" 	"CC_FOR_BUILD=$(CC_FOR_BUILD)" 	"CFLAGS=$(CFLAGS)" 	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" 	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" 	"LDFLAGS=$(LDFLAGS)" 	"LIBCFLAGS=$(LIBCFLAGS)" 	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" 	"MAKE=$(MAKE)" 	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" 	"PICFLAG=$(PICFLAG)" 	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" 	"SHELL=$(SHELL)" 	"EXPECT=$(EXPECT)" 	"RUNTEST=$(RUNTEST)" 	"RUNTESTFLAGS=$(RUNTESTFLAGS)" 	"exec_prefix=$(exec_prefix)" 	"infodir=$(infodir)" 	"libdir=$(libdir)" 	"prefix=$(prefix)" 	"tooldir=$(tooldir)" 	"AR=$(AR)" 	"AS=$(AS)" 	"CC=$(CC)" 	"LD=$(LD)" 	"NM=$(NM)" 	"PICFLAG=$(PICFLAG)" 	"RANLIB=$(RANLIB)" 	"DESTDIR=$(DESTDIR)"
+AM_MAKEFLAGS = \
+	"AR_FLAGS=$(AR_FLAGS)" \
+	"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+	"CFLAGS=$(CFLAGS)" \
+	"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
+	"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
+	"LDFLAGS=$(LDFLAGS)" \
+	"LIBCFLAGS=$(LIBCFLAGS)" \
+	"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
+	"MAKE=$(MAKE)" \
+	"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
+	"PICFLAG=$(PICFLAG)" \
+	"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
+	"SHELL=$(SHELL)" \
+	"EXPECT=$(EXPECT)" \
+	"RUNTEST=$(RUNTEST)" \
+	"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
+	"exec_prefix=$(exec_prefix)" \
+	"infodir=$(infodir)" \
+	"libdir=$(libdir)" \
+	"prefix=$(prefix)" \
+	"tooldir=$(tooldir)" \
+	"AR=$(AR)" \
+	"AS=$(AS)" \
+	"CC=$(CC)" \
+	"LD=$(LD)" \
+	"NM=$(NM)" \
+	"PICFLAG=$(PICFLAG)" \
+	"RANLIB=$(RANLIB)" \
+	"DESTDIR=$(DESTDIR)"
 
 
 FLAGS_TO_PASS = $(AM_MAKEFLAGS)
 
-SUBDIRS = libc libm
+SUBDIRS = libc libm libcpp
 
 tooldir = $(exec_prefix)/$(host_alias)
 toollibdir = $(tooldir)/lib$(MULTISUBDIR)
 
 AR_FLAGS = rc
 
-toollib_LIBRARIES = libc.a libm.a
+toollib_LIBRARIES = libc.a libm.a libcpp.a
 toollib_DATA = $(AVR_CRT_AT90) $(AVR_CRT_TINY) $(AVR_CRT_MEGA) $(AVR_CRT_OTHER)
 
 # must be defined as empty, so that make dist will work
 libc_a_SOURCES = 
 libm_a_SOURCES = 
+libcpp_a_SOURCES = 
 
 EXTRA_DIST = config-ml.in doconf dodist domake reconf LICENSE common include doc
 
@@ -130,6 +161,8 @@
 libc_a_OBJECTS = 
 libm_a_LIBADD = 
 libm_a_OBJECTS = 
+libcpp_a_LIBADD = 
+libcpp_a_OBJECTS = 
 DATA =  $(toollib_DATA)
 
 DIST_COMMON =  README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
@@ -139,18 +172,18 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
-SOURCES = $(libc_a_SOURCES) $(libm_a_SOURCES)
-OBJECTS = $(libc_a_OBJECTS) $(libm_a_OBJECTS)
+SOURCES = $(libc_a_SOURCES) $(libm_a_SOURCES) $(libcpp_a_SOURCES)
+OBJECTS = $(libc_a_OBJECTS) $(libm_a_OBJECTS) $(libcpp_a_OBJECTS)
 
 all: all-redirect
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(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
 
@@ -194,9 +227,6 @@
 	  rm -f $(DESTDIR)$(toollibdir)/$$p; \
 	done
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -359,6 +389,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 \
@@ -472,6 +507,12 @@
 
 libm/libm.a: ; @true
 
+libcpp.a: libcpp/libcpp.a
+	rm -f $@
+	ln libcpp/libcpp.a $@ >/dev/null 2>/dev/null || cp libcpp/libcpp.a $@
+
+libcpp/libcpp.a: ; @true
+
 crt%.o: libc/crt%.o
 	rm -f $@					       
 	ln $< $@ >/dev/null 2>/dev/null || cp $< $@
diff -urN avr-libc-20020203/configure avr-libc-20020203-patchc++/configure
--- avr-libc-20020203/configure	Mon Feb  4 08:50:44 2002
+++ avr-libc-20020203-patchc++/configure	Fri Mar  1 16:05:57 2002
@@ -1188,11 +1188,82 @@
 fi
 fi
 
+# Extract the first word of "${ac_tool_prefix}g++", so it can be a program name with args.
+set dummy ${ac_tool_prefix}g++; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1195: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # 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_CXX="${ac_tool_prefix}g++"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+  echo "$ac_t""$CXX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_CXX"; then
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "g++", so it can be a program name with args.
+set dummy g++; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1227: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # 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_CXX="g++"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_CXX" && ac_cv_prog_CXX="g++"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+  echo "$ac_t""$CXX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+else
+  CXX="g++"
+fi
+fi
+
 
 case "${CC}" in
    *avr-gcc*) ;;
    *) { echo "configure: error: Wrong C compiler found; check the PATH!" 1>&2; exit 1; } ;;
 esac
+case "${CXX}" in
+   *avr-g++*) ;;
+   *) { echo "configure: error: Wrong C compiler found; check the PATH!" 1>&2; exit 1; } ;;
+esac
 case "${AS}" in
    *avr-as*) ;;
    *) { echo "configure: error: Wrong assembler found; check the PATH!" 1>&2; exit 1; } ;;
@@ -1218,7 +1289,7 @@
 # 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:1222: checking for a BSD compatible install" >&5
+echo "configure:1293: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1453,6 +1524,7 @@
           libc/string/Makefile libc/misc/Makefile libc/bsd/Makefile
           libc/gnu/Makefile
           libm/Makefile libm/fplib/Makefile
+          libcpp/Makefile
           Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
@@ -1517,6 +1589,7 @@
 s%@AR@%$AR%g
 s%@RANLIB@%$RANLIB%g
 s%@CC@%$CC%g
+s%@CXX@%$CXX%g
 s%@AVRLIB_CFLAGS@%$AVRLIB_CFLAGS%g
 s%@AVRLIB_ASFLAGS@%$AVRLIB_ASFLAGS%g
 s%@AVR_CRT_ASFLAGS@%$AVR_CRT_ASFLAGS%g
@@ -1571,6 +1644,7 @@
           libc/string/Makefile libc/misc/Makefile libc/bsd/Makefile
           libc/gnu/Makefile
           libm/Makefile libm/fplib/Makefile
+          libcpp/Makefile
           Makefile"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
@@ -1640,6 +1714,7 @@
 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
 avrlib_basedir=${avrlib_basedir}
 CC="${CC}"
+CXX="${CXX}"
 
 EOF
 cat >> $CONFIG_STATUS <<\EOF
diff -urN avr-libc-20020203/configure.in avr-libc-20020203-patchc++/configure.in
--- avr-libc-20020203/configure.in	Mon Feb  4 08:32:23 2002
+++ avr-libc-20020203-patchc++/configure.in	Fri Mar  1 15:36:44 2002
@@ -58,11 +58,16 @@
 AC_CHECK_TOOL(AR, ar, ar)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
 AC_CHECK_TOOL(CC, gcc, gcc)
+AC_CHECK_TOOL(CXX, g++, g++)
 
 case "${CC}" in
    *avr-gcc*) ;;
    *) AC_MSG_ERROR(Wrong C compiler found; check the PATH!) ;;
 esac
+case "${CXX}" in
+   *avr-g++*) ;;
+   *) AC_MSG_ERROR(Wrong C compiler found; check the PATH!) ;;
+esac
 case "${AS}" in
    *avr-as*) ;;
    *) AC_MSG_ERROR(Wrong assembler found; check the PATH!) ;;
@@ -166,6 +171,7 @@
           libc/string/Makefile libc/misc/Makefile libc/bsd/Makefile
           libc/gnu/Makefile
           libm/Makefile libm/fplib/Makefile
+          libcpp/Makefile
           Makefile,
 [if test -n "$CONFIG_FILES"; then
   . ${avrlib_basedir}/config-ml.in
@@ -178,4 +184,5 @@
 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
 avrlib_basedir=${avrlib_basedir}
 CC="${CC}"
+CXX="${CXX}"
 )
diff -urN avr-libc-20020203/include/cstddef avr-libc-20020203-patchc++/include/cstddef
--- avr-libc-20020203/include/cstddef	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/include/cstddef	Thu Mar  7 14:13:52 2002
@@ -0,0 +1,41 @@
+// -*- C++ -*- std header.
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#ifndef _CPP_CSTDDEF
+
+#pragma GCC system_header
+#include <stddef.h>
+
+namespace std 
+{
+  using ::ptrdiff_t;
+  using ::size_t;
+}
+
+#endif
diff -urN avr-libc-20020203/include/exception avr-libc-20020203-patchc++/include/exception
--- avr-libc-20020203/include/exception	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/include/exception	Thu Mar  7 14:07:03 2002
@@ -0,0 +1,100 @@
+// Exception Handling support header for -*- C++ -*-
+
+// Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+// 
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file exception
+ *  This header defines several types and functions relating to the
+ *  handling of exceptions in a C++ program.
+ */
+
+#ifndef __EXCEPTION__
+#define __EXCEPTION__
+
+extern "C++" {
+
+namespace std 
+{
+  /** This is the base class for all exceptions thrown by the standard
+   *  library, and by certain language expressions.  You are free to derive
+   *  your own %exception classes, or use a different hierarchy, or to
+   *  throw non-class data (e.g., fundamental types).
+   *  @brief Base class for all library exceptions.
+   */
+  class exception 
+  {
+  public:
+    exception() throw() { }
+    virtual ~exception() throw();
+    /** Returns a C-style character string describing the general cause
+     *  of the current error.  */
+    virtual const char* what() const throw();
+  };
+
+  /** If an %exception is thrown which is not listed in a function's
+   *  %exception specification, one of these may be thrown.  */
+  class bad_exception : public exception 
+  {
+  public:
+    bad_exception() throw() { }
+    virtual ~bad_exception() throw();
+  };
+
+  /// If you write a replacement %terminate handler, it must be of this type.
+  typedef void (*terminate_handler) ();
+  /// If you write a replacement %unexpected handler, it must be of this type.
+  typedef void (*unexpected_handler) ();
+
+  /// Takes a new handler function as an argument, returns the old function.
+  terminate_handler set_terminate(terminate_handler) throw();
+  /** The runtime will call this function if %exception handling must be
+   *  abandoned for any reason.  */
+  void terminate() __attribute__ ((__noreturn__));
+
+  /// Takes a new handler function as an argument, returns the old function.
+  unexpected_handler set_unexpected(unexpected_handler) throw();
+  /** The runtime will call this function if an %exception is thrown which
+   *  violates the function's %exception specification.  */
+  void unexpected() __attribute__ ((__noreturn__));
+
+  /** [18.6.4]/1:  "Returns true after completing evaluation of a
+   *  throw-expression until either completing initialization of the
+   *  exception-declaration in the matching handler or entering @c unexpected()
+   *  due to the throw; or after entering @c terminate() for any reason
+   *  other than an explicit call to @c terminate().  [Note: This includes
+   *  stack unwinding [15.2].  end note]"
+   *
+   *  2:  "When @c uncaught_exception() is true, throwing an %exception can
+   *  result in a call of @c terminate() (15.5.1)."
+   */
+  bool uncaught_exception() throw();
+} // namespace std
+
+} // extern "C++"
+
+#endif
diff -urN avr-libc-20020203/include/exception_defines.h avr-libc-20020203-patchc++/include/exception_defines.h
--- avr-libc-20020203/include/exception_defines.h	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/include/exception_defines.h	Thu Mar  7 14:07:07 2002
@@ -0,0 +1,42 @@
+// -fno-exceptions Support -*- C++ -*-
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 19.1  Exception classes
+//
+
+#ifndef __EXCEPTIONS
+// Iff -fno-exceptions, transform error handling code to work without it.
+# define try      if (true)
+# define catch(X) if (false)
+# define __throw_exception_again
+#else
+// Else proceed normally.
+# define __throw_exception_again throw
+#endif
diff -urN avr-libc-20020203/include/std_cstddef.h avr-libc-20020203-patchc++/include/std_cstddef.h
--- avr-libc-20020203/include/std_cstddef.h	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/include/std_cstddef.h	Thu Mar  7 14:10:14 2002
@@ -0,0 +1,46 @@
+// -*- C++ -*- forwarding header.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 18.1  Types
+//
+
+#ifndef _CPP_CSTDDEF
+#define _CPP_CSTDDEF 1
+
+#pragma GCC system_header
+#include <stddef.h>
+
+namespace std 
+{
+  using ::ptrdiff_t;
+  using ::size_t;
+}
+
+#endif
diff -urN avr-libc-20020203/libc/Makefile.in avr-libc-20020203-patchc++/libc/Makefile.in
--- avr-libc-20020203/libc/Makefile.in	Mon Feb  4 08:51:23 2002
+++ avr-libc-20020203-patchc++/libc/Makefile.in	Fri Mar  1 16:05:59 2002
@@ -73,6 +73,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -101,7 +102,12 @@
 # if we have no sources, COMPILE is not defined by automake
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 
-SUBLIBS =  	stdlib/lib.a   	pmstring/lib.a 	string/lib.a   	misc/lib.a             $(LIB_QSORT_DIR)/lib.a
+SUBLIBS = \
+	stdlib/lib.a   \
+	pmstring/lib.a \
+	string/lib.a   \
+	misc/lib.a     \
+        $(LIB_QSORT_DIR)/lib.a
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -121,7 +127,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(libc_a_SOURCES)
 OBJECTS = $(libc_a_OBJECTS)
@@ -130,9 +136,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/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 +152,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -259,6 +262,11 @@
 subdir = libc
 
 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 libc/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
diff -urN avr-libc-20020203/libc/bsd/Makefile.in avr-libc-20020203-patchc++/libc/bsd/Makefile.in
--- avr-libc-20020203/libc/bsd/Makefile.in	Mon Feb  4 08:51:26 2002
+++ avr-libc-20020203-patchc++/libc/bsd/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -77,6 +77,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -114,7 +115,10 @@
 # lib_a_LIBADD = $(LIB_OBJ_BSD)
 # EXTRA_DIST = $(LIB_EXTRA_BSD)
 
-lib_a_SOURCES =  	qsort.c   	strtol.c  	strtoul.c
+lib_a_SOURCES = \
+	qsort.c   \
+	strtol.c  \
+	strtoul.c
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -136,8 +140,9 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/qsort.P .deps/strtol.P .deps/strtoul.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -145,9 +150,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/bsd/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/bsd/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
 
@@ -161,9 +166,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -219,6 +221,11 @@
 subdir = libc/bsd
 
 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 libc/bsd/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -229,12 +236,38 @@
 	    || cp -p $$d/$$file $(distdir)/$$file || :; \
 	  fi; \
 	done
-qsort.o: qsort.c ../../include/stdlib.h
-strtol.o: strtol.c ../../include/ctype.h ../../include/errno.h \
-	../../include/stdlib.h
-strtoul.o: strtoul.c ../../include/ctype.h ../../include/errno.h \
-	../../include/stdlib.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:
@@ -271,23 +304,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -297,12 +332,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -urN avr-libc-20020203/libc/gcrt1.S avr-libc-20020203-patchc++/libc/gcrt1.S
--- avr-libc-20020203/libc/gcrt1.S	Tue Nov 27 01:05:42 2001
+++ avr-libc-20020203-patchc++/libc/gcrt1.S	Mon Mar 11 09:10:43 2002
@@ -22,6 +22,17 @@
 /* Hacked a lot by Marek Michalkiewicz <marekm@linux.org.pl> to add
    support for many MCU types, etc.  These changes are public domain.  */
 
+/* The following sections are used,
+ * init0 - the vectors,
+ * init1 - inital code, setup the inital registers and stack,
+ * init2 - place holder for applications,
+ * init3 - init RAM
+ * init4 - place holder for applications,
+ * init5 - C++ constructors,
+ * init6 - place holder for applications,
+ * init7 - Calls main
+ */
+
 ;; -*- mode: asm -*-
 
 #include "macros.inc"
@@ -31,7 +42,8 @@
 	.extern _U(main)
 	.extern _etext
 	.extern __data_start
-	.extern _edata
+	.extern __data_load_start
+	.extern __data_end
 	.extern __bss_start
 	.extern __bss_end
 
@@ -73,7 +85,7 @@
 
 ; reset and interrupt vectors, starting at absolute address 0
 
-	.section .init, "ax", @progbits
+	.section .init0, "ax", @progbits
 	.func	.__start_of_init__
 .__start_of_init__:
 	XJMP	_U(_init_)
@@ -118,7 +130,7 @@
 	VEC	_vector_38
 	VEC	_vector_39
 
-	/* extra check */
+; extra check
 ;	.if . - .__start_of_init__ - INT_VECT_SIZE
 ;	.err
 ;	.endif
@@ -126,7 +138,7 @@
 	.endfunc
 
 #if !defined (__AVR_ASM_ONLY__)
-	.section .text, "ax", @progbits
+	.section .init1, "ax", @progbits
 	.func	.__c_startup__
 .__c_startup__:
 ; two remporary registers (usable with ldi, not pointer registers)
@@ -160,17 +172,30 @@
 	ldi	r_tmp1, lo8(__init_emcucr__)
 	out	(EMCUCR - __SFR_OFFSET), r_tmp1
 #endif
+
+; Set up the stack
+        ldi     r_tmp1, lo8(__stack)
+        out     (SPL - __SFR_OFFSET), r_tmp1
+#ifdef SPH        
+        ldi     r_tmp1, hi8(__stack)
+        out     (SPH - __SFR_OFFSET), r_tmp1
+#endif        
+
 ; XXX should we also read, save and clear MCUSR (if present) here?
 ; (datasheets suggest to do it as soon as possible after reset)
-	ldi	ZL, lo8(_etext); load the end of .text segment
-	ldi	ZH, hi8(_etext); this is a start of .data image
+        .endfunc
+
+	.section .init3, "ax", @progbits
+; Copy initalized data from __data_load_start to __data_start until __data_load_end
+	ldi	ZL, lo8(__data_load_start)
+	ldi	ZH, hi8(__data_load_start)
 #if BIG_CODE
-	ldi	r_tmp2, hh8(_etext)	; this will be in RAMPZ for "elpm"
+	ldi	r_tmp2, hh8(__data_load_start)	; this will be in RAMPZ for "elpm"
 #endif
 	ldi	XL, lo8(__data_start)	; load start of ram
 	ldi	XH, hi8(__data_start)
 #if XRAMEND > 0x100  /* don't bother with high byte if we know it must be 0 */
-	ldi	r_tmp1, hi8(_edata)
+	ldi	r_tmp1, hi8(__data_end)
 #endif
 	LPM_R0_ZPLUS_INIT r_tmp2
 	rjmp	.copy_data_start
@@ -178,20 +203,15 @@
 	LPM_R0_ZPLUS_NEXT r_tmp2
 	st	X+, r0
 .copy_data_start:
-	cpi	XL, lo8(_edata)
+	cpi	XL, lo8(__data_end)
 #if XRAMEND > 0x100
-	cpc	XH, r_tmp1	; hi8(_edata)
+	cpc	XH, r_tmp1	; hi8(__data_end)
 #endif
 	brne	.copy_data_loop
-	;; avr-ld always put .bss after .data
-	; If the above is true, then no need to load X again below.
-	; But there are two separate symbols _edata and __bss_start
-	; which seem to have the same value but are initialized
-	; in two different places in the linker script.
-#if 1
+
+; Clear BSS section
 	ldi	XL, lo8(__bss_start)
 	ldi	XH, hi8(__bss_start)
-#endif
 #if XRAMEND > 0x100
 	ldi	r_tmp1, hi8(__bss_end)
 #endif
@@ -204,6 +224,9 @@
 	cpc	XH, r_tmp1	; hi8(__bss_end)
 #endif
 	brne	.zero_bss_loop
+
+	.section .init7, "ax", @progbits
+; Call the main function
 	XJMP	_U(main)
 
 _unexpected_1_:
@@ -212,5 +235,4 @@
 _U(_unexpected_):
 	reti
 
-	.endfunc
 #endif /* if !defined (__AVR_ASM_ONLY__) */
diff -urN avr-libc-20020203/libc/gnu/Makefile.in avr-libc-20020203-patchc++/libc/gnu/Makefile.in
--- avr-libc-20020203/libc/gnu/Makefile.in	Mon Feb  4 08:51:27 2002
+++ avr-libc-20020203-patchc++/libc/gnu/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -77,6 +77,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -114,7 +115,10 @@
 # lib_a_LIBADD = $(LIB_OBJ_GNU)
 # EXTRA_DIST = $(LIB_EXTRA_GNU)
 
-lib_a_SOURCES =  	qsort.c   	strtol.c  	strtoul.c
+lib_a_SOURCES = \
+	qsort.c   \
+	strtol.c  \
+	strtoul.c
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -136,8 +140,9 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/qsort.P .deps/strtol.P .deps/strtoul.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -145,9 +150,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/gnu/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/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=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -161,9 +166,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -219,6 +221,11 @@
 subdir = libc/gnu
 
 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 libc/gnu/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -230,6 +237,37 @@
 	  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:
@@ -266,23 +304,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -292,12 +332,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -urN avr-libc-20020203/libc/misc/Makefile.in avr-libc-20020203-patchc++/libc/misc/Makefile.in
--- avr-libc-20020203/libc/misc/Makefile.in	Mon Feb  4 08:51:26 2002
+++ avr-libc-20020203-patchc++/libc/misc/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -77,6 +77,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -90,7 +91,17 @@
 
 noinst_LIBRARIES = lib.a
 
-lib_a_SOURCES =  	ee_rb.S   	ee_rblk.S 	ee_rw.S   	ee_wb.S   	itoa.S    	ltoa.S    	mulsi10.S 	mul10.S   	ultoa.S   	utoa.S
+lib_a_SOURCES = \
+	ee_rb.S   \
+	ee_rblk.S \
+	ee_rw.S   \
+	ee_wb.S   \
+	itoa.S    \
+	ltoa.S    \
+	mulsi10.S \
+	mul10.S   \
+	ultoa.S   \
+	utoa.S
 
 
 # must be added to the package, but automake doesn't know it as source
@@ -117,8 +128,11 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/ee_rb.P .deps/ee_rblk.P .deps/ee_rw.P .deps/ee_wb.P \
+.deps/itoa.P .deps/ltoa.P .deps/mul10.P .deps/mulsi10.P .deps/ultoa.P \
+.deps/utoa.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -126,9 +140,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/misc/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/misc/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,9 +156,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -200,6 +211,11 @@
 subdir = libc/misc
 
 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 libc/misc/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -211,6 +227,37 @@
 	  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:
@@ -247,23 +294,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -273,12 +322,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -urN avr-libc-20020203/libc/pmstring/Makefile.in avr-libc-20020203-patchc++/libc/pmstring/Makefile.in
--- avr-libc-20020203/libc/pmstring/Makefile.in	Mon Feb  4 08:51:24 2002
+++ avr-libc-20020203-patchc++/libc/pmstring/Makefile.in	Fri Mar  1 16:05:59 2002
@@ -77,6 +77,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -90,7 +91,16 @@
 
 noinst_LIBRARIES = lib.a
 
-lib_a_SOURCES =  	memcpy_P.S      	strcasecmp_P.S  	strcat_P.S      	strcmp_P.S      	strcpy_P.S      	strlen_P.S      	strncasecmp_P.S 	strncmp_P.S     	strncpy_P.S
+lib_a_SOURCES = \
+	memcpy_P.S      \
+	strcasecmp_P.S  \
+	strcat_P.S      \
+	strcmp_P.S      \
+	strcpy_P.S      \
+	strlen_P.S      \
+	strncasecmp_P.S \
+	strncmp_P.S     \
+	strncpy_P.S
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -113,8 +123,11 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/memcpy_P.P .deps/strcasecmp_P.P .deps/strcat_P.P \
+.deps/strcmp_P.P .deps/strcpy_P.P .deps/strlen_P.P \
+.deps/strncasecmp_P.P .deps/strncmp_P.P .deps/strncpy_P.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -122,9 +135,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/pmstring/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/pmstring/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
 
@@ -138,9 +151,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -196,6 +206,11 @@
 subdir = libc/pmstring
 
 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 libc/pmstring/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -207,6 +222,37 @@
 	  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:
@@ -243,23 +289,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -269,12 +317,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -urN avr-libc-20020203/libc/stdlib/Makefile.in avr-libc-20020203-patchc++/libc/stdlib/Makefile.in
--- avr-libc-20020203/libc/stdlib/Makefile.in	Mon Feb  4 08:51:23 2002
+++ avr-libc-20020203-patchc++/libc/stdlib/Makefile.in	Fri Mar  1 16:05:59 2002
@@ -73,6 +73,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -84,14 +85,31 @@
 
 noinst_LIBRARIES = lib.a
 
-lib_a_c_sources =  	abs.c	  	bsearch.c 	errno.c	  	labs.c	  	malloc.c  	rand.c
-
-
-lib_a_asm_sources =  	abort.S  	atoi.S   	atol.S   	div.S    	exit.S   	ldiv.S   	setjmp.S
+lib_a_c_sources = \
+	abs.c	  \
+	bsearch.c \
+	errno.c	  \
+	labs.c	  \
+	malloc.c  \
+	rand.c
+
+
+lib_a_asm_sources = \
+	abort.S  \
+	atoi.S   \
+	atol.S   \
+	div.S    \
+	exit.S   \
+	ldiv.S   \
+	setjmp.S
 
 
 # this objects are all generated from ctype.S
-libc_ctype_asm_objs =  	isascii.o toascii.o isalnum.o cty_isfalse.o 	isalpha.o isdigit.o isxdigit.o iscntrl.o    	isprint.o isspace.o isblank.o ispunct.o     	tolower.o toupper.o
+libc_ctype_asm_objs = \
+	isascii.o toascii.o isalnum.o cty_isfalse.o \
+	isalpha.o isdigit.o isxdigit.o iscntrl.o    \
+	isprint.o isspace.o isblank.o ispunct.o     \
+	tolower.o toupper.o
 
 
 lib_a_SOURCES = $(lib_a_c_sources) $(lib_a_asm_sources)
@@ -128,8 +146,11 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/abort.P .deps/abs.P .deps/atoi.P .deps/atol.P \
+.deps/bsearch.P .deps/div.P .deps/errno.P .deps/exit.P .deps/labs.P \
+.deps/ldiv.P .deps/malloc.P .deps/rand.P .deps/setjmp.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -137,9 +158,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/stdlib/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/stdlib/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
 
@@ -153,9 +174,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -211,6 +229,11 @@
 subdir = libc/stdlib
 
 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 libc/stdlib/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -222,6 +245,37 @@
 	  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:
@@ -258,23 +312,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -284,12 +340,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # content of AVRLIB_CFLAGS and AVRLIB_ASFLAGS is determined by configure
diff -urN avr-libc-20020203/libc/string/Makefile.in avr-libc-20020203-patchc++/libc/string/Makefile.in
--- avr-libc-20020203/libc/string/Makefile.in	Mon Feb  4 08:51:25 2002
+++ avr-libc-20020203-patchc++/libc/string/Makefile.in	Fri Mar  1 16:05:59 2002
@@ -77,6 +77,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -90,7 +91,29 @@
 
 noinst_LIBRARIES = lib.a
 
-lib_a_SOURCES =  	memccpy.S     	memchr.S      	memcmp.S      	memcpy.S      	memmove.S     	memset.S      	strcasecmp.S  	strcat.S      	strchr.S      	strcmp.S      	strcpy.S      	strlen.S      	strlwr.S      	strncasecmp.S 	strncat.S     	strncmp.S     	strncpy.S     	strnlen.S     	strrchr.S     	strrev.S      	strstr.S      	strupr.S
+lib_a_SOURCES = \
+	memccpy.S     \
+	memchr.S      \
+	memcmp.S      \
+	memcpy.S      \
+	memmove.S     \
+	memset.S      \
+	strcasecmp.S  \
+	strcat.S      \
+	strchr.S      \
+	strcmp.S      \
+	strcpy.S      \
+	strlen.S      \
+	strlwr.S      \
+	strncasecmp.S \
+	strncat.S     \
+	strncmp.S     \
+	strncpy.S     \
+	strnlen.S     \
+	strrchr.S     \
+	strrev.S      \
+	strstr.S      \
+	strupr.S
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -115,8 +138,14 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/memccpy.P .deps/memchr.P .deps/memcmp.P \
+.deps/memcpy.P .deps/memmove.P .deps/memset.P .deps/strcasecmp.P \
+.deps/strcat.P .deps/strchr.P .deps/strcmp.P .deps/strcpy.P \
+.deps/strlen.P .deps/strlwr.P .deps/strncasecmp.P .deps/strncat.P \
+.deps/strncmp.P .deps/strncpy.P .deps/strnlen.P .deps/strrchr.P \
+.deps/strrev.P .deps/strstr.P .deps/strupr.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -124,9 +153,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libc/string/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libc/string/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
 
@@ -140,9 +169,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -198,6 +224,11 @@
 subdir = libc/string
 
 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 libc/string/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -209,6 +240,37 @@
 	  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:
@@ -245,23 +307,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -271,12 +335,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff -urN avr-libc-20020203/libcpp/Makefile.am avr-libc-20020203-patchc++/libcpp/Makefile.am
--- avr-libc-20020203/libcpp/Makefile.am	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/Makefile.am	Fri Mar  1 15:34:14 2002
@@ -0,0 +1,21 @@
+## Process this file with automake to generate Makefile.in
+
+# content of AVRLIB_ASFLAGS is determined by configure
+# according to the multilib subdir (see acinclude.m4 in top directory)
+# AM_CFLAGS are used when assembling.
+AM_CFLAGS = $(AVRLIB_ASFLAGS)
+
+noinst_LIBRARIES = libcpp.a
+
+libcpp_a_SOURCES = \
+	del_op.cc \
+	del_opv.cc \
+	new_handler.cc \
+	new_op.cc \
+	new_opv.cc \
+	pure.cc
+
+# must be added to the package, but automake doesn't know it as source
+# file until now
+EXTRA_DIST = \
+        new
diff -urN avr-libc-20020203/libcpp/Makefile.in avr-libc-20020203-patchc++/libcpp/Makefile.in
--- avr-libc-20020203/libcpp/Makefile.in	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -0,0 +1,354 @@
+# Makefile.in generated automatically by automake 1.4-p5 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.
+
+# content of AVRLIB_ASFLAGS is determined by configure
+# according to the multilib subdir (see acinclude.m4 in top directory)
+# AM_CFLAGS are used when assembling.
+
+
+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 = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+AR = @AR@
+AS = @AS@
+AVRLIB_ASFLAGS = @AVRLIB_ASFLAGS@
+AVRLIB_CFLAGS = @AVRLIB_CFLAGS@
+AVR_CRT_ASFLAGS = @AVR_CRT_ASFLAGS@
+AVR_CRT_AT90 = @AVR_CRT_AT90@
+AVR_CRT_MEGA = @AVR_CRT_MEGA@
+AVR_CRT_OTHER = @AVR_CRT_OTHER@
+AVR_CRT_TINY = @AVR_CRT_TINY@
+CC = @CC@
+CXX = @CXX@
+INCLUDES = @INCLUDES@
+LIB_QSORT_DIR = @LIB_QSORT_DIR@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+RANLIB = @RANLIB@
+VERSION = @VERSION@
+avrlib_basedir = @avrlib_basedir@
+usegnu = @usegnu@
+
+AM_CFLAGS = $(AVRLIB_ASFLAGS)
+
+noinst_LIBRARIES = libcpp.a
+
+libcpp_a_SOURCES = \
+	del_op.cc \
+	del_opv.cc \
+	new_handler.cc \
+	new_op.cc \
+	new_opv.cc \
+	pure.cc
+
+
+# must be added to the package, but automake doesn't know it as source
+# file until now
+EXTRA_DIST = \
+        new
+
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES = 
+LIBRARIES =  $(noinst_LIBRARIES)
+
+
+DEFS = @DEFS@ -I. -I$(srcdir) 
+CPPFLAGS = @CPPFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+libcpp_a_LIBADD = 
+libcpp_a_OBJECTS =  del_op.o del_opv.o new_handler.o new_op.o new_opv.o \
+pure.o
+CXXFLAGS = @CXXFLAGS@
+CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+DEP_FILES =  .deps/del_op.P .deps/del_opv.P .deps/new_handler.P \
+.deps/new_op.P .deps/new_opv.P .deps/pure.P
+SOURCES = $(libcpp_a_SOURCES)
+OBJECTS = $(libcpp_a_OBJECTS)
+
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .S .c .cc .o .s
+$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libcpp/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status $(BUILT_SOURCES)
+	cd $(top_builddir) \
+	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+mostlyclean-noinstLIBRARIES:
+
+clean-noinstLIBRARIES:
+	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+
+distclean-noinstLIBRARIES:
+
+maintainer-clean-noinstLIBRARIES:
+
+.s.o:
+	$(COMPILE) -c $<
+
+.S.o:
+	$(COMPILE) -c $<
+
+mostlyclean-compile:
+	-rm -f *.o core *.core
+
+clean-compile:
+
+distclean-compile:
+	-rm -f *.tab.c
+
+maintainer-clean-compile:
+
+libcpp.a: $(libcpp_a_OBJECTS) $(libcpp_a_DEPENDENCIES)
+	-rm -f libcpp.a
+	$(AR) cru libcpp.a $(libcpp_a_OBJECTS) $(libcpp_a_LIBADD)
+	$(RANLIB) libcpp.a
+.cc.o:
+	$(CXXCOMPILE) -c $<
+
+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 $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+
+mostlyclean-tags:
+
+clean-tags:
+
+distclean-tags:
+	-rm -f TAGS ID
+
+maintainer-clean-tags:
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = libcpp
+
+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 libcpp/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
+
+%.o: %.cc
+	@echo '$(CXXCOMPILE) -c $<'; \
+	$(CXXCOMPILE) -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: %.cc
+	@echo '$(LTCXXCOMPILE) -c $<'; \
+	$(LTCXXCOMPILE) -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-exec: install-exec-am
+
+install-data-am:
+install-data: install-data-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am:
+uninstall: uninstall-am
+all-am: Makefile $(LIBRARIES)
+all-redirect: all-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+
+
+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-noinstLIBRARIES mostlyclean-compile \
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-noinstLIBRARIES distclean-compile \
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
+		maintainer-clean-compile 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-noinstLIBRARIES distclean-noinstLIBRARIES \
+clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
+mostlyclean-compile distclean-compile clean-compile \
+maintainer-clean-compile 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:
diff -urN avr-libc-20020203/libcpp/del_op.cc avr-libc-20020203-patchc++/libcpp/del_op.cc
--- avr-libc-20020203/libcpp/del_op.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/del_op.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,40 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+void
+operator delete (void *ptr) throw ()
+{
+  if (ptr)
+    free (ptr);
+}
diff -urN avr-libc-20020203/libcpp/del_opnt.cc avr-libc-20020203-patchc++/libcpp/del_opnt.cc
--- avr-libc-20020203/libcpp/del_opnt.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/del_opnt.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,40 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+extern "C" void free (void *);
+
+void
+operator delete (void *ptr, const std::nothrow_t&) throw ()
+{
+  if (ptr)
+    free (ptr);
+}
diff -urN avr-libc-20020203/libcpp/del_opv.cc avr-libc-20020203-patchc++/libcpp/del_opv.cc
--- avr-libc-20020203/libcpp/del_opv.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/del_opv.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,37 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+void
+operator delete[] (void *ptr) throw ()
+{
+  ::operator delete (ptr);
+}
diff -urN avr-libc-20020203/libcpp/del_opvnt.cc avr-libc-20020203-patchc++/libcpp/del_opvnt.cc
--- avr-libc-20020203/libcpp/del_opvnt.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/del_opvnt.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,37 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+void
+operator delete[] (void *ptr, const std::nothrow_t&) throw ()
+{
+  ::operator delete (ptr);
+}
diff -urN avr-libc-20020203/libcpp/new avr-libc-20020203-patchc++/libcpp/new
--- avr-libc-20020203/libcpp/new	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/new	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,91 @@
+// The -*- C++ -*- dynamic memory management header.
+
+// Copyright (C) 1994, 1996, 1997, 1998, 2000, 2001 Free Software Foundation
+
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+// 
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+// 
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+/** @file new
+ *  This header defines several functions to manage dynamic memory and
+ *  handling memory allocation errors; see
+ *  http://gcc.gnu.org/onlinedocs/libstdc++/18_support/howto.html#4 for more.
+ */
+
+#ifndef __NEW__
+#define __NEW__
+
+#include <cstddef>
+#include <exception>
+
+extern "C++" {
+
+namespace std 
+{
+  /** @c bad_alloc (or classes derived from it) is used to report allocation
+   *  errors from the throwing forms of @c new.  */
+  class bad_alloc : public exception 
+  {
+  public:
+    bad_alloc() throw() { }
+    virtual ~bad_alloc() throw();
+  };
+
+  struct nothrow_t { };
+  extern const nothrow_t nothrow;
+  /** If you write your own error handler to be called by @c new, it must
+   *  be of this type.  */
+  typedef void (*new_handler)();
+  /// Takes a replacement handler as the argument, returns the previous handler.
+  new_handler set_new_handler(new_handler);
+} // namespace std
+
+//@{
+/** These are replaceable signatures:
+ *  - normal single new and delete (no arguments, throw @c bad_alloc on error)
+ *  - normal array new and delete (same)
+ *  - @c nothrow single new and delete (take a @c nothrow argument, return
+ *    @c NULL on error)
+ *  - @c nothrow array new and delete (same)
+ *
+ *  Placement new and delete signatures (take a memory address argument,
+ *  does nothing) may not be replaced by a user's program.
+*/
+void *operator new(std::size_t) throw (std::bad_alloc);
+void *operator new[](std::size_t) throw (std::bad_alloc);
+void operator delete(void *) throw();
+void operator delete[](void *) throw();
+void *operator new(std::size_t, const std::nothrow_t&) throw();
+void *operator new[](std::size_t, const std::nothrow_t&) throw();
+void operator delete(void *, const std::nothrow_t&) throw();
+void operator delete[](void *, const std::nothrow_t&) throw();
+
+// Default placement versions of operator new.
+inline void *operator new(std::size_t, void *place) throw() { return place; }
+inline void *operator new[](std::size_t, void *place) throw() { return place; }
+//@}
+} // extern "C++"
+
+#endif
diff -urN avr-libc-20020203/libcpp/new_handler.cc avr-libc-20020203-patchc++/libcpp/new_handler.cc
--- avr-libc-20020203/libcpp/new_handler.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/new_handler.cc	Fri Mar  1 15:50:47 2002
@@ -0,0 +1,42 @@
+// Implementation file for the -*- C++ -*- dynamic memory management header.
+
+// Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA. 
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+using std::new_handler;
+new_handler __new_handler;
+
+new_handler
+std::set_new_handler (new_handler handler)
+{
+  new_handler prev_handler = __new_handler;
+  __new_handler = handler;
+  return prev_handler;
+}
diff -urN avr-libc-20020203/libcpp/new_op.cc avr-libc-20020203-patchc++/libcpp/new_op.cc
--- avr-libc-20020203/libcpp/new_op.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/new_op.cc	Fri Mar  1 13:07:31 2002
@@ -0,0 +1,63 @@
+// Support routines for the -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+#include <exception_defines.h>
+
+using std::new_handler;
+using std::bad_alloc;
+
+extern "C" void *malloc (std::size_t);
+extern "C" void abort (void);
+extern new_handler __new_handler;
+
+void *
+operator new (std::size_t sz) throw (std::bad_alloc)
+{
+  void *p;
+
+  /* malloc (0) is unpredictable; avoid it.  */
+  if (sz == 0)
+    sz = 1;
+  p = (void *) malloc (sz);
+  while (p == 0)
+    {
+      new_handler handler = __new_handler;
+      if (! handler)
+//#ifdef __EXCEPTIONS
+//      throw bad_alloc();
+//#else
+        abort();
+//#endif
+      handler ();
+      p = (void *) malloc (sz);
+    }
+
+  return p;
+}
diff -urN avr-libc-20020203/libcpp/new_opnt.cc avr-libc-20020203-patchc++/libcpp/new_opnt.cc
--- avr-libc-20020203/libcpp/new_opnt.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/new_opnt.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,66 @@
+// Support routines for the -*- C++ -*- dynamic memory management.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+#include <exception_defines.h>
+
+using std::new_handler;
+using std::bad_alloc;
+
+extern "C" void *malloc (std::size_t);
+extern new_handler __new_handler;
+
+void *
+operator new (std::size_t sz, const std::nothrow_t&) throw()
+{
+  void *p;
+
+  /* malloc (0) is unpredictable; avoid it.  */
+  if (sz == 0)
+    sz = 1;
+  p = (void *) malloc (sz);
+  while (p == 0)
+    {
+      new_handler handler = __new_handler;
+      if (! handler)
+	return 0;
+      try
+	{
+	  handler ();
+	}
+      catch (bad_alloc &)
+	{
+	  return 0;
+	}
+
+      p = (void *) malloc (sz);
+    }
+
+  return p;
+}
diff -urN avr-libc-20020203/libcpp/new_opv.cc avr-libc-20020203-patchc++/libcpp/new_opv.cc
--- avr-libc-20020203/libcpp/new_opv.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/new_opv.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,37 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+void *
+operator new[] (std::size_t sz) throw (std::bad_alloc)
+{
+  return ::operator new(sz);
+}
diff -urN avr-libc-20020203/libcpp/new_opvnt.cc avr-libc-20020203-patchc++/libcpp/new_opvnt.cc
--- avr-libc-20020203/libcpp/new_opvnt.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/new_opvnt.cc	Thu Feb 28 15:16:50 2002
@@ -0,0 +1,37 @@
+// Boilerplate support routines for -*- C++ -*- dynamic memory management.
+
+// Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+#include "new"
+
+void *
+operator new[] (std::size_t sz, const std::nothrow_t& nothrow) throw()
+{
+  return ::operator new(sz, nothrow);
+}
diff -urN avr-libc-20020203/libcpp/pure.cc avr-libc-20020203-patchc++/libcpp/pure.cc
--- avr-libc-20020203/libcpp/pure.cc	Thu Jan  1 10:00:00 1970
+++ avr-libc-20020203-patchc++/libcpp/pure.cc	Fri Mar  1 13:31:35 2002
@@ -0,0 +1,36 @@
+// -*- C++ -*- 
+// Copyright (C) 2000, 2001 Free Software Foundation
+//
+// This file is part of GNU CC.
+//
+// GNU CC is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// GNU CC is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with GNU CC; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+extern "C" void exit(void);
+
+extern "C" void
+__cxa_pure_virtual (void)
+{
+  exit();
+}
diff -urN avr-libc-20020203/libm/Makefile.in avr-libc-20020203-patchc++/libm/Makefile.in
--- avr-libc-20020203/libm/Makefile.in	Mon Feb  4 08:51:27 2002
+++ avr-libc-20020203-patchc++/libm/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -73,6 +73,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -89,7 +90,8 @@
 # must be defined as empty, so that make dist will work
 libm_a_SOURCES = 
 
-SUBLIBS =  	fplib/lib.a
+SUBLIBS = \
+	fplib/lib.a
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -107,7 +109,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(libm_a_SOURCES)
 OBJECTS = $(libm_a_OBJECTS)
@@ -116,9 +118,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libm/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libm/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
 
@@ -132,9 +134,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -245,6 +244,11 @@
 subdir = libm
 
 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 libm/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
diff -urN avr-libc-20020203/libm/fplib/Makefile.in avr-libc-20020203-patchc++/libm/fplib/Makefile.in
--- avr-libc-20020203/libm/fplib/Makefile.in	Mon Feb  4 08:51:28 2002
+++ avr-libc-20020203-patchc++/libm/fplib/Makefile.in	Fri Mar  1 16:06:00 2002
@@ -77,6 +77,7 @@
 AVR_CRT_OTHER = @AVR_CRT_OTHER@
 AVR_CRT_TINY = @AVR_CRT_TINY@
 CC = @CC@
+CXX = @CXX@
 INCLUDES = @INCLUDES@
 LIB_QSORT_DIR = @LIB_QSORT_DIR@
 MAKEINFO = @MAKEINFO@
@@ -90,12 +91,61 @@
 
 noinst_LIBRARIES = lib.a
 
-lib_a_SOURCES =  	acos.S           	addsf3.S         	addsf3x.S	 	asin.S	         	atan.S	         	atan2.S	         	ceil.S	         	cos.S	         	cosh.S	         	divsf3.S         	divsf3x.S	 	dtostre.S	 	dtostrf.S	 	exp.S	         	fixsfsi.S	 	floatsisf.S	 	floor.S	         	fmod.S	         	fp_cmp.S         	fp_cosinus.S	 	fp_flashconst.S	 	fp_merge.S	 	fp_nan.S         	fp_powerseries.S 	fp_split.S	 	fp_zero.S	 	frexp.S	         	ldexp.S	         	log.S	         	log10.S	         	modf.S	         	mulsf3.S         	mulsf3x.S	 	negsf2.S         	pow.S	         	sin.S	         	sinh.S	         	sqrt.S	         	strtod.S         	tan.S	         	tanh.S
+lib_a_SOURCES = \
+	acos.S           \
+	addsf3.S         \
+	addsf3x.S	 \
+	asin.S	         \
+	atan.S	         \
+	atan2.S	         \
+	ceil.S	         \
+	cos.S	         \
+	cosh.S	         \
+	divsf3.S         \
+	divsf3x.S	 \
+	dtostre.S	 \
+	dtostrf.S	 \
+	exp.S	         \
+	fixsfsi.S	 \
+	floatsisf.S	 \
+	floor.S	         \
+	fmod.S	         \
+	fp_cmp.S         \
+	fp_cosinus.S	 \
+	fp_flashconst.S	 \
+	fp_merge.S	 \
+	fp_nan.S         \
+	fp_powerseries.S \
+	fp_split.S	 \
+	fp_zero.S	 \
+	frexp.S	         \
+	ldexp.S	         \
+	log.S	         \
+	log10.S	         \
+	modf.S	         \
+	mulsf3.S         \
+	mulsf3x.S	 \
+	negsf2.S         \
+	pow.S	         \
+	sin.S	         \
+	sinh.S	         \
+	sqrt.S	         \
+	strtod.S         \
+	tan.S	         \
+	tanh.S
 
 
 # must be added to the package, but automake doesn't know it as source
 # file until now
-EXTRA_DIST =  	fplib.inc      	epilogue.S     	irexp.S        	prologue.S     	readme.atan2   	readme.dtostre 	readme.fplib   	readme.strtod
+EXTRA_DIST = \
+	fplib.inc      \
+	epilogue.S     \
+	irexp.S        \
+	prologue.S     \
+	readme.atan2   \
+	readme.dtostre \
+	readme.fplib   \
+	readme.strtod
 
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES = 
@@ -122,8 +172,18 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
+DEP_FILES =  .deps/acos.P .deps/addsf3.P .deps/addsf3x.P .deps/asin.P \
+.deps/atan.P .deps/atan2.P .deps/ceil.P .deps/cos.P .deps/cosh.P \
+.deps/divsf3.P .deps/divsf3x.P .deps/dtostre.P .deps/dtostrf.P \
+.deps/exp.P .deps/fixsfsi.P .deps/floatsisf.P .deps/floor.P \
+.deps/fmod.P .deps/fp_cmp.P .deps/fp_cosinus.P .deps/fp_flashconst.P \
+.deps/fp_merge.P .deps/fp_nan.P .deps/fp_powerseries.P .deps/fp_split.P \
+.deps/fp_zero.P .deps/frexp.P .deps/ldexp.P .deps/log.P .deps/log10.P \
+.deps/modf.P .deps/mulsf3.P .deps/mulsf3x.P .deps/negsf2.P .deps/pow.P \
+.deps/sin.P .deps/sinh.P .deps/sqrt.P .deps/strtod.P .deps/tan.P \
+.deps/tanh.P
 SOURCES = $(lib_a_SOURCES)
 OBJECTS = $(lib_a_OBJECTS)
 
@@ -131,9 +191,9 @@
 .SUFFIXES:
 .SUFFIXES: .S .c .o .s
 $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
-	cd $(top_srcdir) && $(AUTOMAKE) --gnu --include-deps libm/fplib/Makefile
+	cd $(top_srcdir) && $(AUTOMAKE) --gnu libm/fplib/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
 
@@ -147,9 +207,6 @@
 
 maintainer-clean-noinstLIBRARIES:
 
-.c.o:
-	$(COMPILE) -c $<
-
 .s.o:
 	$(COMPILE) -c $<
 
@@ -205,6 +262,11 @@
 subdir = libm/fplib
 
 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 libm/fplib/Makefile
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
@@ -216,6 +278,37 @@
 	  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:
@@ -252,23 +345,25 @@
 
 maintainer-clean-generic:
 mostlyclean-am:  mostlyclean-noinstLIBRARIES mostlyclean-compile \
-		mostlyclean-tags mostlyclean-generic
+		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-am
 
-clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-generic \
-		mostlyclean-am
+clean-am:  clean-noinstLIBRARIES clean-compile clean-tags clean-depend \
+		clean-generic mostlyclean-am
 
 clean: clean-am
 
 distclean-am:  distclean-noinstLIBRARIES distclean-compile \
-		distclean-tags distclean-generic clean-am
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 
 distclean: distclean-am
 
 maintainer-clean-am:  maintainer-clean-noinstLIBRARIES \
 		maintainer-clean-compile 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."
 
@@ -278,12 +373,13 @@
 clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile 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
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
