Commit 944effb6 by Danny Smith Committed by Christopher Faylor

configure.target: Add os_include_dir for mingw32* target.

* configure.target: Add os_include_dir for mingw32* target.
* docs/html/17_intro/porting.texi: Mention mingw32 as target benefiting from
_GLIBCPP_AVOID_FSEEK.
* config/os/mingw32/bits/ctype_base.h: New file.
* config/os/mingw32/bits/ctype_inline.h: New file.
* config/os/mingw32/bits/ctype_noninline.h: New file.
* config/os/mingw32/bits/os_defines.h: New file.

From-SVN: r46857
parent b21d216c
2001-11-08 Danny Smith <dannysmith@users.sourceforge.net>
* configure.target: Add os_include_dir for mingw32* target.
* docs/html/17_intro/porting.texi: Mention mingw32 as target benefiting
from _GLIBCPP_AVOID_FSEEK.
* config/os/mingw32/bits/ctype_base.h: New file.
* config/os/mingw32/bits/ctype_inline.h: New file.
* config/os/mingw32/bits/ctype_noninline.h: New file.
* config/os/mingw32/bits/os_defines.h: New file.
2001-11-07 Nathan Myers <ncm@cantrip.org> 2001-11-07 Nathan Myers <ncm@cantrip.org>
* docs/html/faq/index.html (5.8): New entry on ABIs. * docs/html/faq/index.html (5.8): New entry on ABIs.
......
// Locale support -*- C++ -*-
// Copyright (C) 1997-1999 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: 22.1 Locales
//
// Information, as gleaned from /mingw32/include/ctype.h.
struct ctype_base
{
// Non-standard typedefs.
typedef const int* __to_type;
// NB: Offsets into ctype<char>::_M_table force a particular size
// on the mask type. Because of this, we don't use an enum.
typedef unsigned short mask;
static const mask upper = _UPPER;
static const mask lower = _LOWER;
static const mask alpha = _ALPHA;
static const mask digit = _DIGIT;
static const mask xdigit = _HEX;
static const mask space = _SPACE;
static const mask print = (_BLANK | _PUNCT| _ALPHA | _DIGIT);
static const mask graph = (_PUNCT | _ALPHA | _DIGIT);
static const mask cntrl = _CONTROL;
static const mask punct = _PUNCT;
static const mask alnum = (_ALPHA | _DIGIT);
};
// Locale support -*- C++ -*-
// Copyright (C) 2000 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 22.1 Locales
//
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
// functions go in ctype.cc
bool
ctype<char>::
is(mask __m, char __c) const
{
return (_M_table[static_cast<unsigned char>(__c) ] & __m);
}
const char*
ctype<char>::
is(const char* __low, const char* __high, mask* __vec) const
{
while (__low < __high)
*__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
return __high;
}
const char*
ctype<char>::
scan_is(mask __m, const char* __low, const char* __high) const
{
while (__low < __high && !this->is(__m, *__low))
++__low;
return __low;
}
const char*
ctype<char>::
scan_not(mask __m, const char* __low, const char* __high) const
{
while (__low < __high && this->is(__m, *__low) != 0)
++__low;
return __low;
}
// Locale support -*- C++ -*-
// Copyright (C) 1997-1999, 2000 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 22.1 Locales
//
// Information as gleaned from /mingw32/include/ctype.h.
// This should be in mingw's ctype.h but isn't in older versions
extern "C" unsigned short* __declspec(dllimport) _pctype;
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
: __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del),
_M_toupper(NULL), _M_tolower(NULL),
_M_ctable(NULL), _M_table(__table == 0 ? (_pctype) : __table)
{ }
char
ctype<char>::do_toupper(char __c) const
{ return ::toupper((int) __c); }
const char*
ctype<char>::do_toupper(char* __low, const char* __high) const
{
while (__low < __high)
{
*__low = ::toupper((int) *__low);
++__low;
}
return __high;
}
char
ctype<char>::do_tolower(char __c) const
{ return ::tolower((int) __c); }
const char*
ctype<char>::do_tolower(char* __low, const char* __high) const
{
while (__low < __high)
{
*__low = ::tolower((int) *__low);
++__low;
}
return __high;
}
// Specific definitions for generic platforms -*- C++ -*-
// Copyright (C) 2000 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
#ifndef _GLIBCPP_OS_DEFINES
# define _GLIBCPP_OS_DEFINES
// System-specific #define, typedefs, corrections, etc, go here. This
// file will come before all others.
#define _GLIBCPP_AVOID_FSEEK 1
#endif
...@@ -89,6 +89,9 @@ case "${target_os}" in ...@@ -89,6 +89,9 @@ case "${target_os}" in
irix6.5) irix6.5)
os_include_dir="config/os/irix/irix6.5" os_include_dir="config/os/irix/irix6.5"
;; ;;
mingw32*)
os_include_dir="config/os/mingw32"
;;
netbsd*) netbsd*)
os_include_dir="config/os/bsd/netbsd" os_include_dir="config/os/bsd/netbsd"
;; ;;
......
...@@ -152,8 +152,8 @@ stream (or one hooked to a pipe) is not allowed by the OS. In this ...@@ -152,8 +152,8 @@ stream (or one hooked to a pipe) is not allowed by the OS. In this
case, getc()/ungetc() will be used at some key locations in the library case, getc()/ungetc() will be used at some key locations in the library
implementation instead of fseek(). Currently, the code path to avoid implementation instead of fseek(). Currently, the code path to avoid
fseek() is only enabled when the seek size is 1 character away from the fseek() is only enabled when the seek size is 1 character away from the
current stream position. This is known to improve *-unknown-freebsd* current stream position. This is known to improve *-unknown-freebsd*,
and sparc-sun-solaris2.*. sparc-sun-solaris2.* and *-*-mingw32*.
Finally, you should bracket the entire file in an include-guard, like Finally, you should bracket the entire file in an include-guard, like
this: this:
......
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