summaryrefslogtreecommitdiff
path: root/lang/gcc47-aux/files/diff-cxx
diff options
context:
space:
mode:
Diffstat (limited to 'lang/gcc47-aux/files/diff-cxx')
-rw-r--r--lang/gcc47-aux/files/diff-cxx1128
1 files changed, 0 insertions, 1128 deletions
diff --git a/lang/gcc47-aux/files/diff-cxx b/lang/gcc47-aux/files/diff-cxx
deleted file mode 100644
index f3f440c49d25..000000000000
--- a/lang/gcc47-aux/files/diff-cxx
+++ /dev/null
@@ -1,1128 +0,0 @@
---- libstdc++-v3/acinclude.m4.orig
-+++ libstdc++-v3/acinclude.m4
-@@ -1903,7 +1903,7 @@
- AC_DEFUN([GLIBCXX_ENABLE_CLOCALE], [
- GLIBCXX_ENABLE(clocale,auto,[[[=MODEL]]],
- [use MODEL for target locale package],
-- [permit generic|gnu|ieee_1003.1-2001|newlib|yes|no|auto])
-+ [permit generic|gnu|ieee_1003.1-2001|newlib|darwin|dragonfly|yes|no|auto])
-
- # Deal with gettext issues. Default to not using it (=no) until we detect
- # support for it later. Let the user turn it off via --e/d, but let that
-@@ -1930,6 +1930,9 @@
- darwin* | freebsd*)
- enable_clocale_flag=darwin
- ;;
-+ dragonfly*)
-+ enable_clocale_flag=dragonfly
-+ ;;
- *)
- if test x"$with_newlib" = x"yes"; then
- enable_clocale_flag=newlib
-@@ -2018,7 +2021,22 @@
- CTIME_CC=config/locale/generic/time_members.cc
- CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
- ;;
-+ dragonfly)
-+ AC_MSG_RESULT(dragonfly)
-
-+ CLOCALE_H=config/locale/generic/c_locale.h
-+ CLOCALE_CC=config/locale/dragonfly/c_locale.cc
-+ CCODECVT_CC=config/locale/generic/codecvt_members.cc
-+ CCOLLATE_CC=config/locale/generic/collate_members.cc
-+ CCTYPE_CC=config/locale/dragonfly/ctype_members.cc
-+ CMESSAGES_H=config/locale/generic/messages_members.h
-+ CMESSAGES_CC=config/locale/generic/messages_members.cc
-+ CMONEY_CC=config/locale/generic/monetary_members.cc
-+ CNUMERIC_CC=config/locale/generic/numeric_members.cc
-+ CTIME_H=config/locale/generic/time_members.h
-+ CTIME_CC=config/locale/generic/time_members.cc
-+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-+ ;;
- gnu)
- AC_MSG_RESULT(gnu)
-
---- libstdc++-v3/configure.orig
-+++ libstdc++-v3/configure
-@@ -15738,7 +15738,7 @@
- if test "${enable_clocale+set}" = set; then :
- enableval=$enable_clocale;
- case "$enableval" in
-- generic|gnu|ieee_1003.1-2001|newlib|yes|no|auto) ;;
-+ generic|gnu|ieee_1003.1-2001|newlib|darwin|dragonfly|yes|no|auto) ;;
- *) as_fn_error "Unknown argument to enable/disable clocale" "$LINENO" 5 ;;
- esac
-
-@@ -15776,6 +15776,9 @@
- darwin* | freebsd*)
- enable_clocale_flag=darwin
- ;;
-+ dragonfly*)
-+ enable_clocale_flag=dragonfly
-+ ;;
- *)
- if test x"$with_newlib" = x"yes"; then
- enable_clocale_flag=newlib
-@@ -15917,7 +15920,23 @@
- CTIME_CC=config/locale/generic/time_members.cc
- CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
- ;;
-+ dragonfly)
-+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: dragonfly" >&5
-+$as_echo "dragonfly" >&6; }
-
-+ CLOCALE_H=config/locale/generic/c_locale.h
-+ CLOCALE_CC=config/locale/dragonfly/c_locale.cc
-+ CCODECVT_CC=config/locale/generic/codecvt_members.cc
-+ CCOLLATE_CC=config/locale/generic/collate_members.cc
-+ CCTYPE_CC=config/locale/dragonfly/ctype_members.cc
-+ CMESSAGES_H=config/locale/generic/messages_members.h
-+ CMESSAGES_CC=config/locale/generic/messages_members.cc
-+ CMONEY_CC=config/locale/generic/monetary_members.cc
-+ CNUMERIC_CC=config/locale/generic/numeric_members.cc
-+ CTIME_H=config/locale/generic/time_members.h
-+ CTIME_CC=config/locale/generic/time_members.cc
-+ CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-+ ;;
- gnu)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: gnu" >&5
- $as_echo "gnu" >&6; }
---- libstdc++-v3/configure.host.orig
-+++ libstdc++-v3/configure.host
-@@ -239,6 +239,9 @@
- os_include_dir="os/djgpp"
- error_constants_dir="os/djgpp"
- ;;
-+ dragonfly*)
-+ os_include_dir="os/bsd/dragonfly"
-+ ;;
- freebsd*)
- os_include_dir="os/bsd/freebsd"
- ;;
---- /dev/null
-+++ libstdc++-v3/config/locale/dragonfly/c_locale.cc
-@@ -0,0 +1,300 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 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/>.
-+
-+//
-+// ISO C++ 14882: 22.8 Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <cerrno> // For errno
-+#include <cmath> // For isinf, finite, finitef, fabs
-+#include <cstdlib> // For strof, strtold
-+#include <cstring>
-+#include <cstdio>
-+#include <locale>
-+#include <limits>
-+
-+#ifdef _GLIBCXX_HAVE_IEEEFP_H
-+#include <ieeefp.h>
-+#endif
-+
-+namespace std _GLIBCXX_VISIBILITY(default)
-+{
-+_GLIBCXX_BEGIN_NAMESPACE_VERSION
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err,
-+ const __c_locale&) throw()
-+ {
-+ // Assumes __s formatted for "C" locale.
-+ char* __old = setlocale(LC_ALL, 0);
-+ const size_t __len = strlen(__old) + 1;
-+ char* __sav = new char[__len];
-+ memcpy(__sav, __old, __len);
-+ setlocale(LC_ALL, "C");
-+ char* __sanity;
-+ bool __overflow = false;
-+
-+#if !__FLT_HAS_INFINITY__
-+ errno = 0;
-+#endif
-+
-+#ifdef _GLIBCXX_HAVE_STRTOF
-+ __v = strtof(__s, &__sanity);
-+#else
-+ double __d = strtod(__s, &__sanity);
-+ __v = static_cast<float>(__d);
-+#ifdef _GLIBCXX_HAVE_FINITEF
-+ if (!finitef (__v))
-+ __overflow = true;
-+#elif defined (_GLIBCXX_HAVE_FINITE)
-+ if (!finite (static_cast<double> (__v)))
-+ __overflow = true;
-+#elif defined (_GLIBCXX_HAVE_ISINF)
-+ if (isinf (static_cast<double> (__v)))
-+ __overflow = true;
-+#else
-+ if (fabs(__d) > numeric_limits<float>::max())
-+ __overflow = true;
-+#endif
-+#endif // _GLIBCXX_HAVE_STRTOF
-+
-+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
-+ // 23. Num_get overflow result.
-+ if (__sanity == __s || *__sanity != '\0')
-+ {
-+ __v = 0.0f;
-+ __err = ios_base::failbit;
-+ }
-+ else if (__overflow
-+#if __FLT_HAS_INFINITY__
-+ || __v == numeric_limits<float>::infinity()
-+ || __v == -numeric_limits<float>::infinity()
-+#else
-+ || ((__v > 1.0f || __v < -1.0f) && errno == ERANGE)
-+#endif
-+ )
-+ {
-+ if (__v > 0.0f)
-+ __v = numeric_limits<float>::max();
-+ else
-+ __v = -numeric_limits<float>::max();
-+ __err = ios_base::failbit;
-+ }
-+
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err,
-+ const __c_locale&) throw()
-+ {
-+ // Assumes __s formatted for "C" locale.
-+ char* __old = setlocale(LC_ALL, 0);
-+ const size_t __len = strlen(__old) + 1;
-+ char* __sav = new char[__len];
-+ memcpy(__sav, __old, __len);
-+ setlocale(LC_ALL, "C");
-+ char* __sanity;
-+
-+#if !__DBL_HAS_INFINITY__
-+ errno = 0;
-+#endif
-+
-+ __v = strtod(__s, &__sanity);
-+
-+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
-+ // 23. Num_get overflow result.
-+ if (__sanity == __s || *__sanity != '\0')
-+ {
-+ __v = 0.0;
-+ __err = ios_base::failbit;
-+ }
-+ else if (
-+#if __DBL_HAS_INFINITY__
-+ __v == numeric_limits<double>::infinity()
-+ || __v == -numeric_limits<double>::infinity())
-+#else
-+ (__v > 1.0 || __v < -1.0) && errno == ERANGE)
-+#endif
-+ {
-+ if (__v > 0.0)
-+ __v = numeric_limits<double>::max();
-+ else
-+ __v = -numeric_limits<double>::max();
-+ __err = ios_base::failbit;
-+ }
-+
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
-+ }
-+
-+ template<>
-+ void
-+ __convert_to_v(const char* __s, long double& __v,
-+ ios_base::iostate& __err, const __c_locale&) throw()
-+ {
-+ // Assumes __s formatted for "C" locale.
-+ char* __old = setlocale(LC_ALL, 0);
-+ const size_t __len = strlen(__old) + 1;
-+ char* __sav = new char[__len];
-+ memcpy(__sav, __old, __len);
-+ setlocale(LC_ALL, "C");
-+
-+#if !__LDBL_HAS_INFINITY__
-+ errno = 0;
-+#endif
-+
-+#if defined(_GLIBCXX_HAVE_STRTOLD) && !defined(_GLIBCXX_HAVE_BROKEN_STRTOLD)
-+ char* __sanity;
-+ __v = strtold(__s, &__sanity);
-+
-+ // _GLIBCXX_RESOLVE_LIB_DEFECTS
-+ // 23. Num_get overflow result.
-+ if (__sanity == __s || *__sanity != '\0')
-+#else
-+ typedef char_traits<char>::int_type int_type;
-+ int __p = sscanf(__s, "%Lf", &__v);
-+
-+ if (!__p || static_cast<int_type>(__p) == char_traits<char>::eof())
-+#endif
-+ {
-+ __v = 0.0l;
-+ __err = ios_base::failbit;
-+ }
-+ else if (
-+#if __LDBL_HAS_INFINITY__
-+ __v == numeric_limits<long double>::infinity()
-+ || __v == -numeric_limits<long double>::infinity())
-+#else
-+ (__v > 1.0l || __v < -1.0l) && errno == ERANGE)
-+#endif
-+ {
-+ if (__v > 0.0l)
-+ __v = numeric_limits<long double>::max();
-+ else
-+ __v = -numeric_limits<long double>::max();
-+ __err = ios_base::failbit;
-+ }
-+
-+ setlocale(LC_ALL, __sav);
-+ delete [] __sav;
-+ }
-+
-+
-+ /* DragonFly's implementation of setlocale won't accept something like
-+ "de_DE". According to nls manpage, the expected format is:
-+ language[_territory][.codeset][@modifier], but it seems that both
-+ the _territory and .codeset components are required.
-+
-+ As an attempt to correct for this, we'll tack on ".UTF-8" if
-+ a period is not detected in the locale string.
-+
-+ There are no locales with modifiers on DragonFly so if found, they
-+ will just be stripped off silently. e.g "de_DE@euro" will be reduced
-+ to "de_DE". The UTF-8 default would be added after that.
-+ */
-+
-+ void
-+ locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s,
-+ __c_locale)
-+ {
-+ const size_t size__s = (__s == NULL) ? 1 : strlen (__s);
-+ const char UTF8[] = ".UTF-8";
-+ char localspec[size__s + 6 + 1];
-+
-+ if (__s == NULL) {
-+ localspec[0] = NULL;
-+ } else {
-+ strcpy (localspec, __s);
-+ char * pch = strchr (localspec, '@');
-+ if (pch != NULL)
-+ *pch = 0;
-+
-+ if ( (strchr (__s, '.') == NULL)
-+ && (strcmp (__s, "C") != 0)
-+ && (strcmp (__s, "POSIX") != 0))
-+ strncat (localspec, UTF8, 6);
-+ }
-+
-+ const char * result = std::setlocale(LC_ALL, localspec);
-+
-+ if ((strcmp(result, "C") != 0) && (strcmp (result, localspec) != 0))
-+ __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
-+ "name not valid"));
-+ __cloc = 0;
-+ }
-+
-+ void
-+ locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-+ { __cloc = 0; }
-+
-+ __c_locale
-+ locale::facet::_S_clone_c_locale(__c_locale&) throw()
-+ { return __c_locale(); }
-+
-+ __c_locale
-+ locale::facet::_S_lc_ctype_c_locale(__c_locale, const char*)
-+ { return __c_locale(); }
-+
-+_GLIBCXX_END_NAMESPACE_VERSION
-+} // namespace
-+
-+namespace __gnu_cxx _GLIBCXX_VISIBILITY(default)
-+{
-+_GLIBCXX_BEGIN_NAMESPACE_VERSION
-+
-+ const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
-+ {
-+ "LC_CTYPE",
-+ "LC_NUMERIC",
-+ "LC_TIME",
-+ "LC_COLLATE",
-+ "LC_MONETARY",
-+ "LC_MESSAGES"
-+ };
-+
-+_GLIBCXX_END_NAMESPACE_VERSION
-+} // namespace
-+
-+namespace std _GLIBCXX_VISIBILITY(default)
-+{
-+_GLIBCXX_BEGIN_NAMESPACE_VERSION
-+
-+ const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-+
-+_GLIBCXX_END_NAMESPACE_VERSION
-+} // namespace
-+
-+// XXX GLIBCXX_ABI Deprecated
-+#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
-+#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
-+ extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
-+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
-+#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
---- /dev/null
-+++ libstdc++-v3/config/locale/dragonfly/ctype_members.cc
-@@ -0,0 +1,174 @@
-+// std::ctype implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 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/>.
-+
-+//
-+// ISO C++ 14882: 22.2.1.1.2 ctype virtual functions.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+#include <cstdlib>
-+#include <cstring>
-+#include <cstdio>
-+
-+namespace std _GLIBCXX_VISIBILITY(default)
-+{
-+ // NB: The other ctype<char> specializations are in src/locale.cc and
-+ // various /config/os/* files.
-+
-+ ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-+ : ctype<char>(0, false, __refs)
-+ {
-+ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+ {
-+ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
-+ this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
-+ }
-+ }
-+
-+ ctype_byname<char>::~ctype_byname()
-+ { }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ ctype<wchar_t>::__wmask_type
-+ ctype<wchar_t>::_M_convert_to_wmask(
-+ const mask __attribute__((__unused__)) __m) const throw()
-+ {
-+ // DragonFly uses the same codes for 'char' as 'wchar_t', so this routine
-+ // never gets called.
-+ return __wmask_type();
-+ };
-+
-+ wchar_t
-+ ctype<wchar_t>::do_toupper(wchar_t __c) const
-+ { return towupper(__c); }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__lo = towupper(*__lo);
-+ ++__lo;
-+ }
-+ return __hi;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::do_tolower(wchar_t __c) const
-+ { return towlower(__c); }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__lo = towlower(*__lo);
-+ ++__lo;
-+ }
-+ return __hi;
-+ }
-+
-+ wchar_t
-+ ctype<wchar_t>::
-+ do_widen(char __c) const
-+ { return _M_widen[static_cast<unsigned char>(__c)]; }
-+
-+ const char*
-+ ctype<wchar_t>::
-+ do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
-+ {
-+ while (__lo < __hi)
-+ {
-+ *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
-+ ++__lo;
-+ ++__dest;
-+ }
-+ return __hi;
-+ }
-+
-+ char
-+ ctype<wchar_t>::
-+ do_narrow(wchar_t __wc, char __dfault) const
-+ {
-+ if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
-+ return _M_narrow[__wc];
-+ const int __c = wctob(__wc);
-+ return (__c == EOF ? __dfault : static_cast<char>(__c));
-+ }
-+
-+ const wchar_t*
-+ ctype<wchar_t>::
-+ do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault,
-+ char* __dest) const
-+ {
-+ if (_M_narrow_ok)
-+ while (__lo < __hi)
-+ {
-+ if (*__lo >= 0 && *__lo < 128)
-+ *__dest = _M_narrow[*__lo];
-+ else
-+ {
-+ const int __c = wctob(*__lo);
-+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+ }
-+ ++__lo;
-+ ++__dest;
-+ }
-+ else
-+ while (__lo < __hi)
-+ {
-+ const int __c = wctob(*__lo);
-+ *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+ ++__lo;
-+ ++__dest;
-+ }
-+ return __hi;
-+ }
-+
-+ void
-+ ctype<wchar_t>::_M_initialize_ctype() throw()
-+ {
-+ wint_t __i;
-+ for (__i = 0; __i < 128; ++__i)
-+ {
-+ const int __c = wctob(__i);
-+ if (__c == EOF)
-+ break;
-+ else
-+ _M_narrow[__i] = static_cast<char>(__c);
-+ }
-+ if (__i == 128)
-+ _M_narrow_ok = true;
-+ else
-+ _M_narrow_ok = false;
-+ for (size_t __i = 0;
-+ __i < sizeof(_M_widen) / sizeof(wint_t); ++__i)
-+ _M_widen[__i] = btowc(__i);
-+ }
-+#endif // _GLIBCXX_USE_WCHAR_T
-+}
---- /dev/null
-+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h
-@@ -0,0 +1,75 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2000, 2003, 2009, 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/>.
-+
-+//
-+// ISO C++ 14882: 22.1 Locales
-+//
-+
-+// Information as gleaned from /usr/include/ctype.h on DragonFly.
-+
-+namespace std _GLIBCXX_VISIBILITY(default)
-+{
-+_GLIBCXX_BEGIN_NAMESPACE_VERSION
-+
-+ /// @brief Base class for ctype.
-+ 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.
-+#ifdef _CTYPE_S
-+ // DragonFly 3.6 and later
-+ typedef unsigned long mask;
-+ static const mask upper = _CTYPE_U;
-+ static const mask lower = _CTYPE_L;
-+ static const mask alpha = _CTYPE_A;
-+ static const mask digit = _CTYPE_D;
-+ static const mask xdigit = _CTYPE_X;
-+ static const mask space = _CTYPE_S;
-+ static const mask print = _CTYPE_R;
-+ static const mask graph = _CTYPE_A | _CTYPE_D | _CTYPE_P;
-+ static const mask cntrl = _CTYPE_C;
-+ static const mask punct = _CTYPE_P;
-+ static const mask alnum = _CTYPE_A | _CTYPE_D;
-+#else
-+ // DragonFly 3.4 and older
-+ typedef uint16_t mask;
-+ static const mask upper = _CTYPEMASK_U;
-+ static const mask lower = _CTYPEMASK_L;
-+ static const mask alpha = _CTYPEMASK_A;
-+ static const mask digit = _CTYPEMASK_D;
-+ static const mask xdigit = _CTYPEMASK_X;
-+ static const mask space = _CTYPEMASK_S;
-+ static const mask print = _CTYPEMASK_R;
-+ static const mask graph = _CTYPEMASK_G;
-+ static const mask cntrl = _CTYPEMASK_C;
-+ static const mask punct = _CTYPEMASK_P;
-+ static const mask alnum = _CTYPEMASK_A | _CTYPEMASK_D;
-+#endif
-+ };
-+
-+_GLIBCXX_END_NAMESPACE_VERSION
-+} // namespace
---- /dev/null
-+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc
-@@ -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 0; }
-+
-+ 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
---- /dev/null
-+++ libstdc++-v3/config/os/bsd/dragonfly/ctype_inline.h
-@@ -0,0 +1,187 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2000, 2003, 2004, 2005, 2009, 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
-+ {
-+ if (_M_table)
-+ return _M_table[static_cast<unsigned char>(__c)] & __m;
-+ else
-+#ifdef _CTYPE_S
-+ return __istype(__c, __m);
-+#else
-+ return __libc_ctype_ [__c + 1] & __m;
-+#endif
-+ }
-+
-+ const char*
-+ ctype<char>::
-+ is(const char* __low, const char* __high, mask* __vec) const
-+ {
-+ if (_M_table)
-+ while (__low < __high)
-+ *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
-+ else
-+ for (;__low < __high; ++__vec, ++__low)
-+ {
-+#ifdef _CTYPE_S
-+ *__vec = __maskrune (*__low, upper | lower | alpha | digit | xdigit
-+ | space | print | graph | cntrl | punct | alnum);
-+#else
-+ mask __m = 0;
-+ if (this->is(upper, *__low)) __m |= upper;
-+ if (this->is(lower, *__low)) __m |= lower;
-+ if (this->is(alpha, *__low)) __m |= alpha;
-+ if (this->is(digit, *__low)) __m |= digit;
-+ if (this->is(xdigit, *__low)) __m |= xdigit;
-+ if (this->is(space, *__low)) __m |= space;
-+ if (this->is(print, *__low)) __m |= print;
-+ if (this->is(graph, *__low)) __m |= graph;
-+ if (this->is(cntrl, *__low)) __m |= cntrl;
-+ if (this->is(punct, *__low)) __m |= punct;
-+ // Do not include explicit line for alnum mask since it is a
-+ // pure composite of masks on DragonFly.
-+ *__vec = __m;
-+#endif
-+ }
-+ return __high;
-+ }
-+
-+ const char*
-+ ctype<char>::
-+ scan_is(mask __m, const char* __low, const char* __high) const
-+ {
-+ if (_M_table)
-+ while (__low < __high
-+ && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
-+ ++__low;
-+ else
-+ 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
-+ {
-+ if (_M_table)
-+ while (__low < __high
-+ && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
-+ ++__low;
-+ else
-+ while (__low < __high && this->is(__m, *__low) != 0)
-+ ++__low;
-+ return __low;
-+ }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+ inline bool
-+ ctype<wchar_t>::
-+ do_is(mask __m, wchar_t __c) const
-+ {
-+#ifdef _CTYPE_S
-+ return __istype (__c, __m);
-+#else
-+ return __libc_ctype_ [__c + 1] & __m;
-+#endif
-+ }
-+
-+ inline const wchar_t*
-+ ctype<wchar_t>::
-+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
-+ {
-+ for (; __lo < __hi; ++__vec, ++__lo)
-+#ifdef _CTYPE_S
-+ *__vec = __maskrune (*__lo, upper | lower | alpha | digit | xdigit
-+ | space | print | graph | cntrl | punct | alnum);
-+#else
-+ {
-+ mask __m = 0;
-+ if (isupper (*__lo)) __m |= _CTYPEMASK_U;
-+ if (islower (*__lo)) __m |= _CTYPEMASK_L;
-+ if (isdigit (*__lo)) __m |= _CTYPEMASK_D;
-+ if (isspace (*__lo)) __m |= _CTYPEMASK_S;
-+ if (ispunct (*__lo)) __m |= _CTYPEMASK_P;
-+ if (isblank (*__lo)) __m |= _CTYPEMASK_B;
-+ if (iscntrl (*__lo)) __m |= _CTYPEMASK_C;
-+ if (isalpha (*__lo)) __m |= _CTYPEMASK_A;
-+ if (isgraph (*__lo)) __m |= _CTYPEMASK_G;
-+ if (isprint (*__lo)) __m |= _CTYPEMASK_R;
-+ if (isxdigit(*__lo)) __m |= _CTYPEMASK_X;
-+ /* alnum already covered = alpha | digit */
-+
-+ *__vec = __m;
-+ }
-+#endif
-+ return __hi;
-+ }
-+
-+ inline const wchar_t*
-+ ctype<wchar_t>::
-+ do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
-+ {
-+#ifdef _CTYPE_S
-+ while (__lo < __hi && ! __istype (*__lo, __m))
-+#else
-+ while (__lo < __hi && !(__libc_ctype_ [*__lo + 1] & __m))
-+#endif
-+ ++__lo;
-+ return __lo;
-+ }
-+
-+ inline const wchar_t*
-+ ctype<wchar_t>::
-+ do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
-+ {
-+#ifdef _CTYPE_S
-+ while (__lo < __hi && __istype (*__lo, __m))
-+#else
-+ while (__lo < __hi && (__libc_ctype_ [*__lo + 1] & __m))
-+#endif
-+ ++__lo;
-+ return __lo;
-+ }
-+#endif
-+
-+_GLIBCXX_END_NAMESPACE_VERSION
-+} // namespace
---- /dev/null
-+++ libstdc++-v3/config/os/bsd/dragonfly/os_defines.h
-@@ -0,0 +1,41 @@
-+// Specific definitions for BSD -*- C++ -*-
-+
-+// Copyright (C) 2000, 2009, 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/>.
-+
-+
-+#ifndef _GLIBCXX_OS_DEFINES
-+#define _GLIBCXX_OS_DEFINES 1
-+
-+// System-specific #define, typedefs, corrections, etc, go here. This
-+// file will come before all others.
-+
-+/* FreeBSD approach, likely a mistake for DragonFly.
-+#define _GLIBCXX_USE_C99_CHECK 1
-+#define _GLIBCXX_USE_C99_DYNAMIC (!(__ISO_C_VISIBLE >= 1999))
-+#define _GLIBCXX_USE_C99_LONG_LONG_CHECK 1
-+#define _GLIBCXX_USE_C99_LONG_LONG_DYNAMIC (_GLIBCXX_USE_C99_DYNAMIC || !defined __LONG_LONG_SUPPORTED)
-+#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK 1
-+#define _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC defined _XOPEN_SOURCE
-+*/
-+
-+#endif
---- libstdc++-v3/config/os/bsd/netbsd/ctype_base.h.orig
-+++ libstdc++-v3/config/os/bsd/netbsd/ctype_base.h
-@@ -30,7 +30,7 @@
- // Full details can be found from the CVS files at:
- // anoncvs@anoncvs.netbsd.org:/cvsroot/basesrc/include/ctype.h
- // See www.netbsd.org for details of access.
--
-+
- namespace std _GLIBCXX_VISIBILITY(default)
- {
- _GLIBCXX_BEGIN_NAMESPACE_VERSION
-@@ -43,21 +43,22 @@
-
- // 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 char mask;
-
--#ifndef _CTYPE_U
-- 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;
--#else
-+#if defined(_CTYPE_BL)
-+ typedef unsigned short mask;
-+ static const mask upper = _CTYPE_U;
-+ static const mask lower = _CTYPE_L;
-+ static const mask alpha = _CTYPE_A;
-+ static const mask digit = _CTYPE_D;
-+ static const mask xdigit = _CTYPE_X;
-+ static const mask space = _CTYPE_S;
-+ static const mask print = _CTYPE_R;
-+ static const mask graph = _CTYPE_G;
-+ static const mask cntrl = _CTYPE_C;
-+ static const mask punct = _CTYPE_P;
-+ static const mask alnum = _CTYPE_A | _CTYPE_D;
-+#elif defined(_CTYPE_U)
-+ typedef unsigned char mask;
- static const mask upper = _CTYPE_U;
- static const mask lower = _CTYPE_L;
- static const mask alpha = _CTYPE_U | _CTYPE_L;
-@@ -69,6 +70,19 @@
- static const mask cntrl = _CTYPE_C;
- static const mask punct = _CTYPE_P;
- static const mask alnum = _CTYPE_U | _CTYPE_L | _CTYPE_N;
-+#else
-+ typedef unsigned 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;
- #endif
- };
-
---- libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc.orig
-+++ libstdc++-v3/config/os/bsd/netbsd/ctype_configure_char.cc
-@@ -38,11 +38,17 @@
-
- // Information as gleaned from /usr/include/ctype.h
-
-+#ifndef _CTYPE_BL
- extern "C" const u_int8_t _C_ctype_[];
-+#endif
-
- const ctype_base::mask*
- ctype<char>::classic_table() throw()
-+#ifdef _CTYPE_BL
-+ { return _C_ctype_tab_ + 1; }
-+#else
- { return _C_ctype_ + 1; }
-+#endif
-
- ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
- size_t __refs)
-@@ -69,14 +75,14 @@
-
- char
- ctype<char>::do_toupper(char __c) const
-- { return ::toupper((int) __c); }
-+ { return ::toupper((int)(unsigned char) __c); }
-
- const char*
- ctype<char>::do_toupper(char* __low, const char* __high) const
- {
- while (__low < __high)
- {
-- *__low = ::toupper((int) *__low);
-+ *__low = ::toupper((int)(unsigned char) *__low);
- ++__low;
- }
- return __high;
-@@ -84,14 +90,14 @@
-
- char
- ctype<char>::do_tolower(char __c) const
-- { return ::tolower((int) __c); }
-+ { return ::tolower((int)(unsigned char) __c); }
-
- const char*
- ctype<char>::do_tolower(char* __low, const char* __high) const
- {
- while (__low < __high)
- {
-- *__low = ::tolower((int) *__low);
-+ *__low = ::tolower((int)(unsigned char) *__low);
- ++__low;
- }
- return __high;
---- libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h.orig
-+++ libstdc++-v3/config/os/bsd/netbsd/ctype_inline.h
-@@ -48,7 +48,7 @@
- is(const char* __low, const char* __high, mask* __vec) const
- {
- while (__low < __high)
-- *__vec++ = _M_table[*__low++];
-+ *__vec++ = _M_table[(unsigned char)*__low++];
- return __high;
- }
-