mirror of git://gcc.gnu.org/git/gcc.git
Makefile.am (noinst_LIBRARIES): New target.
2002-05-28 Phil Edwards <pme@gcc.gnu.org> * testsuite/Makefile.am (noinst_LIBRARIES): New target. Pull in CXX/INCLUDES. * testsuite/Makefile.in: Regenerate. * testsuite/testsuite_hooks.h (gnu_copy_tracker): Move from list_modifiers.cc and rename from 'T'. Move code bodies... * testsuite/testsuite_hooks.cc: ...to here. New file. * testsuite/23_containers/list_modifiers.cc: Move 'T' class out. * testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile): Add libv3test.a to link options. From-SVN: r53977
This commit is contained in:
parent
64de6c0a5f
commit
8ea08b7d7b
|
@ -1,3 +1,15 @@
|
||||||
|
2002-05-28 Phil Edwards <pme@gcc.gnu.org>
|
||||||
|
|
||||||
|
* testsuite/Makefile.am (noinst_LIBRARIES): New target. Pull in
|
||||||
|
CXX/INCLUDES.
|
||||||
|
* testsuite/Makefile.in: Regenerate.
|
||||||
|
* testsuite/testsuite_hooks.h (gnu_copy_tracker): Move from
|
||||||
|
list_modifiers.cc and rename from 'T'. Move code bodies...
|
||||||
|
* testsuite/testsuite_hooks.cc: ...to here. New file.
|
||||||
|
* testsuite/23_containers/list_modifiers.cc: Move 'T' class out.
|
||||||
|
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3_target_compile):
|
||||||
|
Add libv3test.a to link options.
|
||||||
|
|
||||||
2002-05-27 Benjamin Kosnik <bkoz@redhat.com>
|
2002-05-27 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
* src/misc-inst.cc: Define unnecessary algorithm
|
* src/misc-inst.cc: Define unnecessary algorithm
|
||||||
|
|
|
@ -21,60 +21,10 @@
|
||||||
#include <list>
|
#include <list>
|
||||||
#include <testsuite_hooks.h>
|
#include <testsuite_hooks.h>
|
||||||
|
|
||||||
|
typedef gnu_copy_tracker T;
|
||||||
|
|
||||||
bool test = true;
|
bool test = true;
|
||||||
|
|
||||||
// Here's a class with nontrivial ctor/dtor that provides
|
|
||||||
// the ability to track the number of copy ctors and dtors
|
|
||||||
// and will throw on demand during copy.
|
|
||||||
class T
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
// default constructor
|
|
||||||
T(int anId, bool throwOnDemand = false)
|
|
||||||
: itsId(anId), willThrow(throwOnDemand)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
// copy constructor
|
|
||||||
T(const T& rhs)
|
|
||||||
: itsId(rhs.id()), willThrow(rhs.willThrow)
|
|
||||||
{
|
|
||||||
++itsCopyCount;
|
|
||||||
if (willThrow)
|
|
||||||
throw "exception";
|
|
||||||
}
|
|
||||||
|
|
||||||
~T()
|
|
||||||
{ ++itsDtorCount; }
|
|
||||||
|
|
||||||
int
|
|
||||||
id() const
|
|
||||||
{ return itsId; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
const int itsId;
|
|
||||||
const bool willThrow;
|
|
||||||
|
|
||||||
public:
|
|
||||||
static void
|
|
||||||
reset()
|
|
||||||
{ itsCopyCount = 0; itsDtorCount = 0; }
|
|
||||||
|
|
||||||
static int
|
|
||||||
copyCount()
|
|
||||||
{ return itsCopyCount; }
|
|
||||||
|
|
||||||
static int
|
|
||||||
dtorCount()
|
|
||||||
{ return itsDtorCount; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
static int itsCopyCount;
|
|
||||||
static int itsDtorCount;
|
|
||||||
};
|
|
||||||
|
|
||||||
int T::itsCopyCount = 0;
|
|
||||||
int T::itsDtorCount = 0;
|
|
||||||
|
|
||||||
|
|
||||||
// This test verifies the following.
|
// This test verifies the following.
|
||||||
//
|
//
|
||||||
|
@ -314,7 +264,7 @@ test03()
|
||||||
VERIFY(e == list0301.end());
|
VERIFY(e == list0301.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
main(int argc, char* argv[])
|
int main()
|
||||||
{
|
{
|
||||||
test01();
|
test01();
|
||||||
test02();
|
test02();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
## Makefile for the testsuite subdirectory of the GNU C++ Standard library.
|
## Makefile for the testsuite subdirectory of the GNU C++ Standard library.
|
||||||
##
|
##
|
||||||
## Copyright (C) 2001 Free Software Foundation, Inc.
|
## Copyright (C) 2001, 2002 Free Software Foundation, Inc.
|
||||||
##
|
##
|
||||||
## This file is part of the libstdc++ version 3 distribution.
|
## This file is part of the libstdc++ version 3 distribution.
|
||||||
## Process this file with automake to produce Makefile.in.
|
## Process this file with automake to produce Makefile.in.
|
||||||
|
@ -35,3 +35,12 @@ RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then \
|
||||||
|
|
||||||
RUNTESTFLAGS =
|
RUNTESTFLAGS =
|
||||||
|
|
||||||
|
CXX = @glibcpp_CXX@ @GLIBCPP_INCLUDES@
|
||||||
|
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||||
|
INCLUDES = @TOPLEVEL_INCLUDES@
|
||||||
|
|
||||||
|
noinst_LIBRARIES = libv3test.a
|
||||||
|
|
||||||
|
libv3test_a_SOURCES = testsuite_hooks.cc
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
|
# Makefile.in generated automatically by automake 1.4 from Makefile.am
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
|
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
# with or without modifications, as long as this notice is preserved.
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
@ -68,6 +68,9 @@ AS = @AS@
|
||||||
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
ATOMICITY_INC_SRCDIR = @ATOMICITY_INC_SRCDIR@
|
||||||
AWK = @AWK@
|
AWK = @AWK@
|
||||||
BASIC_FILE_H = @BASIC_FILE_H@
|
BASIC_FILE_H = @BASIC_FILE_H@
|
||||||
|
BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@
|
||||||
|
CATALOGS = @CATALOGS@
|
||||||
|
CATOBJEXT = @CATOBJEXT@
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CCODECVT_C = @CCODECVT_C@
|
CCODECVT_C = @CCODECVT_C@
|
||||||
CCODECVT_H = @CCODECVT_H@
|
CCODECVT_H = @CCODECVT_H@
|
||||||
|
@ -77,17 +80,27 @@ CPP = @CPP@
|
||||||
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
|
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
|
||||||
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
CSHADOW_FLAGS = @CSHADOW_FLAGS@
|
||||||
CSTDIO_H = @CSTDIO_H@
|
CSTDIO_H = @CSTDIO_H@
|
||||||
CXX = @CXX@
|
|
||||||
CXXCPP = @CXXCPP@
|
CXXCPP = @CXXCPP@
|
||||||
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
C_INCLUDE_DIR = @C_INCLUDE_DIR@
|
||||||
|
DATADIRNAME = @DATADIRNAME@
|
||||||
DEBUG_FLAGS = @DEBUG_FLAGS@
|
DEBUG_FLAGS = @DEBUG_FLAGS@
|
||||||
DLLTOOL = @DLLTOOL@
|
DLLTOOL = @DLLTOOL@
|
||||||
EXEEXT = @EXEEXT@
|
EXEEXT = @EXEEXT@
|
||||||
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@
|
||||||
GCJ = @GCJ@
|
GCJ = @GCJ@
|
||||||
GCJFLAGS = @GCJFLAGS@
|
GCJFLAGS = @GCJFLAGS@
|
||||||
|
GENCAT = @GENCAT@
|
||||||
|
GLIBC21 = @GLIBC21@
|
||||||
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
GLIBCPP_INCLUDES = @GLIBCPP_INCLUDES@
|
||||||
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
GLIBCPP_IS_CROSS_COMPILING = @GLIBCPP_IS_CROSS_COMPILING@
|
||||||
|
GMOFILES = @GMOFILES@
|
||||||
|
GMSGFMT = @GMSGFMT@
|
||||||
|
INSTOBJEXT = @INSTOBJEXT@
|
||||||
|
INTLBISON = @INTLBISON@
|
||||||
|
INTLLIBS = @INTLLIBS@
|
||||||
|
INTLOBJS = @INTLOBJS@
|
||||||
|
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
|
||||||
|
LIBICONV = @LIBICONV@
|
||||||
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
LIBIO_INCLUDES = @LIBIO_INCLUDES@
|
||||||
LIBMATHOBJS = @LIBMATHOBJS@
|
LIBMATHOBJS = @LIBMATHOBJS@
|
||||||
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
|
||||||
|
@ -98,17 +111,22 @@ LIBUNWIND_FLAG = @LIBUNWIND_FLAG@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MKINSTALLDIRS = @MKINSTALLDIRS@
|
||||||
|
MSGFMT = @MSGFMT@
|
||||||
OBJDUMP = @OBJDUMP@
|
OBJDUMP = @OBJDUMP@
|
||||||
OBJEXT = @OBJEXT@
|
OBJEXT = @OBJEXT@
|
||||||
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
|
OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
|
||||||
OPT_LDFLAGS = @OPT_LDFLAGS@
|
OPT_LDFLAGS = @OPT_LDFLAGS@
|
||||||
OS_INC_SRCDIR = @OS_INC_SRCDIR@
|
OS_INC_SRCDIR = @OS_INC_SRCDIR@
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
|
POFILES = @POFILES@
|
||||||
|
POSUB = @POSUB@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
SECTION_FLAGS = @SECTION_FLAGS@
|
SECTION_FLAGS = @SECTION_FLAGS@
|
||||||
SECTION_LDFLAGS = @SECTION_LDFLAGS@
|
SECTION_LDFLAGS = @SECTION_LDFLAGS@
|
||||||
STRIP = @STRIP@
|
STRIP = @STRIP@
|
||||||
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
|
||||||
|
USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@
|
||||||
USE_NLS = @USE_NLS@
|
USE_NLS = @USE_NLS@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
WARN_FLAGS = @WARN_FLAGS@
|
WARN_FLAGS = @WARN_FLAGS@
|
||||||
|
@ -149,9 +167,31 @@ RUNTEST = `if [ -f @glibcpp_srcdir@/../dejagnu/runtest ] ; then \
|
||||||
|
|
||||||
|
|
||||||
RUNTESTFLAGS =
|
RUNTESTFLAGS =
|
||||||
|
|
||||||
|
CXX = @glibcpp_CXX@ @GLIBCPP_INCLUDES@
|
||||||
|
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
|
||||||
|
INCLUDES = @TOPLEVEL_INCLUDES@
|
||||||
|
|
||||||
|
noinst_LIBRARIES = libv3test.a
|
||||||
|
|
||||||
|
libv3test_a_SOURCES = testsuite_hooks.cc
|
||||||
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
|
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
|
||||||
CONFIG_HEADER = ../config.h
|
CONFIG_HEADER = ../config.h
|
||||||
CONFIG_CLEAN_FILES =
|
CONFIG_CLEAN_FILES =
|
||||||
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
|
||||||
|
|
||||||
|
DEFS = @DEFS@ -I. -I$(srcdir) -I..
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
libv3test_a_LIBADD =
|
||||||
|
libv3test_a_OBJECTS = testsuite_hooks.$(OBJEXT)
|
||||||
|
CXXFLAGS = @CXXFLAGS@
|
||||||
|
CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
|
||||||
|
CXXLD = $(CXX)
|
||||||
|
CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@
|
||||||
DIST_COMMON = README Makefile.am Makefile.in
|
DIST_COMMON = README Makefile.am Makefile.in
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,26 +199,120 @@ DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = gtar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
|
DEP_FILES = .deps/testsuite_hooks.P
|
||||||
|
SOURCES = $(libv3test_a_SOURCES)
|
||||||
|
OBJECTS = $(libv3test_a_OBJECTS)
|
||||||
|
|
||||||
all: all-redirect
|
all: all-redirect
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .S .c .cc .lo .o .obj .s
|
||||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
|
||||||
cd $(top_srcdir) && $(AUTOMAKE) --cygnus testsuite/Makefile
|
cd $(top_srcdir) && $(AUTOMAKE) --foreign testsuite/Makefile
|
||||||
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
|
||||||
cd $(top_builddir) \
|
cd $(top_builddir) \
|
||||||
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
|
||||||
|
|
||||||
tags: TAGS
|
|
||||||
TAGS:
|
|
||||||
|
|
||||||
|
mostlyclean-noinstLIBRARIES:
|
||||||
|
|
||||||
|
clean-noinstLIBRARIES:
|
||||||
|
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||||
|
|
||||||
|
distclean-noinstLIBRARIES:
|
||||||
|
|
||||||
|
maintainer-clean-noinstLIBRARIES:
|
||||||
|
|
||||||
|
# FIXME: We should only use cygpath when building on Windows,
|
||||||
|
# and only if it is available.
|
||||||
|
.c.obj:
|
||||||
|
$(COMPILE) -c `cygpath -w $<`
|
||||||
|
|
||||||
|
.s.o:
|
||||||
|
$(COMPILE) -c $<
|
||||||
|
|
||||||
|
.S.o:
|
||||||
|
$(COMPILE) -c $<
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.o core *.core
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
|
||||||
|
clean-compile:
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
maintainer-clean-compile:
|
||||||
|
|
||||||
|
.s.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
.S.lo:
|
||||||
|
$(LIBTOOL) --mode=compile $(COMPILE) -c $<
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
|
||||||
|
maintainer-clean-libtool:
|
||||||
|
|
||||||
|
libv3test.a: $(libv3test_a_OBJECTS) $(libv3test_a_DEPENDENCIES)
|
||||||
|
-rm -f libv3test.a
|
||||||
|
$(AR) cru libv3test.a $(libv3test_a_OBJECTS) $(libv3test_a_LIBADD)
|
||||||
|
$(RANLIB) libv3test.a
|
||||||
|
.cc.o:
|
||||||
|
$(CXXCOMPILE) -c $<
|
||||||
|
.cc.obj:
|
||||||
|
$(CXXCOMPILE) -c `cygpath -w $<`
|
||||||
|
.cc.lo:
|
||||||
|
$(LTCXXCOMPILE) -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)
|
distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
|
||||||
|
|
||||||
subdir = testsuite
|
subdir = testsuite
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
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 --foreign testsuite/Makefile
|
||||||
@for file in $(DISTFILES); do \
|
@for file in $(DISTFILES); do \
|
||||||
if test -f $$file; then d=.; else d=$(srcdir); fi; \
|
d=$(srcdir); \
|
||||||
if test -d $$d/$$file; then \
|
if test -d $$d/$$file; then \
|
||||||
cp -pr $$d/$$file $(distdir)/$$file; \
|
cp -pr $$d/$$file $(distdir)/$$file; \
|
||||||
else \
|
else \
|
||||||
|
@ -188,15 +322,62 @@ distdir: $(DISTFILES)
|
||||||
fi; \
|
fi; \
|
||||||
done
|
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
|
||||||
|
|
||||||
RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir
|
RUNTESTDEFAULTFLAGS = --tool $(DEJATOOL) --srcdir $$srcdir
|
||||||
|
|
||||||
check-DEJAGNU: site.exp
|
check-DEJAGNU: site.exp
|
||||||
srcdir=`cd $(srcdir) && pwd`; export srcdir; \
|
srcdir=`cd $(srcdir) && pwd`; export srcdir; \
|
||||||
EXPECT=$(EXPECT); export EXPECT; \
|
EXPECT=$(EXPECT); export EXPECT; \
|
||||||
if [ -f $(top_builddir)/../expect/expect ]; then \
|
|
||||||
TCL_LIBRARY=`cd $(top_srcdir)/../tcl/library && pwd`; \
|
|
||||||
export TCL_LIBRARY; \
|
|
||||||
fi; \
|
|
||||||
runtest=$(RUNTEST); \
|
runtest=$(RUNTEST); \
|
||||||
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
|
if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
|
||||||
$$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
|
$$runtest $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
|
||||||
|
@ -225,13 +406,11 @@ info-am:
|
||||||
info: info-am
|
info: info-am
|
||||||
dvi-am:
|
dvi-am:
|
||||||
dvi: dvi-am
|
dvi: dvi-am
|
||||||
check-am:
|
check-am: all-am
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
|
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
|
||||||
check: check-am
|
check: check-am
|
||||||
installcheck-am:
|
installcheck-am:
|
||||||
installcheck: installcheck-am
|
installcheck: installcheck-am
|
||||||
install-info-am:
|
|
||||||
install-info: install-info-am
|
|
||||||
install-exec-am:
|
install-exec-am:
|
||||||
install-exec: install-exec-am
|
install-exec: install-exec-am
|
||||||
|
|
||||||
|
@ -243,7 +422,7 @@ install-am: all-am
|
||||||
install: install-am
|
install: install-am
|
||||||
uninstall-am:
|
uninstall-am:
|
||||||
uninstall: uninstall-am
|
uninstall: uninstall-am
|
||||||
all-am: Makefile
|
all-am: Makefile $(LIBRARIES)
|
||||||
all-redirect: all-am
|
all-redirect: all-am
|
||||||
install-strip:
|
install-strip:
|
||||||
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
|
||||||
|
@ -259,31 +438,46 @@ distclean-generic:
|
||||||
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
-rm -f config.cache config.log stamp-h stamp-h[0-9]*
|
||||||
|
|
||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
mostlyclean-am: mostlyclean-generic
|
mostlyclean-am: mostlyclean-noinstLIBRARIES mostlyclean-compile \
|
||||||
|
mostlyclean-libtool mostlyclean-tags mostlyclean-depend \
|
||||||
|
mostlyclean-generic
|
||||||
|
|
||||||
mostlyclean: mostlyclean-am
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
clean-am: clean-generic mostlyclean-am
|
clean-am: clean-noinstLIBRARIES clean-compile clean-libtool clean-tags \
|
||||||
|
clean-depend clean-generic mostlyclean-am
|
||||||
|
|
||||||
clean: clean-am
|
clean: clean-am
|
||||||
|
|
||||||
distclean-am: distclean-generic clean-am
|
distclean-am: distclean-noinstLIBRARIES distclean-compile \
|
||||||
|
distclean-libtool distclean-tags distclean-depend \
|
||||||
|
distclean-generic clean-am
|
||||||
-rm -f libtool
|
-rm -f libtool
|
||||||
|
|
||||||
distclean: distclean-am
|
distclean: distclean-am
|
||||||
|
|
||||||
maintainer-clean-am: maintainer-clean-generic distclean-am
|
maintainer-clean-am: maintainer-clean-noinstLIBRARIES \
|
||||||
|
maintainer-clean-compile maintainer-clean-libtool \
|
||||||
|
maintainer-clean-tags maintainer-clean-depend \
|
||||||
|
maintainer-clean-generic distclean-am
|
||||||
@echo "This command is intended for maintainers to use;"
|
@echo "This command is intended for maintainers to use;"
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
maintainer-clean: maintainer-clean-am
|
||||||
|
|
||||||
.PHONY: tags distdir check-DEJAGNU info-am info dvi-am dvi check \
|
.PHONY: mostlyclean-noinstLIBRARIES distclean-noinstLIBRARIES \
|
||||||
check-am installcheck-am installcheck install-info-am install-info \
|
clean-noinstLIBRARIES maintainer-clean-noinstLIBRARIES \
|
||||||
install-exec-am install-exec install-data-am install-data install-am \
|
mostlyclean-compile distclean-compile clean-compile \
|
||||||
install uninstall-am uninstall all-redirect all-am all installdirs \
|
maintainer-clean-compile mostlyclean-libtool distclean-libtool \
|
||||||
mostlyclean-generic distclean-generic clean-generic \
|
clean-libtool maintainer-clean-libtool tags mostlyclean-tags \
|
||||||
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
|
distclean-tags clean-tags maintainer-clean-tags distdir \
|
||||||
|
mostlyclean-depend distclean-depend clean-depend \
|
||||||
|
maintainer-clean-depend check-DEJAGNU 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.
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
|
|
@ -196,7 +196,12 @@ proc libstdc++-v3_target_compile { source dest type options } {
|
||||||
set cxx_final [concat $cxx_final $cxxflags]
|
set cxx_final [concat $cxx_final $cxxflags]
|
||||||
set cxx_final [concat $cxx_final $includes]
|
set cxx_final [concat $cxx_final $includes]
|
||||||
|
|
||||||
lappend options "compiler=$cxx_final";
|
lappend options "compiler=$cxx_final"
|
||||||
|
|
||||||
|
# Picks up our local freshly-built testsuite library. We could just
|
||||||
|
# name it directly, "./libv3test.a" but this is more portable.
|
||||||
|
lappend options "ldflags=-L."
|
||||||
|
lappend options "libs=-lv3test"
|
||||||
|
|
||||||
return [target_compile $source $dest $type $options]
|
return [target_compile $source $dest $type $options]
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
// Utility subroutines for the C++ library testsuite.
|
||||||
|
//
|
||||||
|
// Copyright (C) 2002 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.
|
||||||
|
|
||||||
|
#include <testsuite_hooks.h>
|
||||||
|
|
||||||
|
#ifdef _GLIBCPP_MEM_LIMITS
|
||||||
|
#include <sys/resource.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
void
|
||||||
|
__set_testsuite_memlimit(float __size)
|
||||||
|
{
|
||||||
|
struct rlimit r;
|
||||||
|
rlim_t limit = (rlim_t)(__size * 1048576);
|
||||||
|
|
||||||
|
// Heap size, seems to be common.
|
||||||
|
#if _GLIBCPP_HAVE_MEMLIMIT_DATA
|
||||||
|
getrlimit(RLIMIT_DATA, &r);
|
||||||
|
r.rlim_cur = limit;
|
||||||
|
setrlimit(RLIMIT_DATA, &r);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Resident set size.
|
||||||
|
#if _GLIBCPP_HAVE_MEMLIMIT_RSS
|
||||||
|
getrlimit(RLIMIT_RSS, &r);
|
||||||
|
r.rlim_cur = limit;
|
||||||
|
setrlimit(RLIMIT_RSS, &r);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Mapped memory (brk + mmap).
|
||||||
|
#if _GLIBCPP_HAVE_MEMLIMIT_VMEM
|
||||||
|
getrlimit(RLIMIT_VMEM, &r);
|
||||||
|
r.rlim_cur = limit;
|
||||||
|
setrlimit(RLIMIT_VMEM, &r);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Virtual memory.
|
||||||
|
#if _GLIBCPP_HAVE_MEMLIMIT_AS
|
||||||
|
getrlimit(RLIMIT_AS, &r);
|
||||||
|
r.rlim_cur = limit;
|
||||||
|
setrlimit(RLIMIT_AS, &r);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif /* _GLIBCPP_MEM_LIMITS */
|
||||||
|
|
||||||
|
|
||||||
|
gnu_counting_struct::size_type gnu_counting_struct::count = 0;
|
||||||
|
|
||||||
|
int gnu_copy_tracker::itsCopyCount = 0;
|
||||||
|
int gnu_copy_tracker::itsDtorCount = 0;
|
||||||
|
|
|
@ -46,6 +46,10 @@
|
||||||
// which starts at zero, increments on instance construction, and decrements
|
// which starts at zero, increments on instance construction, and decrements
|
||||||
// on instance destruction. "assert_count(n)" can be called to VERIFY()
|
// on instance destruction. "assert_count(n)" can be called to VERIFY()
|
||||||
// that the count equals N.
|
// that the count equals N.
|
||||||
|
//
|
||||||
|
// 4) gnu_copy_tracker, from Stephen M. Webb <stephen@bregmasoft.com>.
|
||||||
|
// A class with nontrivial ctor/dtor that provides the ability to track the
|
||||||
|
// number of copy ctors and dtors, and will throw on demand during copy.
|
||||||
|
|
||||||
#ifndef _GLIBCPP_TESTSUITE_HOOKS_H
|
#ifndef _GLIBCPP_TESTSUITE_HOOKS_H
|
||||||
#define _GLIBCPP_TESTSUITE_HOOKS_H
|
#define _GLIBCPP_TESTSUITE_HOOKS_H
|
||||||
|
@ -61,64 +65,28 @@
|
||||||
|
|
||||||
// Defined in GLIBCPP_CONFIGURE_TESTSUITE.
|
// Defined in GLIBCPP_CONFIGURE_TESTSUITE.
|
||||||
#ifndef _GLIBCPP_MEM_LIMITS
|
#ifndef _GLIBCPP_MEM_LIMITS
|
||||||
|
|
||||||
// Don't do memory limits.
|
// Don't do memory limits.
|
||||||
void
|
extern void
|
||||||
__set_testsuite_memlimit(float x = 0)
|
__set_testsuite_memlimit(float x = 0)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// Do memory limits.
|
// Do memory limits.
|
||||||
#include <sys/resource.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#ifndef MEMLIMIT_MB
|
#ifndef MEMLIMIT_MB
|
||||||
#define MEMLIMIT_MB 16.0
|
#define MEMLIMIT_MB 16.0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void
|
extern void
|
||||||
__set_testsuite_memlimit(float __size = MEMLIMIT_MB)
|
__set_testsuite_memlimit(float __size = MEMLIMIT_MB);
|
||||||
{
|
|
||||||
struct rlimit r;
|
|
||||||
rlim_t limit = (rlim_t)(__size * 1048576);
|
|
||||||
|
|
||||||
// Heap size, seems to be common.
|
|
||||||
#if _GLIBCPP_HAVE_MEMLIMIT_DATA
|
|
||||||
getrlimit(RLIMIT_DATA, &r);
|
|
||||||
r.rlim_cur = limit;
|
|
||||||
setrlimit(RLIMIT_DATA, &r);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Resident set size.
|
|
||||||
#if _GLIBCPP_HAVE_MEMLIMIT_RSS
|
|
||||||
getrlimit(RLIMIT_RSS, &r);
|
|
||||||
r.rlim_cur = limit;
|
|
||||||
setrlimit(RLIMIT_RSS, &r);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Mapped memory (brk + mmap).
|
|
||||||
#if _GLIBCPP_HAVE_MEMLIMIT_VMEM
|
|
||||||
getrlimit(RLIMIT_VMEM, &r);
|
|
||||||
r.rlim_cur = limit;
|
|
||||||
setrlimit(RLIMIT_VMEM, &r);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Virtual memory.
|
|
||||||
#if _GLIBCPP_HAVE_MEMLIMIT_AS
|
|
||||||
getrlimit(RLIMIT_AS, &r);
|
|
||||||
r.rlim_cur = limit;
|
|
||||||
setrlimit(RLIMIT_AS, &r);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
struct gnu_counting_struct
|
struct gnu_counting_struct
|
||||||
{
|
{
|
||||||
// Specifically and glaringly-obviously marked 'signed' so that when
|
// Specifically and glaringly-obviously marked 'signed' so that when
|
||||||
// count mistakenly goes negative, we can track the patterns of
|
// COUNT mistakenly goes negative, we can track the patterns of
|
||||||
// deletions easier.
|
// deletions more easily.
|
||||||
typedef signed int size_type;
|
typedef signed int size_type;
|
||||||
static size_type count;
|
static size_type count;
|
||||||
gnu_counting_struct() { ++count; }
|
gnu_counting_struct() { ++count; }
|
||||||
|
@ -128,7 +96,56 @@ struct gnu_counting_struct
|
||||||
|
|
||||||
#define assert_count(n) VERIFY(gnu_counting_struct::count == n)
|
#define assert_count(n) VERIFY(gnu_counting_struct::count == n)
|
||||||
|
|
||||||
gnu_counting_struct::size_type gnu_counting_struct::count = 0;
|
|
||||||
|
class gnu_copy_tracker
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// Cannot be explicit. Conversion ctor used by list_modifiers.cc's
|
||||||
|
// test03(), "range fill at beginning".
|
||||||
|
gnu_copy_tracker (int anId, bool throwOnDemand = false)
|
||||||
|
: itsId(anId), willThrow(throwOnDemand)
|
||||||
|
{}
|
||||||
|
|
||||||
|
gnu_copy_tracker (const gnu_copy_tracker& rhs)
|
||||||
|
: itsId(rhs.id()), willThrow(rhs.willThrow)
|
||||||
|
{
|
||||||
|
++itsCopyCount;
|
||||||
|
if (willThrow) throw "copy tracker exception";
|
||||||
|
}
|
||||||
|
|
||||||
|
gnu_copy_tracker& operator=(const gnu_copy_tracker& rhs)
|
||||||
|
{
|
||||||
|
itsId = rhs.id();
|
||||||
|
// willThrow must obviously already be false to get this far
|
||||||
|
}
|
||||||
|
|
||||||
|
~gnu_copy_tracker() { ++itsDtorCount; }
|
||||||
|
|
||||||
|
int
|
||||||
|
id() const
|
||||||
|
{ return itsId; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
int itsId;
|
||||||
|
const bool willThrow;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static void
|
||||||
|
reset()
|
||||||
|
{ itsCopyCount = 0; itsDtorCount = 0; }
|
||||||
|
|
||||||
|
static int
|
||||||
|
copyCount()
|
||||||
|
{ return itsCopyCount; }
|
||||||
|
|
||||||
|
static int
|
||||||
|
dtorCount()
|
||||||
|
{ return itsDtorCount; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
static int itsCopyCount;
|
||||||
|
static int itsDtorCount;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif // _GLIBCPP_TESTSUITE_HOOKS_H
|
#endif // _GLIBCPP_TESTSUITE_HOOKS_H
|
||||||
|
|
Loading…
Reference in New Issue