+2000-12-23 Benjamin Kosnik <bkoz@redhat.com>
+
+ * src/Makefile.am (CSTD_INCLUDES): Change from CSHADOW_INCLUDES.
+ (strstream.cc): Add special rule for deprecated files.
+ * libsupc++/Makefile.am (INCLUDES): Sync.
+ * acinclude.m4 (GLIBCPP_EXPORT_INCLUDES): And here.
+
+ Reported by Fred Fish <fnf@ninemoons.com>
+ * include/backward/iomanip.h: Remove backward from include
+ * include/backward/strstream.h: Same.
+ * include/backward/stream.h: Same.
+ * include/backward/ostream.h: Same.
+ * include/backward/istream.h: Same.
+ * src/strstream.cc: And here.
+
+ Reported by Brad Garcia <bgarcia@laurelnetworks.com>
+ * src/string-inst.cc (_S_find): Use generic template.
+ * include/bits/string.tcc (_S_find): Remove specializations
+
2000-12-22 Benjamin Kosnik <bkoz@fillmore.redhat.com>
Attempt to make locale visible in gdb.
CC = @CC@
CPP = @CPP@
CSHADOW_FLAGS = @CSHADOW_FLAGS@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
+CSTD_INCLUDES = @CSTD_INCLUDES@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXX_libstdcxx = @CXX_libstdcxx@
# CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR) \
# -I$(top_blddir)/cshadow'
#else
- CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
+ CSTD_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
#endif
# Now, export this to all the little Makefiles....
AC_SUBST(LIBMATH_INCLUDES)
AC_SUBST(LIBSUPCXX_INCLUDES)
AC_SUBST(LIBIO_INCLUDES)
- AC_SUBST(CSHADOW_INCLUDES)
+ AC_SUBST(CSTD_INCLUDES)
])
# CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR) \
# -I$(top_blddir)/cshadow'
#else
- CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
+ CSTD_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
#endif
# Now, export this to all the little Makefiles....
AC_SUBST(LIBMATH_INCLUDES)
AC_SUBST(LIBSUPCXX_INCLUDES)
AC_SUBST(LIBIO_INCLUDES)
- AC_SUBST(CSHADOW_INCLUDES)
+ AC_SUBST(CSTD_INCLUDES)
])
# CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR) \
# -I$(top_blddir)/cshadow'
#else
- CSHADOW_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
+ CSTD_INCLUDES='-I$(GLIBCPP_INCLUDE_DIR)/std -I$(C_INCLUDE_DIR)'
#endif
# Now, export this to all the little Makefiles....
s%@LIBMATH_INCLUDES@%$LIBMATH_INCLUDES%g
s%@LIBSUPCXX_INCLUDES@%$LIBSUPCXX_INCLUDES%g
s%@LIBIO_INCLUDES@%$LIBIO_INCLUDES%g
-s%@CSHADOW_INCLUDES@%$CSHADOW_INCLUDES%g
+s%@CSTD_INCLUDES@%$CSTD_INCLUDES%g
s%@OPTIMIZE_CXXFLAGS@%$OPTIMIZE_CXXFLAGS%g
s%@WARN_FLAGS@%$WARN_FLAGS%g
#ifndef _CPP_BACKWARD_IOMANIP_H
#define _CPP_BACKWARD_IOMANIP_H 1
-#include <backward/iostream.h>
+#include <iostream.h>
#include <bits/std_iomanip.h>
using std::resetiosflags;
#ifndef _CPP_BACKWARD_ISTREAM_H
#define _CPP_BACKWARD_ISTREAM_H 1
-#include <backward/iostream.h>
+#include <iostream.h>
#endif
#ifndef _CPP_BACKWARD_OSTREAM_H
#define _CPP_BACKWARD_OSTREAM_H 1
-#include <backward/iostream.h>
+#include <iostream.h>
#endif
#ifndef _CPP_BACKWARD_STREAM_H
#define _CPP_BACKWARD_STREAM_H 1
-#include <backward/iostream.h>
+#include <iostream.h>
#endif
#ifndef _CPP_BACKWARD_STRSTREAM_H
#define _CPP_BACKWARD_STRSTREAM_H 1
-#include <backward/strstream>
+#include <strstream>
using std::strstreambuf;
using std::istrstream;
}
// String operations
- // NB: This is specialized for the standard char_traits<char>
- // specialization to use the same optimizations as strchr.
template<typename _CharT, typename _Traits, typename _Alloc>
const _CharT*
basic_string<_CharT, _Traits, _Alloc>::
return find_if(__beg, __end, _Char_traits_match<_CharT, _Traits>(__c));
}
- // Specialization for char, definitions in src/string-inst.cc.
- template<>
- const char*
- string::_S_find(const char* __beg, const char* __end, char __c);
-
- // Specialization for wchar_t.
-#ifdef _GLIBCPP_USE_WCHAR_T
- template<>
- const wchar_t*
- wstring::_S_find(const wchar_t* __beg, const wchar_t* __end, wchar_t __c);
-#endif
-
template<typename _CharT, typename _Traits, typename _Alloc>
basic_string<_CharT, _Traits, _Alloc>::size_type
basic_string<_CharT, _Traits, _Alloc>::
CC = @CC@
CPP = @CPP@
CSHADOW_FLAGS = @CSHADOW_FLAGS@
+CSTD_INCLUDES = @CSTD_INCLUDES@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXX_libstdcxx = @CXX_libstdcxx@
CC = @CC@
CPP = @CPP@
CSHADOW_FLAGS = @CSHADOW_FLAGS@
+CSTD_INCLUDES = @CSTD_INCLUDES@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXX_libstdcxx = @CXX_libstdcxx@
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
-TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+CSTD_INCLUDES = @CSTD_INCLUDES@
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
+TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
INCLUDES = \
-I$(top_srcdir)/../gcc -I$(top_srcdir)/../include \
- $(CSHADOW_INCLUDES) $(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDE_DIR) \
- $(CONFIG_INCLUDES) -I$(top_builddir)/include
+ -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
+ $(LIBSUPCXX_INCLUDES)
headers = \
cxxabi.h exception new typeinfo
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
-TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+CSTD_INCLUDES = @CSTD_INCLUDES@
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
+TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
-INCLUDES = -I$(top_srcdir)/../gcc -I$(top_srcdir)/../include $(CSHADOW_INCLUDES) $(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDE_DIR) $(CONFIG_INCLUDES) -I$(top_builddir)/include
+INCLUDES = -I$(top_srcdir)/../gcc -I$(top_srcdir)/../include -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include $(LIBSUPCXX_INCLUDES)
headers = cxxabi.h exception new typeinfo
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA.
-## $Id: Makefile.am,v 1.59 2000/12/18 18:03:08 bkoz Exp $
+## $Id: Makefile.am,v 1.60 2000/12/21 01:28:57 gdr Exp $
AUTOMAKE_OPTIONS = 1.3 gnits
MAINT_CHARSET = latin1
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
-TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+CSTD_INCLUDES = @CSTD_INCLUDES@
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
+TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
INCLUDES = \
-nostdinc++ \
- $(CSHADOW_INCLUDES) $(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDE_DIR) \
- $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) -I$(top_builddir)/include \
+ -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
+ $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \
$(TOPLEVEL_INCLUDES)
base_headers = \
done; \
fi;
+
# We have to handle misc-inst.cc and locale-inst.cc in a special way
# since we cannot instantiate all classes due to missing definitions
# for things like vptrs, type_info bits, etc. when using
locale-inst.lo: locale-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates -c $<
-# We have to instantiate wstring bits too. . .
+# Use special rules for the deprecated source files so that they find
+# deprecated include files.
+strstream.lo: strstream.cc
+ $(LTCXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -c $<
+strstream.o: strstream.cc
+ $(CXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -c $<
+
+# Make wstring-inst.cc from string-inst.cc
wstring-inst.o: string-inst.cc
$(CXXCOMPILE) -fimplicit-templates -c -DC=wchar_t $< -o $@
wstring-inst.lo: string-inst.cc
tmp-libstdc++.INC: Makefile
echo $(INCLUDES) > $@
+
# AM_CXXFLAGS needs to be in each subdirectory so that it can be
# modified in a per-library or per-sub-library way. Need to manually
# set this option because CONFIG_CXXFLAGS has to be after
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
GLIBCPP_INCLUDE_DIR = @GLIBCPP_INCLUDE_DIR@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
-TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
+CSTD_INCLUDES = @CSTD_INCLUDES@
LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@
-CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
+TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
-INCLUDES = -nostdinc++ $(CSHADOW_INCLUDES) $(LIBSUPCXX_INCLUDES) -I$(GLIBCPP_INCLUDE_DIR) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) -I$(top_builddir)/include $(TOPLEVEL_INCLUDES)
+INCLUDES = -nostdinc++ -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) $(TOPLEVEL_INCLUDES)
base_headers = bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h bits/basic_string.h bits/std_string.h bits/string.tcc bits/generic_shadow.h bits/std_utility.h bits/std_complex.h bits/valarray_array.h bits/valarray_array.tcc bits/valarray_meta.h bits/std_valarray.h bits/mask_array.h bits/slice.h bits/slice_array.h bits/gslice.h bits/gslice_array.h bits/indirect_array.h bits/exception_support.h bits/std_fstream.h bits/std_iomanip.h bits/ios_base.h bits/fpos.h bits/basic_ios.h bits/basic_ios.tcc bits/std_ios.h bits/std_iosfwd.h bits/std_iostream.h bits/std_istream.h bits/istream.tcc bits/std_locale.h bits/fstream.tcc bits/ostream.tcc bits/sbuf_iter.h bits/sstream.tcc bits/std_ostream.h bits/std_sstream.h bits/std_streambuf.h bits/streambuf.tcc bits/basic_file.h bits/locale_facets.h bits/locale_facets.tcc bits/localefwd.h bits/stl_pthread_alloc.h bits/pthread_allocimpl.h bits/stl_threads.h bits/stl_iterator_base.h bits/std_bitset.h bits/std_deque.h bits/std_functional.h bits/std_iterator.h bits/std_list.h bits/std_map.h bits/std_memory.h bits/std_numeric.h bits/std_queue.h bits/std_set.h bits/std_stack.h bits/std_stdexcept.h bits/std_vector.h bits/stl_algo.h bits/stl_algobase.h bits/stl_alloc.h bits/stl_deque.h bits/stl_function.h bits/stl_heap.h bits/stl_iterator.h bits/stl_list.h bits/stl_map.h bits/stl_multimap.h bits/stl_multiset.h bits/stl_numeric.h bits/stl_pair.h bits/stl_queue.h bits/stl_raw_storage_iter.h bits/stl_relops.h bits/stl_set.h bits/stl_stack.h bits/stl_string_fwd.h bits/stl_tempbuf.h bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h bits/type_traits.h bits/stl_range_errors.h bits/std_algorithm.h bits/concept_checks.h bits/container_concepts.h bits/sequence_concepts.h bits/stl_config.h bits/stl_construct.h
locale-inst.lo: locale-inst.cc
$(LTCXXCOMPILE) -fimplicit-templates -c $<
-# We have to instantiate wstring bits too. . .
+# Use special rules for the deprecated source files so that they find
+# deprecated include files.
+strstream.lo: strstream.cc
+ $(LTCXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -c $<
+strstream.o: strstream.cc
+ $(CXXCOMPILE) -I$(GLIBCPP_INCLUDE_DIR)/backward -c $<
+
+# Make wstring-inst.cc from string-inst.cc
wstring-inst.o: string-inst.cc
$(CXXCOMPILE) -fimplicit-templates -c -DC=wchar_t $< -o $@
wstring-inst.lo: string-inst.cc
(S::iterator, S::iterator, const C*, const C*, forward_iterator_tag);
template
- S::size_type S::copy(C*, S::size_type, S::size_type) const;
+ S::size_type S::copy(C*, S::size_type, S::size_type) const;
template
- C*
- S::_S_construct<S::iterator>
- (S::iterator, S::iterator, const allocator<C>&);
+ C* S::_S_construct<S::iterator>(S::iterator, S::iterator,
+ const allocator<C>&);
template
- C*
- S::_S_construct<S::iterator>
- (S::iterator, S::iterator, const allocator<C>&, forward_iterator_tag);
+ C* S::_S_construct<S::iterator>(S::iterator, S::iterator,
+ const allocator<C>&, forward_iterator_tag);
template
- C*
- S::_S_construct<C*>
- (C*, C*, const allocator<C>&, forward_iterator_tag);
+ C* S::_S_construct<C*>(C*, C*, const allocator<C>&, forward_iterator_tag);
template
- C*
- S::_S_construct<const C*>
- (const C*, const C*, const allocator<C>&, forward_iterator_tag);
+ C* S::_S_construct<const C*>(const C*, const C*, const allocator<C>&,
+ forward_iterator_tag);
template
- C*
- S::_S_construct(S::size_type, C, S::allocator_type const&);
-
- // These members are explicitly specialized, and can only be in one
- // translation unit or else we get multiple copies. . .
-#if _GLIBCPP_INSTANTIATING_CHAR
- template<>
- const char*
- string::_S_find(const char* __beg, const char* __end, char __c)
- {
- const char* __ret = strchr(__beg, __c);
- return (__ret ? __ret : __end);
- }
-#elif defined(_GLIBCPP_USE_WCHAR_T)
- template<>
- const wchar_t*
- wstring::_S_find(const wchar_t* __beg, const wchar_t* __end, wchar_t __c)
- {
- return find_if(__beg, __end,
- _Char_traits_match<wchar_t, traits_type>(__c));
- }
-#endif
+ C* S::_S_construct(S::size_type, C, S::allocator_type const&);
+
+ template
+ const C* S::_S_find(const C* __beg, const C* __end, C __c);
template
S::size_type S::find(C, S::size_type) const;
S::size_type S::find_last_of(C const*, S::size_type, S::size_type) const;
template
- S::size_type S::find_first_not_of(
- C const*, S::size_type, S::size_type) const;
+ S::size_type
+ S::find_first_not_of(C const*, S::size_type, S::size_type) const;
template
- S::size_type S::find_last_not_of(
- C const*, S::size_type, S::size_type) const;
+ S::size_type
+ S::find_last_not_of(C const*, S::size_type, S::size_type) const;
template
S::size_type S::find_last_not_of(C, S::size_type) const;
int S::compare(C const*) const;
template
- int S::compare(
- S::size_type, S::size_type, C const*, S::size_type) const;
+ int S::compare(S::size_type, S::size_type, C const*, S::size_type) const;
template S operator+(const C*, const S&);
// MAY BE REMOVED in a future standard revision. You should use the
// header <sstream> instead.
-#include <backward/strstream.h>
+#include <strstream.h>
#include <algorithm>
#include <new>
#include <stdlib.h>