mirror of git://gcc.gnu.org/git/gcc.git
2012-10-10 Mark Kettenis <kettenis@openbsd.org>
* configure.host (*-*-openbsd*) Set cpu_include_dir. * config/os/bsd/openbsd/ctype_base.h: New file. * config/os/bsd/openbsd/ctype_configure_char.cc: New file. * config/os/bsd/openbsd/ctype_inline.h: New file. * config/os/bsd/openbsd/os_defines.h: New file. * acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use newlib locale model for OpenBSD. * configure: Regenerated. From-SVN: r192334
This commit is contained in:
parent
40d15b5bdc
commit
1f726ff876
|
|
@ -1,3 +1,14 @@
|
||||||
|
2012-10-10 Mark Kettenis <kettenis@openbsd.org>
|
||||||
|
|
||||||
|
* configure.host (*-*-openbsd*) Set cpu_include_dir.
|
||||||
|
* config/os/bsd/openbsd/ctype_base.h: New file.
|
||||||
|
* config/os/bsd/openbsd/ctype_configure_char.cc: New file.
|
||||||
|
* config/os/bsd/openbsd/ctype_inline.h: New file.
|
||||||
|
* config/os/bsd/openbsd/os_defines.h: New file.
|
||||||
|
* acinclude.m4 (GLIBCXX_ENABLE_CLOCALE): Use newlib locale model
|
||||||
|
for OpenBSD.
|
||||||
|
* configure: Regenerated.
|
||||||
|
|
||||||
2012-10-10 Paolo Carlini <paolo.carlini@oracle.com>
|
2012-10-10 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
* include/std/type_traits (__do_common_type_impl): Revert for now
|
* include/std/type_traits (__do_common_type_impl): Revert for now
|
||||||
|
|
|
||||||
|
|
@ -1862,6 +1862,9 @@ AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
|
||||||
darwin* | freebsd*)
|
darwin* | freebsd*)
|
||||||
enable_clocale_flag=darwin
|
enable_clocale_flag=darwin
|
||||||
;;
|
;;
|
||||||
|
openbsd*)
|
||||||
|
enable_clocale_flag=newlib
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
if test x"$with_newlib" = x"yes"; then
|
if test x"$with_newlib" = x"yes"; then
|
||||||
enable_clocale_flag=newlib
|
enable_clocale_flag=newlib
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,59 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2000, 2009, 2012 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 3, 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//
|
||||||
|
// ISO C++ 14882: 22.1 Locales
|
||||||
|
//
|
||||||
|
|
||||||
|
// Information as gleaned from /usr/include/ctype.h on OpenBSD.
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
/// @brief Base class for ctype.
|
||||||
|
struct ctype_base
|
||||||
|
{
|
||||||
|
// Non-standard typedefs.
|
||||||
|
typedef const short* __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 char mask;
|
||||||
|
|
||||||
|
static const mask upper = _U;
|
||||||
|
static const mask lower = _L;
|
||||||
|
static const mask alpha = _U | _L;
|
||||||
|
static const mask digit = _N;
|
||||||
|
static const mask xdigit = _N | _X;
|
||||||
|
static const mask space = _S;
|
||||||
|
static const mask print = _P | _U | _L | _N | _B;
|
||||||
|
static const mask graph = _P | _U | _L | _N;
|
||||||
|
static const mask cntrl = _C;
|
||||||
|
static const mask punct = _P;
|
||||||
|
static const mask alnum = _U | _L | _N;
|
||||||
|
};
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
||||||
|
|
@ -0,0 +1,99 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2011 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 3, 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file ctype_configure_char.cc */
|
||||||
|
|
||||||
|
//
|
||||||
|
// ISO C++ 14882: 22.1 Locales
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <locale>
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <cstring>
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
// Information as gleaned from /usr/include/ctype.h
|
||||||
|
|
||||||
|
const ctype_base::mask*
|
||||||
|
ctype<char>::classic_table() throw()
|
||||||
|
{ return _ctype_ + 1; }
|
||||||
|
|
||||||
|
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||||
|
size_t __refs)
|
||||||
|
: facet(__refs), _M_del(__table != 0 && __del),
|
||||||
|
_M_toupper(NULL), _M_tolower(NULL),
|
||||||
|
_M_table(__table ? __table : classic_table())
|
||||||
|
{
|
||||||
|
memset(_M_widen, 0, sizeof(_M_widen));
|
||||||
|
_M_widen_ok = 0;
|
||||||
|
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||||
|
_M_narrow_ok = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||||
|
: facet(__refs), _M_del(__table != 0 && __del),
|
||||||
|
_M_toupper(NULL), _M_tolower(NULL),
|
||||||
|
_M_table(__table ? __table : classic_table())
|
||||||
|
{
|
||||||
|
memset(_M_widen, 0, sizeof(_M_widen));
|
||||||
|
_M_widen_ok = 0;
|
||||||
|
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||||
|
_M_narrow_ok = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2010 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 3, 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file bits/ctype_inline.h
|
||||||
|
* This is an internal header file, included by other library headers.
|
||||||
|
* Do not attempt to use it directly. @headername{locale}
|
||||||
|
*/
|
||||||
|
|
||||||
|
//
|
||||||
|
// ISO C++ 14882: 22.1 Locales
|
||||||
|
//
|
||||||
|
|
||||||
|
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||||
|
// functions go in ctype.cc
|
||||||
|
|
||||||
|
namespace std _GLIBCXX_VISIBILITY(default)
|
||||||
|
{
|
||||||
|
_GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
_GLIBCXX_END_NAMESPACE_VERSION
|
||||||
|
} // namespace
|
||||||
|
|
@ -0,0 +1,41 @@
|
||||||
|
// Specific definitions for OpenBSD -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2000, 2002, 2009, 2012 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 3, 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.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file bits/os_defines.h
|
||||||
|
* This is an internal header file, included by other library headers.
|
||||||
|
* Do not attempt to use it directly. @headername{iosfwd}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _GLIBCXX_OS_DEFINES
|
||||||
|
#define _GLIBCXX_OS_DEFINES 1
|
||||||
|
|
||||||
|
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||||
|
// file will come before all others.
|
||||||
|
|
||||||
|
#define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
|
||||||
|
#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
|
||||||
|
#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
|
||||||
|
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC _GLIBCXX_USE_C99_DYNAMIC
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -15816,6 +15816,9 @@ fi
|
||||||
darwin* | freebsd*)
|
darwin* | freebsd*)
|
||||||
enable_clocale_flag=darwin
|
enable_clocale_flag=darwin
|
||||||
;;
|
;;
|
||||||
|
openbsd*)
|
||||||
|
enable_clocale_flag=newlib
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
if test x"$with_newlib" = x"yes"; then
|
if test x"$with_newlib" = x"yes"; then
|
||||||
enable_clocale_flag=newlib
|
enable_clocale_flag=newlib
|
||||||
|
|
|
||||||
|
|
@ -291,6 +291,9 @@ case "${host_os}" in
|
||||||
netbsd*)
|
netbsd*)
|
||||||
os_include_dir="os/bsd/netbsd"
|
os_include_dir="os/bsd/netbsd"
|
||||||
;;
|
;;
|
||||||
|
openbsd*)
|
||||||
|
os_include_dir="os/bsd/openbsd"
|
||||||
|
;;
|
||||||
qnx6.[12]*)
|
qnx6.[12]*)
|
||||||
os_include_dir="os/qnx/qnx6.1"
|
os_include_dir="os/qnx/qnx6.1"
|
||||||
c_model=c
|
c_model=c
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue