Commit c0a26060 by Benjamin Kosnik Committed by Benjamin Kosnik

basic_file.h: Include basic_file_model.h.


2001-02-27  Benjamin Kosnik  <bkoz@redhat.com>

	libstdc++/1886
	* include/bits/basic_file.h: Include basic_file_model.h.
	* config/c_io_libio.cc: Move to...
	* config/basic_file_libio.cc: Here.
	* config/basic_file_libio.h: New file.
	* config/c_io_stdio.cc: Move to...
	* config/basic_file_stdio.cc: Here.
	* config/basic_file_stdio.h: New file.
	* config/c_io_libio.h: Tweak.
	* config/c_io_stdio.h: Tweak.
	* src/Makefile.am (build_headers): Add basic_file_model.h.
	(sources): Add basic_file.cc, remove c++io.cc.
	* src/Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Add support for
	basic_file_model.h and basic_file.cc.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* testsuite/27_io/filebuf.cc (test05): Add regression.

From-SVN: r40108
parent 26029fe2
2001-02-27 Benjamin Kosnik <bkoz@redhat.com> 2001-02-27 Benjamin Kosnik <bkoz@redhat.com>
libstdc++/1886
* include/bits/basic_file.h: Include basic_file_model.h.
* config/c_io_libio.cc: Move to...
* config/basic_file_libio.cc: Here.
* config/basic_file_libio.h: New file.
* config/c_io_stdio.cc: Move to...
* config/basic_file_stdio.cc: Here.
* config/basic_file_stdio.h: New file.
* config/c_io_libio.h: Tweak.
* config/c_io_stdio.h: Tweak.
* src/Makefile.am (build_headers): Add basic_file_model.h.
(sources): Add basic_file.cc, remove c++io.cc.
* src/Makefile.in: Regenerate.
* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Add support for
basic_file_model.h and basic_file.cc.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* testsuite/27_io/filebuf.cc (test05): Add regression.
2001-02-27 Benjamin Kosnik <bkoz@redhat.com>
Correct license. Correct license.
* config/cpu/alpha/bits/atomicity.h: Change. * config/cpu/alpha/bits/atomicity.h: Change.
* config/cpu/arm/bits/atomicity.h * config/cpu/arm/bits/atomicity.h
......
...@@ -137,48 +137,7 @@ MULTICLEAN = true ...@@ -137,48 +137,7 @@ MULTICLEAN = true
# Work around what appears to be a GNU make bug handling MAKEFLAGS # 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 # values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile. # friends when we are called from the top level Makefile.
AM_MAKEFLAGS = \ AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CC_FOR_TARGET=$(CC_FOR_TARGET)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "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)" "includedir=$(includedir)" "prefix=$(prefix)" "tooldir=$(tooldir)" "AR=$(AR)" "AS=$(AS)" "CC=$(CC)" "CXX=$(CXX)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "NM=$(NM)" "NM_FOR_BUILD=$(NM_FOR_BUILD)" "NM_FOR_TARGET=$(NM_FOR_TARGET)" "DESTDIR=$(DESTDIR)" "WERROR=$(WERROR)"
"AR_FLAGS=$(AR_FLAGS)" \
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
"CFLAGS=$(CFLAGS)" \
"CXXFLAGS=$(CXXFLAGS)" \
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
"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)" \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"CC=$(CC)" \
"CXX=$(CXX)" \
"LD=$(LD)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"PICFLAG=$(PICFLAG)" \
"RANLIB=$(RANLIB)" \
"NM=$(NM)" \
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
"DESTDIR=$(DESTDIR)" \
"WERROR=$(WERROR)"
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
CONFIG_HEADER = config.h CONFIG_HEADER = config.h
......
...@@ -1110,7 +1110,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ...@@ -1110,7 +1110,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
case x${enable_cstdio_flag} in case x${enable_cstdio_flag} in
xlibio) xlibio)
CSTDIO_H=config/c_io_libio.h CSTDIO_H=config/c_io_libio.h
CSTDIO_CC=config/c_io_libio.cc BASIC_FILE_H=config/basic_file_libio.h
BASIC_FILE_CC=config/basic_file_libio.cc
AC_MSG_RESULT(libio) AC_MSG_RESULT(libio)
# see if we are on a system with libio native (ie, linux) # see if we are on a system with libio native (ie, linux)
...@@ -1166,7 +1167,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ...@@ -1166,7 +1167,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
xstdio | x | xno | xnone | xyes) xstdio | x | xno | xnone | xyes)
# default # default
CSTDIO_H=config/c_io_stdio.h CSTDIO_H=config/c_io_stdio.h
CSTDIO_CC=config/c_io_stdio.cc BASIC_FILE_H=config/basic_file_stdio.h
BASIC_FILE_CC=config/basic_file_stdio.cc
AC_MSG_RESULT(stdio) AC_MSG_RESULT(stdio)
# We're not using stdio. # We're not using stdio.
...@@ -1181,7 +1183,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ...@@ -1181,7 +1183,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
;; ;;
esac esac
AC_LINK_FILES($CSTDIO_H, include/bits/c++io.h) AC_LINK_FILES($CSTDIO_H, include/bits/c++io.h)
AC_LINK_FILES($CSTDIO_CC, src/c++io.cc) AC_LINK_FILES($BASIC_FILE_H, include/bits/basic_file_model.h)
AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
# 2000-08-04 bkoz hack # 2000-08-04 bkoz hack
CCODECVT_C=config/c_io_libio_codecvt.c CCODECVT_C=config/c_io_libio_codecvt.c
......
...@@ -1122,7 +1122,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ...@@ -1122,7 +1122,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
case x${enable_cstdio_flag} in case x${enable_cstdio_flag} in
xlibio) xlibio)
CSTDIO_H=config/c_io_libio.h CSTDIO_H=config/c_io_libio.h
CSTDIO_CC=config/c_io_libio.cc BASIC_FILE_H=config/basic_file_libio.h
BASIC_FILE_CC=config/basic_file_libio.cc
AC_MSG_RESULT(libio) AC_MSG_RESULT(libio)
# see if we are on a system with libio native (ie, linux) # see if we are on a system with libio native (ie, linux)
...@@ -1178,7 +1179,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ...@@ -1178,7 +1179,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
xstdio | x | xno | xnone | xyes) xstdio | x | xno | xnone | xyes)
# default # default
CSTDIO_H=config/c_io_stdio.h CSTDIO_H=config/c_io_stdio.h
CSTDIO_CC=config/c_io_stdio.cc BASIC_FILE_H=config/basic_file_stdio.h
BASIC_FILE_CC=config/basic_file_stdio.cc
AC_MSG_RESULT(stdio) AC_MSG_RESULT(stdio)
# We're not using stdio. # We're not using stdio.
...@@ -1193,7 +1195,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [ ...@@ -1193,7 +1195,8 @@ AC_DEFUN(GLIBCPP_ENABLE_CSTDIO, [
;; ;;
esac esac
AC_LINK_FILES($CSTDIO_H, include/bits/c++io.h) AC_LINK_FILES($CSTDIO_H, include/bits/c++io.h)
AC_LINK_FILES($CSTDIO_CC, src/c++io.cc) AC_LINK_FILES($BASIC_FILE_H, include/bits/basic_file_model.h)
AC_LINK_FILES($BASIC_FILE_CC, src/basic_file.cc)
# 2000-08-04 bkoz hack # 2000-08-04 bkoz hack
CCODECVT_C=config/c_io_libio_codecvt.c CCODECVT_C=config/c_io_libio_codecvt.c
......
// Wrapper of C-language FILE struct -*- C++ -*-
// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 27.8 File-based streams
//
#include <bits/basic_file.h>
namespace std
{
// __basic_file<char> definitions
__basic_file<char>::__basic_file(__c_lock* __lock)
{
#ifdef _IO_MTSAFE_IO
_lock = __lock;
#endif
// Don't set the orientation of the stream when initializing.
#ifdef _GLIBCPP_USE_WCHAR_T
_IO_no_init(this, 0, 0, &_M_wfile, 0);
#else /* !defined(_GLIBCPP_USE_WCHAR_T) */
_IO_no_init(this, 0, 0, NULL, 0);
#endif /* !defined(_GLIBCPP_USE_WCHAR_T) */
_IO_JUMPS((_IO_FILE_plus *) this) = &_IO_file_jumps;
_IO_file_init((_IO_FILE_plus*)this);
}
// NB: Unused.
int
__basic_file<char>::overflow(int __c)
{ return _IO_file_overflow(this, __c); }
// NB: Unused.
int
__basic_file<char>::underflow()
{ return _IO_file_underflow(this); }
// NB: Unused.
int
__basic_file<char>::uflow()
{ return _IO_default_uflow(this); }
// NB: Unused.
int
__basic_file<char>::pbackfail(int __c)
{ return _IO_default_pbackfail(this, __c); }
streamsize
__basic_file<char>::xsputn(const char* __s, streamsize __n)
{ return _IO_file_xsputn(this, __s, __n); }
streamoff
__basic_file<char>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode __mode)
{ return _IO_file_seekoff(this, __off, __way, __mode); }
streamoff
__basic_file<char>::seekpos(streamoff __pos, ios_base::openmode __mode)
{ return _IO_file_seekoff(this, __pos, ios_base::beg, __mode); }
// NB: Unused.
streambuf*
__basic_file<char>::setbuf(char* __b, int __len)
{ return (streambuf*) _IO_file_setbuf(this,__b, __len); }
int
__basic_file<char>::sync()
{ return _IO_file_sync(this); }
// NB: Unused.
int
__basic_file<char>::doallocate()
{ return _IO_file_doallocate(this); }
// __basic_file<wchar_t> definitions
#ifdef _GLIBCPP_USE_WCHAR_T
__basic_file<wchar_t>::__basic_file(__c_lock* __lock)
{
#ifdef _IO_MTSAFE_IO
_lock = __lock;
#endif
// Don't set the orientation of the stream when initializing.
_IO_no_init(this, 0, 0, &_M_wfile, &_IO_wfile_jumps);
_IO_JUMPS((_IO_FILE_plus *) this) = &_IO_wfile_jumps;
_IO_file_init((_IO_FILE_plus*)this);
// In addition, need to allocate the buffer...
_IO_wdoallocbuf(this);
// Setup initial positions for this buffer...
// if (!(_flags & _IO_NO_READS))
_IO_wsetg(this, _wide_data->_IO_buf_base, _wide_data->_IO_buf_base,
_wide_data->_IO_buf_base);
// if (!(_flags & _IO_NO_WRITES))
_IO_wsetp(this, _wide_data->_IO_buf_base, _wide_data->_IO_buf_base);
// Setup codecvt bits...
_codecvt = &__c_libio_codecvt;
// Do the same for narrow bits...
if (_IO_write_base == NULL)
{
_IO_doallocbuf(this);
// if (!(_flags & _IO_NO_READS))
_IO_setg(this, _IO_buf_base, _IO_buf_base, _IO_buf_base);
// if (!(_flags & _IO_NO_WRITES))
_IO_setp(this, _IO_buf_base, _IO_buf_base);
}
}
int
__basic_file<wchar_t>::overflow(int __c)
{ return _IO_wfile_overflow(this, __c); }
int
__basic_file<wchar_t>::underflow()
{ return _IO_wfile_underflow(this); }
// NB: Unused.
int
__basic_file<wchar_t>::uflow()
{ return _IO_wdefault_uflow(this); }
// NB: Unused.
int
__basic_file<wchar_t>::pbackfail(int __c)
{ return _IO_wdefault_pbackfail(this, __c); }
streamsize
__basic_file<wchar_t>::xsputn(const wchar_t* __s, streamsize __n)
{ return _IO_wfile_xsputn(this, __s, __n); }
streamoff
__basic_file<wchar_t>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode __mode)
{ return _IO_wfile_seekoff(this, __off, __way, __mode); }
streamoff
__basic_file<wchar_t>::seekpos(streamoff __pos, ios_base::openmode __mode)
{ return _IO_wfile_seekoff(this, __pos, ios_base::beg, __mode); }
streambuf*
__basic_file<wchar_t>::setbuf(wchar_t* __b, int __len)
{ return (streambuf*) _IO_wfile_setbuf(this,__b, __len); }
int
__basic_file<wchar_t>::sync()
{ return _IO_wfile_sync(this); }
int
__basic_file<wchar_t>::doallocate()
{ return _IO_wfile_doallocate(this); }
#endif
// Need to instantiate base class here for type-info bits, etc
template struct __basic_file_base<char>;
template class __basic_file<char>;
#ifdef _GLIBCPP_USE_WCHAR_T
template struct __basic_file_base<wchar_t>;
template class __basic_file<wchar_t>;
#endif
} // namespace std
// Wrapper of C-language FILE struct -*- C++ -*-
// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 27.8 File-based streams
//
#include <libioP.h>
namespace std
{
// __basic_file<char> specializations
template<>
__basic_file<char>::__basic_file(__c_lock* __lock);
template<>
int
__basic_file<char>::overflow(int __c);
template<>
int
__basic_file<char>::underflow();
template<>
int
__basic_file<char>::uflow();
template<>
int
__basic_file<char>::pbackfail(int __c);
template<>
streamsize
__basic_file<char>::xsputn(const char* __s, streamsize __n);
template<>
streamoff
__basic_file<char>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode __mode);
template<>
streamoff
__basic_file<char>::seekpos(streamoff __pos, ios_base::openmode __mode);
template<>
streambuf*
__basic_file<char>::setbuf(char* __b, int __len);
template<>
int
__basic_file<char>::sync();
template<>
int
__basic_file<char>::doallocate();
// __basic_file<wchar_t> specializations
#ifdef _GLIBCPP_USE_WCHAR_T
template<>
__basic_file<wchar_t>::__basic_file(__c_lock* __lock);
template<>
int
__basic_file<wchar_t>::overflow(int __c);
template<>
int
__basic_file<wchar_t>::underflow();
template<>
int
__basic_file<wchar_t>::uflow();
template<>
int
__basic_file<wchar_t>::pbackfail(int __c);
template<>
streamsize
__basic_file<wchar_t>::xsputn(const wchar_t* __s, streamsize __n);
template<>
streamoff
__basic_file<wchar_t>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode __mode);
template<>
streamoff
__basic_file<wchar_t>::seekpos(streamoff __pos, ios_base::openmode __mode);
template<>
streambuf*
__basic_file<wchar_t>::setbuf(wchar_t* __b, int __len);
template<>
int
__basic_file<wchar_t>::sync();
template<>
int
__basic_file<wchar_t>::doallocate();
#endif
// Generic definitions for __basic_file
template<typename _CharT>
int
__basic_file<_CharT>::get_fileno(void)
{ return _fileno; }
template<typename _CharT>
__basic_file<_CharT>::~__basic_file()
{ _IO_file_finish(this, 0); }
template<typename _CharT>
void
__basic_file<_CharT>::_M_open_mode(ios_base::openmode __mode,
int& __p_mode, int& __rw_mode,
char* /*__c_mode*/)
{
#ifdef O_BINARY
bool __testb = __mode & ios_base::binary;
#endif
bool __testi = __mode & ios_base::in;
bool __testo = __mode & ios_base::out;
bool __testt = __mode & ios_base::trunc;
bool __testa = __mode & ios_base::app;
if (!__testi && __testo && !__testt && !__testa)
{
__p_mode = O_WRONLY | O_TRUNC | O_CREAT;
__rw_mode = _IO_NO_READS;
}
if (!__testi && __testo && !__testt && __testa)
{
__p_mode = O_WRONLY | O_APPEND | O_CREAT;
__rw_mode = _IO_NO_READS | _IO_IS_APPENDING;
}
if (!__testi && __testo && __testt && !__testa)
{
__p_mode = O_WRONLY | O_TRUNC | O_CREAT;
__rw_mode = _IO_NO_READS;
}
if (__testi && !__testo && !__testt && !__testa)
{
__p_mode = O_RDONLY;
__rw_mode = _IO_NO_WRITES;
}
if (__testi && __testo && !__testt && !__testa)
{
__p_mode = O_RDWR;
__rw_mode = 0;
}
if (__testi && __testo && __testt && !__testa)
{
__p_mode = O_RDWR | O_TRUNC | O_CREAT;
__rw_mode = 0;
}
#ifdef O_BINARY
if (__testb)
__p_mode |= O_BINARY;
#endif
}
template<typename _CharT>
__basic_file<_CharT>*
__basic_file<_CharT>::sys_open(int __fd, ios_base::openmode __mode)
{
__basic_file* __ret = NULL;
int __p_mode = 0;
int __rw_mode = _IO_NO_READS + _IO_NO_WRITES;
char __c_mode[4];
_M_open_mode(__mode, __p_mode, __rw_mode, __c_mode);
if (!_IO_file_is_open(this))
{
_fileno = __fd;
_flags &= ~(_IO_NO_READS+_IO_NO_WRITES);
_flags |= _IO_DELETE_DONT_CLOSE;
_offset = _IO_pos_BAD;
int __mask = _IO_NO_READS + _IO_NO_WRITES + _IO_IS_APPENDING;
_IO_mask_flags(this, __rw_mode, __mask);
}
return __ret;
}
template<typename _CharT>
__basic_file<_CharT>*
__basic_file<_CharT>::open(const char* __name, ios_base::openmode __mode,
int __prot)
{
__basic_file* __ret = NULL;
int __p_mode = 0;
int __rw_mode = _IO_NO_READS + _IO_NO_WRITES;
char __c_mode[4];
_M_open_mode(__mode, __p_mode, __rw_mode, __c_mode);
if (!_IO_file_is_open(this))
{
__c_file_type* __f;
__f = _IO_file_open(this, __name, __p_mode, __prot, __rw_mode, 0);
__ret = __f ? this: NULL;
}
return __ret;
}
template<typename _CharT>
bool
__basic_file<_CharT>::is_open() { return _fileno >= 0; }
template<typename _CharT>
__basic_file<_CharT>*
__basic_file<_CharT>::close()
{
return _IO_file_close_it(this) ? static_cast<__basic_file*>(NULL) : this;
}
template<typename _CharT>
streamsize
__basic_file<_CharT>::xsgetn(_CharT* __s, streamsize __n)
{ return _IO_file_xsgetn(this, __s, __n); }
// NB: Unused.
template<typename _CharT>
streamsize
__basic_file<_CharT>::sys_read(_CharT* __s, streamsize __n)
{ return _IO_file_read(this, __s, __n); }
// NB: Unused.
template<typename _CharT>
streamsize
__basic_file<_CharT>::sys_write(const _CharT* __s, streamsize __n)
{ return _IO_file_write(this, __s, __n); }
// NB: Unused.
template<typename _CharT>
streamoff
__basic_file<_CharT>::sys_seek(streamoff __pos, ios_base::seekdir __way)
{ return _IO_file_seek(this, __pos, __way); }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::sys_close()
{ return _IO_file_close(this); }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::sys_stat(void* __v)
{ return _IO_file_stat(this, __v); }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::showmanyc() { return EOF; }
// NB: Unused.
template<typename _CharT>
void
__basic_file<_CharT>::imbue(void* /*__v*/) { }
} // namespace std
// Wrapper of C-language FILE struct -*- C++ -*-
// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 27.8 File-based streams
//
#include <bits/basic_file.h>
namespace std
{
template class __basic_file<char>;
#ifdef _GLIBCPP_USE_WCHAR_T
template class __basic_file<wchar_t>;
#endif
} // namespace std
// Wrapper of C-language FILE struct -*- C++ -*-
// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 27.8 File-based streams
//
#include <unistd.h>
namespace std
{
// Generic definitions for __basic_file
template<typename _CharT>
__basic_file<_CharT>::__basic_file(__c_lock* /*__lock*/)
: _M_fileno(-1), _M_cfile(NULL) { }
template<typename _CharT>
int
__basic_file<_CharT>::get_fileno(void)
{ return _M_fileno; }
template<typename _CharT>
__basic_file<_CharT>::~__basic_file()
{
if (this->is_open())
{
fflush(_M_cfile);
this->close();
}
}
template<typename _CharT>
void
__basic_file<_CharT>::_M_open_mode(ios_base::openmode __mode,
int& /*__p_mode*/, int& /*__rw_mode*/,
char* __c_mode)
{
bool __testb = __mode & ios_base::binary;
bool __testi = __mode & ios_base::in;
bool __testo = __mode & ios_base::out;
bool __testt = __mode & ios_base::trunc;
bool __testa = __mode & ios_base::app;
if (!__testi && __testo && !__testt && !__testa)
strcpy(__c_mode, "w");
if (!__testi && __testo && !__testt && __testa)
strcpy(__c_mode, "a");
if (!__testi && __testo && __testt && !__testa)
strcpy(__c_mode, "w");
if (__testi && !__testo && !__testt && !__testa)
strcpy(__c_mode, "r");
if (__testi && __testo && !__testt && !__testa)
strcpy(__c_mode, "r+");
if (__testi && __testo && __testt && !__testa)
strcpy(__c_mode, "w+");
if (__testb)
strcat(__c_mode, "b");
}
template<typename _CharT>
__basic_file<_CharT>*
__basic_file<_CharT>::sys_open(int __fd, ios_base::openmode __mode)
{
__basic_file* __ret = NULL;
int __p_mode = 0;
int __rw_mode = 0;
char __c_mode[4];
_M_open_mode(__mode, __p_mode, __rw_mode, __c_mode);
int __dupfd = dup(__fd);
if (__dupfd != -1 && !this->is_open())
{
if ((_M_cfile = fdopen(__dupfd, __c_mode)))
{
_M_fileno = __dupfd;
__ret = this;
}
}
return __ret;
}
template<typename _CharT>
__basic_file<_CharT>*
__basic_file<_CharT>::open(const char* __name, ios_base::openmode __mode,
int /*__prot*/)
{
__basic_file* __ret = NULL;
int __p_mode = 0;
int __rw_mode = 0;
char __c_mode[4];
_M_open_mode(__mode, __p_mode, __rw_mode, __c_mode);
if (!this->is_open())
{
if ((_M_cfile = fopen(__name, __c_mode)))
{
_M_fileno = fileno(_M_cfile);
__ret = this;
}
}
return __ret;
}
template<typename _CharT>
bool
__basic_file<_CharT>::is_open() { return _M_fileno >= 0; }
template<typename _CharT>
__basic_file<_CharT>*
__basic_file<_CharT>::close()
{
__basic_file* __retval = static_cast<__basic_file*>(NULL);
bool __testopen = fclose(_M_cfile);
if (!__testopen)
{
__retval = this;
_M_fileno = -1;
}
return __retval;
}
template<typename _CharT>
streamsize
__basic_file<_CharT>::xsgetn(_CharT* __s, streamsize __n)
{ return fread(__s, 1, __n, _M_cfile); }
template<typename _CharT>
streamsize
__basic_file<_CharT>::xsputn(const _CharT* __s, streamsize __n)
{ return fwrite(__s, 1, __n, _M_cfile); }
template<typename _CharT>
streamoff
__basic_file<_CharT>::seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode /*__mode*/)
{ fseek(_M_cfile, __off, __way); return ftell(_M_cfile); }
template<typename _CharT>
streamoff
__basic_file<_CharT>::seekpos(streamoff __pos,
ios_base::openmode /*__mode*/)
{ fseek(_M_cfile, __pos, ios_base::beg); return ftell(_M_cfile); }
template<typename _CharT>
int
__basic_file<_CharT>::sync()
{ return fflush(_M_cfile); }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::overflow(int /*__c*/)
{ return EOF; }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::underflow()
{ return EOF; }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::uflow()
{ return EOF; }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::pbackfail(int /*__c*/)
{ return EOF; }
// NB: Unused.
template<typename _CharT>
streambuf*
__basic_file<_CharT>::setbuf(_CharT* /*__b*/, int /*__len*/)
{ return reinterpret_cast<streambuf*>(this); }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::doallocate()
{ return EOF; }
// NB: Unused.
template<typename _CharT>
streamsize
__basic_file<_CharT>::sys_read(_CharT* __s, streamsize __n)
{ return fread(__s, 1, __n, _M_cfile); }
// NB: Unused.
template<typename _CharT>
streamsize
__basic_file<_CharT>::sys_write(const _CharT* __s, streamsize __n)
{ return fwrite(__s, 1, __n, _M_cfile); }
// NB: Unused.
template<typename _CharT>
streamoff
__basic_file<_CharT>::sys_seek(streamoff __pos, ios_base::seekdir __way)
{
fseek(_M_cfile, __pos, __way);
return ftell(_M_cfile);
}
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::sys_close()
{ return fclose(_M_cfile); }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::sys_stat(void* /*__v*/)
{ return EOF; }
// NB: Unused.
template<typename _CharT>
int
__basic_file<_CharT>::showmanyc()
{ return EOF; }
// NB: Unused.
template<typename _CharT>
void
__basic_file<_CharT>::imbue(void* /*__v*/) { }
} // namespace std
// underlying io library -*- C++ -*- // underlying io library -*- C++ -*-
// Copyright (C) 2000 Free Software Foundation, Inc. // Copyright (C) 2000, 2001 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -34,8 +34,8 @@ ...@@ -34,8 +34,8 @@
#include <libio.h> #include <libio.h>
namespace std { namespace std
{
// from fpos.h // from fpos.h
typedef _IO_ssize_t streamsize; // Signed integral type typedef _IO_ssize_t streamsize; // Signed integral type
typedef _IO_ssize_t wstreamsize; typedef _IO_ssize_t wstreamsize;
...@@ -103,7 +103,6 @@ namespace std { ...@@ -103,7 +103,6 @@ namespace std {
static const __int_type _S_out = _IOS_OUTPUT; static const __int_type _S_out = _IOS_OUTPUT;
static const __int_type _S_trunc = _IOS_TRUNC; static const __int_type _S_trunc = _IOS_TRUNC;
}; };
} }
#endif // _CPP_IO_LIBIO_H #endif // _CPP_IO_LIBIO_H
......
// underlying io library -*- C++ -*- // underlying io library -*- C++ -*-
// Copyright (C) 2000 Free Software Foundation, Inc. // Copyright (C) 2000, 2001 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -36,8 +36,8 @@ ...@@ -36,8 +36,8 @@
#include <stddef.h> #include <stddef.h>
#include <bits/c++threads.h> #include <bits/c++threads.h>
namespace std { namespace std
{
// from fpos.h // from fpos.h
typedef long streamoff; typedef long streamoff;
typedef ptrdiff_t streamsize; // Signed integral type typedef ptrdiff_t streamsize; // Signed integral type
...@@ -59,42 +59,41 @@ namespace std { ...@@ -59,42 +59,41 @@ namespace std {
// from ios_base.h // from ios_base.h
struct __ios_flags struct __ios_flags
{ {
typedef short __int_type; typedef short __int_type;
static const __int_type _S_boolalpha = 0x0001; static const __int_type _S_boolalpha = 0x0001;
static const __int_type _S_dec = 0x0002; static const __int_type _S_dec = 0x0002;
static const __int_type _S_fixed = 0x0004; static const __int_type _S_fixed = 0x0004;
static const __int_type _S_hex = 0x0008; static const __int_type _S_hex = 0x0008;
static const __int_type _S_internal = 0x0010; static const __int_type _S_internal = 0x0010;
static const __int_type _S_left = 0x0020; static const __int_type _S_left = 0x0020;
static const __int_type _S_oct = 0x0040; static const __int_type _S_oct = 0x0040;
static const __int_type _S_right = 0x0080; static const __int_type _S_right = 0x0080;
static const __int_type _S_scientific = 0x0100; static const __int_type _S_scientific = 0x0100;
static const __int_type _S_showbase = 0x0200; static const __int_type _S_showbase = 0x0200;
static const __int_type _S_showpoint = 0x0400; static const __int_type _S_showpoint = 0x0400;
static const __int_type _S_showpos = 0x0800; static const __int_type _S_showpos = 0x0800;
static const __int_type _S_skipws = 0x1000; static const __int_type _S_skipws = 0x1000;
static const __int_type _S_unitbuf = 0x2000; static const __int_type _S_unitbuf = 0x2000;
static const __int_type _S_uppercase = 0x4000; static const __int_type _S_uppercase = 0x4000;
static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010; static const __int_type _S_adjustfield = 0x0020 | 0x0080 | 0x0010;
static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008; static const __int_type _S_basefield = 0x0002 | 0x0040 | 0x0008;
static const __int_type _S_floatfield = 0x0100 | 0x0004; static const __int_type _S_floatfield = 0x0100 | 0x0004;
// 27.4.2.1.3 Type ios_base::iostate // 27.4.2.1.3 Type ios_base::iostate
static const __int_type _S_badbit = 0x01; static const __int_type _S_badbit = 0x01;
static const __int_type _S_eofbit = 0x02; static const __int_type _S_eofbit = 0x02;
static const __int_type _S_failbit = 0x04; static const __int_type _S_failbit = 0x04;
// 27.4.2.1.4 Type openmode // 27.4.2.1.4 Type openmode
static const __int_type _S_app = 0x01; static const __int_type _S_app = 0x01;
static const __int_type _S_ate = 0x02; static const __int_type _S_ate = 0x02;
static const __int_type _S_bin = 0x04; static const __int_type _S_bin = 0x04;
static const __int_type _S_in = 0x08; static const __int_type _S_in = 0x08;
static const __int_type _S_out = 0x10; static const __int_type _S_out = 0x10;
static const __int_type _S_trunc = 0x20; static const __int_type _S_trunc = 0x20;
}; };
} }
#endif // _CPP_IO_STDIO_H #endif // _CPP_IO_STDIO_H
......
This source diff could not be displayed because it is too large. You can view the blob instead.
// Wrapper of C-language FILE struct -*- C++ -*- // Wrapper of C-language FILE struct -*- C++ -*-
// Copyright (C) 1999, 2000 Free Software Foundation, Inc. // Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
#include <bits/c++config.h> #include <bits/c++config.h>
#include <bits/std_ios.h> #include <bits/std_ios.h>
namespace std { namespace std
{
// Ulrich is going to make some detailed comment here, explaining // Ulrich is going to make some detailed comment here, explaining
// all this unpleasantness, providing detailed performance analysis // all this unpleasantness, providing detailed performance analysis
// as to why we have to do all this lame vtable hacking instead of a // as to why we have to do all this lame vtable hacking instead of a
...@@ -48,67 +48,67 @@ namespace std { ...@@ -48,67 +48,67 @@ namespace std {
// and detailed description of the whole object-layout, // and detailed description of the whole object-layout,
// vtable-swapping, sordid history of this hack. // vtable-swapping, sordid history of this hack.
template<typename _CharT> template<typename _CharT>
struct __basic_file_base: public __c_file_type struct __basic_file_base: public __c_file_type
{ {
virtual virtual
~__basic_file_base() { }; ~__basic_file_base() { };
virtual int virtual int
overflow(int __c = EOF) = 0; overflow(int __c = EOF) = 0;
virtual int virtual int
underflow() = 0; underflow() = 0;
virtual int virtual int
uflow() = 0; uflow() = 0;
virtual int virtual int
pbackfail(int __c) = 0; pbackfail(int __c) = 0;
virtual streamsize virtual streamsize
xsputn(const _CharT* __s, streamsize __n) = 0; xsputn(const _CharT* __s, streamsize __n) = 0;
virtual streamsize virtual streamsize
xsgetn(_CharT* __s, streamsize __n) = 0; xsgetn(_CharT* __s, streamsize __n) = 0;
virtual streamoff virtual streamoff
seekoff(streamoff __off, ios_base::seekdir __way, seekoff(streamoff __off, ios_base::seekdir __way,
ios_base::openmode __mode = ios_base::in | ios_base::out) = 0; ios_base::openmode __mode = ios_base::in | ios_base::out) = 0;
virtual streamoff virtual streamoff
seekpos(streamoff __pos, seekpos(streamoff __pos,
ios_base::openmode __mode = ios_base::in | ios_base::out) = 0; ios_base::openmode __mode = ios_base::in | ios_base::out) = 0;
virtual streambuf* virtual streambuf*
setbuf(_CharT* __b, int __len) = 0; setbuf(_CharT* __b, int __len) = 0;
virtual int virtual int
sync() = 0; sync() = 0;
virtual int virtual int
doallocate() = 0; doallocate() = 0;
virtual streamsize virtual streamsize
sys_read(_CharT* __s, streamsize __n) = 0; sys_read(_CharT* __s, streamsize __n) = 0;
virtual streamsize virtual streamsize
sys_write(const _CharT* __s, streamsize __n) = 0; sys_write(const _CharT* __s, streamsize __n) = 0;
virtual streamoff virtual streamoff
sys_seek(streamoff __off, ios_base::seekdir __way) = 0; sys_seek(streamoff __off, ios_base::seekdir __way) = 0;
virtual int virtual int
sys_close() = 0; sys_close() = 0;
virtual int virtual int
sys_stat(void* __v) = 0; sys_stat(void* __v) = 0;
virtual int virtual int
showmanyc() = 0; showmanyc() = 0;
virtual void virtual void
imbue(void* __v) = 0; imbue(void* __v) = 0;
}; };
// Some of these member functions are based on libio/filebuf.cc. // Some of these member functions are based on libio/filebuf.cc.
// Also note that the order and number of virtual functions has to precisely // Also note that the order and number of virtual functions has to precisely
...@@ -241,12 +241,9 @@ namespace std { ...@@ -241,12 +241,9 @@ namespace std {
}; };
} // namespace std } // namespace std
#endif /* _CPP_BASIC_FILE */ // Now include the bits that are dependant on the underlying I/O
// model chosen at configure time.
#include <bits/basic_file_model.h>
#endif // _CPP_BASIC_FILE
...@@ -113,7 +113,7 @@ toplevel_srcdir = @toplevel_srcdir@ ...@@ -113,7 +113,7 @@ toplevel_srcdir = @toplevel_srcdir@
AUTOMAKE_OPTIONS = 1.3 cygnus AUTOMAKE_OPTIONS = 1.3 cygnus
mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
@GLIBCPP_BUILD_LIBIO_TRUE@noinst_LTLIBRARIES = @GLIBCPP_BUILD_LIBIO_TRUE@libio.la @GLIBCPP_BUILD_LIBIO_TRUE@noinst_LTLIBRARIES = libio.la
@GLIBCPP_BUILD_LIBIO_FALSE@noinst_LTLIBRARIES = @GLIBCPP_BUILD_LIBIO_FALSE@noinst_LTLIBRARIES =
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
...@@ -125,21 +125,14 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ ...@@ -125,21 +125,14 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBIO_INCLUDES = @LIBIO_INCLUDES@
CSHADOW_INCLUDES = @CSHADOW_INCLUDES@ CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
INCLUDES = \ INCLUDES = -nostdinc++ -I$(top_builddir)/include -I$(GLIBCPP_INCLUDE_DIR) $(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES)
-nostdinc++ \
-I$(top_builddir)/include -I$(GLIBCPP_INCLUDE_DIR) \
$(LIBIO_INCLUDES) $(TOPLEVEL_INCLUDES)
libio_headers = \ libio_headers = libio.h libioP.h iolibio.h
libio.h libioP.h iolibio.h
@GLIBCPP_NEED_LIBIO_TRUE@LIBIO_SRCS = @GLIBCPP_NEED_LIBIO_TRUE@\ @GLIBCPP_NEED_LIBIO_TRUE@LIBIO_SRCS = filedoalloc.c genops.c fileops.c stdfiles.c c_codecvt.c iofclose.c iofopen.c
@GLIBCPP_NEED_LIBIO_TRUE@ filedoalloc.c genops.c fileops.c stdfiles.c c_codecvt.c \
@GLIBCPP_NEED_LIBIO_TRUE@ iofclose.c iofopen.c
@GLIBCPP_NEED_LIBIO_FALSE@LIBIO_SRCS = @GLIBCPP_NEED_LIBIO_FALSE@LIBIO_SRCS =
@GLIBCPP_NEED_WLIBIO_TRUE@LIBIO_WSRCS = @GLIBCPP_NEED_WLIBIO_TRUE@\ @GLIBCPP_NEED_WLIBIO_TRUE@LIBIO_WSRCS = wfiledoalloc.c wfileops.c wgenops.c iofwide.c
@GLIBCPP_NEED_WLIBIO_TRUE@ wfiledoalloc.c wfileops.c wgenops.c iofwide.c
@GLIBCPP_NEED_WLIBIO_FALSE@LIBIO_WSRCS = @GLIBCPP_NEED_WLIBIO_FALSE@LIBIO_WSRCS =
EXTRA_DIST = iostreamP.h EXTRA_DIST = iostreamP.h
......
...@@ -116,24 +116,18 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs ...@@ -116,24 +116,18 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
noinst_LTLIBRARIES = libmath.la noinst_LTLIBRARIES = libmath.la
EXTRA_LONG_DOUBLE_yes = \ EXTRA_LONG_DOUBLE_yes = hypotl.c signbitl.c
hypotl.c signbitl.c
EXTRA_DIST = \ EXTRA_DIST = hypot.c hypotf.c atan2f.c expf.c $(EXTRA_LONG_DOUBLE_yes)
hypot.c hypotf.c atan2f.c expf.c \
$(EXTRA_LONG_DOUBLE_yes)
libmath_la_LIBADD = \ libmath_la_LIBADD = @LIBMATHOBJS@ $(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))
@LIBMATHOBJS@ \
$(EXTRA_LONG_DOUBLE_$(USE_COMPLEX_LONG_DOUBLE))
libmath_la_DEPENDENCIES = $(libmath_la_LIBADD) libmath_la_DEPENDENCIES = $(libmath_la_LIBADD)
libmath_la_SOURCES = \ libmath_la_SOURCES = signbit.c signbitf.c
signbit.c signbitf.c
LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ LINK = $(LIBTOOL) --mode=link "$(CCLD)" $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
...@@ -147,9 +141,7 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ ...@@ -147,9 +141,7 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBIO_INCLUDES = @LIBIO_INCLUDES@
CSHADOW_INCLUDES = @CSHADOW_INCLUDES@ CSHADOW_INCLUDES = @CSHADOW_INCLUDES@
INCLUDES = \ INCLUDES = -I$(GLIBCPP_INCLUDE_DIR) -I$(top_builddir)/include $(TOPLEVEL_INCLUDES)
-I$(GLIBCPP_INCLUDE_DIR) -I$(top_builddir)/include \
$(TOPLEVEL_INCLUDES)
CONFIG_HEADER = ../config.h CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
......
...@@ -130,13 +130,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ...@@ -130,13 +130,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4 # These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \ CONFIG_CXXFLAGS = @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
@EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
# Warning flags to use. # Warning flags to use.
WARN_CXXFLAGS = \ WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
...@@ -148,31 +146,13 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ ...@@ -148,31 +146,13 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBIO_INCLUDES = @LIBIO_INCLUDES@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
INCLUDES = \ INCLUDES = -I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include $(LIBSUPCXX_INCLUDES)
-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \
-I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
$(LIBSUPCXX_INCLUDES)
headers = \ headers = exception new typeinfo cxxabi.h exception_defines.h
exception new typeinfo cxxabi.h exception_defines.h
sources = \ sources = del_op.cc del_opnt.cc del_opv.cc del_opvnt.cc exception_support.cc new_handler.cc new_op.cc new_opnt.cc new_opv.cc new_opvnt.cc pure.cc tinfo.cc tinfo2.cc vec.cc
del_op.cc \
del_opnt.cc \
del_opv.cc \
del_opvnt.cc \
exception_support.cc \
new_handler.cc \
new_op.cc \
new_opnt.cc \
new_opv.cc \
new_opvnt.cc \
pure.cc \
tinfo.cc \
tinfo2.cc \
vec.cc
libsupc___la_SOURCES = $(sources) libsupc___la_SOURCES = $(sources)
...@@ -190,12 +170,7 @@ LIBSUPCXX_CXXFLAGS = -prefer-pic ...@@ -190,12 +170,7 @@ LIBSUPCXX_CXXFLAGS = -prefer-pic
# set this option because CONFIG_CXXFLAGS has to be after # set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion call for it. (ie, --enable-debug) # as the occasion call for it. (ie, --enable-debug)
AM_CXXFLAGS = \ AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
$(CONFIG_CXXFLAGS)
# libstdc++ libtool notes # libstdc++ libtool notes
...@@ -219,17 +194,14 @@ AM_CXXFLAGS = \ ...@@ -219,17 +194,14 @@ AM_CXXFLAGS = \
# #
# We have to put --tag disable-shared after --tag CXX lest things # We have to put --tag disable-shared after --tag CXX lest things
# CXX undo the affect of disable-shared. # CXX undo the affect of disable-shared.
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
--mode=compile $(CXX) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
# 3) We have a problem when building the shared libstdc++ object if # 3) We have a problem when building the shared libstdc++ object if
# the rules automake generates would be used. We cannot allow CXX to # the rules automake generates would be used. We cannot allow CXX to
# be used in libtool since this would add -lstdc++ to the link line # be used in libtool since this would add -lstdc++ to the link line
# which of course is problematic at this point. # which of course is problematic at this point.
CXXLINK = $(LIBTOOL) --mode=link "$(CC)" \ CXXLINK = $(LIBTOOL) --mode=link "$(CC)" @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
CONFIG_HEADER = ../config.h CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
## USA. ## USA.
## $Id: Makefile.am,v 1.73 2001/02/20 20:20:48 pme Exp $ ## $Id: Makefile.am,v 1.74 2001/02/26 21:48:01 pme Exp $
AUTOMAKE_OPTIONS = 1.3 gnits AUTOMAKE_OPTIONS = 1.3 gnits
MAINT_CHARSET = latin1 MAINT_CHARSET = latin1
...@@ -160,6 +160,7 @@ endif ...@@ -160,6 +160,7 @@ endif
build_headers = \ build_headers = \
bits/std_limits.h \ bits/std_limits.h \
bits/c++config.h bits/c++io.h bits/c++locale.h bits/c++threads.h \ bits/c++config.h bits/c++io.h bits/c++locale.h bits/c++threads.h \
bits/basic_file_model.h \
bits/atomicity.h bits/os_defines.h \ bits/atomicity.h bits/os_defines.h \
bits/ctype_base.h bits/ctype_noninline.h bits/ctype_inline.h bits/ctype_base.h bits/ctype_noninline.h bits/ctype_inline.h
...@@ -167,7 +168,7 @@ sources = \ ...@@ -167,7 +168,7 @@ sources = \
limitsMEMBERS.cc \ limitsMEMBERS.cc \
stdexcept.cc functexcept.cc bitset.cc \ stdexcept.cc functexcept.cc bitset.cc \
globals.cc \ globals.cc \
c++io.cc ios.cc complex_io.cc strstream.cc \ basic_file.cc ios.cc complex_io.cc strstream.cc \
c++locale.cc locale.cc localename.cc codecvt.cc \ c++locale.cc locale.cc localename.cc codecvt.cc \
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
......
...@@ -124,13 +124,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@ ...@@ -124,13 +124,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
# These bits are all figured out from configure. Look in acinclude.m4 # These bits are all figured out from configure. Look in acinclude.m4
# or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
# NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden. # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
CONFIG_CXXFLAGS = \ CONFIG_CXXFLAGS = @EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
@EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@
# Warning flags to use. # Warning flags to use.
WARN_CXXFLAGS = \ WARN_CXXFLAGS = @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
# Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
...@@ -142,121 +140,35 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@ ...@@ -142,121 +140,35 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
LIBIO_INCLUDES = @LIBIO_INCLUDES@ LIBIO_INCLUDES = @LIBIO_INCLUDES@
TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
INCLUDES = \ INCLUDES = -nostdinc++ -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) $(TOPLEVEL_INCLUDES)
-nostdinc++ \
-I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
$(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES) \ base_headers = bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h bits/stringfwd.h bits/std_string.h bits/basic_string.h bits/basic_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/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/functexcept.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_tempbuf.h bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h bits/type_traits.h bits/std_algorithm.h bits/concept_checks.h bits/container_concepts.h bits/sequence_concepts.h bits/stl_construct.h
$(TOPLEVEL_INCLUDES)
backward_headers = backward/complex.h backward/iomanip.h backward/istream.h backward/ostream.h backward/stream.h backward/streambuf.h backward/algo.h backward/algobase.h backward/alloc.h backward/bvector.h backward/defalloc.h backward/deque.h backward/function.h backward/hash_map.h backward/hash_set.h backward/hashtable.h backward/heap.h backward/iterator.h backward/list.h backward/map.h backward/multimap.h backward/new.h backward/multiset.h backward/pair.h backward/iostream.h backward/rope.h backward/set.h backward/slist.h backward/stack.h backward/tempbuf.h backward/tree.h backward/vector.h backward/fstream.h backward/strstream.h backward/strstream
base_headers = \
bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h \
bits/stringfwd.h bits/std_string.h bits/basic_string.h \ ext_headers = ext/ropeimpl.h ext/stl_rope.h ext/stl_bvector.h ext/stl_hashtable.h ext/stl_hash_fun.h ext/hash_map ext/hash_set ext/rope ext/slist ext/tree ext/bvector
bits/basic_string.tcc \
bits/generic_shadow.h bits/std_utility.h \
bits/std_complex.h \ c_base_headers = bits/std_cassert.h bits/std_cctype.h bits/std_cerrno.h bits/std_cfloat.h bits/std_climits.h bits/std_clocale.h bits/std_cmath.h bits/std_csetjmp.h bits/std_csignal.h bits/std_cstdarg.h bits/std_cstddef.h bits/std_cstdio.h bits/std_cstdlib.h bits/std_cstring.h bits/std_ctime.h bits/std_cwchar.h bits/std_cwctype.h bits/cmath.tcc
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 \ @GLIBCPP_USE_CSHADOW_TRUE@c_shadow_headers = assert.h ctype.h errno.h float.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h wchar.h wctype.h fcntl.h libio.h iolibio.h libioP.h pthread.h iconv.h features.h langinfo.h bits/wrap_libio.h bits/wrap_iolibio.h bits/wrap_libioP.h bits/wrap_iconv.h bits/wrap_fcntl.h bits/wrap_pthread.h bits/wrap_features.h bits/wrap_langinfo.h sys/cdefs.h
bits/gslice.h bits/gslice_array.h bits/indirect_array.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/functexcept.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_tempbuf.h \
bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h \
bits/type_traits.h bits/std_algorithm.h \
bits/concept_checks.h bits/container_concepts.h \
bits/sequence_concepts.h bits/stl_construct.h
backward_headers = \
backward/complex.h backward/iomanip.h backward/istream.h \
backward/ostream.h backward/stream.h backward/streambuf.h \
backward/algo.h backward/algobase.h backward/alloc.h \
backward/bvector.h backward/defalloc.h backward/deque.h \
backward/function.h backward/hash_map.h backward/hash_set.h \
backward/hashtable.h backward/heap.h backward/iterator.h \
backward/list.h backward/map.h backward/multimap.h backward/new.h \
backward/multiset.h backward/pair.h backward/iostream.h \
backward/rope.h backward/set.h backward/slist.h backward/stack.h \
backward/tempbuf.h backward/tree.h backward/vector.h \
backward/fstream.h backward/strstream.h backward/strstream
ext_headers = \
ext/ropeimpl.h ext/stl_rope.h \
ext/stl_bvector.h ext/stl_hashtable.h ext/stl_hash_fun.h \
ext/hash_map ext/hash_set ext/rope ext/slist \
ext/tree ext/bvector
c_base_headers = \
bits/std_cassert.h bits/std_cctype.h bits/std_cerrno.h \
bits/std_cfloat.h bits/std_climits.h bits/std_clocale.h \
bits/std_cmath.h bits/std_csetjmp.h bits/std_csignal.h \
bits/std_cstdarg.h bits/std_cstddef.h bits/std_cstdio.h \
bits/std_cstdlib.h bits/std_cstring.h bits/std_ctime.h \
bits/std_cwchar.h bits/std_cwctype.h bits/cmath.tcc
@GLIBCPP_USE_CSHADOW_TRUE@c_shadow_headers = @GLIBCPP_USE_CSHADOW_TRUE@\
@GLIBCPP_USE_CSHADOW_TRUE@ assert.h ctype.h errno.h float.h limits.h locale.h math.h setjmp.h \
@GLIBCPP_USE_CSHADOW_TRUE@ signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h wchar.h \
@GLIBCPP_USE_CSHADOW_TRUE@ wctype.h fcntl.h libio.h iolibio.h libioP.h pthread.h iconv.h \
@GLIBCPP_USE_CSHADOW_TRUE@ features.h langinfo.h \
@GLIBCPP_USE_CSHADOW_TRUE@ bits/wrap_libio.h bits/wrap_iolibio.h bits/wrap_libioP.h \
@GLIBCPP_USE_CSHADOW_TRUE@ bits/wrap_iconv.h bits/wrap_fcntl.h bits/wrap_pthread.h \
@GLIBCPP_USE_CSHADOW_TRUE@ bits/wrap_features.h bits/wrap_langinfo.h \
@GLIBCPP_USE_CSHADOW_TRUE@ sys/cdefs.h
@GLIBCPP_USE_CSHADOW_FALSE@c_shadow_headers = @GLIBCPP_USE_CSHADOW_FALSE@c_shadow_headers =
std_headers = \ std_headers = algorithm bitset complex deque fstream functional iomanip ios iosfwd iostream istream iterator limits list locale map memory numeric ostream queue set sstream stack stdexcept streambuf string utility valarray vector cassert cctype cerrno cfloat climits clocale ciso646 cmath csetjmp csignal cstdarg cstddef cstdio cstdlib cstring ctime cwchar cwctype
algorithm bitset complex deque fstream functional \
iomanip ios iosfwd iostream istream iterator limits list locale \ @GLIBCPP_NEED_LIBIO_TRUE@libio_headers = $(top_srcdir)/libio/_G_config.h $(top_srcdir)/libio/libio.h
map memory numeric ostream queue set sstream stack stdexcept \
streambuf string utility valarray vector \
cassert cctype cerrno cfloat climits clocale ciso646 \
cmath csetjmp csignal cstdarg cstddef cstdio cstdlib \
cstring ctime cwchar cwctype
@GLIBCPP_NEED_LIBIO_TRUE@libio_headers = @GLIBCPP_NEED_LIBIO_TRUE@\
@GLIBCPP_NEED_LIBIO_TRUE@ $(top_srcdir)/libio/_G_config.h $(top_srcdir)/libio/libio.h
@GLIBCPP_NEED_LIBIO_FALSE@libio_headers = @GLIBCPP_NEED_LIBIO_FALSE@libio_headers =
build_headers = \ build_headers = bits/std_limits.h bits/c++config.h bits/c++io.h bits/c++locale.h bits/c++threads.h bits/basic_file_model.h bits/atomicity.h bits/os_defines.h bits/ctype_base.h bits/ctype_noninline.h bits/ctype_inline.h
bits/std_limits.h \
bits/c++config.h bits/c++io.h bits/c++locale.h bits/c++threads.h \
bits/atomicity.h bits/os_defines.h \
bits/ctype_base.h bits/ctype_noninline.h bits/ctype_inline.h
sources = \ sources = limitsMEMBERS.cc stdexcept.cc functexcept.cc bitset.cc globals.cc basic_file.cc ios.cc complex_io.cc strstream.cc c++locale.cc locale.cc localename.cc codecvt.cc locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
limitsMEMBERS.cc \
stdexcept.cc functexcept.cc bitset.cc \
globals.cc \
c++io.cc ios.cc complex_io.cc strstream.cc \
c++locale.cc locale.cc localename.cc codecvt.cc \
locale-inst.cc stl-inst.cc misc-inst.cc valarray-inst.cc string-inst.cc
wstring_sources = \ wstring_sources = wstring-inst.cc
wstring-inst.cc
VPATH = $(top_srcdir) $(top_srcdir)/src $(GLIBCPP_INCLUDE_DIR) $(GLIBCPP_INCLUDE_DIR)/std $(C_INCLUDE_DIR) VPATH = $(top_srcdir) $(top_srcdir)/src $(GLIBCPP_INCLUDE_DIR) $(GLIBCPP_INCLUDE_DIR)/std $(C_INCLUDE_DIR)
...@@ -267,16 +179,13 @@ libstdc___la_SOURCES = $(sources) ...@@ -267,16 +179,13 @@ libstdc___la_SOURCES = $(sources)
libinst_wstring_la_SOURCES = $(wstring_sources) libinst_wstring_la_SOURCES = $(wstring_sources)
libstdc___la_LIBADD = \ libstdc___la_LIBADD = ../libmath/libmath.la @libio_la@ ../libsupc++/libsupc++convenience.la @libinst_wstring_la@
../libmath/libmath.la @libio_la@ \
../libsupc++/libsupc++convenience.la \
@libinst_wstring_la@
libstdc___la_LDFLAGS = -version-info 3:0:0 -lm libstdc___la_LDFLAGS = -version-info 3:0:0 -lm
libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD) libstdc___la_DEPENDENCIES = $(libstdc___la_LIBADD)
@GLIBCPP_USE_CSHADOW_TRUE@CSHADOW_H = @GLIBCPP_USE_CSHADOW_TRUE@$(top_builddir)/stamp-cshadow @GLIBCPP_USE_CSHADOW_TRUE@CSHADOW_H = $(top_builddir)/stamp-cshadow
@GLIBCPP_USE_CSHADOW_FALSE@CSHADOW_H = @GLIBCPP_USE_CSHADOW_FALSE@CSHADOW_H =
# Check for various configure bits that change where the headers get installed. # Check for various configure bits that change where the headers get installed.
...@@ -295,12 +204,7 @@ c_incdir = @C_INCLUDE_DIR@ ...@@ -295,12 +204,7 @@ c_incdir = @C_INCLUDE_DIR@
# set this option because CONFIG_CXXFLAGS has to be after # set this option because CONFIG_CXXFLAGS has to be after
# OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
# as the occasion call for it. (ie, --enable-debug) # as the occasion call for it. (ie, --enable-debug)
AM_CXXFLAGS = \ AM_CXXFLAGS = -fno-implicit-templates $(LIBSUPCXX_CXXFLAGS) $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS)
-fno-implicit-templates \
$(LIBSUPCXX_CXXFLAGS) \
$(WARN_CXXFLAGS) \
$(OPTIMIZE_CXXFLAGS) \
$(CONFIG_CXXFLAGS)
# libstdc++ libtool notes # libstdc++ libtool notes
...@@ -321,16 +225,14 @@ AM_CXXFLAGS = \ ...@@ -321,16 +225,14 @@ AM_CXXFLAGS = \
# correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
# CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
# attempt to infer which configuration to use # attempt to infer which configuration to use
LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
$(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
# 3) We have a problem when building the shared libstdc++ object if # 3) We have a problem when building the shared libstdc++ object if
# the rules automake generates would be used. We cannot allow CXX to # the rules automake generates would be used. We cannot allow CXX to
# be used in libtool since this would add -lstdc++ to the link line # be used in libtool since this would add -lstdc++ to the link line
# which of course is problematic at this point. # which of course is problematic at this point.
CXXLINK = $(LIBTOOL) --mode=link "$(CC)" \ CXXLINK = $(LIBTOOL) --mode=link "$(CC)" @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
@OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
CONFIG_HEADER = ../config.h CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
...@@ -349,7 +251,7 @@ libinst_wstring_la_LDFLAGS = ...@@ -349,7 +251,7 @@ libinst_wstring_la_LDFLAGS =
libinst_wstring_la_LIBADD = libinst_wstring_la_LIBADD =
libinst_wstring_la_OBJECTS = wstring-inst.lo libinst_wstring_la_OBJECTS = wstring-inst.lo
libstdc___la_OBJECTS = limitsMEMBERS.lo stdexcept.lo functexcept.lo \ libstdc___la_OBJECTS = limitsMEMBERS.lo stdexcept.lo functexcept.lo \
bitset.lo globals.lo c++io.lo ios.lo complex_io.lo strstream.lo \ bitset.lo globals.lo basic_file.lo ios.lo complex_io.lo strstream.lo \
c++locale.lo locale.lo localename.lo codecvt.lo locale-inst.lo \ c++locale.lo locale.lo localename.lo codecvt.lo locale-inst.lo \
stl-inst.lo misc-inst.lo valarray-inst.lo string-inst.lo stl-inst.lo misc-inst.lo valarray-inst.lo string-inst.lo
CXXFLAGS = @CXXFLAGS@ CXXFLAGS = @CXXFLAGS@
......
...@@ -524,6 +524,12 @@ bool test04() ...@@ -524,6 +524,12 @@ bool test04()
return test; return test;
} }
// test05
// libstdc++/1886
// should be able to instantiate basic_filebuf for non-standard types.
template class std::basic_filebuf<short, std::char_traits<short> >;
int main() int main()
{ {
test00(); test00();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment