/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/atomic_word.h |
---|
0,0 → 1,47 |
// Low-level type for atomic operations -*- C++ -*- |
// Copyright (C) 2004-2015 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 atomic_word.h |
* This file is a GNU extension to the Standard C++ Library. |
*/ |
#ifndef _GLIBCXX_ATOMIC_WORD_H |
#define _GLIBCXX_ATOMIC_WORD_H 1 |
typedef int _Atomic_word; |
// Define these two macros using the appropriate memory barrier for the target. |
// The commented out versions below are the defaults. |
// See ia64/atomic_word.h for an alternative approach. |
// This one prevents loads from being hoisted across the barrier; |
// in other words, this is a Load-Load acquire barrier. |
// This is necessary iff TARGET_RELAXED_ORDERING is defined in tm.h. |
// #define _GLIBCXX_READ_MEM_BARRIER __asm __volatile ("":::"memory") |
// This one prevents stores from being sunk across the barrier; in other |
// words, a Store-Store release barrier. |
// #define _GLIBCXX_WRITE_MEM_BARRIER __asm __volatile ("":::"memory") |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/basic_file.h |
---|
0,0 → 1,130 |
// Wrapper of C-language FILE struct -*- C++ -*- |
// Copyright (C) 2000-2015 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: 27.8 File-based streams |
// |
/** @file bits/basic_file.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{ios} |
*/ |
#ifndef _GLIBCXX_BASIC_FILE_STDIO_H |
#define _GLIBCXX_BASIC_FILE_STDIO_H 1 |
#pragma GCC system_header |
#include <bits/c++config.h> |
#include <bits/c++io.h> // for __c_lock and __c_file |
#include <bits/move.h> // for swap |
#include <ios> |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
// Generic declaration. |
template<typename _CharT> |
class __basic_file; |
// Specialization. |
template<> |
class __basic_file<char> |
{ |
// Underlying data source/sink. |
__c_file* _M_cfile; |
// True iff we opened _M_cfile, and thus must close it ourselves. |
bool _M_cfile_created; |
public: |
__basic_file(__c_lock* __lock = 0) throw (); |
#if __cplusplus >= 201103L |
__basic_file(__basic_file&& __rv, __c_lock* __lock = 0) noexcept |
: _M_cfile(__rv._M_cfile), _M_cfile_created(__rv._M_cfile_created) |
{ |
__rv._M_cfile = nullptr; |
__rv._M_cfile_created = false; |
} |
__basic_file& operator=(const __basic_file&) = delete; |
__basic_file& operator=(__basic_file&&) = delete; |
void |
swap(__basic_file& __f) noexcept |
{ |
std::swap(_M_cfile, __f._M_cfile); |
std::swap(_M_cfile_created, __f._M_cfile_created); |
} |
#endif |
__basic_file* |
open(const char* __name, ios_base::openmode __mode, int __prot = 0664); |
__basic_file* |
sys_open(__c_file* __file, ios_base::openmode); |
__basic_file* |
sys_open(int __fd, ios_base::openmode __mode) throw (); |
__basic_file* |
close(); |
_GLIBCXX_PURE bool |
is_open() const throw (); |
_GLIBCXX_PURE int |
fd() throw (); |
_GLIBCXX_PURE __c_file* |
file() throw (); |
~__basic_file(); |
streamsize |
xsputn(const char* __s, streamsize __n); |
streamsize |
xsputn_2(const char* __s1, streamsize __n1, |
const char* __s2, streamsize __n2); |
streamsize |
xsgetn(char* __s, streamsize __n); |
streamoff |
seekoff(streamoff __off, ios_base::seekdir __way) throw (); |
int |
sync(); |
streamsize |
showmanyc(); |
}; |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/c++allocator.h |
---|
0,0 → 1,55 |
// Base to std::allocator -*- C++ -*- |
// Copyright (C) 2004-2015 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/c++allocator.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{memory} |
*/ |
#ifndef _GLIBCXX_CXX_ALLOCATOR_H |
#define _GLIBCXX_CXX_ALLOCATOR_H 1 |
#include <ext/new_allocator.h> |
#if __cplusplus >= 201103L |
namespace std |
{ |
/** |
* @brief An alias to the base class for std::allocator. |
* @ingroup allocators |
* |
* Used to set the std::allocator base class to |
* __gnu_cxx::new_allocator. |
* |
* @tparam _Tp Type of allocated object. |
*/ |
template<typename _Tp> |
using __allocator_base = __gnu_cxx::new_allocator<_Tp>; |
} |
#else |
// Define new_allocator as the base class to std::allocator. |
# define __allocator_base __gnu_cxx::new_allocator |
#endif |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/c++config.h |
---|
0,0 → 1,1768 |
// Predefined symbols and macros -*- C++ -*- |
// Copyright (C) 1997-2015 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/c++config.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{iosfwd} |
*/ |
#ifndef _GLIBCXX_CXX_CONFIG_H |
#define _GLIBCXX_CXX_CONFIG_H 1 |
// The current version of the C++ library in compressed ISO date format. |
#define __GLIBCXX__ 20160603 |
// Macros for various attributes. |
// _GLIBCXX_PURE |
// _GLIBCXX_CONST |
// _GLIBCXX_NORETURN |
// _GLIBCXX_NOTHROW |
// _GLIBCXX_VISIBILITY |
#ifndef _GLIBCXX_PURE |
# define _GLIBCXX_PURE __attribute__ ((__pure__)) |
#endif |
#ifndef _GLIBCXX_CONST |
# define _GLIBCXX_CONST __attribute__ ((__const__)) |
#endif |
#ifndef _GLIBCXX_NORETURN |
# define _GLIBCXX_NORETURN __attribute__ ((__noreturn__)) |
#endif |
// See below for C++ |
#ifndef _GLIBCXX_NOTHROW |
# ifndef __cplusplus |
# define _GLIBCXX_NOTHROW __attribute__((__nothrow__)) |
# endif |
#endif |
// Macros for visibility attributes. |
// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY |
// _GLIBCXX_VISIBILITY |
# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 0 |
#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY |
# define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V))) |
#else |
// If this is not supplied by the OS-specific or CPU-specific |
// headers included below, it will be defined to an empty default. |
# define _GLIBCXX_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY(V) |
#endif |
// Macros for deprecated attributes. |
// _GLIBCXX_USE_DEPRECATED |
// _GLIBCXX_DEPRECATED |
#ifndef _GLIBCXX_USE_DEPRECATED |
# define _GLIBCXX_USE_DEPRECATED 1 |
#endif |
#if defined(__DEPRECATED) && (__cplusplus >= 201103L) |
# define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__)) |
#else |
# define _GLIBCXX_DEPRECATED |
#endif |
// Macros for ABI tag attributes. |
#ifndef _GLIBCXX_ABI_TAG_CXX11 |
# define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11"))) |
#endif |
#if __cplusplus |
// Macro for constexpr, to support in mixed 03/0x mode. |
#ifndef _GLIBCXX_CONSTEXPR |
# if __cplusplus >= 201103L |
# define _GLIBCXX_CONSTEXPR constexpr |
# define _GLIBCXX_USE_CONSTEXPR constexpr |
# else |
# define _GLIBCXX_CONSTEXPR |
# define _GLIBCXX_USE_CONSTEXPR const |
# endif |
#endif |
#ifndef _GLIBCXX14_CONSTEXPR |
# if __cplusplus >= 201402L |
# define _GLIBCXX14_CONSTEXPR constexpr |
# else |
# define _GLIBCXX14_CONSTEXPR |
# endif |
#endif |
// Macro for noexcept, to support in mixed 03/0x mode. |
#ifndef _GLIBCXX_NOEXCEPT |
# if __cplusplus >= 201103L |
# define _GLIBCXX_NOEXCEPT noexcept |
# define _GLIBCXX_USE_NOEXCEPT noexcept |
# define _GLIBCXX_THROW(_EXC) |
# else |
# define _GLIBCXX_NOEXCEPT |
# define _GLIBCXX_USE_NOEXCEPT throw() |
# define _GLIBCXX_THROW(_EXC) throw(_EXC) |
# endif |
#endif |
#ifndef _GLIBCXX_NOTHROW |
# define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT |
#endif |
#ifndef _GLIBCXX_THROW_OR_ABORT |
# if __cpp_exceptions |
# define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) |
# else |
# define _GLIBCXX_THROW_OR_ABORT(_EXC) (__builtin_abort()) |
# endif |
#endif |
// Macro for extern template, ie controling template linkage via use |
// of extern keyword on template declaration. As documented in the g++ |
// manual, it inhibits all implicit instantiations and is used |
// throughout the library to avoid multiple weak definitions for |
// required types that are already explicitly instantiated in the |
// library binary. This substantially reduces the binary size of |
// resulting executables. |
// Special case: _GLIBCXX_EXTERN_TEMPLATE == -1 disallows extern |
// templates only in basic_string, thus activating its debug-mode |
// checks even at -O0. |
# define _GLIBCXX_EXTERN_TEMPLATE 1 |
/* |
Outline of libstdc++ namespaces. |
namespace std |
{ |
namespace __debug { } |
namespace __parallel { } |
namespace __profile { } |
namespace __cxx1998 { } |
namespace __detail { } |
namespace rel_ops { } |
namespace tr1 |
{ |
namespace placeholders { } |
namespace regex_constants { } |
namespace __detail { } |
} |
namespace tr2 { } |
namespace decimal { } |
namespace chrono { } |
namespace placeholders { } |
namespace regex_constants { } |
namespace this_thread { } |
namespace experimental { } |
} |
namespace abi { } |
namespace __gnu_cxx |
{ |
namespace __detail { } |
} |
For full details see: |
http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/namespaces.html |
*/ |
namespace std |
{ |
typedef __SIZE_TYPE__ size_t; |
typedef __PTRDIFF_TYPE__ ptrdiff_t; |
#if __cplusplus >= 201103L |
typedef decltype(nullptr) nullptr_t; |
#endif |
} |
# define _GLIBCXX_USE_DUAL_ABI 1 |
#if ! _GLIBCXX_USE_DUAL_ABI |
// Ignore any pre-defined value of _GLIBCXX_USE_CXX11_ABI |
# undef _GLIBCXX_USE_CXX11_ABI |
#endif |
#ifndef _GLIBCXX_USE_CXX11_ABI |
# define _GLIBCXX_USE_CXX11_ABI 1 |
#endif |
#if _GLIBCXX_USE_CXX11_ABI |
namespace std |
{ |
inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } |
} |
namespace __gnu_cxx |
{ |
inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } |
} |
# define _GLIBCXX_NAMESPACE_CXX11 __cxx11:: |
# define _GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 { |
# define _GLIBCXX_END_NAMESPACE_CXX11 } |
# define _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11 |
#else |
# define _GLIBCXX_NAMESPACE_CXX11 |
# define _GLIBCXX_BEGIN_NAMESPACE_CXX11 |
# define _GLIBCXX_END_NAMESPACE_CXX11 |
# define _GLIBCXX_DEFAULT_ABI_TAG |
#endif |
// Defined if inline namespaces are used for versioning. |
# define _GLIBCXX_INLINE_VERSION 0 |
// Inline namespace for symbol versioning. |
#if _GLIBCXX_INLINE_VERSION |
namespace std |
{ |
inline namespace __7 { } |
namespace rel_ops { inline namespace __7 { } } |
namespace tr1 |
{ |
inline namespace __7 { } |
namespace placeholders { inline namespace __7 { } } |
namespace regex_constants { inline namespace __7 { } } |
namespace __detail { inline namespace __7 { } } |
} |
namespace tr2 |
{ inline namespace __7 { } } |
namespace decimal { inline namespace __7 { } } |
namespace chrono { inline namespace __7 { } } |
namespace placeholders { inline namespace __7 { } } |
namespace regex_constants { inline namespace __7 { } } |
namespace this_thread { inline namespace __7 { } } |
namespace experimental { inline namespace __7 { } } |
namespace __detail { inline namespace __7 { } } |
} |
namespace __gnu_cxx |
{ |
inline namespace __7 { } |
namespace __detail { inline namespace __7 { } } |
} |
# define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __7 { |
# define _GLIBCXX_END_NAMESPACE_VERSION } |
#else |
# define _GLIBCXX_BEGIN_NAMESPACE_VERSION |
# define _GLIBCXX_END_NAMESPACE_VERSION |
#endif |
// Inline namespaces for special modes: debug, parallel, profile. |
#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL) \ |
|| defined(_GLIBCXX_PROFILE) |
namespace std |
{ |
// Non-inline namespace for components replaced by alternates in active mode. |
namespace __cxx1998 |
{ |
# if _GLIBCXX_INLINE_VERSION |
inline namespace __7 { } |
# endif |
# if _GLIBCXX_USE_CXX11_ABI |
inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { } |
# endif |
} |
// Inline namespace for debug mode. |
# ifdef _GLIBCXX_DEBUG |
inline namespace __debug { } |
# endif |
// Inline namespaces for parallel mode. |
# ifdef _GLIBCXX_PARALLEL |
inline namespace __parallel { } |
# endif |
// Inline namespaces for profile mode |
# ifdef _GLIBCXX_PROFILE |
inline namespace __profile { } |
# endif |
} |
// Check for invalid usage and unsupported mixed-mode use. |
# if defined(_GLIBCXX_DEBUG) && defined(_GLIBCXX_PARALLEL) |
# error illegal use of multiple inlined namespaces |
# endif |
# if defined(_GLIBCXX_PROFILE) && defined(_GLIBCXX_DEBUG) |
# error illegal use of multiple inlined namespaces |
# endif |
# if defined(_GLIBCXX_PROFILE) && defined(_GLIBCXX_PARALLEL) |
# error illegal use of multiple inlined namespaces |
# endif |
// Check for invalid use due to lack for weak symbols. |
# if __NO_INLINE__ && !__GXX_WEAK__ |
# warning currently using inlined namespace mode which may fail \ |
without inlining due to lack of weak symbols |
# endif |
#endif |
// Macros for namespace scope. Either namespace std:: or the name |
// of some nested namespace within it corresponding to the active mode. |
// _GLIBCXX_STD_A |
// _GLIBCXX_STD_C |
// |
// Macros for opening/closing conditional namespaces. |
// _GLIBCXX_BEGIN_NAMESPACE_ALGO |
// _GLIBCXX_END_NAMESPACE_ALGO |
// _GLIBCXX_BEGIN_NAMESPACE_CONTAINER |
// _GLIBCXX_END_NAMESPACE_CONTAINER |
#if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PROFILE) |
# define _GLIBCXX_STD_C __cxx1998 |
# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER \ |
namespace _GLIBCXX_STD_C { _GLIBCXX_BEGIN_NAMESPACE_VERSION |
# define _GLIBCXX_END_NAMESPACE_CONTAINER \ |
_GLIBCXX_END_NAMESPACE_VERSION } |
# undef _GLIBCXX_EXTERN_TEMPLATE |
# define _GLIBCXX_EXTERN_TEMPLATE -1 |
#endif |
#ifdef _GLIBCXX_PARALLEL |
# define _GLIBCXX_STD_A __cxx1998 |
# define _GLIBCXX_BEGIN_NAMESPACE_ALGO \ |
namespace _GLIBCXX_STD_A { _GLIBCXX_BEGIN_NAMESPACE_VERSION |
# define _GLIBCXX_END_NAMESPACE_ALGO \ |
_GLIBCXX_END_NAMESPACE_VERSION } |
#endif |
#ifndef _GLIBCXX_STD_A |
# define _GLIBCXX_STD_A std |
#endif |
#ifndef _GLIBCXX_STD_C |
# define _GLIBCXX_STD_C std |
#endif |
#ifndef _GLIBCXX_BEGIN_NAMESPACE_ALGO |
# define _GLIBCXX_BEGIN_NAMESPACE_ALGO |
#endif |
#ifndef _GLIBCXX_END_NAMESPACE_ALGO |
# define _GLIBCXX_END_NAMESPACE_ALGO |
#endif |
#ifndef _GLIBCXX_BEGIN_NAMESPACE_CONTAINER |
# define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER |
#endif |
#ifndef _GLIBCXX_END_NAMESPACE_CONTAINER |
# define _GLIBCXX_END_NAMESPACE_CONTAINER |
#endif |
// GLIBCXX_ABI Deprecated |
// Define if compatibility should be provided for -mlong-double-64. |
#undef _GLIBCXX_LONG_DOUBLE_COMPAT |
// Inline namespace for long double 128 mode. |
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ |
namespace std |
{ |
inline namespace __gnu_cxx_ldbl128 { } |
} |
# define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ldbl128:: |
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ldbl128 { |
# define _GLIBCXX_END_NAMESPACE_LDBL } |
#else |
# define _GLIBCXX_NAMESPACE_LDBL |
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL |
# define _GLIBCXX_END_NAMESPACE_LDBL |
#endif |
#if _GLIBCXX_USE_CXX11_ABI |
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11 |
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11 |
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11 |
#else |
# define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_LDBL |
# define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_LDBL |
# define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL |
#endif |
// Assert. |
#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL) |
# define __glibcxx_assert(_Condition) |
#else |
namespace std |
{ |
// Avoid the use of assert, because we're trying to keep the <cassert> |
// include out of the mix. |
inline void |
__replacement_assert(const char* __file, int __line, |
const char* __function, const char* __condition) |
{ |
__builtin_printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line, |
__function, __condition); |
__builtin_abort(); |
} |
} |
#define __glibcxx_assert(_Condition) \ |
do \ |
{ \ |
if (! (_Condition)) \ |
std::__replacement_assert(__FILE__, __LINE__, __PRETTY_FUNCTION__, \ |
#_Condition); \ |
} while (false) |
#endif |
// Macros for race detectors. |
// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) and |
// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) should be used to explain |
// atomic (lock-free) synchronization to race detectors: |
// the race detector will infer a happens-before arc from the former to the |
// latter when they share the same argument pointer. |
// |
// The most frequent use case for these macros (and the only case in the |
// current implementation of the library) is atomic reference counting: |
// void _M_remove_reference() |
// { |
// _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(&this->_M_refcount); |
// if (__gnu_cxx::__exchange_and_add_dispatch(&this->_M_refcount, -1) <= 0) |
// { |
// _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(&this->_M_refcount); |
// _M_destroy(__a); |
// } |
// } |
// The annotations in this example tell the race detector that all memory |
// accesses occurred when the refcount was positive do not race with |
// memory accesses which occurred after the refcount became zero. |
#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE |
# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) |
#endif |
#ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER |
# define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) |
#endif |
// Macros for C linkage: define extern "C" linkage only when using C++. |
# define _GLIBCXX_BEGIN_EXTERN_C extern "C" { |
# define _GLIBCXX_END_EXTERN_C } |
#else // !__cplusplus |
# define _GLIBCXX_BEGIN_EXTERN_C |
# define _GLIBCXX_END_EXTERN_C |
#endif |
// First includes. |
// Pick up any OS-specific definitions. |
#include <bits/os_defines.h> |
// Pick up any CPU-specific definitions. |
#include <bits/cpu_defines.h> |
// If platform uses neither visibility nor psuedo-visibility, |
// specify empty default for namespace annotation macros. |
#ifndef _GLIBCXX_PSEUDO_VISIBILITY |
# define _GLIBCXX_PSEUDO_VISIBILITY(V) |
#endif |
// Certain function definitions that are meant to be overridable from |
// user code are decorated with this macro. For some targets, this |
// macro causes these definitions to be weak. |
#ifndef _GLIBCXX_WEAK_DEFINITION |
# define _GLIBCXX_WEAK_DEFINITION |
#endif |
// The remainder of the prewritten config is automatic; all the |
// user hooks are listed above. |
// Create a boolean flag to be used to determine if --fast-math is set. |
#ifdef __FAST_MATH__ |
# define _GLIBCXX_FAST_MATH 1 |
#else |
# define _GLIBCXX_FAST_MATH 0 |
#endif |
// This marks string literals in header files to be extracted for eventual |
// translation. It is primarily used for messages in thrown exceptions; see |
// src/functexcept.cc. We use __N because the more traditional _N is used |
// for something else under certain OSes (see BADNAMES). |
#define __N(msgid) (msgid) |
// For example, <windows.h> is known to #define min and max as macros... |
#undef min |
#undef max |
// End of prewritten config; the settings discovered at configure time follow. |
/* config.h. Generated from config.h.in by configure. */ |
/* config.h.in. Generated from configure.ac by autoheader. */ |
/* Define to 1 if you have the `acosf' function. */ |
#define _GLIBCXX_HAVE_ACOSF 1 |
/* Define to 1 if you have the `acosl' function. */ |
#define _GLIBCXX_HAVE_ACOSL 1 |
/* Define to 1 if you have the `asinf' function. */ |
#define _GLIBCXX_HAVE_ASINF 1 |
/* Define to 1 if you have the `asinl' function. */ |
#define _GLIBCXX_HAVE_ASINL 1 |
/* Define to 1 if the target assembler supports .symver directive. */ |
/* #undef _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE */ |
/* Define to 1 if you have the `atan2f' function. */ |
#define _GLIBCXX_HAVE_ATAN2F 1 |
/* Define to 1 if you have the `atan2l' function. */ |
#define _GLIBCXX_HAVE_ATAN2L 1 |
/* Define to 1 if you have the `atanf' function. */ |
#define _GLIBCXX_HAVE_ATANF 1 |
/* Define to 1 if you have the `atanl' function. */ |
#define _GLIBCXX_HAVE_ATANL 1 |
/* Define to 1 if you have the `at_quick_exit' function. */ |
/* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */ |
/* Define to 1 if the target assembler supports thread-local storage. */ |
/* #undef _GLIBCXX_HAVE_CC_TLS */ |
/* Define to 1 if you have the `ceilf' function. */ |
#define _GLIBCXX_HAVE_CEILF 1 |
/* Define to 1 if you have the `ceill' function. */ |
#define _GLIBCXX_HAVE_CEILL 1 |
/* Define to 1 if you have the <complex.h> header file. */ |
/* #undef _GLIBCXX_HAVE_COMPLEX_H */ |
/* Define to 1 if you have the `cosf' function. */ |
#define _GLIBCXX_HAVE_COSF 1 |
/* Define to 1 if you have the `coshf' function. */ |
#define _GLIBCXX_HAVE_COSHF 1 |
/* Define to 1 if you have the `coshl' function. */ |
#define _GLIBCXX_HAVE_COSHL 1 |
/* Define to 1 if you have the `cosl' function. */ |
#define _GLIBCXX_HAVE_COSL 1 |
/* Define to 1 if you have the <dirent.h> header file. */ |
#define _GLIBCXX_HAVE_DIRENT_H 1 |
/* Define to 1 if you have the <dlfcn.h> header file. */ |
/* #undef _GLIBCXX_HAVE_DLFCN_H */ |
/* Define if EBADMSG exists. */ |
/* #undef _GLIBCXX_HAVE_EBADMSG */ |
/* Define if ECANCELED exists. */ |
/* #undef _GLIBCXX_HAVE_ECANCELED */ |
/* Define if ECHILD exists. */ |
#define _GLIBCXX_HAVE_ECHILD 1 |
/* Define if EIDRM exists. */ |
/* #undef _GLIBCXX_HAVE_EIDRM */ |
/* Define to 1 if you have the <endian.h> header file. */ |
/* #undef _GLIBCXX_HAVE_ENDIAN_H */ |
/* Define if ENODATA exists. */ |
/* #undef _GLIBCXX_HAVE_ENODATA */ |
/* Define if ENOLINK exists. */ |
/* #undef _GLIBCXX_HAVE_ENOLINK */ |
/* Define if ENOSPC exists. */ |
#define _GLIBCXX_HAVE_ENOSPC 1 |
/* Define if ENOSR exists. */ |
/* #undef _GLIBCXX_HAVE_ENOSR */ |
/* Define if ENOSTR exists. */ |
/* #undef _GLIBCXX_HAVE_ENOSTR */ |
/* Define if ENOTRECOVERABLE exists. */ |
/* #undef _GLIBCXX_HAVE_ENOTRECOVERABLE */ |
/* Define if ENOTSUP exists. */ |
/* #undef _GLIBCXX_HAVE_ENOTSUP */ |
/* Define if EOVERFLOW exists. */ |
/* #undef _GLIBCXX_HAVE_EOVERFLOW */ |
/* Define if EOWNERDEAD exists. */ |
/* #undef _GLIBCXX_HAVE_EOWNERDEAD */ |
/* Define if EPERM exists. */ |
#define _GLIBCXX_HAVE_EPERM 1 |
/* Define if EPROTO exists. */ |
/* #undef _GLIBCXX_HAVE_EPROTO */ |
/* Define if ETIME exists. */ |
/* #undef _GLIBCXX_HAVE_ETIME */ |
/* Define if ETIMEDOUT exists. */ |
/* #undef _GLIBCXX_HAVE_ETIMEDOUT */ |
/* Define if ETXTBSY exists. */ |
/* #undef _GLIBCXX_HAVE_ETXTBSY */ |
/* Define if EWOULDBLOCK exists. */ |
/* #undef _GLIBCXX_HAVE_EWOULDBLOCK */ |
/* Define to 1 if you have the <execinfo.h> header file. */ |
/* #undef _GLIBCXX_HAVE_EXECINFO_H */ |
/* Define to 1 if you have the `expf' function. */ |
#define _GLIBCXX_HAVE_EXPF 1 |
/* Define to 1 if you have the `expl' function. */ |
#define _GLIBCXX_HAVE_EXPL 1 |
/* Define to 1 if you have the `fabsf' function. */ |
#define _GLIBCXX_HAVE_FABSF 1 |
/* Define to 1 if you have the `fabsl' function. */ |
#define _GLIBCXX_HAVE_FABSL 1 |
/* Define to 1 if you have the <fcntl.h> header file. */ |
#define _GLIBCXX_HAVE_FCNTL_H 1 |
/* Define to 1 if you have the <fenv.h> header file. */ |
#define _GLIBCXX_HAVE_FENV_H 1 |
/* Define to 1 if you have the `finite' function. */ |
#define _GLIBCXX_HAVE_FINITE 1 |
/* Define to 1 if you have the `finitef' function. */ |
/* #undef _GLIBCXX_HAVE_FINITEF */ |
/* Define to 1 if you have the `finitel' function. */ |
/* #undef _GLIBCXX_HAVE_FINITEL */ |
/* Define to 1 if you have the <float.h> header file. */ |
#define _GLIBCXX_HAVE_FLOAT_H 1 |
/* Define to 1 if you have the `floorf' function. */ |
#define _GLIBCXX_HAVE_FLOORF 1 |
/* Define to 1 if you have the `floorl' function. */ |
#define _GLIBCXX_HAVE_FLOORL 1 |
/* Define to 1 if you have the `fmodf' function. */ |
#define _GLIBCXX_HAVE_FMODF 1 |
/* Define to 1 if you have the `fmodl' function. */ |
#define _GLIBCXX_HAVE_FMODL 1 |
/* Define to 1 if you have the `fpclass' function. */ |
#define _GLIBCXX_HAVE_FPCLASS 1 |
/* Define to 1 if you have the <fp.h> header file. */ |
/* #undef _GLIBCXX_HAVE_FP_H */ |
/* Define to 1 if you have the `frexpf' function. */ |
#define _GLIBCXX_HAVE_FREXPF 1 |
/* Define to 1 if you have the `frexpl' function. */ |
#define _GLIBCXX_HAVE_FREXPL 1 |
/* Define if _Unwind_GetIPInfo is available. */ |
#define _GLIBCXX_HAVE_GETIPINFO 1 |
/* Define if gets is available in <stdio.h>. */ |
#define _GLIBCXX_HAVE_GETS 1 |
/* Define to 1 if you have the `hypot' function. */ |
#define _GLIBCXX_HAVE_HYPOT 1 |
/* Define to 1 if you have the `hypotf' function. */ |
#define _GLIBCXX_HAVE_HYPOTF 1 |
/* Define to 1 if you have the `hypotl' function. */ |
#define _GLIBCXX_HAVE_HYPOTL 1 |
/* Define if you have the iconv() function. */ |
#define _GLIBCXX_HAVE_ICONV 1 |
/* Define to 1 if you have the <ieeefp.h> header file. */ |
/* #undef _GLIBCXX_HAVE_IEEEFP_H */ |
/* Define if int64_t is available in <stdint.h>. */ |
#define _GLIBCXX_HAVE_INT64_T 1 |
/* Define if int64_t is a long. */ |
/* #undef _GLIBCXX_HAVE_INT64_T_LONG */ |
/* Define if int64_t is a long long. */ |
#define _GLIBCXX_HAVE_INT64_T_LONG_LONG 1 |
/* Define to 1 if you have the <inttypes.h> header file. */ |
#define _GLIBCXX_HAVE_INTTYPES_H 1 |
/* Define to 1 if you have the `isinf' function. */ |
/* #undef _GLIBCXX_HAVE_ISINF */ |
/* Define to 1 if you have the `isinff' function. */ |
/* #undef _GLIBCXX_HAVE_ISINFF */ |
/* Define to 1 if you have the `isinfl' function. */ |
/* #undef _GLIBCXX_HAVE_ISINFL */ |
/* Define to 1 if you have the `isnan' function. */ |
#define _GLIBCXX_HAVE_ISNAN 1 |
/* Define to 1 if you have the `isnanf' function. */ |
/* #undef _GLIBCXX_HAVE_ISNANF */ |
/* Define to 1 if you have the `isnanl' function. */ |
/* #undef _GLIBCXX_HAVE_ISNANL */ |
/* Defined if iswblank exists. */ |
#define _GLIBCXX_HAVE_ISWBLANK 1 |
/* Define if LC_MESSAGES is available in <locale.h>. */ |
/* #undef _GLIBCXX_HAVE_LC_MESSAGES */ |
/* Define to 1 if you have the `ldexpf' function. */ |
#define _GLIBCXX_HAVE_LDEXPF 1 |
/* Define to 1 if you have the `ldexpl' function. */ |
#define _GLIBCXX_HAVE_LDEXPL 1 |
/* Define to 1 if you have the <libintl.h> header file. */ |
/* #undef _GLIBCXX_HAVE_LIBINTL_H */ |
/* Only used in build directory testsuite_hooks.h. */ |
/* #undef _GLIBCXX_HAVE_LIMIT_AS */ |
/* Only used in build directory testsuite_hooks.h. */ |
/* #undef _GLIBCXX_HAVE_LIMIT_DATA */ |
/* Only used in build directory testsuite_hooks.h. */ |
/* #undef _GLIBCXX_HAVE_LIMIT_FSIZE */ |
/* Only used in build directory testsuite_hooks.h. */ |
/* #undef _GLIBCXX_HAVE_LIMIT_RSS */ |
/* Only used in build directory testsuite_hooks.h. */ |
/* #undef _GLIBCXX_HAVE_LIMIT_VMEM */ |
/* Define if futex syscall is available. */ |
/* #undef _GLIBCXX_HAVE_LINUX_FUTEX */ |
/* Define to 1 if you have the <locale.h> header file. */ |
#define _GLIBCXX_HAVE_LOCALE_H 1 |
/* Define to 1 if you have the `log10f' function. */ |
#define _GLIBCXX_HAVE_LOG10F 1 |
/* Define to 1 if you have the `log10l' function. */ |
#define _GLIBCXX_HAVE_LOG10L 1 |
/* Define to 1 if you have the `logf' function. */ |
#define _GLIBCXX_HAVE_LOGF 1 |
/* Define to 1 if you have the `logl' function. */ |
#define _GLIBCXX_HAVE_LOGL 1 |
/* Define to 1 if you have the <machine/endian.h> header file. */ |
/* #undef _GLIBCXX_HAVE_MACHINE_ENDIAN_H */ |
/* Define to 1 if you have the <machine/param.h> header file. */ |
/* #undef _GLIBCXX_HAVE_MACHINE_PARAM_H */ |
/* Define if mbstate_t exists in wchar.h. */ |
//#define _GLIBCXX_HAVE_MBSTATE_T 1 |
/* Define to 1 if you have the <memory.h> header file. */ |
#define _GLIBCXX_HAVE_MEMORY_H 1 |
/* Define to 1 if you have the `modf' function. */ |
#define _GLIBCXX_HAVE_MODF 1 |
/* Define to 1 if you have the `modff' function. */ |
#define _GLIBCXX_HAVE_MODFF 1 |
/* Define to 1 if you have the `modfl' function. */ |
#define _GLIBCXX_HAVE_MODFL 1 |
/* Define to 1 if you have the <nan.h> header file. */ |
/* #undef _GLIBCXX_HAVE_NAN_H */ |
/* Define if poll is available in <poll.h>. */ |
/* #undef _GLIBCXX_HAVE_POLL */ |
/* Define to 1 if you have the `powf' function. */ |
#define _GLIBCXX_HAVE_POWF 1 |
/* Define to 1 if you have the `powl' function. */ |
#define _GLIBCXX_HAVE_POWL 1 |
/* Define to 1 if you have the `qfpclass' function. */ |
/* #undef _GLIBCXX_HAVE_QFPCLASS */ |
/* Define to 1 if you have the `quick_exit' function. */ |
/* #undef _GLIBCXX_HAVE_QUICK_EXIT */ |
/* Define to 1 if you have the `setenv' function. */ |
/* #undef _GLIBCXX_HAVE_SETENV */ |
/* Define to 1 if you have the `sincos' function. */ |
/* #undef _GLIBCXX_HAVE_SINCOS */ |
/* Define to 1 if you have the `sincosf' function. */ |
/* #undef _GLIBCXX_HAVE_SINCOSF */ |
/* Define to 1 if you have the `sincosl' function. */ |
/* #undef _GLIBCXX_HAVE_SINCOSL */ |
/* Define to 1 if you have the `sinf' function. */ |
#define _GLIBCXX_HAVE_SINF 1 |
/* Define to 1 if you have the `sinhf' function. */ |
#define _GLIBCXX_HAVE_SINHF 1 |
/* Define to 1 if you have the `sinhl' function. */ |
#define _GLIBCXX_HAVE_SINHL 1 |
/* Define to 1 if you have the `sinl' function. */ |
#define _GLIBCXX_HAVE_SINL 1 |
/* Defined if sleep exists. */ |
/* #undef _GLIBCXX_HAVE_SLEEP */ |
/* Define to 1 if you have the `sqrtf' function. */ |
#define _GLIBCXX_HAVE_SQRTF 1 |
/* Define to 1 if you have the `sqrtl' function. */ |
#define _GLIBCXX_HAVE_SQRTL 1 |
/* Define to 1 if you have the <stdalign.h> header file. */ |
/* #undef _GLIBCXX_HAVE_STDALIGN_H */ |
/* Define to 1 if you have the <stdbool.h> header file. */ |
/* #undef _GLIBCXX_HAVE_STDBOOL_H */ |
/* Define to 1 if you have the <stdint.h> header file. */ |
#define _GLIBCXX_HAVE_STDINT_H 1 |
/* Define to 1 if you have the <stdlib.h> header file. */ |
#define _GLIBCXX_HAVE_STDLIB_H 1 |
/* Define if strerror_l is available in <string.h>. */ |
/* #undef _GLIBCXX_HAVE_STRERROR_L */ |
/* Define if strerror_r is available in <string.h>. */ |
/* #undef _GLIBCXX_HAVE_STRERROR_R */ |
/* Define to 1 if you have the <strings.h> header file. */ |
#define _GLIBCXX_HAVE_STRINGS_H 1 |
/* Define to 1 if you have the <string.h> header file. */ |
#define _GLIBCXX_HAVE_STRING_H 1 |
/* Define to 1 if you have the `strtof' function. */ |
#define _GLIBCXX_HAVE_STRTOF 1 |
/* Define to 1 if you have the `strtold' function. */ |
#define _GLIBCXX_HAVE_STRTOLD 1 |
/* Define to 1 if `d_type' is a member of `struct dirent'. */ |
#define _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1 |
/* Define if strxfrm_l is available in <string.h>. */ |
/* #undef _GLIBCXX_HAVE_STRXFRM_L */ |
/* Define to 1 if the target runtime linker supports binding the same symbol |
to different versions. */ |
/* #undef _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT */ |
/* Define to 1 if you have the <sys/filio.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_FILIO_H */ |
/* Define to 1 if you have the <sys/ioctl.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_IOCTL_H */ |
/* Define to 1 if you have the <sys/ipc.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_IPC_H */ |
/* Define to 1 if you have the <sys/isa_defs.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_ISA_DEFS_H */ |
/* Define to 1 if you have the <sys/machine.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_MACHINE_H */ |
/* Define to 1 if you have the <sys/param.h> header file. */ |
#define _GLIBCXX_HAVE_SYS_PARAM_H 1 |
/* Define to 1 if you have the <sys/resource.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_RESOURCE_H */ |
/* Define to 1 if you have a suitable <sys/sdt.h> header file */ |
/* #undef _GLIBCXX_HAVE_SYS_SDT_H */ |
/* Define to 1 if you have the <sys/sem.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_SEM_H */ |
/* Define to 1 if you have the <sys/statvfs.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_STATVFS_H */ |
/* Define to 1 if you have the <sys/stat.h> header file. */ |
#define _GLIBCXX_HAVE_SYS_STAT_H 1 |
/* Define to 1 if you have the <sys/sysinfo.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_SYSINFO_H */ |
/* Define to 1 if you have the <sys/time.h> header file. */ |
#define _GLIBCXX_HAVE_SYS_TIME_H 1 |
/* Define to 1 if you have the <sys/types.h> header file. */ |
#define _GLIBCXX_HAVE_SYS_TYPES_H 1 |
/* Define to 1 if you have the <sys/uio.h> header file. */ |
/* #undef _GLIBCXX_HAVE_SYS_UIO_H */ |
/* Define if S_IFREG is available in <sys/stat.h>. */ |
/* #undef _GLIBCXX_HAVE_S_IFREG */ |
/* Define if S_IFREG is available in <sys/stat.h>. */ |
#define _GLIBCXX_HAVE_S_ISREG 1 |
/* Define to 1 if you have the `tanf' function. */ |
#define _GLIBCXX_HAVE_TANF 1 |
/* Define to 1 if you have the `tanhf' function. */ |
#define _GLIBCXX_HAVE_TANHF 1 |
/* Define to 1 if you have the `tanhl' function. */ |
#define _GLIBCXX_HAVE_TANHL 1 |
/* Define to 1 if you have the `tanl' function. */ |
#define _GLIBCXX_HAVE_TANL 1 |
/* Define to 1 if you have the <tgmath.h> header file. */ |
/* #undef _GLIBCXX_HAVE_TGMATH_H */ |
/* Define to 1 if the target supports thread-local storage. */ |
#define _GLIBCXX_HAVE_TLS 1 |
/* Define to 1 if you have the <unistd.h> header file. */ |
#define _GLIBCXX_HAVE_UNISTD_H 1 |
/* Defined if usleep exists. */ |
/* #undef _GLIBCXX_HAVE_USLEEP */ |
/* Define to 1 if you have the <utime.h> header file. */ |
#define _GLIBCXX_HAVE_UTIME_H 1 |
/* Defined if vfwscanf exists. */ |
//#define _GLIBCXX_HAVE_VFWSCANF 1 |
/* Defined if vswscanf exists. */ |
//#define _GLIBCXX_HAVE_VSWSCANF 1 |
/* Defined if vwscanf exists. */ |
//#define _GLIBCXX_HAVE_VWSCANF 1 |
/* Define to 1 if you have the <wchar.h> header file. */ |
//#define _GLIBCXX_HAVE_WCHAR_H 1 |
/* Defined if wcstof exists. */ |
//#define _GLIBCXX_HAVE_WCSTOF 1 |
/* Define to 1 if you have the <wctype.h> header file. */ |
//#define _GLIBCXX_HAVE_WCTYPE_H 1 |
/* Defined if Sleep exists. */ |
#define _GLIBCXX_HAVE_WIN32_SLEEP 1 |
/* Define if writev is available in <sys/uio.h>. */ |
/* #undef _GLIBCXX_HAVE_WRITEV */ |
/* Define to 1 if you have the `_acosf' function. */ |
/* #undef _GLIBCXX_HAVE__ACOSF */ |
/* Define to 1 if you have the `_acosl' function. */ |
/* #undef _GLIBCXX_HAVE__ACOSL */ |
/* Define to 1 if you have the `_asinf' function. */ |
/* #undef _GLIBCXX_HAVE__ASINF */ |
/* Define to 1 if you have the `_asinl' function. */ |
/* #undef _GLIBCXX_HAVE__ASINL */ |
/* Define to 1 if you have the `_atan2f' function. */ |
/* #undef _GLIBCXX_HAVE__ATAN2F */ |
/* Define to 1 if you have the `_atan2l' function. */ |
/* #undef _GLIBCXX_HAVE__ATAN2L */ |
/* Define to 1 if you have the `_atanf' function. */ |
/* #undef _GLIBCXX_HAVE__ATANF */ |
/* Define to 1 if you have the `_atanl' function. */ |
/* #undef _GLIBCXX_HAVE__ATANL */ |
/* Define to 1 if you have the `_ceilf' function. */ |
/* #undef _GLIBCXX_HAVE__CEILF */ |
/* Define to 1 if you have the `_ceill' function. */ |
/* #undef _GLIBCXX_HAVE__CEILL */ |
/* Define to 1 if you have the `_cosf' function. */ |
/* #undef _GLIBCXX_HAVE__COSF */ |
/* Define to 1 if you have the `_coshf' function. */ |
/* #undef _GLIBCXX_HAVE__COSHF */ |
/* Define to 1 if you have the `_coshl' function. */ |
/* #undef _GLIBCXX_HAVE__COSHL */ |
/* Define to 1 if you have the `_cosl' function. */ |
/* #undef _GLIBCXX_HAVE__COSL */ |
/* Define to 1 if you have the `_expf' function. */ |
/* #undef _GLIBCXX_HAVE__EXPF */ |
/* Define to 1 if you have the `_expl' function. */ |
/* #undef _GLIBCXX_HAVE__EXPL */ |
/* Define to 1 if you have the `_fabsf' function. */ |
/* #undef _GLIBCXX_HAVE__FABSF */ |
/* Define to 1 if you have the `_fabsl' function. */ |
/* #undef _GLIBCXX_HAVE__FABSL */ |
/* Define to 1 if you have the `_finite' function. */ |
/* #undef _GLIBCXX_HAVE__FINITE */ |
/* Define to 1 if you have the `_finitef' function. */ |
/* #undef _GLIBCXX_HAVE__FINITEF */ |
/* Define to 1 if you have the `_finitel' function. */ |
/* #undef _GLIBCXX_HAVE__FINITEL */ |
/* Define to 1 if you have the `_floorf' function. */ |
/* #undef _GLIBCXX_HAVE__FLOORF */ |
/* Define to 1 if you have the `_floorl' function. */ |
/* #undef _GLIBCXX_HAVE__FLOORL */ |
/* Define to 1 if you have the `_fmodf' function. */ |
/* #undef _GLIBCXX_HAVE__FMODF */ |
/* Define to 1 if you have the `_fmodl' function. */ |
/* #undef _GLIBCXX_HAVE__FMODL */ |
/* Define to 1 if you have the `_fpclass' function. */ |
/* #undef _GLIBCXX_HAVE__FPCLASS */ |
/* Define to 1 if you have the `_frexpf' function. */ |
/* #undef _GLIBCXX_HAVE__FREXPF */ |
/* Define to 1 if you have the `_frexpl' function. */ |
/* #undef _GLIBCXX_HAVE__FREXPL */ |
/* Define to 1 if you have the `_hypot' function. */ |
/* #undef _GLIBCXX_HAVE__HYPOT */ |
/* Define to 1 if you have the `_hypotf' function. */ |
/* #undef _GLIBCXX_HAVE__HYPOTF */ |
/* Define to 1 if you have the `_hypotl' function. */ |
/* #undef _GLIBCXX_HAVE__HYPOTL */ |
/* Define to 1 if you have the `_isinf' function. */ |
/* #undef _GLIBCXX_HAVE__ISINF */ |
/* Define to 1 if you have the `_isinff' function. */ |
/* #undef _GLIBCXX_HAVE__ISINFF */ |
/* Define to 1 if you have the `_isinfl' function. */ |
/* #undef _GLIBCXX_HAVE__ISINFL */ |
/* Define to 1 if you have the `_isnan' function. */ |
/* #undef _GLIBCXX_HAVE__ISNAN */ |
/* Define to 1 if you have the `_isnanf' function. */ |
/* #undef _GLIBCXX_HAVE__ISNANF */ |
/* Define to 1 if you have the `_isnanl' function. */ |
/* #undef _GLIBCXX_HAVE__ISNANL */ |
/* Define to 1 if you have the `_ldexpf' function. */ |
/* #undef _GLIBCXX_HAVE__LDEXPF */ |
/* Define to 1 if you have the `_ldexpl' function. */ |
/* #undef _GLIBCXX_HAVE__LDEXPL */ |
/* Define to 1 if you have the `_log10f' function. */ |
/* #undef _GLIBCXX_HAVE__LOG10F */ |
/* Define to 1 if you have the `_log10l' function. */ |
/* #undef _GLIBCXX_HAVE__LOG10L */ |
/* Define to 1 if you have the `_logf' function. */ |
/* #undef _GLIBCXX_HAVE__LOGF */ |
/* Define to 1 if you have the `_logl' function. */ |
/* #undef _GLIBCXX_HAVE__LOGL */ |
/* Define to 1 if you have the `_modf' function. */ |
/* #undef _GLIBCXX_HAVE__MODF */ |
/* Define to 1 if you have the `_modff' function. */ |
/* #undef _GLIBCXX_HAVE__MODFF */ |
/* Define to 1 if you have the `_modfl' function. */ |
/* #undef _GLIBCXX_HAVE__MODFL */ |
/* Define to 1 if you have the `_powf' function. */ |
/* #undef _GLIBCXX_HAVE__POWF */ |
/* Define to 1 if you have the `_powl' function. */ |
/* #undef _GLIBCXX_HAVE__POWL */ |
/* Define to 1 if you have the `_qfpclass' function. */ |
/* #undef _GLIBCXX_HAVE__QFPCLASS */ |
/* Define to 1 if you have the `_sincos' function. */ |
/* #undef _GLIBCXX_HAVE__SINCOS */ |
/* Define to 1 if you have the `_sincosf' function. */ |
/* #undef _GLIBCXX_HAVE__SINCOSF */ |
/* Define to 1 if you have the `_sincosl' function. */ |
/* #undef _GLIBCXX_HAVE__SINCOSL */ |
/* Define to 1 if you have the `_sinf' function. */ |
/* #undef _GLIBCXX_HAVE__SINF */ |
/* Define to 1 if you have the `_sinhf' function. */ |
/* #undef _GLIBCXX_HAVE__SINHF */ |
/* Define to 1 if you have the `_sinhl' function. */ |
/* #undef _GLIBCXX_HAVE__SINHL */ |
/* Define to 1 if you have the `_sinl' function. */ |
/* #undef _GLIBCXX_HAVE__SINL */ |
/* Define to 1 if you have the `_sqrtf' function. */ |
/* #undef _GLIBCXX_HAVE__SQRTF */ |
/* Define to 1 if you have the `_sqrtl' function. */ |
/* #undef _GLIBCXX_HAVE__SQRTL */ |
/* Define to 1 if you have the `_tanf' function. */ |
/* #undef _GLIBCXX_HAVE__TANF */ |
/* Define to 1 if you have the `_tanhf' function. */ |
/* #undef _GLIBCXX_HAVE__TANHF */ |
/* Define to 1 if you have the `_tanhl' function. */ |
/* #undef _GLIBCXX_HAVE__TANHL */ |
/* Define to 1 if you have the `_tanl' function. */ |
/* #undef _GLIBCXX_HAVE__TANL */ |
/* Define to 1 if you have the `__cxa_thread_atexit_impl' function. */ |
/* #undef _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL */ |
/* Define as const if the declaration of iconv() needs const. */ |
#define _GLIBCXX_ICONV_CONST |
/* Define to the sub-directory in which libtool stores uninstalled libraries. |
*/ |
#define LT_OBJDIR ".libs/" |
/* Name of package */ |
/* #undef _GLIBCXX_PACKAGE */ |
/* Define to the address where bug reports for this package should be sent. */ |
#define _GLIBCXX_PACKAGE_BUGREPORT "" |
/* Define to the full name of this package. */ |
#define _GLIBCXX_PACKAGE_NAME "package-unused" |
/* Define to the full name and version of this package. */ |
#define _GLIBCXX_PACKAGE_STRING "package-unused version-unused" |
/* Define to the one symbol short name of this package. */ |
#define _GLIBCXX_PACKAGE_TARNAME "libstdc++" |
/* Define to the home page for this package. */ |
#define _GLIBCXX_PACKAGE_URL "" |
/* Define to the version of this package. */ |
#define _GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused" |
/* The size of `char', as computed by sizeof. */ |
/* #undef SIZEOF_CHAR */ |
/* The size of `int', as computed by sizeof. */ |
/* #undef SIZEOF_INT */ |
/* The size of `long', as computed by sizeof. */ |
/* #undef SIZEOF_LONG */ |
/* The size of `short', as computed by sizeof. */ |
/* #undef SIZEOF_SHORT */ |
/* The size of `void *', as computed by sizeof. */ |
/* #undef SIZEOF_VOID_P */ |
/* Define to 1 if you have the ANSI C header files. */ |
#define STDC_HEADERS 1 |
/* Version number of package */ |
/* #undef _GLIBCXX_VERSION */ |
/* Define if the compiler supports C++11 atomics. */ |
#define _GLIBCXX_ATOMIC_BUILTINS 1 |
/* Define to use concept checking code from the boost libraries. */ |
/* #undef _GLIBCXX_CONCEPT_CHECKS */ |
/* Define to 1 if a fully dynamic basic_string is wanted, 0 to disable, |
undefined for platform defaults */ |
#define _GLIBCXX_FULLY_DYNAMIC_STRING 0 |
/* Define if gthreads library is available. */ |
/* #undef _GLIBCXX_HAS_GTHREADS */ |
/* Define to 1 if a full hosted library is built, or 0 if freestanding. */ |
#define _GLIBCXX_HOSTED 1 |
/* Define if compatibility should be provided for -mlong-double-64. */ |
/* Define if ptrdiff_t is int. */ |
#define _GLIBCXX_PTRDIFF_T_IS_INT 1 |
/* Define if using setrlimit to set resource limits during "make check" */ |
/* #undef _GLIBCXX_RES_LIMITS */ |
/* Define if size_t is unsigned int. */ |
#define _GLIBCXX_SIZE_T_IS_UINT 1 |
/* Define if the compiler is configured for setjmp/longjmp exceptions. */ |
/* #undef _GLIBCXX_SJLJ_EXCEPTIONS */ |
/* Define to the value of the EOF integer constant. */ |
#define _GLIBCXX_STDIO_EOF -1 |
/* Define to the value of the SEEK_CUR integer constant. */ |
#define _GLIBCXX_STDIO_SEEK_CUR 1 |
/* Define to the value of the SEEK_END integer constant. */ |
#define _GLIBCXX_STDIO_SEEK_END 2 |
/* Define to use symbol versioning in the shared library. */ |
/* #undef _GLIBCXX_SYMVER */ |
/* Define to use darwin versioning in the shared library. */ |
/* #undef _GLIBCXX_SYMVER_DARWIN */ |
/* Define to use GNU versioning in the shared library. */ |
/* #undef _GLIBCXX_SYMVER_GNU */ |
/* Define to use GNU namespace versioning in the shared library. */ |
/* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */ |
/* Define to use Sun versioning in the shared library. */ |
/* #undef _GLIBCXX_SYMVER_SUN */ |
/* Define if C99 functions or macros from <wchar.h>, <math.h>, <complex.h>, |
<stdio.h>, and <stdlib.h> can be used or exposed. */ |
/* #undef _GLIBCXX_USE_C99 */ |
/* Define if C99 functions in <complex.h> should be used in <complex>. Using |
compiler builtins for these functions requires corresponding C99 library |
functions to be present. */ |
/* #undef _GLIBCXX_USE_C99_COMPLEX */ |
/* Define if C99 functions in <complex.h> should be used in <tr1/complex>. |
Using compiler builtins for these functions requires corresponding C99 |
library functions to be present. */ |
/* #undef _GLIBCXX_USE_C99_COMPLEX_TR1 */ |
/* Define if C99 functions in <ctype.h> should be imported in <tr1/cctype> in |
namespace std::tr1. */ |
/* #undef _GLIBCXX_USE_C99_CTYPE_TR1 */ |
/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in |
namespace std::tr1. */ |
#define _GLIBCXX_USE_C99_FENV_TR1 1 |
/* Define if C99 functions in <inttypes.h> should be imported in |
<tr1/cinttypes> in namespace std::tr1. */ |
#define _GLIBCXX_USE_C99_INTTYPES_TR1 1 |
/* Define if wchar_t C99 functions in <inttypes.h> should be imported in |
<tr1/cinttypes> in namespace std::tr1. */ |
#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1 |
/* Define if C99 functions or macros in <math.h> should be imported in <cmath> |
in namespace std. */ |
#define _GLIBCXX_USE_C99_MATH 1 |
/* Define if C99 functions or macros in <math.h> should be imported in |
<tr1/cmath> in namespace std::tr1. */ |
//#define _GLIBCXX_USE_C99_MATH_TR1 1 |
/* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in |
namespace std::tr1. */ |
//#define _GLIBCXX_USE_C99_STDINT_TR1 1 |
/* Defined if clock_gettime syscall has monotonic and realtime clock support. |
*/ |
/* #undef _GLIBCXX_USE_CLOCK_GETTIME_SYSCALL */ |
/* Defined if clock_gettime has monotonic clock support. */ |
/* #undef _GLIBCXX_USE_CLOCK_MONOTONIC */ |
/* Defined if clock_gettime has realtime clock support. */ |
/* #undef _GLIBCXX_USE_CLOCK_REALTIME */ |
/* Define if ISO/IEC TR 24733 decimal floating point types are supported on |
this host. */ |
#define _GLIBCXX_USE_DECIMAL_FLOAT 1 |
/* Define if fchmod is available in <sys/stat.h>. */ |
/* #undef _GLIBCXX_USE_FCHMOD */ |
/* Define if fchmodat is available in <sys/stat.h>. */ |
/* #undef _GLIBCXX_USE_FCHMODAT */ |
/* Define if __float128 is supported on this host. */ |
#define _GLIBCXX_USE_FLOAT128 1 |
/* Defined if gettimeofday is available. */ |
#define _GLIBCXX_USE_GETTIMEOFDAY 1 |
/* Define if get_nprocs is available in <sys/sysinfo.h>. */ |
/* #undef _GLIBCXX_USE_GET_NPROCS */ |
/* Define if __int128 is supported on this host. */ |
/* #undef _GLIBCXX_USE_INT128 */ |
/* Define if LFS support is available. */ |
/* #undef _GLIBCXX_USE_LFS */ |
/* Define if code specialized for long long should be used. */ |
#define _GLIBCXX_USE_LONG_LONG 1 |
/* Defined if nanosleep is available. */ |
/* #undef _GLIBCXX_USE_NANOSLEEP */ |
/* Define if NLS translations are to be used. */ |
/* #undef _GLIBCXX_USE_NLS */ |
/* Define if pthreads_num_processors_np is available in <pthread.h>. */ |
/* #undef _GLIBCXX_USE_PTHREADS_NUM_PROCESSORS_NP */ |
/* Define if POSIX read/write locks are available in <gthr.h>. */ |
/* #undef _GLIBCXX_USE_PTHREAD_RWLOCK_T */ |
/* Define if /dev/random and /dev/urandom are available for the random_device |
of TR1 (Chapter 5.1). */ |
/* #undef _GLIBCXX_USE_RANDOM_TR1 */ |
/* Define if usable realpath is available in <stdlib.h>. */ |
/* #undef _GLIBCXX_USE_REALPATH */ |
/* Defined if sched_yield is available. */ |
/* #undef _GLIBCXX_USE_SCHED_YIELD */ |
/* Define if _SC_NPROCESSORS_ONLN is available in <unistd.h>. */ |
/* #undef _GLIBCXX_USE_SC_NPROCESSORS_ONLN */ |
/* Define if _SC_NPROC_ONLN is available in <unistd.h>. */ |
/* #undef _GLIBCXX_USE_SC_NPROC_ONLN */ |
/* Define if sendfile is available in <sys/stat.h>. */ |
/* #undef _GLIBCXX_USE_SENDFILE */ |
/* Define if struct stat has timespec members. */ |
/* #undef _GLIBCXX_USE_ST_MTIM */ |
/* Define if sysctl(), CTL_HW and HW_NCPU are available in <sys/sysctl.h>. */ |
/* #undef _GLIBCXX_USE_SYSCTL_HW_NCPU */ |
/* Define if obsolescent tmpnam is available in <stdio.h>. */ |
#define _GLIBCXX_USE_TMPNAM 1 |
/* Define if utimensat and UTIME_OMIT are available in <sys/stat.h> and |
AT_FDCWD in <fcntl.h>. */ |
/* #undef _GLIBCXX_USE_UTIMENSAT */ |
/* Define if code specialized for wchar_t should be used. */ |
//#define _GLIBCXX_USE_WCHAR_T 1 |
/* Define to 1 if a verbose library is built, or 0 otherwise. */ |
#define _GLIBCXX_VERBOSE 1 |
/* Defined if as can handle rdrand. */ |
#define _GLIBCXX_X86_RDRAND 1 |
/* Define to 1 if mutex_timedlock is available. */ |
#define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 |
/* Define if all C++11 overloads are available in <math.h>. */ |
#if __cplusplus >= 201103L |
/* #undef __CORRECT_ISO_CPP11_MATH_H_PROTO */ |
#endif |
#if defined (_GLIBCXX_HAVE__ACOSF) && ! defined (_GLIBCXX_HAVE_ACOSF) |
# define _GLIBCXX_HAVE_ACOSF 1 |
# define acosf _acosf |
#endif |
#if defined (_GLIBCXX_HAVE__ACOSL) && ! defined (_GLIBCXX_HAVE_ACOSL) |
# define _GLIBCXX_HAVE_ACOSL 1 |
# define acosl _acosl |
#endif |
#if defined (_GLIBCXX_HAVE__ASINF) && ! defined (_GLIBCXX_HAVE_ASINF) |
# define _GLIBCXX_HAVE_ASINF 1 |
# define asinf _asinf |
#endif |
#if defined (_GLIBCXX_HAVE__ASINL) && ! defined (_GLIBCXX_HAVE_ASINL) |
# define _GLIBCXX_HAVE_ASINL 1 |
# define asinl _asinl |
#endif |
#if defined (_GLIBCXX_HAVE__ATAN2F) && ! defined (_GLIBCXX_HAVE_ATAN2F) |
# define _GLIBCXX_HAVE_ATAN2F 1 |
# define atan2f _atan2f |
#endif |
#if defined (_GLIBCXX_HAVE__ATAN2L) && ! defined (_GLIBCXX_HAVE_ATAN2L) |
# define _GLIBCXX_HAVE_ATAN2L 1 |
# define atan2l _atan2l |
#endif |
#if defined (_GLIBCXX_HAVE__ATANF) && ! defined (_GLIBCXX_HAVE_ATANF) |
# define _GLIBCXX_HAVE_ATANF 1 |
# define atanf _atanf |
#endif |
#if defined (_GLIBCXX_HAVE__ATANL) && ! defined (_GLIBCXX_HAVE_ATANL) |
# define _GLIBCXX_HAVE_ATANL 1 |
# define atanl _atanl |
#endif |
#if defined (_GLIBCXX_HAVE__CEILF) && ! defined (_GLIBCXX_HAVE_CEILF) |
# define _GLIBCXX_HAVE_CEILF 1 |
# define ceilf _ceilf |
#endif |
#if defined (_GLIBCXX_HAVE__CEILL) && ! defined (_GLIBCXX_HAVE_CEILL) |
# define _GLIBCXX_HAVE_CEILL 1 |
# define ceill _ceill |
#endif |
#if defined (_GLIBCXX_HAVE__COSF) && ! defined (_GLIBCXX_HAVE_COSF) |
# define _GLIBCXX_HAVE_COSF 1 |
# define cosf _cosf |
#endif |
#if defined (_GLIBCXX_HAVE__COSHF) && ! defined (_GLIBCXX_HAVE_COSHF) |
# define _GLIBCXX_HAVE_COSHF 1 |
# define coshf _coshf |
#endif |
#if defined (_GLIBCXX_HAVE__COSHL) && ! defined (_GLIBCXX_HAVE_COSHL) |
# define _GLIBCXX_HAVE_COSHL 1 |
# define coshl _coshl |
#endif |
#if defined (_GLIBCXX_HAVE__COSL) && ! defined (_GLIBCXX_HAVE_COSL) |
# define _GLIBCXX_HAVE_COSL 1 |
# define cosl _cosl |
#endif |
#if defined (_GLIBCXX_HAVE__EXPF) && ! defined (_GLIBCXX_HAVE_EXPF) |
# define _GLIBCXX_HAVE_EXPF 1 |
# define expf _expf |
#endif |
#if defined (_GLIBCXX_HAVE__EXPL) && ! defined (_GLIBCXX_HAVE_EXPL) |
# define _GLIBCXX_HAVE_EXPL 1 |
# define expl _expl |
#endif |
#if defined (_GLIBCXX_HAVE__FABSF) && ! defined (_GLIBCXX_HAVE_FABSF) |
# define _GLIBCXX_HAVE_FABSF 1 |
# define fabsf _fabsf |
#endif |
#if defined (_GLIBCXX_HAVE__FABSL) && ! defined (_GLIBCXX_HAVE_FABSL) |
# define _GLIBCXX_HAVE_FABSL 1 |
# define fabsl _fabsl |
#endif |
#if defined (_GLIBCXX_HAVE__FINITE) && ! defined (_GLIBCXX_HAVE_FINITE) |
# define _GLIBCXX_HAVE_FINITE 1 |
# define finite _finite |
#endif |
#if defined (_GLIBCXX_HAVE__FINITEF) && ! defined (_GLIBCXX_HAVE_FINITEF) |
# define _GLIBCXX_HAVE_FINITEF 1 |
# define finitef _finitef |
#endif |
#if defined (_GLIBCXX_HAVE__FINITEL) && ! defined (_GLIBCXX_HAVE_FINITEL) |
# define _GLIBCXX_HAVE_FINITEL 1 |
# define finitel _finitel |
#endif |
#if defined (_GLIBCXX_HAVE__FLOORF) && ! defined (_GLIBCXX_HAVE_FLOORF) |
# define _GLIBCXX_HAVE_FLOORF 1 |
# define floorf _floorf |
#endif |
#if defined (_GLIBCXX_HAVE__FLOORL) && ! defined (_GLIBCXX_HAVE_FLOORL) |
# define _GLIBCXX_HAVE_FLOORL 1 |
# define floorl _floorl |
#endif |
#if defined (_GLIBCXX_HAVE__FMODF) && ! defined (_GLIBCXX_HAVE_FMODF) |
# define _GLIBCXX_HAVE_FMODF 1 |
# define fmodf _fmodf |
#endif |
#if defined (_GLIBCXX_HAVE__FMODL) && ! defined (_GLIBCXX_HAVE_FMODL) |
# define _GLIBCXX_HAVE_FMODL 1 |
# define fmodl _fmodl |
#endif |
#if defined (_GLIBCXX_HAVE__FPCLASS) && ! defined (_GLIBCXX_HAVE_FPCLASS) |
# define _GLIBCXX_HAVE_FPCLASS 1 |
# define fpclass _fpclass |
#endif |
#if defined (_GLIBCXX_HAVE__FREXPF) && ! defined (_GLIBCXX_HAVE_FREXPF) |
# define _GLIBCXX_HAVE_FREXPF 1 |
# define frexpf _frexpf |
#endif |
#if defined (_GLIBCXX_HAVE__FREXPL) && ! defined (_GLIBCXX_HAVE_FREXPL) |
# define _GLIBCXX_HAVE_FREXPL 1 |
# define frexpl _frexpl |
#endif |
#if defined (_GLIBCXX_HAVE__HYPOT) && ! defined (_GLIBCXX_HAVE_HYPOT) |
# define _GLIBCXX_HAVE_HYPOT 1 |
# define hypot _hypot |
#endif |
#if defined (_GLIBCXX_HAVE__HYPOTF) && ! defined (_GLIBCXX_HAVE_HYPOTF) |
# define _GLIBCXX_HAVE_HYPOTF 1 |
# define hypotf _hypotf |
#endif |
#if defined (_GLIBCXX_HAVE__HYPOTL) && ! defined (_GLIBCXX_HAVE_HYPOTL) |
# define _GLIBCXX_HAVE_HYPOTL 1 |
# define hypotl _hypotl |
#endif |
#if defined (_GLIBCXX_HAVE__ISINF) && ! defined (_GLIBCXX_HAVE_ISINF) |
# define _GLIBCXX_HAVE_ISINF 1 |
# define isinf _isinf |
#endif |
#if defined (_GLIBCXX_HAVE__ISINFF) && ! defined (_GLIBCXX_HAVE_ISINFF) |
# define _GLIBCXX_HAVE_ISINFF 1 |
# define isinff _isinff |
#endif |
#if defined (_GLIBCXX_HAVE__ISINFL) && ! defined (_GLIBCXX_HAVE_ISINFL) |
# define _GLIBCXX_HAVE_ISINFL 1 |
# define isinfl _isinfl |
#endif |
#if defined (_GLIBCXX_HAVE__ISNAN) && ! defined (_GLIBCXX_HAVE_ISNAN) |
# define _GLIBCXX_HAVE_ISNAN 1 |
# define isnan _isnan |
#endif |
#if defined (_GLIBCXX_HAVE__ISNANF) && ! defined (_GLIBCXX_HAVE_ISNANF) |
# define _GLIBCXX_HAVE_ISNANF 1 |
# define isnanf _isnanf |
#endif |
#if defined (_GLIBCXX_HAVE__ISNANL) && ! defined (_GLIBCXX_HAVE_ISNANL) |
# define _GLIBCXX_HAVE_ISNANL 1 |
# define isnanl _isnanl |
#endif |
#if defined (_GLIBCXX_HAVE__LDEXPF) && ! defined (_GLIBCXX_HAVE_LDEXPF) |
# define _GLIBCXX_HAVE_LDEXPF 1 |
# define ldexpf _ldexpf |
#endif |
#if defined (_GLIBCXX_HAVE__LDEXPL) && ! defined (_GLIBCXX_HAVE_LDEXPL) |
# define _GLIBCXX_HAVE_LDEXPL 1 |
# define ldexpl _ldexpl |
#endif |
#if defined (_GLIBCXX_HAVE__LOG10F) && ! defined (_GLIBCXX_HAVE_LOG10F) |
# define _GLIBCXX_HAVE_LOG10F 1 |
# define log10f _log10f |
#endif |
#if defined (_GLIBCXX_HAVE__LOG10L) && ! defined (_GLIBCXX_HAVE_LOG10L) |
# define _GLIBCXX_HAVE_LOG10L 1 |
# define log10l _log10l |
#endif |
#if defined (_GLIBCXX_HAVE__LOGF) && ! defined (_GLIBCXX_HAVE_LOGF) |
# define _GLIBCXX_HAVE_LOGF 1 |
# define logf _logf |
#endif |
#if defined (_GLIBCXX_HAVE__LOGL) && ! defined (_GLIBCXX_HAVE_LOGL) |
# define _GLIBCXX_HAVE_LOGL 1 |
# define logl _logl |
#endif |
#if defined (_GLIBCXX_HAVE__MODF) && ! defined (_GLIBCXX_HAVE_MODF) |
# define _GLIBCXX_HAVE_MODF 1 |
# define modf _modf |
#endif |
#if defined (_GLIBCXX_HAVE__MODFF) && ! defined (_GLIBCXX_HAVE_MODFF) |
# define _GLIBCXX_HAVE_MODFF 1 |
# define modff _modff |
#endif |
#if defined (_GLIBCXX_HAVE__MODFL) && ! defined (_GLIBCXX_HAVE_MODFL) |
# define _GLIBCXX_HAVE_MODFL 1 |
# define modfl _modfl |
#endif |
#if defined (_GLIBCXX_HAVE__POWF) && ! defined (_GLIBCXX_HAVE_POWF) |
# define _GLIBCXX_HAVE_POWF 1 |
# define powf _powf |
#endif |
#if defined (_GLIBCXX_HAVE__POWL) && ! defined (_GLIBCXX_HAVE_POWL) |
# define _GLIBCXX_HAVE_POWL 1 |
# define powl _powl |
#endif |
#if defined (_GLIBCXX_HAVE__QFPCLASS) && ! defined (_GLIBCXX_HAVE_QFPCLASS) |
# define _GLIBCXX_HAVE_QFPCLASS 1 |
# define qfpclass _qfpclass |
#endif |
#if defined (_GLIBCXX_HAVE__SINCOS) && ! defined (_GLIBCXX_HAVE_SINCOS) |
# define _GLIBCXX_HAVE_SINCOS 1 |
# define sincos _sincos |
#endif |
#if defined (_GLIBCXX_HAVE__SINCOSF) && ! defined (_GLIBCXX_HAVE_SINCOSF) |
# define _GLIBCXX_HAVE_SINCOSF 1 |
# define sincosf _sincosf |
#endif |
#if defined (_GLIBCXX_HAVE__SINCOSL) && ! defined (_GLIBCXX_HAVE_SINCOSL) |
# define _GLIBCXX_HAVE_SINCOSL 1 |
# define sincosl _sincosl |
#endif |
#if defined (_GLIBCXX_HAVE__SINF) && ! defined (_GLIBCXX_HAVE_SINF) |
# define _GLIBCXX_HAVE_SINF 1 |
# define sinf _sinf |
#endif |
#if defined (_GLIBCXX_HAVE__SINHF) && ! defined (_GLIBCXX_HAVE_SINHF) |
# define _GLIBCXX_HAVE_SINHF 1 |
# define sinhf _sinhf |
#endif |
#if defined (_GLIBCXX_HAVE__SINHL) && ! defined (_GLIBCXX_HAVE_SINHL) |
# define _GLIBCXX_HAVE_SINHL 1 |
# define sinhl _sinhl |
#endif |
#if defined (_GLIBCXX_HAVE__SINL) && ! defined (_GLIBCXX_HAVE_SINL) |
# define _GLIBCXX_HAVE_SINL 1 |
# define sinl _sinl |
#endif |
#if defined (_GLIBCXX_HAVE__SQRTF) && ! defined (_GLIBCXX_HAVE_SQRTF) |
# define _GLIBCXX_HAVE_SQRTF 1 |
# define sqrtf _sqrtf |
#endif |
#if defined (_GLIBCXX_HAVE__SQRTL) && ! defined (_GLIBCXX_HAVE_SQRTL) |
# define _GLIBCXX_HAVE_SQRTL 1 |
# define sqrtl _sqrtl |
#endif |
#if defined (_GLIBCXX_HAVE__STRTOF) && ! defined (_GLIBCXX_HAVE_STRTOF) |
# define _GLIBCXX_HAVE_STRTOF 1 |
# define strtof _strtof |
#endif |
#if defined (_GLIBCXX_HAVE__STRTOLD) && ! defined (_GLIBCXX_HAVE_STRTOLD) |
# define _GLIBCXX_HAVE_STRTOLD 1 |
# define strtold _strtold |
#endif |
#if defined (_GLIBCXX_HAVE__TANF) && ! defined (_GLIBCXX_HAVE_TANF) |
# define _GLIBCXX_HAVE_TANF 1 |
# define tanf _tanf |
#endif |
#if defined (_GLIBCXX_HAVE__TANHF) && ! defined (_GLIBCXX_HAVE_TANHF) |
# define _GLIBCXX_HAVE_TANHF 1 |
# define tanhf _tanhf |
#endif |
#if defined (_GLIBCXX_HAVE__TANHL) && ! defined (_GLIBCXX_HAVE_TANHL) |
# define _GLIBCXX_HAVE_TANHL 1 |
# define tanhl _tanhl |
#endif |
#if defined (_GLIBCXX_HAVE__TANL) && ! defined (_GLIBCXX_HAVE_TANL) |
# define _GLIBCXX_HAVE_TANL 1 |
# define tanl _tanl |
#endif |
#endif // _GLIBCXX_CXX_CONFIG_H |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/c++io.h |
---|
0,0 → 1,50 |
// Underlying io library details -*- C++ -*- |
// Copyright (C) 2000-2015 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/c++io.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{ios} |
*/ |
// c_io_stdio.h - Defines for using "C" stdio.h |
#ifndef _GLIBCXX_CXX_IO_H |
#define _GLIBCXX_CXX_IO_H 1 |
#include <cstdio> |
#include <bits/gthr.h> |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
typedef __gthread_mutex_t __c_lock; |
// for basic_file.h |
typedef FILE __c_file; |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/c++locale.h |
---|
0,0 → 1,92 |
// Wrapper for underlying C-language localization -*- C++ -*- |
// Copyright (C) 2001-2015 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/c++locale.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.8 Standard locale categories. |
// |
// Written by Benjamin Kosnik <bkoz@redhat.com> |
#ifndef _GLIBCXX_CXX_LOCALE_H |
#define _GLIBCXX_CXX_LOCALE_H 1 |
#pragma GCC system_header |
#include <clocale> |
#define _GLIBCXX_NUM_CATEGORIES 0 |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
typedef int* __c_locale; |
// Convert numeric value of type double and long double to string and |
// return length of string. If vsnprintf is available use it, otherwise |
// fall back to the unsafe vsprintf which, in general, can be dangerous |
// and should be avoided. |
inline int |
__convert_from_v(const __c_locale&, char* __out, |
const int __size __attribute__((__unused__)), |
const char* __fmt, ...) |
{ |
char* __old = std::setlocale(LC_NUMERIC, 0); |
char* __sav = 0; |
if (__builtin_strcmp(__old, "C")) |
{ |
const size_t __len = __builtin_strlen(__old) + 1; |
__sav = new char[__len]; |
__builtin_memcpy(__sav, __old, __len); |
std::setlocale(LC_NUMERIC, "C"); |
} |
__builtin_va_list __args; |
__builtin_va_start(__args, __fmt); |
#ifdef _GLIBCXX_USE_C99 |
const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); |
#else |
const int __ret = __builtin_vsprintf(__out, __fmt, __args); |
#endif |
__builtin_va_end(__args); |
if (__sav) |
{ |
std::setlocale(LC_NUMERIC, __sav); |
delete [] __sav; |
} |
return __ret; |
} |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/c++locale_internal.h |
---|
0,0 → 1,25 |
// Locale internal implementation header -*- C++ -*- |
// Copyright (C) 2002-2015 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/>. |
// The generic locale code doesn't need to do anything here (yet) |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/compatibility.h |
---|
0,0 → 1,213 |
// Compatibility symbols for previous versions -*- C++ -*- |
// Copyright (C) 2005-2015 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/compatibility.h |
* This is an internal header file, included by other library sources. |
* You should not attempt to use it directly. |
*/ |
// Switch for symbol version macro. |
#ifndef _GLIBCXX_APPLY_SYMVER |
#error must define _GLIBCXX_APPLY_SYMVER before including __FILE__ |
#endif |
/* gcc-3.4.4 |
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv |
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv |
*/ |
namespace |
{ |
_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIcSt11char_traitsIcEEppEv, |
_ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv) |
#ifdef _GLIBCXX_USE_WCHAR_T |
_GLIBCXX_APPLY_SYMVER(_ZNSt21istreambuf_iteratorXXIwSt11char_traitsIwEEppEv, |
_ZNSt19istreambuf_iteratorIwSt11char_traitsIwEEppEv) |
#endif |
} // anonymous namespace |
/* gcc-4.0.0 |
_ZNSs4_Rep26_M_set_length_and_sharableEj |
_ZNSs7_M_copyEPcPKcj |
_ZNSs7_M_moveEPcPKcj |
_ZNSs9_M_assignEPcjc |
_ZNKSs11_M_disjunctEPKc |
_ZNKSs15_M_check_lengthEjjPKc |
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj |
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj |
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj |
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw |
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw |
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc |
_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv |
_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv |
_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv |
_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv |
_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv |
_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv |
_ZNSi6ignoreEi |
_ZNSi6ignoreEv |
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi |
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv |
_ZNSt11char_traitsIcE2eqERKcS2_ |
_ZNSt11char_traitsIwE2eqERKwS2_ |
*/ |
namespace |
{ |
_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIcE4eqXXERKcS2_, |
_ZNSt11char_traitsIcE2eqERKcS2_) |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcj, |
_ZNSs7_M_copyEPcPKcj) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_copyXXEPcPKcm, |
_ZNSs7_M_copyEPcPKcm) |
#endif |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcj, |
_ZNSs7_M_moveEPcPKcj) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSs9_M_moveXXEPcPKcm, |
_ZNSs7_M_moveEPcPKcm) |
#endif |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcjc, |
_ZNSs9_M_assignEPcjc) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSs11_M_assignXXEPcmc, |
_ZNSs9_M_assignEPcmc) |
#endif |
_GLIBCXX_APPLY_SYMVER(_ZNKSs13_M_disjunctXXEPKc, |
_ZNKSs11_M_disjunctEPKc) |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEjjPKc, |
_ZNKSs15_M_check_lengthEjjPKc) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNKSs17_M_check_lengthXXEmmPKc, |
_ZNKSs15_M_check_lengthEmmPKc) |
#endif |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep28_M_set_length_and_sharableXXEj, |
_ZNSs4_Rep26_M_set_length_and_sharableEj) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSs4_Rep28_M_set_length_and_sharableXXEm, |
_ZNSs4_Rep26_M_set_length_and_sharableEm) |
#endif |
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEv, _ZNSi6ignoreEv) |
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT |
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEi, _ZNSi6ignoreEi) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSi8ignoreXXEl, _ZNSi6ignoreEl) |
#endif |
_GLIBCXX_APPLY_SYMVER(_ZNKSt15basic_fstreamXXIcSt11char_traitsIcEE7is_openEv, |
_ZNKSt13basic_fstreamIcSt11char_traitsIcEE7is_openEv) |
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ifstreamXXIcSt11char_traitsIcEE7is_openEv, |
_ZNKSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv) |
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ofstreamXXIcSt11char_traitsIcEE7is_openEv, |
_ZNKSt14basic_ofstreamIcSt11char_traitsIcEE7is_openEv) |
// Support for wchar_t. |
#ifdef _GLIBCXX_USE_WCHAR_T |
_GLIBCXX_APPLY_SYMVER(_ZNSt11char_traitsIwE4eqXXERKwS2_, |
_ZNSt11char_traitsIwE2eqERKwS2_) |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwj, |
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwj) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_copyXXEPwPKwm, |
_ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKwm) |
#endif |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwj, |
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwj) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE9_M_moveXXEPwPKwm, |
_ZNSbIwSt11char_traitsIwESaIwEE7_M_moveEPwPKwm) |
#endif |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwjw, |
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE11_M_assignXXEPwmw, |
_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwmw) |
#endif |
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE13_M_disjunctXXEPKw, |
_ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw) |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEjjPKc, |
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEjjPKc) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNKSbIwSt11char_traitsIwESaIwEE17_M_check_lengthXXEmmPKc, |
_ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthEmmPKc) |
#endif |
#ifdef _GLIBCXX_SIZE_T_IS_UINT |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep28_M_set_length_and_sharableXXEj, |
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEj) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSbIwSt11char_traitsIwESaIwEE4_Rep28_M_set_length_and_sharableXXEm, |
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableEm) |
#endif |
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEv, |
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv) |
#ifdef _GLIBCXX_PTRDIFF_T_IS_INT |
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEi, |
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEi) |
#else |
_GLIBCXX_APPLY_SYMVER(_ZNSt13basic_istreamIwSt11char_traitsIwEE8ignoreXXEl, |
_ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEl) |
#endif |
_GLIBCXX_APPLY_SYMVER(_ZNKSt15basic_fstreamXXIwSt11char_traitsIwEE7is_openEv, |
_ZNKSt13basic_fstreamIwSt11char_traitsIwEE7is_openEv) |
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ifstreamXXIwSt11char_traitsIwEE7is_openEv, |
_ZNKSt14basic_ifstreamIwSt11char_traitsIwEE7is_openEv) |
_GLIBCXX_APPLY_SYMVER(_ZNKSt16basic_ofstreamXXIwSt11char_traitsIwEE7is_openEv, |
_ZNKSt14basic_ofstreamIwSt11char_traitsIwEE7is_openEv) |
#endif |
} // anonymous namespace |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/cpu_defines.h |
---|
0,0 → 1,33 |
// Specific definitions for generic platforms -*- C++ -*- |
// Copyright (C) 2005-2015 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/cpu_defines.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{iosfwd} |
*/ |
#ifndef _GLIBCXX_CPU_DEFINES |
#define _GLIBCXX_CPU_DEFINES 1 |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/ctype_base.h |
---|
0,0 → 1,67 |
// Locale support -*- C++ -*- |
// Copyright (C) 1997-2015 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 |
// |
// We don't use the C-locale masks defined in mingw/include/ctype.h |
// because those masks do not conform to the requirements of 22.2.1. |
// In particular, a separate 'print' bitmask does not exist (isprint(c) |
// relies on a combination of flags) and the '_ALPHA' mask is also a |
// combination of simple bitmasks. Thus, we define libstdc++-specific |
// masks here, based on the generic masks, and the corresponding |
// classic_table in ctype_noninline.h. |
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. |
typedef unsigned short mask; |
static const mask upper = 1 << 0; |
static const mask lower = 1 << 1; |
static const mask alpha = 1 << 2; |
static const mask digit = 1 << 3; |
static const mask xdigit = 1 << 4; |
static const mask space = 1 << 5; |
static const mask print = 1 << 6; |
static const mask graph = (1 << 2) | (1 << 3) | (1 << 9); // alnum|punct |
static const mask cntrl = 1 << 8; |
static const mask punct = 1 << 9; |
static const mask alnum = (1 << 2) | (1 << 3); // alpha|digit |
#if __cplusplus >= 201103L |
static const mask blank = 1 << 10; |
#endif |
}; |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/ctype_inline.h |
---|
0,0 → 1,75 |
// Locale support -*- C++ -*- |
// Copyright (C) 2000-2015 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 |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/cxxabi_tweaks.h |
---|
0,0 → 1,59 |
// Control various target specific ABI tweaks. Generic version. |
// Copyright (C) 2004-2015 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/cxxabi_tweaks.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{cxxabi.h} |
*/ |
#ifndef _CXXABI_TWEAKS_H |
#define _CXXABI_TWEAKS_H 1 |
#ifdef __cplusplus |
namespace __cxxabiv1 |
{ |
extern "C" |
{ |
#endif |
// The generic ABI uses the first byte of a 64-bit guard variable. |
#define _GLIBCXX_GUARD_TEST(x) (*(char *) (x) != 0) |
#define _GLIBCXX_GUARD_SET(x) *(char *) (x) = 1 |
#define _GLIBCXX_GUARD_BIT __guard_test_bit (0, 1) |
#define _GLIBCXX_GUARD_PENDING_BIT __guard_test_bit (1, 1) |
#define _GLIBCXX_GUARD_WAITING_BIT __guard_test_bit (2, 1) |
__extension__ typedef int __guard __attribute__((mode (__DI__))); |
// __cxa_vec_ctor has void return type. |
typedef void __cxa_vec_ctor_return_type; |
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return |
// Constructors and destructors do not return a value. |
typedef void __cxa_cdtor_return_type; |
#ifdef __cplusplus |
} |
} // namespace __cxxabiv1 |
#endif |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/error_constants.h |
---|
0,0 → 1,142 |
// Specific definitions for mingw32 platform -*- C++ -*- |
// Copyright (C) 2007-2015 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/error_constants.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{system_error} |
*/ |
#ifndef _GLIBCXX_ERROR_CONSTANTS |
# define _GLIBCXX_ERROR_CONSTANTS |
#include <bits/c++config.h> |
#include <cerrno> |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
// Most of the commented-out error codes are socket-related and could be |
// replaced by Winsock WSA-prefixed equivalents. |
enum class errc |
{ |
// address_family_not_supported = EAFNOSUPPORT, |
// address_in_use = EADDRINUSE, |
// address_not_available = EADDRNOTAVAIL, |
// already_connected = EISCONN, |
argument_list_too_long = E2BIG, |
argument_out_of_domain = EDOM, |
bad_address = EFAULT, |
bad_file_descriptor = EBADF, |
// bad_message = EBADMSG, |
broken_pipe = EPIPE, |
// connection_aborted = ECONNABORTED, |
// connection_already_in_progress = EALREADY, |
// connection_refused = ECONNREFUSED, |
// connection_reset = ECONNRESET, |
// cross_device_link = EXDEV, |
// destination_address_required = EDESTADDRREQ, |
device_or_resource_busy = EBUSY, |
directory_not_empty = ENOTEMPTY, |
executable_format_error = ENOEXEC, |
file_exists = EEXIST, |
file_too_large = EFBIG, |
filename_too_long = ENAMETOOLONG, |
function_not_supported = ENOSYS, |
// host_unreachable = EHOSTUNREACH, |
// identifier_removed = EIDRM, |
illegal_byte_sequence = EILSEQ, |
inappropriate_io_control_operation = ENOTTY, |
interrupted = EINTR, |
invalid_argument = EINVAL, |
invalid_seek = ESPIPE, |
io_error = EIO, |
is_a_directory = EISDIR, |
// message_size = EMSGSIZE, |
// network_down = ENETDOWN, |
// network_reset = ENETRESET, |
// network_unreachable = ENETUNREACH, |
// no_buffer_space = ENOBUFS, |
#ifdef _GLIBCXX_HAVE_ECHILD |
no_child_process = ECHILD, |
#endif |
// no_link = ENOLINK, |
no_lock_available = ENOLCK, |
// no_message_available = ENODATA, |
// no_message = ENOMSG, |
// no_protocol_option = ENOPROTOOPT, |
#ifdef _GLIBCXX_HAVE_ENOSPC |
no_space_on_device = ENOSPC, |
#endif |
// no_stream_resources = ENOSR, |
no_such_device_or_address = ENXIO, |
no_such_device = ENODEV, |
no_such_file_or_directory = ENOENT, |
no_such_process = ESRCH, |
not_a_directory = ENOTDIR, |
// not_a_socket = ENOTSOCK, |
// not_a_stream = ENOSTR, |
// not_connected = ENOTCONN, |
not_enough_memory = ENOMEM, |
#ifdef _GLIBCXX_HAVE_ENOTSUP |
not_supported = ENOTSUP, |
#endif |
// operation_canceled = ECANCELED, |
// operation_in_progress = EINPROGRESS, |
#ifdef _GLIBCXX_HAVE_EPERM |
operation_not_permitted = EPERM, |
#endif |
// operation_not_supported = EOPNOTSUPP, |
#ifdef _GLIBCXX_HAVE_EWOULDBLOCK |
operation_would_block = EWOULDBLOCK, |
#endif |
// owner_dead = EOWNERDEAD, |
permission_denied = EACCES, |
// protocol_error = EPROTO, |
// protocol_not_supported = EPROTONOSUPPORT, |
read_only_file_system = EROFS, |
resource_deadlock_would_occur = EDEADLK, |
resource_unavailable_try_again = EAGAIN, |
result_out_of_range = ERANGE, |
// state_not_recoverable = ENOTRECOVERABLE, |
// stream_timeout = ETIME, |
// text_file_busy = ETXTBSY, |
#ifdef _GLIBCXX_HAVE_ETIMEDOUT |
timed_out = ETIMEDOUT, |
#endif |
too_many_files_open_in_system = ENFILE, |
too_many_files_open = EMFILE, |
too_many_links = EMLINK |
// too_many_symbolic_link_levels = ELOOP, |
#ifdef _GLIBCXX_HAVE_EOVERFLOW |
, |
value_too_large = EOVERFLOW |
#endif |
// wrong_protocol_type = EPROTOTYPE |
}; |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/extc++.h |
---|
0,0 → 1,71 |
// C++ includes used for precompiling extensions -*- C++ -*- |
// Copyright (C) 2006-2015 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 extc++.h |
* This is an implementation file for a precompiled header. |
*/ |
#if __cplusplus < 201103L |
#include <bits/stdtr1c++.h> |
#endif |
#include <ext/algorithm> |
#include <ext/array_allocator.h> |
#include <ext/atomicity.h> |
#include <ext/bitmap_allocator.h> |
#include <ext/cast.h> |
#include <ext/concurrence.h> |
#include <ext/debug_allocator.h> |
#include <ext/extptr_allocator.h> |
#include <ext/functional> |
#include <ext/iterator> |
#include <ext/malloc_allocator.h> |
#include <ext/memory> |
#include <ext/mt_allocator.h> |
#include <ext/new_allocator.h> |
#include <ext/numeric> |
#include <ext/pod_char_traits.h> |
#include <ext/pointer.h> |
#include <ext/pool_allocator.h> |
#include <ext/rb_tree> |
#include <ext/rope> |
#include <ext/slist> |
#include <ext/stdio_filebuf.h> |
#include <ext/stdio_sync_filebuf.h> |
#include <ext/throw_allocator.h> |
#include <ext/typelist.h> |
#include <ext/type_traits.h> |
#include <ext/vstring.h> |
#include <ext/pb_ds/assoc_container.hpp> |
#include <ext/pb_ds/priority_queue.hpp> |
#include <ext/pb_ds/exception.hpp> |
#include <ext/pb_ds/hash_policy.hpp> |
#include <ext/pb_ds/list_update_policy.hpp> |
#include <ext/pb_ds/tree_policy.hpp> |
#include <ext/pb_ds/trie_policy.hpp> |
#ifdef _GLIBCXX_HAVE_ICONV |
#include <ext/codecvt_specializations.h> |
#include <ext/enc_filebuf.h> |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/gthr-default.h |
---|
0,0 → 1,215 |
/* Threads compatibility routines for libgcc2 and libobjc. */ |
/* Compile this one with gcc. */ |
/* Copyright (C) 1999-2015 Free Software Foundation, Inc. |
Contributed by Mumit Khan <khan@xraylith.wisc.edu>. |
This file is part of GCC. |
GCC 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. |
GCC 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 GCC_GTHR_KOS32_H |
#define GCC_GTHR_KOS32_H |
/* Make sure CONST_CAST2 (origin in system.h) is declared. */ |
#ifndef CONST_CAST2 |
#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq) |
#endif |
#define __GTHREADS 1 |
#include <stddef.h> |
#ifndef __UNUSED_PARAM |
#define __UNUSED_PARAM(x) x |
#endif |
#ifdef __cplusplus |
extern "C" { |
#endif |
typedef unsigned long __gthread_key_t; |
typedef struct |
{ |
int done; |
long started; |
} __gthread_once_t; |
typedef struct |
{ |
volatile int lock; |
int handle; |
} __gthread_mutex_t; |
typedef struct |
{ |
volatile int lock; |
int handle; |
long depth; |
unsigned long owner; |
} __gthread_recursive_mutex_t; |
#define __GTHREAD_ONCE_INIT {0, -1} |
#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function |
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION \ |
__gthread_recursive_mutex_init_function |
#if defined (_WIN32) && !defined(__CYGWIN__) |
#define MINGW32_SUPPORTS_MT_EH 1 |
/* Mingw runtime >= v0.3 provides a magic variable that is set to nonzero |
if -mthreads option was specified, or 0 otherwise. This is to get around |
the lack of weak symbols in PE-COFF. */ |
extern int _CRT_MT; |
extern int __mingwthr_key_dtor (unsigned long, void (*) (void *)); |
#endif /* _WIN32 && !__CYGWIN__ */ |
static inline int __gthread_active_p (void) |
{ |
#ifdef MINGW32_SUPPORTS_MT_EH |
return _CRT_MT; |
#else |
return 1; |
#endif |
} |
extern int __gthr_kos32_once (__gthread_once_t *, void (*) (void)); |
extern int __gthr_kos32_key_create (__gthread_key_t *, void (*) (void*)); |
extern int __gthr_kos32_key_delete (__gthread_key_t); |
extern void * __gthr_kos32_getspecific (__gthread_key_t); |
extern int __gthr_kos32_setspecific (__gthread_key_t, const void *); |
extern void __gthr_kos32_mutex_init_function (__gthread_mutex_t *); |
extern int __gthr_kos32_mutex_lock (__gthread_mutex_t *); |
extern int __gthr_kos32_mutex_trylock (__gthread_mutex_t *); |
extern int __gthr_kos32_mutex_unlock (__gthread_mutex_t *); |
extern void __gthr_kos32_recursive_mutex_init_function (__gthread_recursive_mutex_t *); |
extern int __gthr_kos32_recursive_mutex_lock (__gthread_recursive_mutex_t *); |
extern int __gthr_kos32_recursive_mutex_trylock (__gthread_recursive_mutex_t *); |
extern int __gthr_kos32_recursive_mutex_unlock (__gthread_recursive_mutex_t *); |
extern void __gthr_kos32_mutex_destroy (__gthread_mutex_t *); |
extern int __gthr_kos32_recursive_mutex_destroy (__gthread_recursive_mutex_t *); |
static inline int __gthread_once (__gthread_once_t *__once, void (*__func) (void)) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_once (__once, __func); |
else |
return -1; |
} |
static inline int __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) |
{ |
return __gthr_kos32_key_create (__key, __dtor); |
} |
static inline int __gthread_key_delete (__gthread_key_t __key) |
{ |
return __gthr_kos32_key_delete (__key); |
} |
static inline void* __gthread_getspecific (__gthread_key_t __key) |
{ |
return __gthr_kos32_getspecific (__key); |
} |
static inline int __gthread_setspecific (__gthread_key_t __key, const void *__ptr) |
{ |
return __gthr_kos32_setspecific (__key, __ptr); |
} |
static inline void __gthread_mutex_init_function (__gthread_mutex_t *__mutex) |
{ |
__gthr_kos32_mutex_init_function(__mutex); |
} |
static inline void __gthread_mutex_destroy (__gthread_mutex_t *__mutex) |
{ |
__gthr_kos32_mutex_destroy (__mutex); |
} |
static inline int __gthread_mutex_lock (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_mutex_lock (__mutex); |
else |
return 0; |
} |
static inline int __gthread_mutex_trylock (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_mutex_trylock (__mutex); |
else |
return 0; |
} |
static inline int __gthread_mutex_unlock (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_mutex_unlock (__mutex); |
else |
return 0; |
} |
static inline void __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex) |
{ |
__gthr_kos32_recursive_mutex_init_function (__mutex); |
} |
static inline int __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_recursive_mutex_lock (__mutex); |
else |
return 0; |
} |
static inline int __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_recursive_mutex_trylock (__mutex); |
else |
return 0; |
} |
static inline int __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthr_kos32_recursive_mutex_unlock (__mutex); |
else |
return 0; |
} |
static inline int __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthr_kos32_recursive_mutex_destroy (__mutex); |
} |
#ifdef __cplusplus |
} |
#endif |
#endif /* ! GCC_GTHR_WIN32_H */ |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/gthr-posix.h |
---|
0,0 → 1,889 |
/* Threads compatibility routines for libgcc2 and libobjc. */ |
/* Compile this one with gcc. */ |
/* Copyright (C) 1997-2015 Free Software Foundation, Inc. |
This file is part of GCC. |
GCC 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. |
GCC 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_GCC_GTHR_POSIX_H |
#define _GLIBCXX_GCC_GTHR_POSIX_H |
/* POSIX threads specific definitions. |
Easy, since the interface is just one-to-one mapping. */ |
#define __GTHREADS 1 |
#define __GTHREADS_CXX0X 1 |
#include <pthread.h> |
#if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \ |
|| !defined(_GTHREAD_USE_MUTEX_TIMEDLOCK)) |
# include <unistd.h> |
# if defined(_POSIX_TIMEOUTS) && _POSIX_TIMEOUTS >= 0 |
# define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 |
# else |
# define _GTHREAD_USE_MUTEX_TIMEDLOCK 0 |
# endif |
#endif |
typedef pthread_t __gthread_t; |
typedef pthread_key_t __gthread_key_t; |
typedef pthread_once_t __gthread_once_t; |
typedef pthread_mutex_t __gthread_mutex_t; |
typedef pthread_mutex_t __gthread_recursive_mutex_t; |
typedef pthread_cond_t __gthread_cond_t; |
typedef struct timespec __gthread_time_t; |
/* POSIX like conditional variables are supported. Please look at comments |
in gthr.h for details. */ |
#define __GTHREAD_HAS_COND 1 |
#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER |
#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function |
#define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT |
#if defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER) |
#define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER |
#elif defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) |
#define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP |
#else |
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function |
#endif |
#define __GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER |
#define __GTHREAD_TIME_INIT {0,0} |
#ifdef _GTHREAD_USE_MUTEX_INIT_FUNC |
# undef __GTHREAD_MUTEX_INIT |
#endif |
#ifdef _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC |
# undef __GTHREAD_RECURSIVE_MUTEX_INIT |
# undef __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION |
# define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function |
#endif |
#ifdef _GTHREAD_USE_COND_INIT_FUNC |
# undef __GTHREAD_COND_INIT |
# define __GTHREAD_COND_INIT_FUNCTION __gthread_cond_init_function |
#endif |
#if __GXX_WEAK__ && _GLIBCXX_GTHREAD_USE_WEAK |
# ifndef __gthrw_pragma |
# define __gthrw_pragma(pragma) |
# endif |
# define __gthrw2(name,name2,type) \ |
static __typeof(type) name __attribute__ ((__weakref__(#name2))); \ |
__gthrw_pragma(weak type) |
# define __gthrw_(name) __gthrw_ ## name |
#else |
# define __gthrw2(name,name2,type) |
# define __gthrw_(name) name |
#endif |
/* Typically, __gthrw_foo is a weak reference to symbol foo. */ |
#define __gthrw(name) __gthrw2(__gthrw_ ## name,name,name) |
__gthrw(pthread_once) |
__gthrw(pthread_getspecific) |
__gthrw(pthread_setspecific) |
__gthrw(pthread_create) |
__gthrw(pthread_join) |
__gthrw(pthread_equal) |
__gthrw(pthread_self) |
__gthrw(pthread_detach) |
#ifndef __BIONIC__ |
__gthrw(pthread_cancel) |
#endif |
__gthrw(sched_yield) |
__gthrw(pthread_mutex_lock) |
__gthrw(pthread_mutex_trylock) |
#if _GTHREAD_USE_MUTEX_TIMEDLOCK |
__gthrw(pthread_mutex_timedlock) |
#endif |
__gthrw(pthread_mutex_unlock) |
__gthrw(pthread_mutex_init) |
__gthrw(pthread_mutex_destroy) |
__gthrw(pthread_cond_init) |
__gthrw(pthread_cond_broadcast) |
__gthrw(pthread_cond_signal) |
__gthrw(pthread_cond_wait) |
__gthrw(pthread_cond_timedwait) |
__gthrw(pthread_cond_destroy) |
__gthrw(pthread_key_create) |
__gthrw(pthread_key_delete) |
__gthrw(pthread_mutexattr_init) |
__gthrw(pthread_mutexattr_settype) |
__gthrw(pthread_mutexattr_destroy) |
#if defined(_LIBOBJC) || defined(_LIBOBJC_WEAK) |
/* Objective-C. */ |
__gthrw(pthread_exit) |
#ifdef _POSIX_PRIORITY_SCHEDULING |
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING |
__gthrw(sched_get_priority_max) |
__gthrw(sched_get_priority_min) |
#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ |
#endif /* _POSIX_PRIORITY_SCHEDULING */ |
__gthrw(pthread_attr_destroy) |
__gthrw(pthread_attr_init) |
__gthrw(pthread_attr_setdetachstate) |
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING |
__gthrw(pthread_getschedparam) |
__gthrw(pthread_setschedparam) |
#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ |
#endif /* _LIBOBJC || _LIBOBJC_WEAK */ |
#if __GXX_WEAK__ && _GLIBCXX_GTHREAD_USE_WEAK |
/* On Solaris 2.6 up to 9, the libc exposes a POSIX threads interface even if |
-pthreads is not specified. The functions are dummies and most return an |
error value. However pthread_once returns 0 without invoking the routine |
it is passed so we cannot pretend that the interface is active if -pthreads |
is not specified. On Solaris 2.5.1, the interface is not exposed at all so |
we need to play the usual game with weak symbols. On Solaris 10 and up, a |
working interface is always exposed. On FreeBSD 6 and later, libc also |
exposes a dummy POSIX threads interface, similar to what Solaris 2.6 up |
to 9 does. FreeBSD >= 700014 even provides a pthread_cancel stub in libc, |
which means the alternate __gthread_active_p below cannot be used there. */ |
#if defined(__FreeBSD__) || (defined(__sun) && defined(__svr4__)) |
static volatile int __gthread_active = -1; |
static void |
__gthread_trigger (void) |
{ |
__gthread_active = 1; |
} |
static inline int |
__gthread_active_p (void) |
{ |
static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER; |
static pthread_once_t __gthread_active_once = PTHREAD_ONCE_INIT; |
/* Avoid reading __gthread_active twice on the main code path. */ |
int __gthread_active_latest_value = __gthread_active; |
/* This test is not protected to avoid taking a lock on the main code |
path so every update of __gthread_active in a threaded program must |
be atomic with regard to the result of the test. */ |
if (__builtin_expect (__gthread_active_latest_value < 0, 0)) |
{ |
if (__gthrw_(pthread_once)) |
{ |
/* If this really is a threaded program, then we must ensure that |
__gthread_active has been set to 1 before exiting this block. */ |
__gthrw_(pthread_mutex_lock) (&__gthread_active_mutex); |
__gthrw_(pthread_once) (&__gthread_active_once, __gthread_trigger); |
__gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex); |
} |
/* Make sure we'll never enter this block again. */ |
if (__gthread_active < 0) |
__gthread_active = 0; |
__gthread_active_latest_value = __gthread_active; |
} |
return __gthread_active_latest_value != 0; |
} |
#else /* neither FreeBSD nor Solaris */ |
/* For a program to be multi-threaded the only thing that it certainly must |
be using is pthread_create. However, there may be other libraries that |
intercept pthread_create with their own definitions to wrap pthreads |
functionality for some purpose. In those cases, pthread_create being |
defined might not necessarily mean that libpthread is actually linked |
in. |
For the GNU C library, we can use a known internal name. This is always |
available in the ABI, but no other library would define it. That is |
ideal, since any public pthread function might be intercepted just as |
pthread_create might be. __pthread_key_create is an "internal" |
implementation symbol, but it is part of the public exported ABI. Also, |
it's among the symbols that the static libpthread.a always links in |
whenever pthread_create is used, so there is no danger of a false |
negative result in any statically-linked, multi-threaded program. |
For others, we choose pthread_cancel as a function that seems unlikely |
to be redefined by an interceptor library. The bionic (Android) C |
library does not provide pthread_cancel, so we do use pthread_create |
there (and interceptor libraries lose). */ |
#ifdef __GLIBC__ |
__gthrw2(__gthrw_(__pthread_key_create), |
__pthread_key_create, |
pthread_key_create) |
# define GTHR_ACTIVE_PROXY __gthrw_(__pthread_key_create) |
#elif defined (__BIONIC__) |
# define GTHR_ACTIVE_PROXY __gthrw_(pthread_create) |
#else |
# define GTHR_ACTIVE_PROXY __gthrw_(pthread_cancel) |
#endif |
static inline int |
__gthread_active_p (void) |
{ |
static void *const __gthread_active_ptr |
= __extension__ (void *) >HR_ACTIVE_PROXY; |
return __gthread_active_ptr != 0; |
} |
#endif /* FreeBSD or Solaris */ |
#else /* not __GXX_WEAK__ */ |
/* Similar to Solaris, HP-UX 11 for PA-RISC provides stubs for pthread |
calls in shared flavors of the HP-UX C library. Most of the stubs |
have no functionality. The details are described in the "libc cumulative |
patch" for each subversion of HP-UX 11. There are two special interfaces |
provided for checking whether an application is linked to a shared pthread |
library or not. However, these interfaces aren't available in early |
libpthread libraries. We also need a test that works for archive |
libraries. We can't use pthread_once as some libc versions call the |
init function. We also can't use pthread_create or pthread_attr_init |
as these create a thread and thereby prevent changing the default stack |
size. The function pthread_default_stacksize_np is available in both |
the archive and shared versions of libpthread. It can be used to |
determine the default pthread stack size. There is a stub in some |
shared libc versions which returns a zero size if pthreads are not |
active. We provide an equivalent stub to handle cases where libc |
doesn't provide one. */ |
#if defined(__hppa__) && defined(__hpux__) |
static volatile int __gthread_active = -1; |
static inline int |
__gthread_active_p (void) |
{ |
/* Avoid reading __gthread_active twice on the main code path. */ |
int __gthread_active_latest_value = __gthread_active; |
size_t __s; |
if (__builtin_expect (__gthread_active_latest_value < 0, 0)) |
{ |
pthread_default_stacksize_np (0, &__s); |
__gthread_active = __s ? 1 : 0; |
__gthread_active_latest_value = __gthread_active; |
} |
return __gthread_active_latest_value != 0; |
} |
#else /* not hppa-hpux */ |
static inline int |
__gthread_active_p (void) |
{ |
return 1; |
} |
#endif /* hppa-hpux */ |
#endif /* __GXX_WEAK__ */ |
#ifdef _LIBOBJC |
/* This is the config.h file in libobjc/ */ |
#include <config.h> |
#ifdef HAVE_SCHED_H |
# include <sched.h> |
#endif |
/* Key structure for maintaining thread specific storage */ |
static pthread_key_t _objc_thread_storage; |
static pthread_attr_t _objc_thread_attribs; |
/* Thread local storage for a single thread */ |
static void *thread_local_storage = NULL; |
/* Backend initialization functions */ |
/* Initialize the threads subsystem. */ |
static inline int |
__gthread_objc_init_thread_system (void) |
{ |
if (__gthread_active_p ()) |
{ |
/* Initialize the thread storage key. */ |
if (__gthrw_(pthread_key_create) (&_objc_thread_storage, NULL) == 0) |
{ |
/* The normal default detach state for threads is |
* PTHREAD_CREATE_JOINABLE which causes threads to not die |
* when you think they should. */ |
if (__gthrw_(pthread_attr_init) (&_objc_thread_attribs) == 0 |
&& __gthrw_(pthread_attr_setdetachstate) (&_objc_thread_attribs, |
PTHREAD_CREATE_DETACHED) == 0) |
return 0; |
} |
} |
return -1; |
} |
/* Close the threads subsystem. */ |
static inline int |
__gthread_objc_close_thread_system (void) |
{ |
if (__gthread_active_p () |
&& __gthrw_(pthread_key_delete) (_objc_thread_storage) == 0 |
&& __gthrw_(pthread_attr_destroy) (&_objc_thread_attribs) == 0) |
return 0; |
return -1; |
} |
/* Backend thread functions */ |
/* Create a new thread of execution. */ |
static inline objc_thread_t |
__gthread_objc_thread_detach (void (*func)(void *), void *arg) |
{ |
objc_thread_t thread_id; |
pthread_t new_thread_handle; |
if (!__gthread_active_p ()) |
return NULL; |
if (!(__gthrw_(pthread_create) (&new_thread_handle, &_objc_thread_attribs, |
(void *) func, arg))) |
thread_id = (objc_thread_t) new_thread_handle; |
else |
thread_id = NULL; |
return thread_id; |
} |
/* Set the current thread's priority. */ |
static inline int |
__gthread_objc_thread_set_priority (int priority) |
{ |
if (!__gthread_active_p ()) |
return -1; |
else |
{ |
#ifdef _POSIX_PRIORITY_SCHEDULING |
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING |
pthread_t thread_id = __gthrw_(pthread_self) (); |
int policy; |
struct sched_param params; |
int priority_min, priority_max; |
if (__gthrw_(pthread_getschedparam) (thread_id, &policy, ¶ms) == 0) |
{ |
if ((priority_max = __gthrw_(sched_get_priority_max) (policy)) == -1) |
return -1; |
if ((priority_min = __gthrw_(sched_get_priority_min) (policy)) == -1) |
return -1; |
if (priority > priority_max) |
priority = priority_max; |
else if (priority < priority_min) |
priority = priority_min; |
params.sched_priority = priority; |
/* |
* The solaris 7 and several other man pages incorrectly state that |
* this should be a pointer to policy but pthread.h is universally |
* at odds with this. |
*/ |
if (__gthrw_(pthread_setschedparam) (thread_id, policy, ¶ms) == 0) |
return 0; |
} |
#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ |
#endif /* _POSIX_PRIORITY_SCHEDULING */ |
return -1; |
} |
} |
/* Return the current thread's priority. */ |
static inline int |
__gthread_objc_thread_get_priority (void) |
{ |
#ifdef _POSIX_PRIORITY_SCHEDULING |
#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING |
if (__gthread_active_p ()) |
{ |
int policy; |
struct sched_param params; |
if (__gthrw_(pthread_getschedparam) (__gthrw_(pthread_self) (), &policy, ¶ms) == 0) |
return params.sched_priority; |
else |
return -1; |
} |
else |
#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ |
#endif /* _POSIX_PRIORITY_SCHEDULING */ |
return OBJC_THREAD_INTERACTIVE_PRIORITY; |
} |
/* Yield our process time to another thread. */ |
static inline void |
__gthread_objc_thread_yield (void) |
{ |
if (__gthread_active_p ()) |
__gthrw_(sched_yield) (); |
} |
/* Terminate the current thread. */ |
static inline int |
__gthread_objc_thread_exit (void) |
{ |
if (__gthread_active_p ()) |
/* exit the thread */ |
__gthrw_(pthread_exit) (&__objc_thread_exit_status); |
/* Failed if we reached here */ |
return -1; |
} |
/* Returns an integer value which uniquely describes a thread. */ |
static inline objc_thread_t |
__gthread_objc_thread_id (void) |
{ |
if (__gthread_active_p ()) |
return (objc_thread_t) __gthrw_(pthread_self) (); |
else |
return (objc_thread_t) 1; |
} |
/* Sets the thread's local storage pointer. */ |
static inline int |
__gthread_objc_thread_set_data (void *value) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_setspecific) (_objc_thread_storage, value); |
else |
{ |
thread_local_storage = value; |
return 0; |
} |
} |
/* Returns the thread's local storage pointer. */ |
static inline void * |
__gthread_objc_thread_get_data (void) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_getspecific) (_objc_thread_storage); |
else |
return thread_local_storage; |
} |
/* Backend mutex functions */ |
/* Allocate a mutex. */ |
static inline int |
__gthread_objc_mutex_allocate (objc_mutex_t mutex) |
{ |
if (__gthread_active_p ()) |
{ |
mutex->backend = objc_malloc (sizeof (pthread_mutex_t)); |
if (__gthrw_(pthread_mutex_init) ((pthread_mutex_t *) mutex->backend, NULL)) |
{ |
objc_free (mutex->backend); |
mutex->backend = NULL; |
return -1; |
} |
} |
return 0; |
} |
/* Deallocate a mutex. */ |
static inline int |
__gthread_objc_mutex_deallocate (objc_mutex_t mutex) |
{ |
if (__gthread_active_p ()) |
{ |
int count; |
/* |
* Posix Threads specifically require that the thread be unlocked |
* for __gthrw_(pthread_mutex_destroy) to work. |
*/ |
do |
{ |
count = __gthrw_(pthread_mutex_unlock) ((pthread_mutex_t *) mutex->backend); |
if (count < 0) |
return -1; |
} |
while (count); |
if (__gthrw_(pthread_mutex_destroy) ((pthread_mutex_t *) mutex->backend)) |
return -1; |
objc_free (mutex->backend); |
mutex->backend = NULL; |
} |
return 0; |
} |
/* Grab a lock on a mutex. */ |
static inline int |
__gthread_objc_mutex_lock (objc_mutex_t mutex) |
{ |
if (__gthread_active_p () |
&& __gthrw_(pthread_mutex_lock) ((pthread_mutex_t *) mutex->backend) != 0) |
{ |
return -1; |
} |
return 0; |
} |
/* Try to grab a lock on a mutex. */ |
static inline int |
__gthread_objc_mutex_trylock (objc_mutex_t mutex) |
{ |
if (__gthread_active_p () |
&& __gthrw_(pthread_mutex_trylock) ((pthread_mutex_t *) mutex->backend) != 0) |
{ |
return -1; |
} |
return 0; |
} |
/* Unlock the mutex */ |
static inline int |
__gthread_objc_mutex_unlock (objc_mutex_t mutex) |
{ |
if (__gthread_active_p () |
&& __gthrw_(pthread_mutex_unlock) ((pthread_mutex_t *) mutex->backend) != 0) |
{ |
return -1; |
} |
return 0; |
} |
/* Backend condition mutex functions */ |
/* Allocate a condition. */ |
static inline int |
__gthread_objc_condition_allocate (objc_condition_t condition) |
{ |
if (__gthread_active_p ()) |
{ |
condition->backend = objc_malloc (sizeof (pthread_cond_t)); |
if (__gthrw_(pthread_cond_init) ((pthread_cond_t *) condition->backend, NULL)) |
{ |
objc_free (condition->backend); |
condition->backend = NULL; |
return -1; |
} |
} |
return 0; |
} |
/* Deallocate a condition. */ |
static inline int |
__gthread_objc_condition_deallocate (objc_condition_t condition) |
{ |
if (__gthread_active_p ()) |
{ |
if (__gthrw_(pthread_cond_destroy) ((pthread_cond_t *) condition->backend)) |
return -1; |
objc_free (condition->backend); |
condition->backend = NULL; |
} |
return 0; |
} |
/* Wait on the condition */ |
static inline int |
__gthread_objc_condition_wait (objc_condition_t condition, objc_mutex_t mutex) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_cond_wait) ((pthread_cond_t *) condition->backend, |
(pthread_mutex_t *) mutex->backend); |
else |
return 0; |
} |
/* Wake up all threads waiting on this condition. */ |
static inline int |
__gthread_objc_condition_broadcast (objc_condition_t condition) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_cond_broadcast) ((pthread_cond_t *) condition->backend); |
else |
return 0; |
} |
/* Wake up one thread waiting on this condition. */ |
static inline int |
__gthread_objc_condition_signal (objc_condition_t condition) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_cond_signal) ((pthread_cond_t *) condition->backend); |
else |
return 0; |
} |
#else /* _LIBOBJC */ |
static inline int |
__gthread_create (__gthread_t *__threadid, void *(*__func) (void*), |
void *__args) |
{ |
return __gthrw_(pthread_create) (__threadid, NULL, __func, __args); |
} |
static inline int |
__gthread_join (__gthread_t __threadid, void **__value_ptr) |
{ |
return __gthrw_(pthread_join) (__threadid, __value_ptr); |
} |
static inline int |
__gthread_detach (__gthread_t __threadid) |
{ |
return __gthrw_(pthread_detach) (__threadid); |
} |
static inline int |
__gthread_equal (__gthread_t __t1, __gthread_t __t2) |
{ |
return __gthrw_(pthread_equal) (__t1, __t2); |
} |
static inline __gthread_t |
__gthread_self (void) |
{ |
return __gthrw_(pthread_self) (); |
} |
static inline int |
__gthread_yield (void) |
{ |
return __gthrw_(sched_yield) (); |
} |
static inline int |
__gthread_once (__gthread_once_t *__once, void (*__func) (void)) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_once) (__once, __func); |
else |
return -1; |
} |
static inline int |
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) |
{ |
return __gthrw_(pthread_key_create) (__key, __dtor); |
} |
static inline int |
__gthread_key_delete (__gthread_key_t __key) |
{ |
return __gthrw_(pthread_key_delete) (__key); |
} |
static inline void * |
__gthread_getspecific (__gthread_key_t __key) |
{ |
return __gthrw_(pthread_getspecific) (__key); |
} |
static inline int |
__gthread_setspecific (__gthread_key_t __key, const void *__ptr) |
{ |
return __gthrw_(pthread_setspecific) (__key, __ptr); |
} |
static inline void |
__gthread_mutex_init_function (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
__gthrw_(pthread_mutex_init) (__mutex, NULL); |
} |
static inline int |
__gthread_mutex_destroy (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_mutex_destroy) (__mutex); |
else |
return 0; |
} |
static inline int |
__gthread_mutex_lock (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_mutex_lock) (__mutex); |
else |
return 0; |
} |
static inline int |
__gthread_mutex_trylock (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_mutex_trylock) (__mutex); |
else |
return 0; |
} |
#if _GTHREAD_USE_MUTEX_TIMEDLOCK |
static inline int |
__gthread_mutex_timedlock (__gthread_mutex_t *__mutex, |
const __gthread_time_t *__abs_timeout) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_mutex_timedlock) (__mutex, __abs_timeout); |
else |
return 0; |
} |
#endif |
static inline int |
__gthread_mutex_unlock (__gthread_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
return __gthrw_(pthread_mutex_unlock) (__mutex); |
else |
return 0; |
} |
#if !defined( PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) \ |
|| defined(_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC) |
static inline int |
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex) |
{ |
if (__gthread_active_p ()) |
{ |
pthread_mutexattr_t __attr; |
int __r; |
__r = __gthrw_(pthread_mutexattr_init) (&__attr); |
if (!__r) |
__r = __gthrw_(pthread_mutexattr_settype) (&__attr, |
PTHREAD_MUTEX_RECURSIVE); |
if (!__r) |
__r = __gthrw_(pthread_mutex_init) (__mutex, &__attr); |
if (!__r) |
__r = __gthrw_(pthread_mutexattr_destroy) (&__attr); |
return __r; |
} |
return 0; |
} |
#endif |
static inline int |
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_lock (__mutex); |
} |
static inline int |
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_trylock (__mutex); |
} |
#if _GTHREAD_USE_MUTEX_TIMEDLOCK |
static inline int |
__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, |
const __gthread_time_t *__abs_timeout) |
{ |
return __gthread_mutex_timedlock (__mutex, __abs_timeout); |
} |
#endif |
static inline int |
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_unlock (__mutex); |
} |
static inline int |
__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_destroy (__mutex); |
} |
#ifdef _GTHREAD_USE_COND_INIT_FUNC |
static inline void |
__gthread_cond_init_function (__gthread_cond_t *__cond) |
{ |
if (__gthread_active_p ()) |
__gthrw_(pthread_cond_init) (__cond, NULL); |
} |
#endif |
static inline int |
__gthread_cond_broadcast (__gthread_cond_t *__cond) |
{ |
return __gthrw_(pthread_cond_broadcast) (__cond); |
} |
static inline int |
__gthread_cond_signal (__gthread_cond_t *__cond) |
{ |
return __gthrw_(pthread_cond_signal) (__cond); |
} |
static inline int |
__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) |
{ |
return __gthrw_(pthread_cond_wait) (__cond, __mutex); |
} |
static inline int |
__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex, |
const __gthread_time_t *__abs_timeout) |
{ |
return __gthrw_(pthread_cond_timedwait) (__cond, __mutex, __abs_timeout); |
} |
static inline int |
__gthread_cond_wait_recursive (__gthread_cond_t *__cond, |
__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_cond_wait (__cond, __mutex); |
} |
static inline int |
__gthread_cond_destroy (__gthread_cond_t* __cond) |
{ |
return __gthrw_(pthread_cond_destroy) (__cond); |
} |
#endif /* _LIBOBJC */ |
#endif /* ! _GLIBCXX_GCC_GTHR_POSIX_H */ |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/gthr-single.h |
---|
0,0 → 1,298 |
/* Threads compatibility routines for libgcc2 and libobjc. */ |
/* Compile this one with gcc. */ |
/* Copyright (C) 1997-2015 Free Software Foundation, Inc. |
This file is part of GCC. |
GCC 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. |
GCC 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_GCC_GTHR_SINGLE_H |
#define _GLIBCXX_GCC_GTHR_SINGLE_H |
/* Just provide compatibility for mutex handling. */ |
typedef int __gthread_key_t; |
typedef int __gthread_once_t; |
typedef int __gthread_mutex_t; |
typedef int __gthread_recursive_mutex_t; |
#define __GTHREAD_ONCE_INIT 0 |
#define __GTHREAD_MUTEX_INIT 0 |
#define __GTHREAD_MUTEX_INIT_FUNCTION(mx) |
#define __GTHREAD_RECURSIVE_MUTEX_INIT 0 |
#define _GLIBCXX_UNUSED __attribute__((__unused__)) |
#ifdef _LIBOBJC |
/* Thread local storage for a single thread */ |
static void *thread_local_storage = NULL; |
/* Backend initialization functions */ |
/* Initialize the threads subsystem. */ |
static inline int |
__gthread_objc_init_thread_system (void) |
{ |
/* No thread support available */ |
return -1; |
} |
/* Close the threads subsystem. */ |
static inline int |
__gthread_objc_close_thread_system (void) |
{ |
/* No thread support available */ |
return -1; |
} |
/* Backend thread functions */ |
/* Create a new thread of execution. */ |
static inline objc_thread_t |
__gthread_objc_thread_detach (void (* func)(void *), void * arg _GLIBCXX_UNUSED) |
{ |
/* No thread support available */ |
return NULL; |
} |
/* Set the current thread's priority. */ |
static inline int |
__gthread_objc_thread_set_priority (int priority _GLIBCXX_UNUSED) |
{ |
/* No thread support available */ |
return -1; |
} |
/* Return the current thread's priority. */ |
static inline int |
__gthread_objc_thread_get_priority (void) |
{ |
return OBJC_THREAD_INTERACTIVE_PRIORITY; |
} |
/* Yield our process time to another thread. */ |
static inline void |
__gthread_objc_thread_yield (void) |
{ |
return; |
} |
/* Terminate the current thread. */ |
static inline int |
__gthread_objc_thread_exit (void) |
{ |
/* No thread support available */ |
/* Should we really exit the program */ |
/* exit (&__objc_thread_exit_status); */ |
return -1; |
} |
/* Returns an integer value which uniquely describes a thread. */ |
static inline objc_thread_t |
__gthread_objc_thread_id (void) |
{ |
/* No thread support, use 1. */ |
return (objc_thread_t) 1; |
} |
/* Sets the thread's local storage pointer. */ |
static inline int |
__gthread_objc_thread_set_data (void *value) |
{ |
thread_local_storage = value; |
return 0; |
} |
/* Returns the thread's local storage pointer. */ |
static inline void * |
__gthread_objc_thread_get_data (void) |
{ |
return thread_local_storage; |
} |
/* Backend mutex functions */ |
/* Allocate a mutex. */ |
static inline int |
__gthread_objc_mutex_allocate (objc_mutex_t mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Deallocate a mutex. */ |
static inline int |
__gthread_objc_mutex_deallocate (objc_mutex_t mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Grab a lock on a mutex. */ |
static inline int |
__gthread_objc_mutex_lock (objc_mutex_t mutex _GLIBCXX_UNUSED) |
{ |
/* There can only be one thread, so we always get the lock */ |
return 0; |
} |
/* Try to grab a lock on a mutex. */ |
static inline int |
__gthread_objc_mutex_trylock (objc_mutex_t mutex _GLIBCXX_UNUSED) |
{ |
/* There can only be one thread, so we always get the lock */ |
return 0; |
} |
/* Unlock the mutex */ |
static inline int |
__gthread_objc_mutex_unlock (objc_mutex_t mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Backend condition mutex functions */ |
/* Allocate a condition. */ |
static inline int |
__gthread_objc_condition_allocate (objc_condition_t condition _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Deallocate a condition. */ |
static inline int |
__gthread_objc_condition_deallocate (objc_condition_t condition _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Wait on the condition */ |
static inline int |
__gthread_objc_condition_wait (objc_condition_t condition _GLIBCXX_UNUSED, |
objc_mutex_t mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Wake up all threads waiting on this condition. */ |
static inline int |
__gthread_objc_condition_broadcast (objc_condition_t condition _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
/* Wake up one thread waiting on this condition. */ |
static inline int |
__gthread_objc_condition_signal (objc_condition_t condition _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
#else /* _LIBOBJC */ |
static inline int |
__gthread_active_p (void) |
{ |
return 0; |
} |
static inline int |
__gthread_once (__gthread_once_t *__once _GLIBCXX_UNUSED, void (*__func) (void) _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int _GLIBCXX_UNUSED |
__gthread_key_create (__gthread_key_t *__key _GLIBCXX_UNUSED, void (*__func) (void *) _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static int _GLIBCXX_UNUSED |
__gthread_key_delete (__gthread_key_t __key _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline void * |
__gthread_getspecific (__gthread_key_t __key _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int |
__gthread_setspecific (__gthread_key_t __key _GLIBCXX_UNUSED, const void *__v _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int |
__gthread_mutex_destroy (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int |
__gthread_mutex_lock (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int |
__gthread_mutex_trylock (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int |
__gthread_mutex_unlock (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED) |
{ |
return 0; |
} |
static inline int |
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_lock (__mutex); |
} |
static inline int |
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_trylock (__mutex); |
} |
static inline int |
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_unlock (__mutex); |
} |
static inline int |
__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) |
{ |
return __gthread_mutex_destroy (__mutex); |
} |
#endif /* _LIBOBJC */ |
#undef _GLIBCXX_UNUSED |
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */ |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/gthr.h |
---|
0,0 → 1,154 |
/* Threads compatibility routines for libgcc2. */ |
/* Compile this one with gcc. */ |
/* Copyright (C) 1997-2015 Free Software Foundation, Inc. |
This file is part of GCC. |
GCC 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. |
GCC 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_GCC_GTHR_H |
#define _GLIBCXX_GCC_GTHR_H |
#ifndef _GLIBCXX_HIDE_EXPORTS |
#pragma GCC visibility push(default) |
#endif |
/* If this file is compiled with threads support, it must |
#define __GTHREADS 1 |
to indicate that threads support is present. Also it has define |
function |
int __gthread_active_p () |
that returns 1 if thread system is active, 0 if not. |
The threads interface must define the following types: |
__gthread_key_t |
__gthread_once_t |
__gthread_mutex_t |
__gthread_recursive_mutex_t |
The threads interface must define the following macros: |
__GTHREAD_ONCE_INIT |
to initialize __gthread_once_t |
__GTHREAD_MUTEX_INIT |
to initialize __gthread_mutex_t to get a fast |
non-recursive mutex. |
__GTHREAD_MUTEX_INIT_FUNCTION |
to initialize __gthread_mutex_t to get a fast |
non-recursive mutex. |
Define this to a function which looks like this: |
void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *) |
Some systems can't initialize a mutex without a |
function call. Don't define __GTHREAD_MUTEX_INIT in this case. |
__GTHREAD_RECURSIVE_MUTEX_INIT |
__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION |
as above, but for a recursive mutex. |
The threads interface must define the following static functions: |
int __gthread_once (__gthread_once_t *once, void (*func) ()) |
int __gthread_key_create (__gthread_key_t *keyp, void (*dtor) (void *)) |
int __gthread_key_delete (__gthread_key_t key) |
void *__gthread_getspecific (__gthread_key_t key) |
int __gthread_setspecific (__gthread_key_t key, const void *ptr) |
int __gthread_mutex_destroy (__gthread_mutex_t *mutex); |
int __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *mutex); |
int __gthread_mutex_lock (__gthread_mutex_t *mutex); |
int __gthread_mutex_trylock (__gthread_mutex_t *mutex); |
int __gthread_mutex_unlock (__gthread_mutex_t *mutex); |
int __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex); |
int __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex); |
int __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex); |
The following are supported in POSIX threads only. They are required to |
fix a deadlock in static initialization inside libsupc++. The header file |
gthr-posix.h defines a symbol __GTHREAD_HAS_COND to signify that these extra |
features are supported. |
Types: |
__gthread_cond_t |
Macros: |
__GTHREAD_COND_INIT |
__GTHREAD_COND_INIT_FUNCTION |
Interface: |
int __gthread_cond_broadcast (__gthread_cond_t *cond); |
int __gthread_cond_wait (__gthread_cond_t *cond, __gthread_mutex_t *mutex); |
int __gthread_cond_wait_recursive (__gthread_cond_t *cond, |
__gthread_recursive_mutex_t *mutex); |
All functions returning int should return zero on success or the error |
number. If the operation is not supported, -1 is returned. |
If the following are also defined, you should |
#define __GTHREADS_CXX0X 1 |
to enable the c++0x thread library. |
Types: |
__gthread_t |
__gthread_time_t |
Interface: |
int __gthread_create (__gthread_t *thread, void *(*func) (void*), |
void *args); |
int __gthread_join (__gthread_t thread, void **value_ptr); |
int __gthread_detach (__gthread_t thread); |
int __gthread_equal (__gthread_t t1, __gthread_t t2); |
__gthread_t __gthread_self (void); |
int __gthread_yield (void); |
int __gthread_mutex_timedlock (__gthread_mutex_t *m, |
const __gthread_time_t *abs_timeout); |
int __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *m, |
const __gthread_time_t *abs_time); |
int __gthread_cond_signal (__gthread_cond_t *cond); |
int __gthread_cond_timedwait (__gthread_cond_t *cond, |
__gthread_mutex_t *mutex, |
const __gthread_time_t *abs_timeout); |
*/ |
#if __GXX_WEAK__ |
/* The pe-coff weak support isn't fully compatible to ELF's weak. |
For static libraries it might would work, but as we need to deal |
with shared versions too, we disable it for mingw-targets. */ |
#ifdef __MINGW32__ |
#undef _GLIBCXX_GTHREAD_USE_WEAK |
#define _GLIBCXX_GTHREAD_USE_WEAK 0 |
#endif |
#ifndef _GLIBCXX_GTHREAD_USE_WEAK |
#define _GLIBCXX_GTHREAD_USE_WEAK 1 |
#endif |
#endif |
#include <sys/gthr-default.h> |
#ifndef _GLIBCXX_HIDE_EXPORTS |
#pragma GCC visibility pop |
#endif |
#endif /* ! _GLIBCXX_GCC_GTHR_H */ |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/messages_members.h |
---|
0,0 → 1,92 |
// std::messages implementation details, generic version -*- C++ -*- |
// Copyright (C) 2001-2015 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/messages_members.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.2.7.1.2 messages virtual functions |
// |
// Written by Benjamin Kosnik <bkoz@redhat.com> |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
// Non-virtual member functions. |
template<typename _CharT> |
messages<_CharT>::messages(size_t __refs) |
: facet(__refs) |
{ _M_c_locale_messages = _S_get_c_locale(); } |
template<typename _CharT> |
messages<_CharT>::messages(__c_locale, const char*, size_t __refs) |
: facet(__refs) |
{ _M_c_locale_messages = _S_get_c_locale(); } |
template<typename _CharT> |
typename messages<_CharT>::catalog |
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, |
const char*) const |
{ return this->do_open(__s, __loc); } |
// Virtual member functions. |
template<typename _CharT> |
messages<_CharT>::~messages() |
{ _S_destroy_c_locale(_M_c_locale_messages); } |
template<typename _CharT> |
typename messages<_CharT>::catalog |
messages<_CharT>::do_open(const basic_string<char>&, const locale&) const |
{ return 0; } |
template<typename _CharT> |
typename messages<_CharT>::string_type |
messages<_CharT>::do_get(catalog, int, int, |
const string_type& __dfault) const |
{ return __dfault; } |
template<typename _CharT> |
void |
messages<_CharT>::do_close(catalog) const |
{ } |
// messages_byname |
template<typename _CharT> |
messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs) |
: messages<_CharT>(__refs) |
{ |
if (__builtin_strcmp(__s, "C") != 0 |
&& __builtin_strcmp(__s, "POSIX") != 0) |
{ |
this->_S_destroy_c_locale(this->_M_c_locale_messages); |
this->_S_create_c_locale(this->_M_c_locale_messages, __s); |
} |
} |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/opt_random.h |
---|
0,0 → 1,219 |
// Optimizations for random number functions, x86 version -*- C++ -*- |
// Copyright (C) 2012-2015 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/opt_random.h |
* This is an internal header file, included by other library headers. |
* Do not attempt to use it directly. @headername{random} |
*/ |
#ifndef _BITS_OPT_RANDOM_H |
#define _BITS_OPT_RANDOM_H 1 |
#include <x86intrin.h> |
#pragma GCC system_header |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
#ifdef __SSE3__ |
template<> |
template<typename _UniformRandomNumberGenerator> |
void |
normal_distribution<double>:: |
__generate(typename normal_distribution<double>::result_type* __f, |
typename normal_distribution<double>::result_type* __t, |
_UniformRandomNumberGenerator& __urng, |
const param_type& __param) |
{ |
typedef uint64_t __uctype; |
if (__f == __t) |
return; |
if (_M_saved_available) |
{ |
_M_saved_available = false; |
*__f++ = _M_saved * __param.stddev() + __param.mean(); |
if (__f == __t) |
return; |
} |
constexpr uint64_t __maskval = 0xfffffffffffffull; |
static const __m128i __mask = _mm_set1_epi64x(__maskval); |
static const __m128i __two = _mm_set1_epi64x(0x4000000000000000ull); |
static const __m128d __three = _mm_set1_pd(3.0); |
const __m128d __av = _mm_set1_pd(__param.mean()); |
const __uctype __urngmin = __urng.min(); |
const __uctype __urngmax = __urng.max(); |
const __uctype __urngrange = __urngmax - __urngmin; |
const __uctype __uerngrange = __urngrange + 1; |
while (__f + 1 < __t) |
{ |
double __le; |
__m128d __x; |
do |
{ |
union |
{ |
__m128i __i; |
__m128d __d; |
} __v; |
if (__urngrange > __maskval) |
{ |
if (__detail::_Power_of_2(__uerngrange)) |
__v.__i = _mm_and_si128(_mm_set_epi64x(__urng(), |
__urng()), |
__mask); |
else |
{ |
const __uctype __uerange = __maskval + 1; |
const __uctype __scaling = __urngrange / __uerange; |
const __uctype __past = __uerange * __scaling; |
uint64_t __v1; |
do |
__v1 = __uctype(__urng()) - __urngmin; |
while (__v1 >= __past); |
__v1 /= __scaling; |
uint64_t __v2; |
do |
__v2 = __uctype(__urng()) - __urngmin; |
while (__v2 >= __past); |
__v2 /= __scaling; |
__v.__i = _mm_set_epi64x(__v1, __v2); |
} |
} |
else if (__urngrange == __maskval) |
__v.__i = _mm_set_epi64x(__urng(), __urng()); |
else if ((__urngrange + 2) * __urngrange >= __maskval |
&& __detail::_Power_of_2(__uerngrange)) |
{ |
uint64_t __v1 = __urng() * __uerngrange + __urng(); |
uint64_t __v2 = __urng() * __uerngrange + __urng(); |
__v.__i = _mm_and_si128(_mm_set_epi64x(__v1, __v2), |
__mask); |
} |
else |
{ |
size_t __nrng = 2; |
__uctype __high = __maskval / __uerngrange / __uerngrange; |
while (__high > __uerngrange) |
{ |
++__nrng; |
__high /= __uerngrange; |
} |
const __uctype __highrange = __high + 1; |
const __uctype __scaling = __urngrange / __highrange; |
const __uctype __past = __highrange * __scaling; |
__uctype __tmp; |
uint64_t __v1; |
do |
{ |
do |
__tmp = __uctype(__urng()) - __urngmin; |
while (__tmp >= __past); |
__v1 = __tmp / __scaling; |
for (size_t __cnt = 0; __cnt < __nrng; ++__cnt) |
{ |
__tmp = __v1; |
__v1 *= __uerngrange; |
__v1 += __uctype(__urng()) - __urngmin; |
} |
} |
while (__v1 > __maskval || __v1 < __tmp); |
uint64_t __v2; |
do |
{ |
do |
__tmp = __uctype(__urng()) - __urngmin; |
while (__tmp >= __past); |
__v2 = __tmp / __scaling; |
for (size_t __cnt = 0; __cnt < __nrng; ++__cnt) |
{ |
__tmp = __v2; |
__v2 *= __uerngrange; |
__v2 += __uctype(__urng()) - __urngmin; |
} |
} |
while (__v2 > __maskval || __v2 < __tmp); |
__v.__i = _mm_set_epi64x(__v1, __v2); |
} |
__v.__i = _mm_or_si128(__v.__i, __two); |
__x = _mm_sub_pd(__v.__d, __three); |
__m128d __m = _mm_mul_pd(__x, __x); |
__le = _mm_cvtsd_f64(_mm_hadd_pd (__m, __m)); |
} |
while (__le == 0.0 || __le >= 1.0); |
double __mult = (std::sqrt(-2.0 * std::log(__le) / __le) |
* __param.stddev()); |
__x = _mm_add_pd(_mm_mul_pd(__x, _mm_set1_pd(__mult)), __av); |
_mm_storeu_pd(__f, __x); |
__f += 2; |
} |
if (__f != __t) |
{ |
result_type __x, __y, __r2; |
__detail::_Adaptor<_UniformRandomNumberGenerator, result_type> |
__aurng(__urng); |
do |
{ |
__x = result_type(2.0) * __aurng() - 1.0; |
__y = result_type(2.0) * __aurng() - 1.0; |
__r2 = __x * __x + __y * __y; |
} |
while (__r2 > 1.0 || __r2 == 0.0); |
const result_type __mult = std::sqrt(-2 * std::log(__r2) / __r2); |
_M_saved = __x * __mult; |
_M_saved_available = true; |
*__f = __y * __mult * __param.stddev() + __param.mean(); |
} |
} |
#endif |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |
#endif // _BITS_OPT_RANDOM_H |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/os_defines.h |
---|
0,0 → 1,81 |
// Specific definitions for generic platforms -*- C++ -*- |
// Copyright (C) 2000-2015 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 |
// System-specific #define, typedefs, corrections, etc, go here. This |
// file will come before all others. |
// Define as 0, if you want, to enable inlining of gthread functions. |
// By default, don't pollute libstdc++ with win32api names. |
#if !defined (__GTHREAD_HIDE_WIN32API) |
# define __GTHREAD_HIDE_WIN32API 1 |
#endif |
// Don't let win32api windef.h define min and max as macros |
// if included after c++config.h. |
#undef NOMINMAX |
#define NOMINMAX 1 |
#if defined (_GLIBCXX_DLL) |
#define _GLIBCXX_PSEUDO_VISIBILITY_default __attribute__ ((__dllimport__)) |
#else |
#define _GLIBCXX_PSEUDO_VISIBILITY_default |
#endif |
#define _GLIBCXX_PSEUDO_VISIBILITY_hidden |
#define _GLIBCXX_PSEUDO_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY_ ## V |
// See libstdc++/20806. |
#define _GLIBCXX_HAVE_DOS_BASED_FILESYSTEM 1 |
// See libstdc++/37522. |
#define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1 |
// See libstdc++/43738 |
// On native windows targets there is no ioctl function. And the existing |
// ioctlsocket function doesn't work for normal file-descriptors. |
#define _GLIBCXX_NO_IOCTL 1 |
// See libstdc++/51135 |
// Class constructors/destructors have __thiscall calling-convention on |
// IA 32-bit |
#if defined (__i386__) |
#define _GLIBCXX_CDTOR_CALLABI __thiscall |
#endif |
#ifdef __x86_64__ |
#define _GLIBCXX_LLP64 1 |
#endif |
// See libstdc++/59807 |
#define _GTHREAD_USE_MUTEX_INIT_FUNC 1 |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/stdc++.h |
---|
0,0 → 1,117 |
// C++ includes used for precompiling -*- C++ -*- |
// Copyright (C) 2003-2015 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 stdc++.h |
* This is an implementation file for a precompiled header. |
*/ |
// 17.4.1.2 Headers |
// C |
#ifndef _GLIBCXX_NO_ASSERT |
#include <cassert> |
#endif |
#include <cctype> |
#include <cerrno> |
#include <cfloat> |
#include <ciso646> |
#include <climits> |
#include <clocale> |
#include <cmath> |
#include <csetjmp> |
#include <csignal> |
#include <cstdarg> |
#include <cstddef> |
#include <cstdio> |
#include <cstdlib> |
#include <cstring> |
#include <ctime> |
#if __cplusplus >= 201103L |
#include <ccomplex> |
#include <cfenv> |
#include <cinttypes> |
#include <cstdalign> |
#include <cstdbool> |
#include <cstdint> |
#include <ctgmath> |
#include <cwchar> |
#include <cwctype> |
#endif |
// C++ |
#include <algorithm> |
#include <bitset> |
#include <complex> |
#include <deque> |
#include <exception> |
#include <fstream> |
#include <functional> |
#include <iomanip> |
#include <ios> |
#include <iosfwd> |
#include <iostream> |
#include <istream> |
#include <iterator> |
#include <limits> |
#include <list> |
#include <locale> |
#include <map> |
#include <memory> |
#include <new> |
#include <numeric> |
#include <ostream> |
#include <queue> |
#include <set> |
#include <sstream> |
#include <stack> |
#include <stdexcept> |
#include <streambuf> |
#include <string> |
#include <typeinfo> |
#include <utility> |
#include <valarray> |
#include <vector> |
#if __cplusplus >= 201103L |
#include <array> |
#include <atomic> |
#include <chrono> |
#include <condition_variable> |
#include <forward_list> |
#include <future> |
#include <initializer_list> |
#include <mutex> |
#include <random> |
#include <ratio> |
#include <regex> |
#include <scoped_allocator> |
#include <system_error> |
#include <thread> |
#include <tuple> |
#include <typeindex> |
#include <type_traits> |
#include <unordered_map> |
#include <unordered_set> |
#endif |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/stdtr1c++.h |
---|
0,0 → 1,53 |
// C++ includes used for precompiling TR1 -*- C++ -*- |
// Copyright (C) 2006-2015 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 stdtr1c++.h |
* This is an implementation file for a precompiled header. |
*/ |
#include <bits/stdc++.h> |
#include <tr1/array> |
#include <tr1/cctype> |
#include <tr1/cfenv> |
#include <tr1/cfloat> |
#include <tr1/cinttypes> |
#include <tr1/climits> |
#include <tr1/cmath> |
#include <tr1/complex> |
#include <tr1/cstdarg> |
#include <tr1/cstdbool> |
#include <tr1/cstdint> |
#include <tr1/cstdio> |
#include <tr1/cstdlib> |
#include <tr1/ctgmath> |
#include <tr1/ctime> |
#include <tr1/cwchar> |
#include <tr1/cwctype> |
#include <tr1/functional> |
#include <tr1/random> |
#include <tr1/tuple> |
#include <tr1/unordered_map> |
#include <tr1/unordered_set> |
#include <tr1/utility> |
/contrib/toolchain/gcc/5x/libstdc++-v3/include/mingw32/bits/time_members.h |
---|
0,0 → 1,92 |
// std::time_get, std::time_put implementation, generic version -*- C++ -*- |
// Copyright (C) 2001-2015 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/time_members.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.2.5.1.2 - time_get functions |
// ISO C++ 14882: 22.2.5.3.2 - time_put functions |
// |
// Written by Benjamin Kosnik <bkoz@redhat.com> |
namespace std _GLIBCXX_VISIBILITY(default) |
{ |
_GLIBCXX_BEGIN_NAMESPACE_VERSION |
template<typename _CharT> |
__timepunct<_CharT>::__timepunct(size_t __refs) |
: facet(__refs), _M_data(0) |
{ |
_M_name_timepunct = _S_get_c_name(); |
_M_initialize_timepunct(); |
} |
template<typename _CharT> |
__timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) |
: facet(__refs), _M_data(__cache) |
{ |
_M_name_timepunct = _S_get_c_name(); |
_M_initialize_timepunct(); |
} |
template<typename _CharT> |
__timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s, |
size_t __refs) |
: facet(__refs), _M_data(0) |
{ |
if (__builtin_strcmp(__s, _S_get_c_name()) != 0) |
{ |
const size_t __len = __builtin_strlen(__s) + 1; |
char* __tmp = new char[__len]; |
__builtin_memcpy(__tmp, __s, __len); |
_M_name_timepunct = __tmp; |
} |
else |
_M_name_timepunct = _S_get_c_name(); |
__try |
{ _M_initialize_timepunct(__cloc); } |
__catch(...) |
{ |
if (_M_name_timepunct != _S_get_c_name()) |
delete [] _M_name_timepunct; |
__throw_exception_again; |
} |
} |
template<typename _CharT> |
__timepunct<_CharT>::~__timepunct() |
{ |
if (_M_name_timepunct != _S_get_c_name()) |
delete [] _M_name_timepunct; |
delete _M_data; |
_S_destroy_c_locale(_M_c_locale_timepunct); |
} |
_GLIBCXX_END_NAMESPACE_VERSION |
} // namespace |