[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[avr-gcc-list] avr-libc-20020203 patches for c++ support
From: |
Peter Jansen |
Subject: |
[avr-gcc-list] avr-libc-20020203 patches for c++ support |
Date: |
Thu, 07 Mar 2002 10:54:33 +1100 |
Hi All,
Attahced is a patch for avr-libc to add c++ support, I have defined the
c++ library as libcpp, this is non standard from gcc as it would
normally be libstdc++. This library defined add, delete operators for
c++ in a very cut down version.
Regards,
--
Peter Jansen
Smart Container
Level 1, NIC Building
Eveleigh
NSW 1430
AUSTRALIA
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 @@
address@hidden@%$AR%g
address@hidden@%$RANLIB%g
address@hidden@%$CC%g
address@hidden@%$CXX%g
address@hidden@%$AVRLIB_CFLAGS%g
address@hidden@%$AVRLIB_ASFLAGS%g
address@hidden@%$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/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 Thu Feb 28 10:23:41 2002
@@ -22,6 +22,17 @@
/* Hacked a lot by Marek Michalkiewicz <address@hidden> 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"
@@ -34,6 +45,8 @@
.extern _edata
.extern __bss_start
.extern __bss_end
+ .extern __data_load_start
+ .extern __data_end
; Stack init in main() (can override with avr-ld --defsym __stack=...)
; .weak __stack
@@ -73,7 +86,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 +131,7 @@
VEC _vector_38
VEC _vector_39
- /* extra check */
+; extra check
; .if . - .__start_of_init__ - INT_VECT_SIZE
; .err
; .endif
@@ -126,7 +139,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 +173,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 +204,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 +225,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 +236,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.
- [avr-gcc-list] avr-libc-20020203 patches for c++ support,
Peter Jansen <=
- Re: [avr-gcc-list] avr-libc-20020203 patches for c++ support, Jason Kyle, 2002/03/10
- Re: [avr-gcc-list] avr-libc-20020203 patches for c++ support, Jason Kyle, 2002/03/10
- Re: [avr-gcc-list] avr-libc-20020203 patches for c++ support, Jason Kyle, 2002/03/10
- AW: [avr-gcc-list] avr-libc-20020203 patches for c++ support, Andreas Trenkwalder, 2002/03/10
- Re: AW: [avr-gcc-list] avr-libc-20020203 patches for c++ support, Peter Jansen, 2002/03/21
- Re: [avr-gcc-list] avr-libc-20020203 patches for c++ support, Theodore Roth, 2002/03/10