mirror of
https://github.com/arduino/Arduino.git
synced 2024-11-29 10:24:12 +01:00
Removing CodeSourcery toolchain from GIT
This commit is contained in:
parent
be2c9273c2
commit
3da8227878
@ -1,22 +0,0 @@
|
||||
<html>
|
||||
<title>Sourcery G++</title>
|
||||
<body>
|
||||
<b>Sourcery G++</b>
|
||||
<p>
|
||||
Sourcery G++ contains the complete GNU Toolchain,
|
||||
including all of the following components:
|
||||
<ul>
|
||||
<li> CodeSourcery Common Startup Code Sequence</li>
|
||||
<li> CodeSourcery Debug Sprite for ARM</li>
|
||||
<li> GNU Binary Utilities (Binutils)</li>
|
||||
<li> GNU C Compiler (GCC)</li>
|
||||
<li> GNU C++ Compiler (G++)</li>
|
||||
<li> GNU C++ Runtime Library (Libstdc++)</li>
|
||||
<li> GNU Debugger (GDB)</li>
|
||||
<li> Newlib C Library</li>
|
||||
</ul>
|
||||
Visit: <a href="http://www.codesourcery.com">http://www.codesourcery.com</a>
|
||||
to access the Sourcery G++ support website.
|
||||
</p>
|
||||
<body>
|
||||
</html>
|
@ -1,28 +0,0 @@
|
||||
Sourcery G++
|
||||
============
|
||||
|
||||
Sourcery G++ contains the complete GNU Toolchain,
|
||||
including all of the following components:
|
||||
|
||||
* CodeSourcery Common Startup Code Sequence
|
||||
|
||||
* CodeSourcery Debug Sprite for ARM
|
||||
|
||||
* GNU Binary Utilities (Binutils)
|
||||
|
||||
* GNU C Compiler (GCC)
|
||||
|
||||
* GNU C++ Compiler (G++)
|
||||
|
||||
* GNU C++ Runtime Library (Libstdc++)
|
||||
|
||||
* GNU Debugger (GDB)
|
||||
|
||||
* Newlib C Library
|
||||
|
||||
|
||||
Visit:
|
||||
|
||||
http://www.codesourcery.com
|
||||
|
||||
to access the Sourcery G++ support website.
|
@ -1,4 +0,0 @@
|
||||
The executables in this directory are for internal use by the compiler
|
||||
and may not operate correctly when used directly. This directory
|
||||
should not be placed on your PATH. Instead, you should use the
|
||||
executables in ../../bin/ and place that directory on your PATH.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,133 +0,0 @@
|
||||
/* Provide support for both ANSI and non-ANSI environments. */
|
||||
|
||||
/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be
|
||||
relied upon to have it's intended meaning. Therefore we must use our own
|
||||
concoction: _HAVE_STDC. Always use _HAVE_STDC instead of __STDC__ in newlib
|
||||
sources!
|
||||
|
||||
To get a strict ANSI C environment, define macro __STRICT_ANSI__. This will
|
||||
"comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
|
||||
files aren't affected). */
|
||||
|
||||
#ifndef _ANSIDECL_H_
|
||||
#define _ANSIDECL_H_
|
||||
|
||||
#include <newlib.h>
|
||||
#include <sys/config.h>
|
||||
|
||||
/* First try to figure out whether we really are in an ANSI C environment. */
|
||||
/* FIXME: This probably needs some work. Perhaps sys/config.h can be
|
||||
prevailed upon to give us a clue. */
|
||||
|
||||
#ifdef __STDC__
|
||||
#define _HAVE_STDC
|
||||
#endif
|
||||
|
||||
/* ISO C++. */
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C))
|
||||
#ifdef _HAVE_STD_CXX
|
||||
#define _BEGIN_STD_C namespace std { extern "C" {
|
||||
#define _END_STD_C } }
|
||||
#else
|
||||
#define _BEGIN_STD_C extern "C" {
|
||||
#define _END_STD_C }
|
||||
#endif
|
||||
#if defined(__GNUC__) && \
|
||||
( (__GNUC__ >= 4) || \
|
||||
( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 3) ) )
|
||||
#define _NOTHROW __attribute__ ((nothrow))
|
||||
#else
|
||||
#define _NOTHROW throw()
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#define _BEGIN_STD_C
|
||||
#define _END_STD_C
|
||||
#define _NOTHROW
|
||||
#endif
|
||||
|
||||
#ifdef _HAVE_STDC
|
||||
#define _PTR void *
|
||||
#define _AND ,
|
||||
#define _NOARGS void
|
||||
#define _CONST const
|
||||
#define _VOLATILE volatile
|
||||
#define _SIGNED signed
|
||||
#define _DOTS , ...
|
||||
#define _VOID void
|
||||
#ifdef __CYGWIN__
|
||||
#define _EXFUN_NOTHROW(name, proto) __cdecl name proto _NOTHROW
|
||||
#define _EXFUN(name, proto) __cdecl name proto
|
||||
#define _EXPARM(name, proto) (* __cdecl name) proto
|
||||
#define _EXFNPTR(name, proto) (__cdecl * name) proto
|
||||
#else
|
||||
#define _EXFUN_NOTHROW(name, proto) name proto _NOTHROW
|
||||
#define _EXFUN(name, proto) name proto
|
||||
#define _EXPARM(name, proto) (* name) proto
|
||||
#define _EXFNPTR(name, proto) (* name) proto
|
||||
#endif
|
||||
#define _DEFUN(name, arglist, args) name(args)
|
||||
#define _DEFUN_VOID(name) name(_NOARGS)
|
||||
#define _CAST_VOID (void)
|
||||
#ifndef _LONG_DOUBLE
|
||||
#define _LONG_DOUBLE long double
|
||||
#endif
|
||||
#ifndef _LONG_LONG_TYPE
|
||||
#define _LONG_LONG_TYPE long long
|
||||
#endif
|
||||
#ifndef _PARAMS
|
||||
#define _PARAMS(paramlist) paramlist
|
||||
#endif
|
||||
#else
|
||||
#define _PTR char *
|
||||
#define _AND ;
|
||||
#define _NOARGS
|
||||
#define _CONST
|
||||
#define _VOLATILE
|
||||
#define _SIGNED
|
||||
#define _DOTS
|
||||
#define _VOID void
|
||||
#define _EXFUN(name, proto) name()
|
||||
#define _EXFUN_NOTHROW(name, proto) name()
|
||||
#define _DEFUN(name, arglist, args) name arglist args;
|
||||
#define _DEFUN_VOID(name) name()
|
||||
#define _CAST_VOID
|
||||
#define _LONG_DOUBLE double
|
||||
#define _LONG_LONG_TYPE long
|
||||
#ifndef _PARAMS
|
||||
#define _PARAMS(paramlist) ()
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Support gcc's __attribute__ facility. */
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define _ATTRIBUTE(attrs) __attribute__ (attrs)
|
||||
#else
|
||||
#define _ATTRIBUTE(attrs)
|
||||
#endif
|
||||
|
||||
/* The traditional meaning of 'extern inline' for GCC is not
|
||||
to emit the function body unless the address is explicitly
|
||||
taken. However this behaviour is changing to match the C99
|
||||
standard, which uses 'extern inline' to indicate that the
|
||||
function body *must* be emitted. If we are using GCC, but do
|
||||
not have the new behaviour, we need to use extern inline; if
|
||||
we are using a new GCC with the C99-compatible behaviour, or
|
||||
a non-GCC compiler (which we will have to hope is C99, since
|
||||
there is no other way to achieve the effect of omitting the
|
||||
function if it isn't referenced) we just use plain 'inline',
|
||||
which c99 defines to mean more-or-less the same as the Gnu C
|
||||
'extern inline'. */
|
||||
#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
||||
/* We're using GCC, but without the new C99-compatible behaviour. */
|
||||
#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
|
||||
#else
|
||||
/* We're using GCC in C99 mode, or an unknown compiler which
|
||||
we just have to hope obeys the C99 semantics of inline. */
|
||||
#define _ELIDABLE_INLINE __inline__
|
||||
#endif
|
||||
|
||||
#endif /* _ANSIDECL_H_ */
|
@ -1,40 +0,0 @@
|
||||
/* internal use only -- mapping of "system calls" for libraries that lose
|
||||
and only provide C names, so that we end up in violation of ANSI */
|
||||
#ifndef __SYSLIST_H
|
||||
#define __SYSLIST_H
|
||||
|
||||
#ifdef MISSING_SYSCALL_NAMES
|
||||
#define _close close
|
||||
#define _execve execve
|
||||
#define _fcntl fcntl
|
||||
#define _fork fork
|
||||
#define _fstat fstat
|
||||
#define _getpid getpid
|
||||
#define _gettimeofday gettimeofday
|
||||
#define _isatty isatty
|
||||
#define _kill kill
|
||||
#define _link link
|
||||
#define _lseek lseek
|
||||
#define _mkdir mkdir
|
||||
#define _open open
|
||||
#define _read read
|
||||
#define _sbrk sbrk
|
||||
#define _stat stat
|
||||
#define _times times
|
||||
#define _unlink unlink
|
||||
#define _wait wait
|
||||
#define _write write
|
||||
#endif /* MISSING_SYSCALL_NAMES */
|
||||
|
||||
#if defined MISSING_SYSCALL_NAMES || !defined HAVE_OPENDIR
|
||||
/* If the system call interface is missing opendir, readdir, and
|
||||
closedir, there is an implementation of these functions in
|
||||
libc/posix that is implemented using open, getdents, and close.
|
||||
Note, these functions are currently not in the libc/syscalls
|
||||
directory. */
|
||||
#define _opendir opendir
|
||||
#define _readdir readdir
|
||||
#define _closedir closedir
|
||||
#endif /* MISSING_SYSCALL_NAMES || !HAVE_OPENDIR */
|
||||
|
||||
#endif /* !__SYSLIST_H_ */
|
@ -1,21 +0,0 @@
|
||||
/* libc/include/alloca.h - Allocate memory on stack */
|
||||
|
||||
/* Written 2000 by Werner Almesberger */
|
||||
/* Rearranged for general inclusion by stdlib.h.
|
||||
2001, Corinna Vinschen <vinschen@redhat.com> */
|
||||
|
||||
#ifndef _NEWLIB_ALLOCA_H
|
||||
#define _NEWLIB_ALLOCA_H
|
||||
|
||||
#include "_ansi.h"
|
||||
#include <sys/reent.h>
|
||||
|
||||
#undef alloca
|
||||
|
||||
#ifdef __GNUC__
|
||||
#define alloca(size) __builtin_alloca(size)
|
||||
#else
|
||||
void * _EXFUN(alloca,(size_t));
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,69 +0,0 @@
|
||||
/* $NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1991, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* (c) UNIX System Laboratories, Inc.
|
||||
* All or some portions of this file are derived from material licensed
|
||||
* to the University of California by American Telephone and Telegraph
|
||||
* Co. or Unix System Laboratories, Inc. and are reproduced herein with
|
||||
* the permission of UNIX System Laboratories, Inc.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Hugh Smith at The University of Guelph.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)ar.h 8.2 (Berkeley) 1/21/94
|
||||
*/
|
||||
|
||||
#ifndef _AR_H_
|
||||
#define _AR_H_
|
||||
|
||||
/* Pre-4BSD archives had these magic numbers in them. */
|
||||
#define OARMAG1 0177555
|
||||
#define OARMAG2 0177545
|
||||
|
||||
#define ARMAG "!<arch>\n" /* ar "magic number" */
|
||||
#define SARMAG 8 /* strlen(ARMAG); */
|
||||
|
||||
#define AR_EFMT1 "#1/" /* extended format #1 */
|
||||
|
||||
struct ar_hdr {
|
||||
char ar_name[16]; /* name */
|
||||
char ar_date[12]; /* modification time */
|
||||
char ar_uid[6]; /* user id */
|
||||
char ar_gid[6]; /* group id */
|
||||
char ar_mode[8]; /* octal file permissions */
|
||||
char ar_size[10]; /* size in bytes */
|
||||
#define ARFMAG "`\n"
|
||||
char ar_fmag[2]; /* consistency check */
|
||||
};
|
||||
|
||||
#endif /* !_AR_H_ */
|
@ -1,33 +0,0 @@
|
||||
/* Copyright (C) 2002 by Red Hat, Incorporated. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software
|
||||
* is freely granted, provided that this notice is preserved.
|
||||
*/
|
||||
|
||||
#ifndef _ARGZ_H_
|
||||
#define _ARGZ_H_
|
||||
|
||||
#include <errno.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "_ansi.h"
|
||||
|
||||
_BEGIN_STD_C
|
||||
|
||||
/* The newlib implementation of these functions assumes that sizeof(char) == 1. */
|
||||
error_t argz_create (char *const argv[], char **argz, size_t *argz_len);
|
||||
error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len);
|
||||
size_t argz_count (const char *argz, size_t argz_len);
|
||||
void argz_extract (char *argz, size_t argz_len, char **argv);
|
||||
void argz_stringify (char *argz, size_t argz_len, int sep);
|
||||
error_t argz_add (char **argz, size_t *argz_len, const char *str);
|
||||
error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep);
|
||||
error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len);
|
||||
error_t argz_delete (char **argz, size_t *argz_len, char *entry);
|
||||
error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry);
|
||||
char * argz_next (char *argz, size_t argz_len, const char *entry);
|
||||
error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with, unsigned *replace_count);
|
||||
|
||||
_END_STD_C
|
||||
|
||||
#endif /* _ARGZ_H_ */
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
assert.h
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "_ansi.h"
|
||||
|
||||
#undef assert
|
||||
|
||||
/* Indicate that we honor AEABI portability if requested. */
|
||||
#if defined _AEABI_PORTABILITY_LEVEL && _AEABI_PORTABILITY_LEVEL != 0 && !defined _AEABI_PORTABLE
|
||||
# define _AEABI_PORTABLE
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG /* required by ANSI standard */
|
||||
# define assert(__e) ((void)0)
|
||||
#else
|
||||
# if defined _AEABI_PORTABLE
|
||||
void _EXFUN(__aeabi_assert, (const char *, const char *, int)
|
||||
_ATTRIBUTE ((__noreturn__)));
|
||||
# define assert(__e) ((__e) ? (void)0 : __aeabi_assert (#__e, __FILE__, __LINE__))
|
||||
# else
|
||||
# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \
|
||||
__ASSERT_FUNC, #__e))
|
||||
# ifndef __ASSERT_FUNC
|
||||
/* Use g++'s demangled names in C++. */
|
||||
# if defined __cplusplus && defined __GNUC__
|
||||
# define __ASSERT_FUNC __PRETTY_FUNCTION__
|
||||
|
||||
/* C99 requires the use of __func__. */
|
||||
# elif __STDC_VERSION__ >= 199901L
|
||||
# define __ASSERT_FUNC __func__
|
||||
|
||||
/* Older versions of gcc don't have __func__ but can use __FUNCTION__. */
|
||||
# elif __GNUC__ >= 2
|
||||
# define __ASSERT_FUNC __FUNCTION__
|
||||
|
||||
/* failed to detect __func__ support. */
|
||||
# else
|
||||
# define __ASSERT_FUNC ((char *) 0)
|
||||
# endif /* !__cplusplus && __GNUC__ */
|
||||
# endif /* !__ASSERT_FUNC */
|
||||
# endif /* _AEABI_PORTABLE */
|
||||
#endif /* !NDEBUG */
|
||||
|
||||
void _EXFUN(__assert, (const char *, int, const char *)
|
||||
_ATTRIBUTE ((__noreturn__)));
|
||||
void _EXFUN(__assert_func, (const char *, int, const char *, const char *)
|
||||
_ATTRIBUTE ((__noreturn__)));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
@ -1,69 +0,0 @@
|
||||
// <algorithm> -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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/>.
|
||||
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1994
|
||||
* Hewlett-Packard Company
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Hewlett-Packard Company makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1996,1997
|
||||
* Silicon Graphics Computer Systems, Inc.
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Silicon Graphics makes no
|
||||
* representations about the suitability of this software for any
|
||||
* purpose. It is provided "as is" without express or implied warranty.
|
||||
*/
|
||||
|
||||
/** @file include/algorithm
|
||||
* This is a Standard C++ Library header.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_ALGORITHM
|
||||
#define _GLIBCXX_ALGORITHM 1
|
||||
|
||||
#pragma GCC system_header
|
||||
|
||||
#include <utility> // UK-300.
|
||||
#include <bits/stl_algobase.h>
|
||||
#include <bits/stl_algo.h>
|
||||
|
||||
#ifdef _GLIBCXX_PARALLEL
|
||||
# include <parallel/algorithm>
|
||||
#endif
|
||||
|
||||
#endif /* _GLIBCXX_ALGORITHM */
|
@ -1,47 +0,0 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2009 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
|
@ -1,108 +0,0 @@
|
||||
// Wrapper of C-language FILE struct -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 basic_file.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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 <ios>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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 ();
|
||||
|
||||
__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
|
||||
|
||||
#endif
|
@ -1,37 +0,0 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2005, 2009 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 c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CXX_ALLOCATOR_H
|
||||
#define _GLIBCXX_CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/new_allocator.h>
|
||||
#define __glibcxx_base_allocator __gnu_cxx::new_allocator
|
||||
|
||||
#endif
|
@ -1,1506 +0,0 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
// 2006, 2007, 2008, 2009 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 c++config.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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__ 20101216
|
||||
|
||||
// Macros for visibility.
|
||||
// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
// _GLIBCXX_VISIBILITY_ATTR
|
||||
# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
|
||||
|
||||
#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
# define _GLIBCXX_VISIBILITY_ATTR(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_ATTR(V) _GLIBCXX_PSEUDO_VISIBILITY(V)
|
||||
#endif
|
||||
|
||||
// Macros for deprecated.
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_ATTR
|
||||
#ifndef _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define _GLIBCXX_DEPRECATED_ATTR __attribute__ ((__deprecated__))
|
||||
#else
|
||||
# define _GLIBCXX_DEPRECATED_ATTR
|
||||
#endif
|
||||
|
||||
// Macros for activating various namespace association modes.
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
|
||||
// Guide to libstdc++ namespaces.
|
||||
/*
|
||||
namespace std
|
||||
{
|
||||
namespace __debug { }
|
||||
namespace __parallel { }
|
||||
namespace __norm { } // __normative, __shadow, __replaced
|
||||
namespace __cxx1998 { }
|
||||
|
||||
namespace tr1 { }
|
||||
}
|
||||
*/
|
||||
#if __cplusplus
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_PARALLEL
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL 1
|
||||
#endif
|
||||
|
||||
// Namespace association for profile
|
||||
#ifdef _GLIBCXX_PROFILE
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE 1
|
||||
#endif
|
||||
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
|
||||
|
||||
// Defined if any namespace association modes are active.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
# define _GLIBCXX_USE_NAMESPACE_ASSOCIATION 1
|
||||
#endif
|
||||
|
||||
// Macros for namespace scope. Either namespace std:: or the name
|
||||
// of some nested namespace within it.
|
||||
// _GLIBCXX_STD
|
||||
// _GLIBCXX_STD_D
|
||||
// _GLIBCXX_STD_P
|
||||
//
|
||||
// Macros for enclosing namespaces and possibly nested namespaces.
|
||||
// _GLIBCXX_BEGIN_NAMESPACE
|
||||
// _GLIBCXX_END_NAMESPACE
|
||||
// _GLIBCXX_BEGIN_NESTED_NAMESPACE
|
||||
// _GLIBCXX_END_NESTED_NAMESPACE
|
||||
#ifndef _GLIBCXX_USE_NAMESPACE_ASSOCIATION
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD std
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
#else
|
||||
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION // && not anything else
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD _6
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
|
||||
# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
|
||||
# endif
|
||||
|
||||
// debug
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
// debug + parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// profile
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL || _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
# error Cannot use -D_GLIBCXX_PROFILE with -D_GLIBCXX_DEBUG or \
|
||||
-D_GLIBCXX_PARALLEL
|
||||
# endif
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
# if __NO_INLINE__ && !__GXX_WEAK__
|
||||
# warning currently using namespace associated mode which may fail \
|
||||
without inlining due to lack of weak symbols
|
||||
# endif
|
||||
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE } }
|
||||
#endif
|
||||
|
||||
// Namespace associations for debug mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __debug { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for parallel mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __parallel { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for profile mode
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __profile { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for versioning mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
namespace std
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
namespace tr1
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
// Define if compatibility should be provided for -mlong-double-64
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Namespace associations for long double 128 mode.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
inline namespace __gnu_cxx_ldbl128 { }
|
||||
}
|
||||
# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128::
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 {
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE }
|
||||
#else
|
||||
# define _GLIBCXX_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// Defines for C compatibility. In particular, define extern "C"
|
||||
// linkage only when using C++.
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C extern "C" {
|
||||
# define _GLIBCXX_END_EXTERN_C }
|
||||
|
||||
#else // !__cplusplus
|
||||
# undef _GLIBCXX_BEGIN_NAMESPACE
|
||||
# undef _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NAMESPACE
|
||||
# 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
|
||||
|
||||
// Allow use of "export template." This is currently not a feature
|
||||
// that g++ supports.
|
||||
// #define _GLIBCXX_EXPORT_TEMPLATE 1
|
||||
|
||||
// Allow use of the GNU syntax extension, "extern template." This
|
||||
// extension is fully documented in the g++ manual, but in a nutshell,
|
||||
// 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.
|
||||
#ifndef _GLIBCXX_EXTERN_TEMPLATE
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE 1
|
||||
#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
|
||||
|
||||
// Assert.
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL)
|
||||
#define __glibcxx_assert(_Condition)
|
||||
#else
|
||||
_GLIBCXX_BEGIN_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();
|
||||
}
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#define __glibcxx_assert(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, \
|
||||
__PRETTY_FUNCTION__, #_Condition); \
|
||||
} while (false)
|
||||
#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
|
||||
|
||||
#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
|
||||
|
||||
#ifndef _GLIBCXX_NOTHROW
|
||||
# ifdef __cplusplus
|
||||
# define _GLIBCXX_NOTHROW throw()
|
||||
# else
|
||||
# define _GLIBCXX_NOTHROW __attribute__((__nothrow__))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// End of prewritten config; the discovered settings 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. */
|
||||
/* #undef _GLIBCXX_HAVE_ACOSL */
|
||||
|
||||
/* Define to 1 if you have the `asinf' function. */
|
||||
#define _GLIBCXX_HAVE_ASINF 1
|
||||
|
||||
/* Define to 1 if you have the `asinl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ASINL */
|
||||
|
||||
/* Define to 1 if the target assembler supports .symver directive. */
|
||||
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
|
||||
|
||||
/* Define to 1 if you have the `atan2f' function. */
|
||||
#define _GLIBCXX_HAVE_ATAN2F 1
|
||||
|
||||
/* Define to 1 if you have the `atan2l' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATAN2L */
|
||||
|
||||
/* Define to 1 if you have the `atanf' function. */
|
||||
#define _GLIBCXX_HAVE_ATANF 1
|
||||
|
||||
/* Define to 1 if you have the `atanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATANL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_CEILL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_COSHL */
|
||||
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_DLFCN_H */
|
||||
|
||||
/* Define if EBADMSG exists. */
|
||||
#define _GLIBCXX_HAVE_EBADMSG 1
|
||||
|
||||
/* Define if ECANCELED exists. */
|
||||
#define _GLIBCXX_HAVE_ECANCELED 1
|
||||
|
||||
/* Define if EIDRM exists. */
|
||||
#define _GLIBCXX_HAVE_EIDRM 1
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_ENDIAN_H */
|
||||
|
||||
/* Define if ENODATA exists. */
|
||||
#define _GLIBCXX_HAVE_ENODATA 1
|
||||
|
||||
/* Define if ENOLINK exists. */
|
||||
#define _GLIBCXX_HAVE_ENOLINK 1
|
||||
|
||||
/* Define if ENOSR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSR 1
|
||||
|
||||
/* Define if ENOSTR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSTR 1
|
||||
|
||||
/* Define if ENOTRECOVERABLE exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTRECOVERABLE 1
|
||||
|
||||
/* Define if ENOTSUP exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTSUP 1
|
||||
|
||||
/* Define if EOVERFLOW exists. */
|
||||
#define _GLIBCXX_HAVE_EOVERFLOW 1
|
||||
|
||||
/* Define if EOWNERDEAD exists. */
|
||||
#define _GLIBCXX_HAVE_EOWNERDEAD 1
|
||||
|
||||
/* Define if EPROTO exists. */
|
||||
#define _GLIBCXX_HAVE_EPROTO 1
|
||||
|
||||
/* Define if ETIME exists. */
|
||||
#define _GLIBCXX_HAVE_ETIME 1
|
||||
|
||||
/* Define if ETXTBSY exists. */
|
||||
#define _GLIBCXX_HAVE_ETXTBSY 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_EXPL */
|
||||
|
||||
/* Define to 1 if you have the `fabsf' function. */
|
||||
#define _GLIBCXX_HAVE_FABSF 1
|
||||
|
||||
/* Define to 1 if you have the `fabsl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FABSL */
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_FENV_H */
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FLOORL */
|
||||
|
||||
/* Define to 1 if you have the `fmodf' function. */
|
||||
#define _GLIBCXX_HAVE_FMODF 1
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
/* Define if gthr-default.h exists (meaning that threading support is
|
||||
enabled). */
|
||||
/* #undef _GLIBCXX_HAVE_GTHR_DEFAULT */
|
||||
|
||||
/* Define to 1 if you have the `hypot' function. */
|
||||
#define _GLIBCXX_HAVE_HYPOT 1
|
||||
|
||||
/* 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 if you have the iconv() function. */
|
||||
#define _GLIBCXX_HAVE_ICONV 1
|
||||
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #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 */
|
||||
|
||||
/* Defined if iswblank exists. */
|
||||
#define _GLIBCXX_HAVE_ISWBLANK 1
|
||||
|
||||
/* Define if LC_MESSAGES is available in <locale.h>. */
|
||||
#define _GLIBCXX_HAVE_LC_MESSAGES 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpf' function. */
|
||||
#define _GLIBCXX_HAVE_LDEXPF 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LDEXPL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_LOG10L */
|
||||
|
||||
/* Define to 1 if you have the `logf' function. */
|
||||
#define _GLIBCXX_HAVE_LOGF 1
|
||||
|
||||
/* Define to 1 if you have the `logl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LOGL */
|
||||
|
||||
/* Define to 1 if you have the <machine/endian.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
|
||||
|
||||
/* Define to 1 if you have the <machine/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_PARAM_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_MEMORY_H */
|
||||
|
||||
/* Define to 1 if you have the `modf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODF */
|
||||
|
||||
/* Define to 1 if you have the `modff' function. */
|
||||
#define _GLIBCXX_HAVE_MODFF 1
|
||||
|
||||
/* Define to 1 if you have the `modfl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODFL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_POWL */
|
||||
|
||||
/* Define to 1 if you have the `qfpclass' function. */
|
||||
/* #undef _GLIBCXX_HAVE_QFPCLASS */
|
||||
|
||||
/* 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. */
|
||||
/* #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. */
|
||||
#define _GLIBCXX_HAVE_SQRTF 1
|
||||
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDBOOL_H 1
|
||||
|
||||
/* 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>. */
|
||||
#define _GLIBCXX_HAVE_STRERROR_R 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_STRINGS_H */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_STRTOLD */
|
||||
|
||||
/* Define if strxfrm_l is available in <string.h>. */
|
||||
/* #undef _GLIBCXX_HAVE_STRXFRM_L */
|
||||
|
||||
/* 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. */
|
||||
#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
|
||||
|
||||
/* 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/stat.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_STAT_H 1
|
||||
|
||||
/* 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>. */
|
||||
/* #undef _GLIBCXX_HAVE_S_ISREG */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_TANHL */
|
||||
|
||||
/* Define to 1 if you have the `tanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_TANL */
|
||||
|
||||
/* Define to 1 if you have the <tgmath.h> header file. */
|
||||
#define _GLIBCXX_HAVE_TGMATH_H 1
|
||||
|
||||
/* Define to 1 if the target supports thread-local storage. */
|
||||
/* #undef _GLIBCXX_HAVE_TLS */
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_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
|
||||
|
||||
/* 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 as const if the declaration of iconv() needs const. */
|
||||
/* #undef _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 builtin atomic operations for bool are supported on this host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_1 */
|
||||
|
||||
/* Define if builtin atomic operations for short are supported on this host.
|
||||
*/
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_2 */
|
||||
|
||||
/* Define if builtin atomic operations for int are supported on this host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_4 */
|
||||
|
||||
/* Define if builtin atomic operations for long long are supported on this
|
||||
host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_8 */
|
||||
|
||||
/* Define to use concept checking code from the boost libraries. */
|
||||
/* #undef _GLIBCXX_CONCEPT_CHECKS */
|
||||
|
||||
/* Define to 1 if building for use with CSLIBC, or 0 otherwise. */
|
||||
#define _GLIBCXX_CSLIBC 0
|
||||
|
||||
/* Define if a fully dynamic basic_string is wanted. */
|
||||
/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */
|
||||
|
||||
/* 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 if EOF == -1, SEEK_CUR == 1, SEEK_END == 2. */
|
||||
#define _GLIBCXX_STDIO_MACROS 1
|
||||
|
||||
/* 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 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. */
|
||||
#define _GLIBCXX_USE_C99_CTYPE_TR1 1
|
||||
|
||||
/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
|
||||
namespace std::tr1. */
|
||||
/* #undef _GLIBCXX_USE_C99_FENV_TR1 */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
|
||||
|
||||
/* 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 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. */
|
||||
/* #undef _GLIBCXX_USE_DECIMAL_FLOAT */
|
||||
|
||||
/* Defined if gettimeofday is available. */
|
||||
/* #undef _GLIBCXX_USE_GETTIMEOFDAY */
|
||||
|
||||
/* 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 /dev/random and /dev/urandom are available for the random_device
|
||||
of TR1 (Chapter 5.1). */
|
||||
/* #undef _GLIBCXX_USE_RANDOM_TR1 */
|
||||
|
||||
/* Defined if sched_yield is available. */
|
||||
/* #undef _GLIBCXX_USE_SCHED_YIELD */
|
||||
|
||||
/* Define if code specialized for wchar_t should be used. */
|
||||
#define _GLIBCXX_USE_WCHAR_T 1
|
||||
|
||||
#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
|
@ -1,49 +0,0 @@
|
||||
// Underlying io library details -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
// 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 c++io.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// c_io_stdio.h - Defines for using "C" stdio.h
|
||||
|
||||
#ifndef _GLIBCXX_CXX_IO_H
|
||||
#define _GLIBCXX_CXX_IO_H 1
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstddef>
|
||||
#include <bits/gthr.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef __gthread_mutex_t __c_lock;
|
||||
|
||||
// for basic_file.h
|
||||
typedef FILE __c_file;
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
#include <cstddef>
|
||||
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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, NULL);
|
||||
char* __sav = NULL;
|
||||
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
|
||||
|
||||
#endif
|
@ -1,33 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005, 2009 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 cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
#endif
|
@ -1,57 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
|
||||
|
||||
// Support for Solaris 2.5.1
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @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 char mask;
|
||||
static const mask upper = _U;
|
||||
static const mask lower = _L;
|
||||
static const mask alpha = _U | _L;
|
||||
static const mask digit = _N;
|
||||
static const mask xdigit = _X | _N;
|
||||
static const mask space = _S;
|
||||
static const mask print = _P | _U | _L | _N | _B;
|
||||
static const mask graph = _P | _U | _L | _N;
|
||||
static const mask cntrl = _C;
|
||||
static const mask punct = _P;
|
||||
static const mask alnum = _U | _L | _N;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -1,71 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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
|
@ -1,98 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
ctype<char>::classic_table() throw()
|
||||
{ return _ctype_ + 1; }
|
||||
|
||||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_toupper(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_tolower(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
@ -1,81 +0,0 @@
|
||||
// Control various target specific ABI tweaks. ARM version.
|
||||
|
||||
// Copyright (C) 2004, 2006, 2008, 2009 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 cxxabi_tweaks.h
|
||||
* The header provides an CPU-variable interface to the C++ ABI.
|
||||
*/
|
||||
|
||||
#ifndef _CXXABI_TWEAKS_H
|
||||
#define _CXXABI_TWEAKS_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace __cxxabiv1
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#ifdef __ARM_EABI__
|
||||
// The ARM EABI uses the least significant bit of a 32-bit
|
||||
// guard variable. */
|
||||
#define _GLIBCXX_GUARD_TEST(x) ((*(x) & 1) != 0)
|
||||
#define _GLIBCXX_GUARD_SET(x) *(x) = 1
|
||||
#define _GLIBCXX_GUARD_BIT 1
|
||||
#define _GLIBCXX_GUARD_PENDING_BIT __guard_test_bit (1, 1)
|
||||
#define _GLIBCXX_GUARD_WAITING_BIT __guard_test_bit (2, 1)
|
||||
typedef int __guard;
|
||||
|
||||
// We also want the element size in array cookies.
|
||||
#define _GLIBCXX_ELTSIZE_IN_COOKIE 1
|
||||
|
||||
// __cxa_vec_ctor should return a pointer to the array.
|
||||
typedef void * __cxa_vec_ctor_return_type;
|
||||
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return x
|
||||
// Constructors and destructors return the "this" pointer.
|
||||
typedef void * __cxa_cdtor_return_type;
|
||||
|
||||
#else // __ARM_EABI__
|
||||
|
||||
// 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;
|
||||
|
||||
#endif //!__ARM_EABI__
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // namespace __cxxabiv1
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,175 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2007, 2008, 2009 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 error_constants.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_ERROR_CONSTANTS
|
||||
#define _GLIBCXX_ERROR_CONSTANTS 1
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <cerrno>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EBADMSG
|
||||
bad_message = EBADMSG,
|
||||
#endif
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EIDRM
|
||||
identifier_removed = EIDRM,
|
||||
#endif
|
||||
|
||||
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,
|
||||
no_child_process = ECHILD,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOLINK
|
||||
no_link = ENOLINK,
|
||||
#endif
|
||||
|
||||
no_lock_available = ENOLCK,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENODATA
|
||||
no_message_available = ENODATA,
|
||||
#endif
|
||||
|
||||
no_message = ENOMSG,
|
||||
no_protocol_option = ENOPROTOOPT,
|
||||
no_space_on_device = ENOSPC,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOSR
|
||||
no_stream_resources = ENOSR,
|
||||
#endif
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOSTR
|
||||
not_a_stream = ENOSTR,
|
||||
#endif
|
||||
|
||||
not_connected = ENOTCONN,
|
||||
not_enough_memory = ENOMEM,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOTSUP
|
||||
not_supported = ENOTSUP,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ECANCELED
|
||||
operation_canceled = ECANCELED,
|
||||
#endif
|
||||
|
||||
operation_in_progress = EINPROGRESS,
|
||||
operation_not_permitted = EPERM,
|
||||
operation_not_supported = EOPNOTSUPP,
|
||||
operation_would_block = EWOULDBLOCK,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EOWNERDEAD
|
||||
owner_dead = EOWNERDEAD,
|
||||
#endif
|
||||
|
||||
permission_denied = EACCES,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EPROTO
|
||||
protocol_error = EPROTO,
|
||||
#endif
|
||||
|
||||
protocol_not_supported = EPROTONOSUPPORT,
|
||||
read_only_file_system = EROFS,
|
||||
resource_deadlock_would_occur = EDEADLK,
|
||||
resource_unavailable_try_again = EAGAIN,
|
||||
result_out_of_range = ERANGE,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE
|
||||
state_not_recoverable = ENOTRECOVERABLE,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ETIME
|
||||
stream_timeout = ETIME,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ETXTBSY
|
||||
text_file_busy = ETXTBSY,
|
||||
#endif
|
||||
|
||||
timed_out = ETIMEDOUT,
|
||||
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
|
||||
|
||||
#endif
|
@ -1,71 +0,0 @@
|
||||
// C++ includes used for precompiling extensions -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006, 2007, 2008, 2009 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.
|
||||
*/
|
||||
|
||||
#ifndef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#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
|
@ -1,292 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
|
||||
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_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);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#undef _GLIBCXX_UNUSED
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
|
@ -1,895 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
2008, 2009 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
|
||||
|
||||
/* Some implementations of <pthread.h> require this to be defined. */
|
||||
#if !defined(_REENTRANT) && defined(__osf__)
|
||||
#define _REENTRANT 1
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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_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}
|
||||
|
||||
#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)
|
||||
|
||||
/* On Tru64, /usr/include/pthread.h uses #pragma extern_prefix "__" to
|
||||
map a subset of the POSIX pthread API to mangled versions of their
|
||||
names. */
|
||||
#if defined(__osf__) && defined(_PTHREAD_USE_MANGLED_NAMES_)
|
||||
#define __gthrw3(name) __gthrw2(__gthrw_ ## name, __ ## name, name)
|
||||
__gthrw3(pthread_once)
|
||||
__gthrw3(pthread_getspecific)
|
||||
__gthrw3(pthread_setspecific)
|
||||
|
||||
__gthrw3(pthread_create)
|
||||
__gthrw3(pthread_join)
|
||||
__gthrw3(pthread_detach)
|
||||
__gthrw3(pthread_equal)
|
||||
__gthrw3(pthread_self)
|
||||
__gthrw3(pthread_cancel)
|
||||
__gthrw3(sched_yield)
|
||||
|
||||
__gthrw3(pthread_mutex_lock)
|
||||
__gthrw3(pthread_mutex_trylock)
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
__gthrw3(pthread_mutex_timedlock)
|
||||
#endif
|
||||
#endif /* _POSIX_TIMEOUTS */
|
||||
__gthrw3(pthread_mutex_unlock)
|
||||
__gthrw3(pthread_mutex_init)
|
||||
__gthrw3(pthread_mutex_destroy)
|
||||
|
||||
__gthrw3(pthread_cond_broadcast)
|
||||
__gthrw3(pthread_cond_signal)
|
||||
__gthrw3(pthread_cond_wait)
|
||||
__gthrw3(pthread_cond_timedwait)
|
||||
__gthrw3(pthread_cond_destroy)
|
||||
#else
|
||||
__gthrw(pthread_once)
|
||||
__gthrw(pthread_getspecific)
|
||||
__gthrw(pthread_setspecific)
|
||||
|
||||
__gthrw(pthread_create)
|
||||
__gthrw(pthread_join)
|
||||
__gthrw(pthread_equal)
|
||||
__gthrw(pthread_self)
|
||||
__gthrw(pthread_detach)
|
||||
__gthrw(pthread_cancel)
|
||||
__gthrw(sched_yield)
|
||||
|
||||
__gthrw(pthread_mutex_lock)
|
||||
__gthrw(pthread_mutex_trylock)
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
__gthrw(pthread_mutex_timedlock)
|
||||
#endif
|
||||
#endif /* _POSIX_TIMEOUTS */
|
||||
__gthrw(pthread_mutex_unlock)
|
||||
__gthrw(pthread_mutex_init)
|
||||
__gthrw(pthread_mutex_destroy)
|
||||
|
||||
__gthrw(pthread_cond_broadcast)
|
||||
__gthrw(pthread_cond_signal)
|
||||
__gthrw(pthread_cond_wait)
|
||||
__gthrw(pthread_cond_timedwait)
|
||||
__gthrw(pthread_cond_destroy)
|
||||
#endif
|
||||
|
||||
__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. */
|
||||
#if defined(__osf__) && defined(_PTHREAD_USE_MANGLED_NAMES_)
|
||||
__gthrw3(pthread_cond_init)
|
||||
__gthrw3(pthread_exit)
|
||||
#else
|
||||
__gthrw(pthread_cond_init)
|
||||
__gthrw(pthread_exit)
|
||||
#endif /* __osf__ && _PTHREAD_USE_MANGLED_NAMES_ */
|
||||
#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 */
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
static void *const __gthread_active_ptr
|
||||
= __extension__ (void *) &__gthrw_(pthread_cancel);
|
||||
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 pthread
|
||||
library or not. However, these interfaces aren't available in early
|
||||
libc versions. We also can't use pthread_once as some libc versions
|
||||
call the init function. So, we use pthread_create to check whether it
|
||||
is possible to create a thread or not. The stub implementation returns
|
||||
the error number ENOSYS. */
|
||||
|
||||
#if defined(__hppa__) && defined(__hpux__)
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
static volatile int __gthread_active = -1;
|
||||
|
||||
static void *
|
||||
__gthread_start (void *__arg __attribute__((unused)))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void __gthread_active_init (void) __attribute__((noinline));
|
||||
static void
|
||||
__gthread_active_init (void)
|
||||
{
|
||||
static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
pthread_t __t;
|
||||
pthread_attr_t __a;
|
||||
int __result;
|
||||
|
||||
__gthrw_(pthread_mutex_lock) (&__gthread_active_mutex);
|
||||
if (__gthread_active < 0)
|
||||
{
|
||||
__gthrw_(pthread_attr_init) (&__a);
|
||||
__gthrw_(pthread_attr_setdetachstate) (&__a, PTHREAD_CREATE_DETACHED);
|
||||
__result = __gthrw_(pthread_create) (&__t, &__a, __gthread_start, NULL);
|
||||
if (__result != ENOSYS)
|
||||
__gthread_active = 1;
|
||||
else
|
||||
__gthread_active = 0;
|
||||
__gthrw_(pthread_attr_destroy) (&__a);
|
||||
}
|
||||
__gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
/* 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))
|
||||
{
|
||||
__gthread_active_init ();
|
||||
__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, NULL, (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 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;
|
||||
}
|
||||
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
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
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__gthread_active_p ())
|
||||
return __gthrw_(pthread_mutex_unlock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||
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);
|
||||
}
|
||||
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
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
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
return __gthread_mutex_unlock (__mutex);
|
||||
}
|
||||
|
||||
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_timedwait_recursive (__gthread_cond_t *__cond,
|
||||
__gthread_recursive_mutex_t *__mutex,
|
||||
const __gthread_time_t *__abs_timeout)
|
||||
{
|
||||
return __gthread_cond_timedwait (__cond, __mutex, __abs_timeout);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_cond_destroy (__gthread_cond_t* __cond)
|
||||
{
|
||||
return __gthrw_(pthread_cond_destroy) (__cond);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_POSIX_H */
|
@ -1,292 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
|
||||
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_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);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#undef _GLIBCXX_UNUSED
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
|
@ -1,229 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc.
|
||||
Compile this one with gcc.
|
||||
Copyright (C) 2004, 2005, 2008, 2009 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/>. */
|
||||
|
||||
/* TPF needs its own version of gthr-*.h because TPF always links to
|
||||
the thread library. However, for performance reasons we still do not
|
||||
want to issue thread api calls unless a check is made to see that we
|
||||
are running as a thread. */
|
||||
|
||||
#ifndef _GLIBCXX_GCC_GTHR_TPF_H
|
||||
#define _GLIBCXX_GCC_GTHR_TPF_H
|
||||
|
||||
/* POSIX threads specific definitions.
|
||||
Easy, since the interface is just one-to-one mapping. */
|
||||
|
||||
#define __GTHREADS 1
|
||||
|
||||
/* Some implementations of <pthread.h> require this to be defined. */
|
||||
#ifndef _REENTRANT
|
||||
#define _REENTRANT 1
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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;
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
|
||||
#define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
|
||||
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function
|
||||
|
||||
#define NOTATHREAD 00
|
||||
#define ECBBASEPTR (unsigned long int) *(unsigned int *)0x00000514u
|
||||
#define ECBPG2PTR ECBBASEPTR + 0x1000
|
||||
#define CE2THRCPTR *((unsigned char *)(ECBPG2PTR + 16))
|
||||
#define __tpf_pthread_active() (CE2THRCPTR != NOTATHREAD)
|
||||
|
||||
#if __GXX_WEAK__ && _GLIBCXX_GTHREAD_USE_WEAK
|
||||
# define __gthrw(name) \
|
||||
static __typeof(name) __gthrw_ ## name __attribute__ ((__weakref__(#name)));
|
||||
# define __gthrw_(name) __gthrw_ ## name
|
||||
#else
|
||||
# define __gthrw(name)
|
||||
# define __gthrw_(name) name
|
||||
#endif
|
||||
|
||||
__gthrw(pthread_once)
|
||||
__gthrw(pthread_key_create)
|
||||
__gthrw(pthread_key_delete)
|
||||
__gthrw(pthread_getspecific)
|
||||
__gthrw(pthread_setspecific)
|
||||
__gthrw(pthread_create)
|
||||
|
||||
__gthrw(pthread_mutex_lock)
|
||||
__gthrw(pthread_mutex_trylock)
|
||||
__gthrw(pthread_mutex_unlock)
|
||||
__gthrw(pthread_mutexattr_init)
|
||||
__gthrw(pthread_mutexattr_settype)
|
||||
__gthrw(pthread_mutexattr_destroy)
|
||||
__gthrw(pthread_mutex_init)
|
||||
__gthrw(pthread_mutex_destroy)
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_once) (__once, __func);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_key_create) (__key, __dtor);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_key_delete (__gthread_key_t __key)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_key_delete) (__key);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void *
|
||||
__gthread_getspecific (__gthread_key_t __key)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_getspecific) (__key);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_setspecific) (__key, __ptr);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_destroy) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_lock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_trylock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_unlock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_lock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_trylock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_unlock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
{
|
||||
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 /* ! _GLIBCXX_GCC_GTHR_TPF_H */
|
@ -1,173 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1998, 2004, 2008, 2009 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
|
||||
some systems can't initialize a mutex without a
|
||||
function call. On such systems, define this to a
|
||||
function which looks like this:
|
||||
void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *)
|
||||
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_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);
|
||||
int __gthread_cond_timedwait_recursive (__gthread_cond_t *cond,
|
||||
__gthread_recursive_mutex_t *mutex,
|
||||
const __gthread_time_t *abs_time)
|
||||
|
||||
Currently supported threads packages are
|
||||
TPF threads with -D__tpf__
|
||||
POSIX/Unix98 threads with -D_PTHREADS
|
||||
POSIX/Unix95 threads with -D_PTHREADS95
|
||||
DCE threads with -D_DCE_THREADS
|
||||
Solaris/UI threads with -D_SOLARIS_THREADS
|
||||
|
||||
*/
|
||||
|
||||
/* Check first for thread specific defines. */
|
||||
#if defined (_GLIBCXX___tpf_GLIBCXX___)
|
||||
#include <bits/gthr-tpf.h>
|
||||
#elif _GLIBCXX__PTHREADS
|
||||
#include <bits/gthr-posix.h>
|
||||
#elif _GLIBCXX__PTHREADS95
|
||||
#include <bits/gthr-posix95.h>
|
||||
#elif _GLIBCXX__DCE_THREADS
|
||||
#include <bits/gthr-dce.h>
|
||||
#elif _GLIBCXX__SOLARIS_THREADS
|
||||
#include <bits/gthr-solaris.h>
|
||||
|
||||
/* Include GTHREAD_FILE if one is defined. */
|
||||
#elif defined(_GLIBCXX_HAVE_GTHR_DEFAULT)
|
||||
#if __GXX_WEAK__
|
||||
#ifndef _GLIBCXX_GTHREAD_USE_WEAK
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 1
|
||||
#endif
|
||||
#endif
|
||||
#include <bits/gthr-default.h>
|
||||
|
||||
/* Fallback to single thread definitions. */
|
||||
#else
|
||||
#include <bits/gthr-single.h>
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX_HIDE_EXPORTS
|
||||
#pragma GCC visibility pop
|
||||
#endif
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_H */
|
@ -1,90 +0,0 @@
|
||||
// std::messages implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 messages_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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
|
@ -1,52 +0,0 @@
|
||||
// Specific definitions for newlib -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2005, 2009 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 os_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES 1
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 0
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,115 +0,0 @@
|
||||
// C++ includes used for precompiling -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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>
|
||||
|
||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#include <ccomplex>
|
||||
#include <cfenv>
|
||||
#include <cinttypes>
|
||||
#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>
|
||||
|
||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#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 <system_error>
|
||||
#include <thread>
|
||||
#include <tuple>
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#endif
|
@ -1,53 +0,0 @@
|
||||
// C++ includes used for precompiling TR1 -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006, 2009 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>
|
@ -1,90 +0,0 @@
|
||||
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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 time_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL)
|
||||
{
|
||||
_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(NULL)
|
||||
{
|
||||
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
|
@ -1,47 +0,0 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2009 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
|
@ -1,108 +0,0 @@
|
||||
// Wrapper of C-language FILE struct -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 basic_file.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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 <ios>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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 ();
|
||||
|
||||
__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
|
||||
|
||||
#endif
|
@ -1,37 +0,0 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2005, 2009 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 c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CXX_ALLOCATOR_H
|
||||
#define _GLIBCXX_CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/new_allocator.h>
|
||||
#define __glibcxx_base_allocator __gnu_cxx::new_allocator
|
||||
|
||||
#endif
|
@ -1,1506 +0,0 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
// 2006, 2007, 2008, 2009 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 c++config.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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__ 20101216
|
||||
|
||||
// Macros for visibility.
|
||||
// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
// _GLIBCXX_VISIBILITY_ATTR
|
||||
# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
|
||||
|
||||
#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
# define _GLIBCXX_VISIBILITY_ATTR(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_ATTR(V) _GLIBCXX_PSEUDO_VISIBILITY(V)
|
||||
#endif
|
||||
|
||||
// Macros for deprecated.
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_ATTR
|
||||
#ifndef _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define _GLIBCXX_DEPRECATED_ATTR __attribute__ ((__deprecated__))
|
||||
#else
|
||||
# define _GLIBCXX_DEPRECATED_ATTR
|
||||
#endif
|
||||
|
||||
// Macros for activating various namespace association modes.
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
|
||||
// Guide to libstdc++ namespaces.
|
||||
/*
|
||||
namespace std
|
||||
{
|
||||
namespace __debug { }
|
||||
namespace __parallel { }
|
||||
namespace __norm { } // __normative, __shadow, __replaced
|
||||
namespace __cxx1998 { }
|
||||
|
||||
namespace tr1 { }
|
||||
}
|
||||
*/
|
||||
#if __cplusplus
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_PARALLEL
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL 1
|
||||
#endif
|
||||
|
||||
// Namespace association for profile
|
||||
#ifdef _GLIBCXX_PROFILE
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE 1
|
||||
#endif
|
||||
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
|
||||
|
||||
// Defined if any namespace association modes are active.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
# define _GLIBCXX_USE_NAMESPACE_ASSOCIATION 1
|
||||
#endif
|
||||
|
||||
// Macros for namespace scope. Either namespace std:: or the name
|
||||
// of some nested namespace within it.
|
||||
// _GLIBCXX_STD
|
||||
// _GLIBCXX_STD_D
|
||||
// _GLIBCXX_STD_P
|
||||
//
|
||||
// Macros for enclosing namespaces and possibly nested namespaces.
|
||||
// _GLIBCXX_BEGIN_NAMESPACE
|
||||
// _GLIBCXX_END_NAMESPACE
|
||||
// _GLIBCXX_BEGIN_NESTED_NAMESPACE
|
||||
// _GLIBCXX_END_NESTED_NAMESPACE
|
||||
#ifndef _GLIBCXX_USE_NAMESPACE_ASSOCIATION
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD std
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
#else
|
||||
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION // && not anything else
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD _6
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
|
||||
# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
|
||||
# endif
|
||||
|
||||
// debug
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
// debug + parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// profile
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL || _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
# error Cannot use -D_GLIBCXX_PROFILE with -D_GLIBCXX_DEBUG or \
|
||||
-D_GLIBCXX_PARALLEL
|
||||
# endif
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
# if __NO_INLINE__ && !__GXX_WEAK__
|
||||
# warning currently using namespace associated mode which may fail \
|
||||
without inlining due to lack of weak symbols
|
||||
# endif
|
||||
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE } }
|
||||
#endif
|
||||
|
||||
// Namespace associations for debug mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __debug { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for parallel mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __parallel { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for profile mode
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __profile { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for versioning mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
namespace std
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
namespace tr1
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
// Define if compatibility should be provided for -mlong-double-64
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Namespace associations for long double 128 mode.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
inline namespace __gnu_cxx_ldbl128 { }
|
||||
}
|
||||
# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128::
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 {
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE }
|
||||
#else
|
||||
# define _GLIBCXX_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// Defines for C compatibility. In particular, define extern "C"
|
||||
// linkage only when using C++.
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C extern "C" {
|
||||
# define _GLIBCXX_END_EXTERN_C }
|
||||
|
||||
#else // !__cplusplus
|
||||
# undef _GLIBCXX_BEGIN_NAMESPACE
|
||||
# undef _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NAMESPACE
|
||||
# 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
|
||||
|
||||
// Allow use of "export template." This is currently not a feature
|
||||
// that g++ supports.
|
||||
// #define _GLIBCXX_EXPORT_TEMPLATE 1
|
||||
|
||||
// Allow use of the GNU syntax extension, "extern template." This
|
||||
// extension is fully documented in the g++ manual, but in a nutshell,
|
||||
// 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.
|
||||
#ifndef _GLIBCXX_EXTERN_TEMPLATE
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE 1
|
||||
#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
|
||||
|
||||
// Assert.
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL)
|
||||
#define __glibcxx_assert(_Condition)
|
||||
#else
|
||||
_GLIBCXX_BEGIN_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();
|
||||
}
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#define __glibcxx_assert(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, \
|
||||
__PRETTY_FUNCTION__, #_Condition); \
|
||||
} while (false)
|
||||
#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
|
||||
|
||||
#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
|
||||
|
||||
#ifndef _GLIBCXX_NOTHROW
|
||||
# ifdef __cplusplus
|
||||
# define _GLIBCXX_NOTHROW throw()
|
||||
# else
|
||||
# define _GLIBCXX_NOTHROW __attribute__((__nothrow__))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// End of prewritten config; the discovered settings 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. */
|
||||
/* #undef _GLIBCXX_HAVE_ACOSL */
|
||||
|
||||
/* Define to 1 if you have the `asinf' function. */
|
||||
#define _GLIBCXX_HAVE_ASINF 1
|
||||
|
||||
/* Define to 1 if you have the `asinl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ASINL */
|
||||
|
||||
/* Define to 1 if the target assembler supports .symver directive. */
|
||||
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
|
||||
|
||||
/* Define to 1 if you have the `atan2f' function. */
|
||||
#define _GLIBCXX_HAVE_ATAN2F 1
|
||||
|
||||
/* Define to 1 if you have the `atan2l' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATAN2L */
|
||||
|
||||
/* Define to 1 if you have the `atanf' function. */
|
||||
#define _GLIBCXX_HAVE_ATANF 1
|
||||
|
||||
/* Define to 1 if you have the `atanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATANL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_CEILL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_COSHL */
|
||||
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_DLFCN_H */
|
||||
|
||||
/* Define if EBADMSG exists. */
|
||||
#define _GLIBCXX_HAVE_EBADMSG 1
|
||||
|
||||
/* Define if ECANCELED exists. */
|
||||
#define _GLIBCXX_HAVE_ECANCELED 1
|
||||
|
||||
/* Define if EIDRM exists. */
|
||||
#define _GLIBCXX_HAVE_EIDRM 1
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_ENDIAN_H */
|
||||
|
||||
/* Define if ENODATA exists. */
|
||||
#define _GLIBCXX_HAVE_ENODATA 1
|
||||
|
||||
/* Define if ENOLINK exists. */
|
||||
#define _GLIBCXX_HAVE_ENOLINK 1
|
||||
|
||||
/* Define if ENOSR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSR 1
|
||||
|
||||
/* Define if ENOSTR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSTR 1
|
||||
|
||||
/* Define if ENOTRECOVERABLE exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTRECOVERABLE 1
|
||||
|
||||
/* Define if ENOTSUP exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTSUP 1
|
||||
|
||||
/* Define if EOVERFLOW exists. */
|
||||
#define _GLIBCXX_HAVE_EOVERFLOW 1
|
||||
|
||||
/* Define if EOWNERDEAD exists. */
|
||||
#define _GLIBCXX_HAVE_EOWNERDEAD 1
|
||||
|
||||
/* Define if EPROTO exists. */
|
||||
#define _GLIBCXX_HAVE_EPROTO 1
|
||||
|
||||
/* Define if ETIME exists. */
|
||||
#define _GLIBCXX_HAVE_ETIME 1
|
||||
|
||||
/* Define if ETXTBSY exists. */
|
||||
#define _GLIBCXX_HAVE_ETXTBSY 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_EXPL */
|
||||
|
||||
/* Define to 1 if you have the `fabsf' function. */
|
||||
#define _GLIBCXX_HAVE_FABSF 1
|
||||
|
||||
/* Define to 1 if you have the `fabsl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FABSL */
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_FENV_H */
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FLOORL */
|
||||
|
||||
/* Define to 1 if you have the `fmodf' function. */
|
||||
#define _GLIBCXX_HAVE_FMODF 1
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
/* Define if gthr-default.h exists (meaning that threading support is
|
||||
enabled). */
|
||||
/* #undef _GLIBCXX_HAVE_GTHR_DEFAULT */
|
||||
|
||||
/* Define to 1 if you have the `hypot' function. */
|
||||
#define _GLIBCXX_HAVE_HYPOT 1
|
||||
|
||||
/* 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 if you have the iconv() function. */
|
||||
#define _GLIBCXX_HAVE_ICONV 1
|
||||
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #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 */
|
||||
|
||||
/* Defined if iswblank exists. */
|
||||
#define _GLIBCXX_HAVE_ISWBLANK 1
|
||||
|
||||
/* Define if LC_MESSAGES is available in <locale.h>. */
|
||||
#define _GLIBCXX_HAVE_LC_MESSAGES 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpf' function. */
|
||||
#define _GLIBCXX_HAVE_LDEXPF 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LDEXPL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_LOG10L */
|
||||
|
||||
/* Define to 1 if you have the `logf' function. */
|
||||
#define _GLIBCXX_HAVE_LOGF 1
|
||||
|
||||
/* Define to 1 if you have the `logl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LOGL */
|
||||
|
||||
/* Define to 1 if you have the <machine/endian.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
|
||||
|
||||
/* Define to 1 if you have the <machine/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_PARAM_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_MEMORY_H */
|
||||
|
||||
/* Define to 1 if you have the `modf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODF */
|
||||
|
||||
/* Define to 1 if you have the `modff' function. */
|
||||
#define _GLIBCXX_HAVE_MODFF 1
|
||||
|
||||
/* Define to 1 if you have the `modfl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODFL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_POWL */
|
||||
|
||||
/* Define to 1 if you have the `qfpclass' function. */
|
||||
/* #undef _GLIBCXX_HAVE_QFPCLASS */
|
||||
|
||||
/* 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. */
|
||||
/* #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. */
|
||||
#define _GLIBCXX_HAVE_SQRTF 1
|
||||
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDBOOL_H 1
|
||||
|
||||
/* 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>. */
|
||||
#define _GLIBCXX_HAVE_STRERROR_R 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_STRINGS_H */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_STRTOLD */
|
||||
|
||||
/* Define if strxfrm_l is available in <string.h>. */
|
||||
/* #undef _GLIBCXX_HAVE_STRXFRM_L */
|
||||
|
||||
/* 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. */
|
||||
#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
|
||||
|
||||
/* 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/stat.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_STAT_H 1
|
||||
|
||||
/* 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>. */
|
||||
/* #undef _GLIBCXX_HAVE_S_ISREG */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_TANHL */
|
||||
|
||||
/* Define to 1 if you have the `tanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_TANL */
|
||||
|
||||
/* Define to 1 if you have the <tgmath.h> header file. */
|
||||
#define _GLIBCXX_HAVE_TGMATH_H 1
|
||||
|
||||
/* Define to 1 if the target supports thread-local storage. */
|
||||
/* #undef _GLIBCXX_HAVE_TLS */
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_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
|
||||
|
||||
/* 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 as const if the declaration of iconv() needs const. */
|
||||
/* #undef _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 builtin atomic operations for bool are supported on this host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_1 */
|
||||
|
||||
/* Define if builtin atomic operations for short are supported on this host.
|
||||
*/
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_2 */
|
||||
|
||||
/* Define if builtin atomic operations for int are supported on this host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_4 */
|
||||
|
||||
/* Define if builtin atomic operations for long long are supported on this
|
||||
host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_8 */
|
||||
|
||||
/* Define to use concept checking code from the boost libraries. */
|
||||
/* #undef _GLIBCXX_CONCEPT_CHECKS */
|
||||
|
||||
/* Define to 1 if building for use with CSLIBC, or 0 otherwise. */
|
||||
#define _GLIBCXX_CSLIBC 0
|
||||
|
||||
/* Define if a fully dynamic basic_string is wanted. */
|
||||
/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */
|
||||
|
||||
/* 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 if EOF == -1, SEEK_CUR == 1, SEEK_END == 2. */
|
||||
#define _GLIBCXX_STDIO_MACROS 1
|
||||
|
||||
/* 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 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. */
|
||||
#define _GLIBCXX_USE_C99_CTYPE_TR1 1
|
||||
|
||||
/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
|
||||
namespace std::tr1. */
|
||||
/* #undef _GLIBCXX_USE_C99_FENV_TR1 */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
|
||||
|
||||
/* 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 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. */
|
||||
/* #undef _GLIBCXX_USE_DECIMAL_FLOAT */
|
||||
|
||||
/* Defined if gettimeofday is available. */
|
||||
/* #undef _GLIBCXX_USE_GETTIMEOFDAY */
|
||||
|
||||
/* 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 /dev/random and /dev/urandom are available for the random_device
|
||||
of TR1 (Chapter 5.1). */
|
||||
/* #undef _GLIBCXX_USE_RANDOM_TR1 */
|
||||
|
||||
/* Defined if sched_yield is available. */
|
||||
/* #undef _GLIBCXX_USE_SCHED_YIELD */
|
||||
|
||||
/* Define if code specialized for wchar_t should be used. */
|
||||
#define _GLIBCXX_USE_WCHAR_T 1
|
||||
|
||||
#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
|
@ -1,49 +0,0 @@
|
||||
// Underlying io library details -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
// 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 c++io.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// c_io_stdio.h - Defines for using "C" stdio.h
|
||||
|
||||
#ifndef _GLIBCXX_CXX_IO_H
|
||||
#define _GLIBCXX_CXX_IO_H 1
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstddef>
|
||||
#include <bits/gthr.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef __gthread_mutex_t __c_lock;
|
||||
|
||||
// for basic_file.h
|
||||
typedef FILE __c_file;
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
#include <cstddef>
|
||||
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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, NULL);
|
||||
char* __sav = NULL;
|
||||
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
|
||||
|
||||
#endif
|
@ -1,33 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005, 2009 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 cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
#endif
|
@ -1,57 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
|
||||
|
||||
// Support for Solaris 2.5.1
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @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 char mask;
|
||||
static const mask upper = _U;
|
||||
static const mask lower = _L;
|
||||
static const mask alpha = _U | _L;
|
||||
static const mask digit = _N;
|
||||
static const mask xdigit = _X | _N;
|
||||
static const mask space = _S;
|
||||
static const mask print = _P | _U | _L | _N | _B;
|
||||
static const mask graph = _P | _U | _L | _N;
|
||||
static const mask cntrl = _C;
|
||||
static const mask punct = _P;
|
||||
static const mask alnum = _U | _L | _N;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -1,71 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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
|
@ -1,98 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
ctype<char>::classic_table() throw()
|
||||
{ return _ctype_ + 1; }
|
||||
|
||||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_toupper(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_tolower(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
@ -1,81 +0,0 @@
|
||||
// Control various target specific ABI tweaks. ARM version.
|
||||
|
||||
// Copyright (C) 2004, 2006, 2008, 2009 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 cxxabi_tweaks.h
|
||||
* The header provides an CPU-variable interface to the C++ ABI.
|
||||
*/
|
||||
|
||||
#ifndef _CXXABI_TWEAKS_H
|
||||
#define _CXXABI_TWEAKS_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace __cxxabiv1
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#ifdef __ARM_EABI__
|
||||
// The ARM EABI uses the least significant bit of a 32-bit
|
||||
// guard variable. */
|
||||
#define _GLIBCXX_GUARD_TEST(x) ((*(x) & 1) != 0)
|
||||
#define _GLIBCXX_GUARD_SET(x) *(x) = 1
|
||||
#define _GLIBCXX_GUARD_BIT 1
|
||||
#define _GLIBCXX_GUARD_PENDING_BIT __guard_test_bit (1, 1)
|
||||
#define _GLIBCXX_GUARD_WAITING_BIT __guard_test_bit (2, 1)
|
||||
typedef int __guard;
|
||||
|
||||
// We also want the element size in array cookies.
|
||||
#define _GLIBCXX_ELTSIZE_IN_COOKIE 1
|
||||
|
||||
// __cxa_vec_ctor should return a pointer to the array.
|
||||
typedef void * __cxa_vec_ctor_return_type;
|
||||
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return x
|
||||
// Constructors and destructors return the "this" pointer.
|
||||
typedef void * __cxa_cdtor_return_type;
|
||||
|
||||
#else // __ARM_EABI__
|
||||
|
||||
// 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;
|
||||
|
||||
#endif //!__ARM_EABI__
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // namespace __cxxabiv1
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,175 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2007, 2008, 2009 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 error_constants.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_ERROR_CONSTANTS
|
||||
#define _GLIBCXX_ERROR_CONSTANTS 1
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <cerrno>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EBADMSG
|
||||
bad_message = EBADMSG,
|
||||
#endif
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EIDRM
|
||||
identifier_removed = EIDRM,
|
||||
#endif
|
||||
|
||||
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,
|
||||
no_child_process = ECHILD,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOLINK
|
||||
no_link = ENOLINK,
|
||||
#endif
|
||||
|
||||
no_lock_available = ENOLCK,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENODATA
|
||||
no_message_available = ENODATA,
|
||||
#endif
|
||||
|
||||
no_message = ENOMSG,
|
||||
no_protocol_option = ENOPROTOOPT,
|
||||
no_space_on_device = ENOSPC,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOSR
|
||||
no_stream_resources = ENOSR,
|
||||
#endif
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOSTR
|
||||
not_a_stream = ENOSTR,
|
||||
#endif
|
||||
|
||||
not_connected = ENOTCONN,
|
||||
not_enough_memory = ENOMEM,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOTSUP
|
||||
not_supported = ENOTSUP,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ECANCELED
|
||||
operation_canceled = ECANCELED,
|
||||
#endif
|
||||
|
||||
operation_in_progress = EINPROGRESS,
|
||||
operation_not_permitted = EPERM,
|
||||
operation_not_supported = EOPNOTSUPP,
|
||||
operation_would_block = EWOULDBLOCK,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EOWNERDEAD
|
||||
owner_dead = EOWNERDEAD,
|
||||
#endif
|
||||
|
||||
permission_denied = EACCES,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EPROTO
|
||||
protocol_error = EPROTO,
|
||||
#endif
|
||||
|
||||
protocol_not_supported = EPROTONOSUPPORT,
|
||||
read_only_file_system = EROFS,
|
||||
resource_deadlock_would_occur = EDEADLK,
|
||||
resource_unavailable_try_again = EAGAIN,
|
||||
result_out_of_range = ERANGE,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE
|
||||
state_not_recoverable = ENOTRECOVERABLE,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ETIME
|
||||
stream_timeout = ETIME,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ETXTBSY
|
||||
text_file_busy = ETXTBSY,
|
||||
#endif
|
||||
|
||||
timed_out = ETIMEDOUT,
|
||||
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
|
||||
|
||||
#endif
|
@ -1,71 +0,0 @@
|
||||
// C++ includes used for precompiling extensions -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006, 2007, 2008, 2009 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.
|
||||
*/
|
||||
|
||||
#ifndef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#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
|
@ -1,292 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
|
||||
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_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);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#undef _GLIBCXX_UNUSED
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
|
@ -1,895 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
2008, 2009 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
|
||||
|
||||
/* Some implementations of <pthread.h> require this to be defined. */
|
||||
#if !defined(_REENTRANT) && defined(__osf__)
|
||||
#define _REENTRANT 1
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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_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}
|
||||
|
||||
#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)
|
||||
|
||||
/* On Tru64, /usr/include/pthread.h uses #pragma extern_prefix "__" to
|
||||
map a subset of the POSIX pthread API to mangled versions of their
|
||||
names. */
|
||||
#if defined(__osf__) && defined(_PTHREAD_USE_MANGLED_NAMES_)
|
||||
#define __gthrw3(name) __gthrw2(__gthrw_ ## name, __ ## name, name)
|
||||
__gthrw3(pthread_once)
|
||||
__gthrw3(pthread_getspecific)
|
||||
__gthrw3(pthread_setspecific)
|
||||
|
||||
__gthrw3(pthread_create)
|
||||
__gthrw3(pthread_join)
|
||||
__gthrw3(pthread_detach)
|
||||
__gthrw3(pthread_equal)
|
||||
__gthrw3(pthread_self)
|
||||
__gthrw3(pthread_cancel)
|
||||
__gthrw3(sched_yield)
|
||||
|
||||
__gthrw3(pthread_mutex_lock)
|
||||
__gthrw3(pthread_mutex_trylock)
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
__gthrw3(pthread_mutex_timedlock)
|
||||
#endif
|
||||
#endif /* _POSIX_TIMEOUTS */
|
||||
__gthrw3(pthread_mutex_unlock)
|
||||
__gthrw3(pthread_mutex_init)
|
||||
__gthrw3(pthread_mutex_destroy)
|
||||
|
||||
__gthrw3(pthread_cond_broadcast)
|
||||
__gthrw3(pthread_cond_signal)
|
||||
__gthrw3(pthread_cond_wait)
|
||||
__gthrw3(pthread_cond_timedwait)
|
||||
__gthrw3(pthread_cond_destroy)
|
||||
#else
|
||||
__gthrw(pthread_once)
|
||||
__gthrw(pthread_getspecific)
|
||||
__gthrw(pthread_setspecific)
|
||||
|
||||
__gthrw(pthread_create)
|
||||
__gthrw(pthread_join)
|
||||
__gthrw(pthread_equal)
|
||||
__gthrw(pthread_self)
|
||||
__gthrw(pthread_detach)
|
||||
__gthrw(pthread_cancel)
|
||||
__gthrw(sched_yield)
|
||||
|
||||
__gthrw(pthread_mutex_lock)
|
||||
__gthrw(pthread_mutex_trylock)
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
__gthrw(pthread_mutex_timedlock)
|
||||
#endif
|
||||
#endif /* _POSIX_TIMEOUTS */
|
||||
__gthrw(pthread_mutex_unlock)
|
||||
__gthrw(pthread_mutex_init)
|
||||
__gthrw(pthread_mutex_destroy)
|
||||
|
||||
__gthrw(pthread_cond_broadcast)
|
||||
__gthrw(pthread_cond_signal)
|
||||
__gthrw(pthread_cond_wait)
|
||||
__gthrw(pthread_cond_timedwait)
|
||||
__gthrw(pthread_cond_destroy)
|
||||
#endif
|
||||
|
||||
__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. */
|
||||
#if defined(__osf__) && defined(_PTHREAD_USE_MANGLED_NAMES_)
|
||||
__gthrw3(pthread_cond_init)
|
||||
__gthrw3(pthread_exit)
|
||||
#else
|
||||
__gthrw(pthread_cond_init)
|
||||
__gthrw(pthread_exit)
|
||||
#endif /* __osf__ && _PTHREAD_USE_MANGLED_NAMES_ */
|
||||
#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 */
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
static void *const __gthread_active_ptr
|
||||
= __extension__ (void *) &__gthrw_(pthread_cancel);
|
||||
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 pthread
|
||||
library or not. However, these interfaces aren't available in early
|
||||
libc versions. We also can't use pthread_once as some libc versions
|
||||
call the init function. So, we use pthread_create to check whether it
|
||||
is possible to create a thread or not. The stub implementation returns
|
||||
the error number ENOSYS. */
|
||||
|
||||
#if defined(__hppa__) && defined(__hpux__)
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
static volatile int __gthread_active = -1;
|
||||
|
||||
static void *
|
||||
__gthread_start (void *__arg __attribute__((unused)))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void __gthread_active_init (void) __attribute__((noinline));
|
||||
static void
|
||||
__gthread_active_init (void)
|
||||
{
|
||||
static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
pthread_t __t;
|
||||
pthread_attr_t __a;
|
||||
int __result;
|
||||
|
||||
__gthrw_(pthread_mutex_lock) (&__gthread_active_mutex);
|
||||
if (__gthread_active < 0)
|
||||
{
|
||||
__gthrw_(pthread_attr_init) (&__a);
|
||||
__gthrw_(pthread_attr_setdetachstate) (&__a, PTHREAD_CREATE_DETACHED);
|
||||
__result = __gthrw_(pthread_create) (&__t, &__a, __gthread_start, NULL);
|
||||
if (__result != ENOSYS)
|
||||
__gthread_active = 1;
|
||||
else
|
||||
__gthread_active = 0;
|
||||
__gthrw_(pthread_attr_destroy) (&__a);
|
||||
}
|
||||
__gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
/* 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))
|
||||
{
|
||||
__gthread_active_init ();
|
||||
__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, NULL, (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 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;
|
||||
}
|
||||
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
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
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__gthread_active_p ())
|
||||
return __gthrw_(pthread_mutex_unlock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||
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);
|
||||
}
|
||||
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
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
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
return __gthread_mutex_unlock (__mutex);
|
||||
}
|
||||
|
||||
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_timedwait_recursive (__gthread_cond_t *__cond,
|
||||
__gthread_recursive_mutex_t *__mutex,
|
||||
const __gthread_time_t *__abs_timeout)
|
||||
{
|
||||
return __gthread_cond_timedwait (__cond, __mutex, __abs_timeout);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_cond_destroy (__gthread_cond_t* __cond)
|
||||
{
|
||||
return __gthrw_(pthread_cond_destroy) (__cond);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_POSIX_H */
|
@ -1,292 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
|
||||
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_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);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#undef _GLIBCXX_UNUSED
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
|
@ -1,229 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc.
|
||||
Compile this one with gcc.
|
||||
Copyright (C) 2004, 2005, 2008, 2009 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/>. */
|
||||
|
||||
/* TPF needs its own version of gthr-*.h because TPF always links to
|
||||
the thread library. However, for performance reasons we still do not
|
||||
want to issue thread api calls unless a check is made to see that we
|
||||
are running as a thread. */
|
||||
|
||||
#ifndef _GLIBCXX_GCC_GTHR_TPF_H
|
||||
#define _GLIBCXX_GCC_GTHR_TPF_H
|
||||
|
||||
/* POSIX threads specific definitions.
|
||||
Easy, since the interface is just one-to-one mapping. */
|
||||
|
||||
#define __GTHREADS 1
|
||||
|
||||
/* Some implementations of <pthread.h> require this to be defined. */
|
||||
#ifndef _REENTRANT
|
||||
#define _REENTRANT 1
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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;
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
|
||||
#define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
|
||||
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function
|
||||
|
||||
#define NOTATHREAD 00
|
||||
#define ECBBASEPTR (unsigned long int) *(unsigned int *)0x00000514u
|
||||
#define ECBPG2PTR ECBBASEPTR + 0x1000
|
||||
#define CE2THRCPTR *((unsigned char *)(ECBPG2PTR + 16))
|
||||
#define __tpf_pthread_active() (CE2THRCPTR != NOTATHREAD)
|
||||
|
||||
#if __GXX_WEAK__ && _GLIBCXX_GTHREAD_USE_WEAK
|
||||
# define __gthrw(name) \
|
||||
static __typeof(name) __gthrw_ ## name __attribute__ ((__weakref__(#name)));
|
||||
# define __gthrw_(name) __gthrw_ ## name
|
||||
#else
|
||||
# define __gthrw(name)
|
||||
# define __gthrw_(name) name
|
||||
#endif
|
||||
|
||||
__gthrw(pthread_once)
|
||||
__gthrw(pthread_key_create)
|
||||
__gthrw(pthread_key_delete)
|
||||
__gthrw(pthread_getspecific)
|
||||
__gthrw(pthread_setspecific)
|
||||
__gthrw(pthread_create)
|
||||
|
||||
__gthrw(pthread_mutex_lock)
|
||||
__gthrw(pthread_mutex_trylock)
|
||||
__gthrw(pthread_mutex_unlock)
|
||||
__gthrw(pthread_mutexattr_init)
|
||||
__gthrw(pthread_mutexattr_settype)
|
||||
__gthrw(pthread_mutexattr_destroy)
|
||||
__gthrw(pthread_mutex_init)
|
||||
__gthrw(pthread_mutex_destroy)
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_once) (__once, __func);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_key_create) (__key, __dtor);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_key_delete (__gthread_key_t __key)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_key_delete) (__key);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void *
|
||||
__gthread_getspecific (__gthread_key_t __key)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_getspecific) (__key);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_setspecific) (__key, __ptr);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_destroy) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_lock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_trylock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_unlock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_lock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_trylock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_unlock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
{
|
||||
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 /* ! _GLIBCXX_GCC_GTHR_TPF_H */
|
@ -1,173 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1998, 2004, 2008, 2009 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
|
||||
some systems can't initialize a mutex without a
|
||||
function call. On such systems, define this to a
|
||||
function which looks like this:
|
||||
void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *)
|
||||
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_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);
|
||||
int __gthread_cond_timedwait_recursive (__gthread_cond_t *cond,
|
||||
__gthread_recursive_mutex_t *mutex,
|
||||
const __gthread_time_t *abs_time)
|
||||
|
||||
Currently supported threads packages are
|
||||
TPF threads with -D__tpf__
|
||||
POSIX/Unix98 threads with -D_PTHREADS
|
||||
POSIX/Unix95 threads with -D_PTHREADS95
|
||||
DCE threads with -D_DCE_THREADS
|
||||
Solaris/UI threads with -D_SOLARIS_THREADS
|
||||
|
||||
*/
|
||||
|
||||
/* Check first for thread specific defines. */
|
||||
#if defined (_GLIBCXX___tpf_GLIBCXX___)
|
||||
#include <bits/gthr-tpf.h>
|
||||
#elif _GLIBCXX__PTHREADS
|
||||
#include <bits/gthr-posix.h>
|
||||
#elif _GLIBCXX__PTHREADS95
|
||||
#include <bits/gthr-posix95.h>
|
||||
#elif _GLIBCXX__DCE_THREADS
|
||||
#include <bits/gthr-dce.h>
|
||||
#elif _GLIBCXX__SOLARIS_THREADS
|
||||
#include <bits/gthr-solaris.h>
|
||||
|
||||
/* Include GTHREAD_FILE if one is defined. */
|
||||
#elif defined(_GLIBCXX_HAVE_GTHR_DEFAULT)
|
||||
#if __GXX_WEAK__
|
||||
#ifndef _GLIBCXX_GTHREAD_USE_WEAK
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 1
|
||||
#endif
|
||||
#endif
|
||||
#include <bits/gthr-default.h>
|
||||
|
||||
/* Fallback to single thread definitions. */
|
||||
#else
|
||||
#include <bits/gthr-single.h>
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX_HIDE_EXPORTS
|
||||
#pragma GCC visibility pop
|
||||
#endif
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_H */
|
@ -1,90 +0,0 @@
|
||||
// std::messages implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 messages_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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
|
@ -1,52 +0,0 @@
|
||||
// Specific definitions for newlib -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2005, 2009 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 os_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES 1
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 0
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,115 +0,0 @@
|
||||
// C++ includes used for precompiling -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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>
|
||||
|
||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#include <ccomplex>
|
||||
#include <cfenv>
|
||||
#include <cinttypes>
|
||||
#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>
|
||||
|
||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#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 <system_error>
|
||||
#include <thread>
|
||||
#include <tuple>
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#endif
|
@ -1,53 +0,0 @@
|
||||
// C++ includes used for precompiling TR1 -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006, 2009 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>
|
@ -1,90 +0,0 @@
|
||||
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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 time_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL)
|
||||
{
|
||||
_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(NULL)
|
||||
{
|
||||
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
|
@ -1,47 +0,0 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2009 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
|
@ -1,108 +0,0 @@
|
||||
// Wrapper of C-language FILE struct -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 basic_file.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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 <ios>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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 ();
|
||||
|
||||
__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
|
||||
|
||||
#endif
|
@ -1,37 +0,0 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2005, 2009 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 c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CXX_ALLOCATOR_H
|
||||
#define _GLIBCXX_CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/new_allocator.h>
|
||||
#define __glibcxx_base_allocator __gnu_cxx::new_allocator
|
||||
|
||||
#endif
|
@ -1,1506 +0,0 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
// 2006, 2007, 2008, 2009 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 c++config.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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__ 20101216
|
||||
|
||||
// Macros for visibility.
|
||||
// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
// _GLIBCXX_VISIBILITY_ATTR
|
||||
# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
|
||||
|
||||
#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
# define _GLIBCXX_VISIBILITY_ATTR(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_ATTR(V) _GLIBCXX_PSEUDO_VISIBILITY(V)
|
||||
#endif
|
||||
|
||||
// Macros for deprecated.
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_ATTR
|
||||
#ifndef _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define _GLIBCXX_DEPRECATED_ATTR __attribute__ ((__deprecated__))
|
||||
#else
|
||||
# define _GLIBCXX_DEPRECATED_ATTR
|
||||
#endif
|
||||
|
||||
// Macros for activating various namespace association modes.
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
|
||||
// Guide to libstdc++ namespaces.
|
||||
/*
|
||||
namespace std
|
||||
{
|
||||
namespace __debug { }
|
||||
namespace __parallel { }
|
||||
namespace __norm { } // __normative, __shadow, __replaced
|
||||
namespace __cxx1998 { }
|
||||
|
||||
namespace tr1 { }
|
||||
}
|
||||
*/
|
||||
#if __cplusplus
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_PARALLEL
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL 1
|
||||
#endif
|
||||
|
||||
// Namespace association for profile
|
||||
#ifdef _GLIBCXX_PROFILE
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE 1
|
||||
#endif
|
||||
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
|
||||
|
||||
// Defined if any namespace association modes are active.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
# define _GLIBCXX_USE_NAMESPACE_ASSOCIATION 1
|
||||
#endif
|
||||
|
||||
// Macros for namespace scope. Either namespace std:: or the name
|
||||
// of some nested namespace within it.
|
||||
// _GLIBCXX_STD
|
||||
// _GLIBCXX_STD_D
|
||||
// _GLIBCXX_STD_P
|
||||
//
|
||||
// Macros for enclosing namespaces and possibly nested namespaces.
|
||||
// _GLIBCXX_BEGIN_NAMESPACE
|
||||
// _GLIBCXX_END_NAMESPACE
|
||||
// _GLIBCXX_BEGIN_NESTED_NAMESPACE
|
||||
// _GLIBCXX_END_NESTED_NAMESPACE
|
||||
#ifndef _GLIBCXX_USE_NAMESPACE_ASSOCIATION
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD std
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
#else
|
||||
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION // && not anything else
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD _6
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
|
||||
# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
|
||||
# endif
|
||||
|
||||
// debug
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
// debug + parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// profile
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL || _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
# error Cannot use -D_GLIBCXX_PROFILE with -D_GLIBCXX_DEBUG or \
|
||||
-D_GLIBCXX_PARALLEL
|
||||
# endif
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
# if __NO_INLINE__ && !__GXX_WEAK__
|
||||
# warning currently using namespace associated mode which may fail \
|
||||
without inlining due to lack of weak symbols
|
||||
# endif
|
||||
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE } }
|
||||
#endif
|
||||
|
||||
// Namespace associations for debug mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __debug { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for parallel mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __parallel { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for profile mode
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __profile { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for versioning mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
namespace std
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
namespace tr1
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
// Define if compatibility should be provided for -mlong-double-64
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Namespace associations for long double 128 mode.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
inline namespace __gnu_cxx_ldbl128 { }
|
||||
}
|
||||
# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128::
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 {
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE }
|
||||
#else
|
||||
# define _GLIBCXX_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// Defines for C compatibility. In particular, define extern "C"
|
||||
// linkage only when using C++.
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C extern "C" {
|
||||
# define _GLIBCXX_END_EXTERN_C }
|
||||
|
||||
#else // !__cplusplus
|
||||
# undef _GLIBCXX_BEGIN_NAMESPACE
|
||||
# undef _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NAMESPACE
|
||||
# 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
|
||||
|
||||
// Allow use of "export template." This is currently not a feature
|
||||
// that g++ supports.
|
||||
// #define _GLIBCXX_EXPORT_TEMPLATE 1
|
||||
|
||||
// Allow use of the GNU syntax extension, "extern template." This
|
||||
// extension is fully documented in the g++ manual, but in a nutshell,
|
||||
// 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.
|
||||
#ifndef _GLIBCXX_EXTERN_TEMPLATE
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE 1
|
||||
#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
|
||||
|
||||
// Assert.
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL)
|
||||
#define __glibcxx_assert(_Condition)
|
||||
#else
|
||||
_GLIBCXX_BEGIN_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();
|
||||
}
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#define __glibcxx_assert(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, \
|
||||
__PRETTY_FUNCTION__, #_Condition); \
|
||||
} while (false)
|
||||
#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
|
||||
|
||||
#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
|
||||
|
||||
#ifndef _GLIBCXX_NOTHROW
|
||||
# ifdef __cplusplus
|
||||
# define _GLIBCXX_NOTHROW throw()
|
||||
# else
|
||||
# define _GLIBCXX_NOTHROW __attribute__((__nothrow__))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// End of prewritten config; the discovered settings 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. */
|
||||
/* #undef _GLIBCXX_HAVE_ACOSL */
|
||||
|
||||
/* Define to 1 if you have the `asinf' function. */
|
||||
#define _GLIBCXX_HAVE_ASINF 1
|
||||
|
||||
/* Define to 1 if you have the `asinl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ASINL */
|
||||
|
||||
/* Define to 1 if the target assembler supports .symver directive. */
|
||||
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
|
||||
|
||||
/* Define to 1 if you have the `atan2f' function. */
|
||||
#define _GLIBCXX_HAVE_ATAN2F 1
|
||||
|
||||
/* Define to 1 if you have the `atan2l' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATAN2L */
|
||||
|
||||
/* Define to 1 if you have the `atanf' function. */
|
||||
#define _GLIBCXX_HAVE_ATANF 1
|
||||
|
||||
/* Define to 1 if you have the `atanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATANL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_CEILL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_COSHL */
|
||||
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_DLFCN_H */
|
||||
|
||||
/* Define if EBADMSG exists. */
|
||||
#define _GLIBCXX_HAVE_EBADMSG 1
|
||||
|
||||
/* Define if ECANCELED exists. */
|
||||
#define _GLIBCXX_HAVE_ECANCELED 1
|
||||
|
||||
/* Define if EIDRM exists. */
|
||||
#define _GLIBCXX_HAVE_EIDRM 1
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_ENDIAN_H */
|
||||
|
||||
/* Define if ENODATA exists. */
|
||||
#define _GLIBCXX_HAVE_ENODATA 1
|
||||
|
||||
/* Define if ENOLINK exists. */
|
||||
#define _GLIBCXX_HAVE_ENOLINK 1
|
||||
|
||||
/* Define if ENOSR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSR 1
|
||||
|
||||
/* Define if ENOSTR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSTR 1
|
||||
|
||||
/* Define if ENOTRECOVERABLE exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTRECOVERABLE 1
|
||||
|
||||
/* Define if ENOTSUP exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTSUP 1
|
||||
|
||||
/* Define if EOVERFLOW exists. */
|
||||
#define _GLIBCXX_HAVE_EOVERFLOW 1
|
||||
|
||||
/* Define if EOWNERDEAD exists. */
|
||||
#define _GLIBCXX_HAVE_EOWNERDEAD 1
|
||||
|
||||
/* Define if EPROTO exists. */
|
||||
#define _GLIBCXX_HAVE_EPROTO 1
|
||||
|
||||
/* Define if ETIME exists. */
|
||||
#define _GLIBCXX_HAVE_ETIME 1
|
||||
|
||||
/* Define if ETXTBSY exists. */
|
||||
#define _GLIBCXX_HAVE_ETXTBSY 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_EXPL */
|
||||
|
||||
/* Define to 1 if you have the `fabsf' function. */
|
||||
#define _GLIBCXX_HAVE_FABSF 1
|
||||
|
||||
/* Define to 1 if you have the `fabsl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FABSL */
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_FENV_H */
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FLOORL */
|
||||
|
||||
/* Define to 1 if you have the `fmodf' function. */
|
||||
#define _GLIBCXX_HAVE_FMODF 1
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
/* Define if gthr-default.h exists (meaning that threading support is
|
||||
enabled). */
|
||||
/* #undef _GLIBCXX_HAVE_GTHR_DEFAULT */
|
||||
|
||||
/* Define to 1 if you have the `hypot' function. */
|
||||
#define _GLIBCXX_HAVE_HYPOT 1
|
||||
|
||||
/* 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 if you have the iconv() function. */
|
||||
#define _GLIBCXX_HAVE_ICONV 1
|
||||
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #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 */
|
||||
|
||||
/* Defined if iswblank exists. */
|
||||
#define _GLIBCXX_HAVE_ISWBLANK 1
|
||||
|
||||
/* Define if LC_MESSAGES is available in <locale.h>. */
|
||||
#define _GLIBCXX_HAVE_LC_MESSAGES 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpf' function. */
|
||||
#define _GLIBCXX_HAVE_LDEXPF 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LDEXPL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_LOG10L */
|
||||
|
||||
/* Define to 1 if you have the `logf' function. */
|
||||
#define _GLIBCXX_HAVE_LOGF 1
|
||||
|
||||
/* Define to 1 if you have the `logl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LOGL */
|
||||
|
||||
/* Define to 1 if you have the <machine/endian.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
|
||||
|
||||
/* Define to 1 if you have the <machine/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_PARAM_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_MEMORY_H */
|
||||
|
||||
/* Define to 1 if you have the `modf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODF */
|
||||
|
||||
/* Define to 1 if you have the `modff' function. */
|
||||
#define _GLIBCXX_HAVE_MODFF 1
|
||||
|
||||
/* Define to 1 if you have the `modfl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODFL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_POWL */
|
||||
|
||||
/* Define to 1 if you have the `qfpclass' function. */
|
||||
/* #undef _GLIBCXX_HAVE_QFPCLASS */
|
||||
|
||||
/* 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. */
|
||||
/* #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. */
|
||||
#define _GLIBCXX_HAVE_SQRTF 1
|
||||
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDBOOL_H 1
|
||||
|
||||
/* 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>. */
|
||||
#define _GLIBCXX_HAVE_STRERROR_R 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_STRINGS_H */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_STRTOLD */
|
||||
|
||||
/* Define if strxfrm_l is available in <string.h>. */
|
||||
/* #undef _GLIBCXX_HAVE_STRXFRM_L */
|
||||
|
||||
/* 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. */
|
||||
#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
|
||||
|
||||
/* 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/stat.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_STAT_H 1
|
||||
|
||||
/* 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>. */
|
||||
/* #undef _GLIBCXX_HAVE_S_ISREG */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_TANHL */
|
||||
|
||||
/* Define to 1 if you have the `tanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_TANL */
|
||||
|
||||
/* Define to 1 if you have the <tgmath.h> header file. */
|
||||
#define _GLIBCXX_HAVE_TGMATH_H 1
|
||||
|
||||
/* Define to 1 if the target supports thread-local storage. */
|
||||
/* #undef _GLIBCXX_HAVE_TLS */
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_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
|
||||
|
||||
/* 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 as const if the declaration of iconv() needs const. */
|
||||
/* #undef _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 builtin atomic operations for bool are supported on this host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_1 */
|
||||
|
||||
/* Define if builtin atomic operations for short are supported on this host.
|
||||
*/
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_2 */
|
||||
|
||||
/* Define if builtin atomic operations for int are supported on this host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_4 */
|
||||
|
||||
/* Define if builtin atomic operations for long long are supported on this
|
||||
host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_8 */
|
||||
|
||||
/* Define to use concept checking code from the boost libraries. */
|
||||
/* #undef _GLIBCXX_CONCEPT_CHECKS */
|
||||
|
||||
/* Define to 1 if building for use with CSLIBC, or 0 otherwise. */
|
||||
#define _GLIBCXX_CSLIBC 0
|
||||
|
||||
/* Define if a fully dynamic basic_string is wanted. */
|
||||
/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */
|
||||
|
||||
/* 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 if EOF == -1, SEEK_CUR == 1, SEEK_END == 2. */
|
||||
#define _GLIBCXX_STDIO_MACROS 1
|
||||
|
||||
/* 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 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. */
|
||||
#define _GLIBCXX_USE_C99_CTYPE_TR1 1
|
||||
|
||||
/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
|
||||
namespace std::tr1. */
|
||||
/* #undef _GLIBCXX_USE_C99_FENV_TR1 */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
|
||||
|
||||
/* 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 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. */
|
||||
/* #undef _GLIBCXX_USE_DECIMAL_FLOAT */
|
||||
|
||||
/* Defined if gettimeofday is available. */
|
||||
/* #undef _GLIBCXX_USE_GETTIMEOFDAY */
|
||||
|
||||
/* 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 /dev/random and /dev/urandom are available for the random_device
|
||||
of TR1 (Chapter 5.1). */
|
||||
/* #undef _GLIBCXX_USE_RANDOM_TR1 */
|
||||
|
||||
/* Defined if sched_yield is available. */
|
||||
/* #undef _GLIBCXX_USE_SCHED_YIELD */
|
||||
|
||||
/* Define if code specialized for wchar_t should be used. */
|
||||
#define _GLIBCXX_USE_WCHAR_T 1
|
||||
|
||||
#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
|
@ -1,49 +0,0 @@
|
||||
// Underlying io library details -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
// 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 c++io.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// c_io_stdio.h - Defines for using "C" stdio.h
|
||||
|
||||
#ifndef _GLIBCXX_CXX_IO_H
|
||||
#define _GLIBCXX_CXX_IO_H 1
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstddef>
|
||||
#include <bits/gthr.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef __gthread_mutex_t __c_lock;
|
||||
|
||||
// for basic_file.h
|
||||
typedef FILE __c_file;
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
#include <cstddef>
|
||||
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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, NULL);
|
||||
char* __sav = NULL;
|
||||
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
|
||||
|
||||
#endif
|
@ -1,33 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005, 2009 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 cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
#endif
|
@ -1,57 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
|
||||
|
||||
// Support for Solaris 2.5.1
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @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 char mask;
|
||||
static const mask upper = _U;
|
||||
static const mask lower = _L;
|
||||
static const mask alpha = _U | _L;
|
||||
static const mask digit = _N;
|
||||
static const mask xdigit = _X | _N;
|
||||
static const mask space = _S;
|
||||
static const mask print = _P | _U | _L | _N | _B;
|
||||
static const mask graph = _P | _U | _L | _N;
|
||||
static const mask cntrl = _C;
|
||||
static const mask punct = _P;
|
||||
static const mask alnum = _U | _L | _N;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -1,71 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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
|
@ -1,98 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
ctype<char>::classic_table() throw()
|
||||
{ return _ctype_ + 1; }
|
||||
|
||||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_toupper(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_tolower(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
@ -1,81 +0,0 @@
|
||||
// Control various target specific ABI tweaks. ARM version.
|
||||
|
||||
// Copyright (C) 2004, 2006, 2008, 2009 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 cxxabi_tweaks.h
|
||||
* The header provides an CPU-variable interface to the C++ ABI.
|
||||
*/
|
||||
|
||||
#ifndef _CXXABI_TWEAKS_H
|
||||
#define _CXXABI_TWEAKS_H 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace __cxxabiv1
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#ifdef __ARM_EABI__
|
||||
// The ARM EABI uses the least significant bit of a 32-bit
|
||||
// guard variable. */
|
||||
#define _GLIBCXX_GUARD_TEST(x) ((*(x) & 1) != 0)
|
||||
#define _GLIBCXX_GUARD_SET(x) *(x) = 1
|
||||
#define _GLIBCXX_GUARD_BIT 1
|
||||
#define _GLIBCXX_GUARD_PENDING_BIT __guard_test_bit (1, 1)
|
||||
#define _GLIBCXX_GUARD_WAITING_BIT __guard_test_bit (2, 1)
|
||||
typedef int __guard;
|
||||
|
||||
// We also want the element size in array cookies.
|
||||
#define _GLIBCXX_ELTSIZE_IN_COOKIE 1
|
||||
|
||||
// __cxa_vec_ctor should return a pointer to the array.
|
||||
typedef void * __cxa_vec_ctor_return_type;
|
||||
#define _GLIBCXX_CXA_VEC_CTOR_RETURN(x) return x
|
||||
// Constructors and destructors return the "this" pointer.
|
||||
typedef void * __cxa_cdtor_return_type;
|
||||
|
||||
#else // __ARM_EABI__
|
||||
|
||||
// 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;
|
||||
|
||||
#endif //!__ARM_EABI__
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
} // namespace __cxxabiv1
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,175 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2007, 2008, 2009 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 error_constants.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_ERROR_CONSTANTS
|
||||
#define _GLIBCXX_ERROR_CONSTANTS 1
|
||||
|
||||
#include <bits/c++config.h>
|
||||
#include <cerrno>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EBADMSG
|
||||
bad_message = EBADMSG,
|
||||
#endif
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EIDRM
|
||||
identifier_removed = EIDRM,
|
||||
#endif
|
||||
|
||||
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,
|
||||
no_child_process = ECHILD,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOLINK
|
||||
no_link = ENOLINK,
|
||||
#endif
|
||||
|
||||
no_lock_available = ENOLCK,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENODATA
|
||||
no_message_available = ENODATA,
|
||||
#endif
|
||||
|
||||
no_message = ENOMSG,
|
||||
no_protocol_option = ENOPROTOOPT,
|
||||
no_space_on_device = ENOSPC,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOSR
|
||||
no_stream_resources = ENOSR,
|
||||
#endif
|
||||
|
||||
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,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOSTR
|
||||
not_a_stream = ENOSTR,
|
||||
#endif
|
||||
|
||||
not_connected = ENOTCONN,
|
||||
not_enough_memory = ENOMEM,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOTSUP
|
||||
not_supported = ENOTSUP,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ECANCELED
|
||||
operation_canceled = ECANCELED,
|
||||
#endif
|
||||
|
||||
operation_in_progress = EINPROGRESS,
|
||||
operation_not_permitted = EPERM,
|
||||
operation_not_supported = EOPNOTSUPP,
|
||||
operation_would_block = EWOULDBLOCK,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EOWNERDEAD
|
||||
owner_dead = EOWNERDEAD,
|
||||
#endif
|
||||
|
||||
permission_denied = EACCES,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_EPROTO
|
||||
protocol_error = EPROTO,
|
||||
#endif
|
||||
|
||||
protocol_not_supported = EPROTONOSUPPORT,
|
||||
read_only_file_system = EROFS,
|
||||
resource_deadlock_would_occur = EDEADLK,
|
||||
resource_unavailable_try_again = EAGAIN,
|
||||
result_out_of_range = ERANGE,
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ENOTRECOVERABLE
|
||||
state_not_recoverable = ENOTRECOVERABLE,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ETIME
|
||||
stream_timeout = ETIME,
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_HAVE_ETXTBSY
|
||||
text_file_busy = ETXTBSY,
|
||||
#endif
|
||||
|
||||
timed_out = ETIMEDOUT,
|
||||
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
|
||||
|
||||
#endif
|
@ -1,71 +0,0 @@
|
||||
// C++ includes used for precompiling extensions -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006, 2007, 2008, 2009 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.
|
||||
*/
|
||||
|
||||
#ifndef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#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
|
@ -1,292 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
|
||||
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_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);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#undef _GLIBCXX_UNUSED
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
|
@ -1,895 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
|
||||
2008, 2009 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
|
||||
|
||||
/* Some implementations of <pthread.h> require this to be defined. */
|
||||
#if !defined(_REENTRANT) && defined(__osf__)
|
||||
#define _REENTRANT 1
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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_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}
|
||||
|
||||
#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)
|
||||
|
||||
/* On Tru64, /usr/include/pthread.h uses #pragma extern_prefix "__" to
|
||||
map a subset of the POSIX pthread API to mangled versions of their
|
||||
names. */
|
||||
#if defined(__osf__) && defined(_PTHREAD_USE_MANGLED_NAMES_)
|
||||
#define __gthrw3(name) __gthrw2(__gthrw_ ## name, __ ## name, name)
|
||||
__gthrw3(pthread_once)
|
||||
__gthrw3(pthread_getspecific)
|
||||
__gthrw3(pthread_setspecific)
|
||||
|
||||
__gthrw3(pthread_create)
|
||||
__gthrw3(pthread_join)
|
||||
__gthrw3(pthread_detach)
|
||||
__gthrw3(pthread_equal)
|
||||
__gthrw3(pthread_self)
|
||||
__gthrw3(pthread_cancel)
|
||||
__gthrw3(sched_yield)
|
||||
|
||||
__gthrw3(pthread_mutex_lock)
|
||||
__gthrw3(pthread_mutex_trylock)
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
__gthrw3(pthread_mutex_timedlock)
|
||||
#endif
|
||||
#endif /* _POSIX_TIMEOUTS */
|
||||
__gthrw3(pthread_mutex_unlock)
|
||||
__gthrw3(pthread_mutex_init)
|
||||
__gthrw3(pthread_mutex_destroy)
|
||||
|
||||
__gthrw3(pthread_cond_broadcast)
|
||||
__gthrw3(pthread_cond_signal)
|
||||
__gthrw3(pthread_cond_wait)
|
||||
__gthrw3(pthread_cond_timedwait)
|
||||
__gthrw3(pthread_cond_destroy)
|
||||
#else
|
||||
__gthrw(pthread_once)
|
||||
__gthrw(pthread_getspecific)
|
||||
__gthrw(pthread_setspecific)
|
||||
|
||||
__gthrw(pthread_create)
|
||||
__gthrw(pthread_join)
|
||||
__gthrw(pthread_equal)
|
||||
__gthrw(pthread_self)
|
||||
__gthrw(pthread_detach)
|
||||
__gthrw(pthread_cancel)
|
||||
__gthrw(sched_yield)
|
||||
|
||||
__gthrw(pthread_mutex_lock)
|
||||
__gthrw(pthread_mutex_trylock)
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
__gthrw(pthread_mutex_timedlock)
|
||||
#endif
|
||||
#endif /* _POSIX_TIMEOUTS */
|
||||
__gthrw(pthread_mutex_unlock)
|
||||
__gthrw(pthread_mutex_init)
|
||||
__gthrw(pthread_mutex_destroy)
|
||||
|
||||
__gthrw(pthread_cond_broadcast)
|
||||
__gthrw(pthread_cond_signal)
|
||||
__gthrw(pthread_cond_wait)
|
||||
__gthrw(pthread_cond_timedwait)
|
||||
__gthrw(pthread_cond_destroy)
|
||||
#endif
|
||||
|
||||
__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. */
|
||||
#if defined(__osf__) && defined(_PTHREAD_USE_MANGLED_NAMES_)
|
||||
__gthrw3(pthread_cond_init)
|
||||
__gthrw3(pthread_exit)
|
||||
#else
|
||||
__gthrw(pthread_cond_init)
|
||||
__gthrw(pthread_exit)
|
||||
#endif /* __osf__ && _PTHREAD_USE_MANGLED_NAMES_ */
|
||||
#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 */
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
static void *const __gthread_active_ptr
|
||||
= __extension__ (void *) &__gthrw_(pthread_cancel);
|
||||
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 pthread
|
||||
library or not. However, these interfaces aren't available in early
|
||||
libc versions. We also can't use pthread_once as some libc versions
|
||||
call the init function. So, we use pthread_create to check whether it
|
||||
is possible to create a thread or not. The stub implementation returns
|
||||
the error number ENOSYS. */
|
||||
|
||||
#if defined(__hppa__) && defined(__hpux__)
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
static volatile int __gthread_active = -1;
|
||||
|
||||
static void *
|
||||
__gthread_start (void *__arg __attribute__((unused)))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void __gthread_active_init (void) __attribute__((noinline));
|
||||
static void
|
||||
__gthread_active_init (void)
|
||||
{
|
||||
static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
|
||||
pthread_t __t;
|
||||
pthread_attr_t __a;
|
||||
int __result;
|
||||
|
||||
__gthrw_(pthread_mutex_lock) (&__gthread_active_mutex);
|
||||
if (__gthread_active < 0)
|
||||
{
|
||||
__gthrw_(pthread_attr_init) (&__a);
|
||||
__gthrw_(pthread_attr_setdetachstate) (&__a, PTHREAD_CREATE_DETACHED);
|
||||
__result = __gthrw_(pthread_create) (&__t, &__a, __gthread_start, NULL);
|
||||
if (__result != ENOSYS)
|
||||
__gthread_active = 1;
|
||||
else
|
||||
__gthread_active = 0;
|
||||
__gthrw_(pthread_attr_destroy) (&__a);
|
||||
}
|
||||
__gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
/* 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))
|
||||
{
|
||||
__gthread_active_init ();
|
||||
__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, NULL, (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 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;
|
||||
}
|
||||
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
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
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__gthread_active_p ())
|
||||
return __gthrw_(pthread_mutex_unlock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
|
||||
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);
|
||||
}
|
||||
|
||||
#ifdef _POSIX_TIMEOUTS
|
||||
#if _POSIX_TIMEOUTS >= 0
|
||||
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
|
||||
#endif
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
return __gthread_mutex_unlock (__mutex);
|
||||
}
|
||||
|
||||
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_timedwait_recursive (__gthread_cond_t *__cond,
|
||||
__gthread_recursive_mutex_t *__mutex,
|
||||
const __gthread_time_t *__abs_timeout)
|
||||
{
|
||||
return __gthread_cond_timedwait (__cond, __mutex, __abs_timeout);
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_cond_destroy (__gthread_cond_t* __cond)
|
||||
{
|
||||
return __gthrw_(pthread_cond_destroy) (__cond);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_POSIX_H */
|
@ -1,292 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
|
||||
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_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);
|
||||
}
|
||||
|
||||
#endif /* _LIBOBJC */
|
||||
|
||||
#undef _GLIBCXX_UNUSED
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
|
@ -1,229 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2 and libobjc.
|
||||
Compile this one with gcc.
|
||||
Copyright (C) 2004, 2005, 2008, 2009 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/>. */
|
||||
|
||||
/* TPF needs its own version of gthr-*.h because TPF always links to
|
||||
the thread library. However, for performance reasons we still do not
|
||||
want to issue thread api calls unless a check is made to see that we
|
||||
are running as a thread. */
|
||||
|
||||
#ifndef _GLIBCXX_GCC_GTHR_TPF_H
|
||||
#define _GLIBCXX_GCC_GTHR_TPF_H
|
||||
|
||||
/* POSIX threads specific definitions.
|
||||
Easy, since the interface is just one-to-one mapping. */
|
||||
|
||||
#define __GTHREADS 1
|
||||
|
||||
/* Some implementations of <pthread.h> require this to be defined. */
|
||||
#ifndef _REENTRANT
|
||||
#define _REENTRANT 1
|
||||
#endif
|
||||
|
||||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
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;
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER
|
||||
#define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
|
||||
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function
|
||||
|
||||
#define NOTATHREAD 00
|
||||
#define ECBBASEPTR (unsigned long int) *(unsigned int *)0x00000514u
|
||||
#define ECBPG2PTR ECBBASEPTR + 0x1000
|
||||
#define CE2THRCPTR *((unsigned char *)(ECBPG2PTR + 16))
|
||||
#define __tpf_pthread_active() (CE2THRCPTR != NOTATHREAD)
|
||||
|
||||
#if __GXX_WEAK__ && _GLIBCXX_GTHREAD_USE_WEAK
|
||||
# define __gthrw(name) \
|
||||
static __typeof(name) __gthrw_ ## name __attribute__ ((__weakref__(#name)));
|
||||
# define __gthrw_(name) __gthrw_ ## name
|
||||
#else
|
||||
# define __gthrw(name)
|
||||
# define __gthrw_(name) name
|
||||
#endif
|
||||
|
||||
__gthrw(pthread_once)
|
||||
__gthrw(pthread_key_create)
|
||||
__gthrw(pthread_key_delete)
|
||||
__gthrw(pthread_getspecific)
|
||||
__gthrw(pthread_setspecific)
|
||||
__gthrw(pthread_create)
|
||||
|
||||
__gthrw(pthread_mutex_lock)
|
||||
__gthrw(pthread_mutex_trylock)
|
||||
__gthrw(pthread_mutex_unlock)
|
||||
__gthrw(pthread_mutexattr_init)
|
||||
__gthrw(pthread_mutexattr_settype)
|
||||
__gthrw(pthread_mutexattr_destroy)
|
||||
__gthrw(pthread_mutex_init)
|
||||
__gthrw(pthread_mutex_destroy)
|
||||
|
||||
static inline int
|
||||
__gthread_active_p (void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_once (__gthread_once_t *__once, void (*__func) (void))
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_once) (__once, __func);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_key_create) (__key, __dtor);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_key_delete (__gthread_key_t __key)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_key_delete) (__key);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline void *
|
||||
__gthread_getspecific (__gthread_key_t __key)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_getspecific) (__key);
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_setspecific (__gthread_key_t __key, const void *__ptr)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_setspecific) (__key, __ptr);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_destroy (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_destroy) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_lock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_lock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_trylock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_trylock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_mutex_unlock (__gthread_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthrw_(pthread_mutex_unlock) (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_lock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_trylock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
return __gthread_mutex_unlock (__mutex);
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int
|
||||
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
|
||||
{
|
||||
if (__tpf_pthread_active ())
|
||||
{
|
||||
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 /* ! _GLIBCXX_GCC_GTHR_TPF_H */
|
@ -1,173 +0,0 @@
|
||||
/* Threads compatibility routines for libgcc2. */
|
||||
/* Compile this one with gcc. */
|
||||
/* Copyright (C) 1997, 1998, 2004, 2008, 2009 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
|
||||
some systems can't initialize a mutex without a
|
||||
function call. On such systems, define this to a
|
||||
function which looks like this:
|
||||
void __GTHREAD_MUTEX_INIT_FUNCTION (__gthread_mutex_t *)
|
||||
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_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);
|
||||
int __gthread_cond_timedwait_recursive (__gthread_cond_t *cond,
|
||||
__gthread_recursive_mutex_t *mutex,
|
||||
const __gthread_time_t *abs_time)
|
||||
|
||||
Currently supported threads packages are
|
||||
TPF threads with -D__tpf__
|
||||
POSIX/Unix98 threads with -D_PTHREADS
|
||||
POSIX/Unix95 threads with -D_PTHREADS95
|
||||
DCE threads with -D_DCE_THREADS
|
||||
Solaris/UI threads with -D_SOLARIS_THREADS
|
||||
|
||||
*/
|
||||
|
||||
/* Check first for thread specific defines. */
|
||||
#if defined (_GLIBCXX___tpf_GLIBCXX___)
|
||||
#include <bits/gthr-tpf.h>
|
||||
#elif _GLIBCXX__PTHREADS
|
||||
#include <bits/gthr-posix.h>
|
||||
#elif _GLIBCXX__PTHREADS95
|
||||
#include <bits/gthr-posix95.h>
|
||||
#elif _GLIBCXX__DCE_THREADS
|
||||
#include <bits/gthr-dce.h>
|
||||
#elif _GLIBCXX__SOLARIS_THREADS
|
||||
#include <bits/gthr-solaris.h>
|
||||
|
||||
/* Include GTHREAD_FILE if one is defined. */
|
||||
#elif defined(_GLIBCXX_HAVE_GTHR_DEFAULT)
|
||||
#if __GXX_WEAK__
|
||||
#ifndef _GLIBCXX_GTHREAD_USE_WEAK
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 1
|
||||
#endif
|
||||
#endif
|
||||
#include <bits/gthr-default.h>
|
||||
|
||||
/* Fallback to single thread definitions. */
|
||||
#else
|
||||
#include <bits/gthr-single.h>
|
||||
#endif
|
||||
|
||||
#ifndef _GLIBCXX_HIDE_EXPORTS
|
||||
#pragma GCC visibility pop
|
||||
#endif
|
||||
|
||||
#endif /* ! _GLIBCXX_GCC_GTHR_H */
|
@ -1,90 +0,0 @@
|
||||
// std::messages implementation details, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 messages_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
|
||||
//
|
||||
|
||||
// Written by Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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
|
@ -1,52 +0,0 @@
|
||||
// Specific definitions for newlib -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2005, 2009 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 os_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_OS_DEFINES
|
||||
#define _GLIBCXX_OS_DEFINES 1
|
||||
|
||||
// System-specific #define, typedefs, corrections, etc, go here. This
|
||||
// file will come before all others.
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#define _GLIBCXX_GTHREAD_USE_WEAK 0
|
||||
|
||||
#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
|
||||
#endif
|
||||
|
||||
#endif
|
@ -1,115 +0,0 @@
|
||||
// C++ includes used for precompiling -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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>
|
||||
|
||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#include <ccomplex>
|
||||
#include <cfenv>
|
||||
#include <cinttypes>
|
||||
#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>
|
||||
|
||||
#ifdef __GXX_EXPERIMENTAL_CXX0X__
|
||||
#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 <system_error>
|
||||
#include <thread>
|
||||
#include <tuple>
|
||||
#include <type_traits>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#endif
|
@ -1,53 +0,0 @@
|
||||
// C++ includes used for precompiling TR1 -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2006, 2009 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>
|
@ -1,90 +0,0 @@
|
||||
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
// 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 time_members.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
template<typename _CharT>
|
||||
__timepunct<_CharT>::__timepunct(size_t __refs)
|
||||
: facet(__refs), _M_data(NULL)
|
||||
{
|
||||
_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(NULL)
|
||||
{
|
||||
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
|
@ -1,47 +0,0 @@
|
||||
// Low-level type for atomic operations -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2009 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
|
@ -1,108 +0,0 @@
|
||||
// Wrapper of C-language FILE struct -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 basic_file.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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 <ios>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
// 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 ();
|
||||
|
||||
__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
|
||||
|
||||
#endif
|
@ -1,37 +0,0 @@
|
||||
// Base to std::allocator -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2004, 2005, 2009 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 c++allocator.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CXX_ALLOCATOR_H
|
||||
#define _GLIBCXX_CXX_ALLOCATOR_H 1
|
||||
|
||||
// Define new_allocator as the base class to std::allocator.
|
||||
#include <ext/new_allocator.h>
|
||||
#define __glibcxx_base_allocator __gnu_cxx::new_allocator
|
||||
|
||||
#endif
|
@ -1,1506 +0,0 @@
|
||||
// Predefined symbols and macros -*- C++ -*-
|
||||
|
||||
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
|
||||
// 2006, 2007, 2008, 2009 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 c++config.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#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__ 20101216
|
||||
|
||||
// Macros for visibility.
|
||||
// _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
// _GLIBCXX_VISIBILITY_ATTR
|
||||
# define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1
|
||||
|
||||
#if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY
|
||||
# define _GLIBCXX_VISIBILITY_ATTR(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_ATTR(V) _GLIBCXX_PSEUDO_VISIBILITY(V)
|
||||
#endif
|
||||
|
||||
// Macros for deprecated.
|
||||
// _GLIBCXX_DEPRECATED
|
||||
// _GLIBCXX_DEPRECATED_ATTR
|
||||
#ifndef _GLIBCXX_DEPRECATED
|
||||
# define _GLIBCXX_DEPRECATED 1
|
||||
#endif
|
||||
|
||||
#if defined(__DEPRECATED) && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define _GLIBCXX_DEPRECATED_ATTR __attribute__ ((__deprecated__))
|
||||
#else
|
||||
# define _GLIBCXX_DEPRECATED_ATTR
|
||||
#endif
|
||||
|
||||
// Macros for activating various namespace association modes.
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
// _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
|
||||
// Guide to libstdc++ namespaces.
|
||||
/*
|
||||
namespace std
|
||||
{
|
||||
namespace __debug { }
|
||||
namespace __parallel { }
|
||||
namespace __norm { } // __normative, __shadow, __replaced
|
||||
namespace __cxx1998 { }
|
||||
|
||||
namespace tr1 { }
|
||||
}
|
||||
*/
|
||||
#if __cplusplus
|
||||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG 1
|
||||
#endif
|
||||
|
||||
#ifdef _GLIBCXX_PARALLEL
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL 1
|
||||
#endif
|
||||
|
||||
// Namespace association for profile
|
||||
#ifdef _GLIBCXX_PROFILE
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE 1
|
||||
#endif
|
||||
|
||||
# define _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION 0
|
||||
|
||||
// Defined if any namespace association modes are active.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE \
|
||||
|| _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
# define _GLIBCXX_USE_NAMESPACE_ASSOCIATION 1
|
||||
#endif
|
||||
|
||||
// Macros for namespace scope. Either namespace std:: or the name
|
||||
// of some nested namespace within it.
|
||||
// _GLIBCXX_STD
|
||||
// _GLIBCXX_STD_D
|
||||
// _GLIBCXX_STD_P
|
||||
//
|
||||
// Macros for enclosing namespaces and possibly nested namespaces.
|
||||
// _GLIBCXX_BEGIN_NAMESPACE
|
||||
// _GLIBCXX_END_NAMESPACE
|
||||
// _GLIBCXX_BEGIN_NESTED_NAMESPACE
|
||||
// _GLIBCXX_END_NESTED_NAMESPACE
|
||||
#ifndef _GLIBCXX_USE_NAMESPACE_ASSOCIATION
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD std
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
#else
|
||||
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION // && not anything else
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD _6
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, _6)
|
||||
# define _GLIBCXX_END_NAMESPACE _GLIBCXX_END_NESTED_NAMESPACE
|
||||
# endif
|
||||
|
||||
// debug
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && !_GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
// debug + parallel
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL && _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE -1
|
||||
# endif
|
||||
|
||||
// profile
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
# if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL || _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG
|
||||
# error Cannot use -D_GLIBCXX_PROFILE with -D_GLIBCXX_DEBUG or \
|
||||
-D_GLIBCXX_PARALLEL
|
||||
# endif
|
||||
# define _GLIBCXX_STD_D __norm
|
||||
# define _GLIBCXX_STD_P _GLIBCXX_STD
|
||||
# define _GLIBCXX_STD_PR __norm
|
||||
# define _GLIBCXX_STD __cxx1998
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NAMESPACE }
|
||||
# endif
|
||||
|
||||
# if __NO_INLINE__ && !__GXX_WEAK__
|
||||
# warning currently using namespace associated mode which may fail \
|
||||
without inlining due to lack of weak symbols
|
||||
# endif
|
||||
|
||||
# define _GLIBCXX_BEGIN_NESTED_NAMESPACE(X, Y) namespace X { namespace Y _GLIBCXX_VISIBILITY_ATTR(default) {
|
||||
# define _GLIBCXX_END_NESTED_NAMESPACE } }
|
||||
#endif
|
||||
|
||||
// Namespace associations for debug mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_DEBUG && !_GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __debug { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for parallel mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __parallel { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for profile mode
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_PROFILE
|
||||
namespace std
|
||||
{
|
||||
namespace __norm { }
|
||||
inline namespace __profile { }
|
||||
inline namespace __cxx1998 { }
|
||||
}
|
||||
#endif
|
||||
|
||||
// Namespace associations for versioning mode.
|
||||
#if _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION
|
||||
namespace std
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace __gnu_cxx
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
namespace tr1
|
||||
{
|
||||
inline namespace _6 { }
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// XXX GLIBCXX_ABI Deprecated
|
||||
// Define if compatibility should be provided for -mlong-double-64
|
||||
#undef _GLIBCXX_LONG_DOUBLE_COMPAT
|
||||
|
||||
// Namespace associations for long double 128 mode.
|
||||
#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
|
||||
namespace std
|
||||
{
|
||||
inline namespace __gnu_cxx_ldbl128 { }
|
||||
}
|
||||
# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128::
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 {
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE }
|
||||
#else
|
||||
# define _GLIBCXX_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_LDBL_NAMESPACE
|
||||
# define _GLIBCXX_END_LDBL_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// Defines for C compatibility. In particular, define extern "C"
|
||||
// linkage only when using C++.
|
||||
# define _GLIBCXX_BEGIN_EXTERN_C extern "C" {
|
||||
# define _GLIBCXX_END_EXTERN_C }
|
||||
|
||||
#else // !__cplusplus
|
||||
# undef _GLIBCXX_BEGIN_NAMESPACE
|
||||
# undef _GLIBCXX_END_NAMESPACE
|
||||
# define _GLIBCXX_BEGIN_NAMESPACE(X)
|
||||
# define _GLIBCXX_END_NAMESPACE
|
||||
# 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
|
||||
|
||||
// Allow use of "export template." This is currently not a feature
|
||||
// that g++ supports.
|
||||
// #define _GLIBCXX_EXPORT_TEMPLATE 1
|
||||
|
||||
// Allow use of the GNU syntax extension, "extern template." This
|
||||
// extension is fully documented in the g++ manual, but in a nutshell,
|
||||
// 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.
|
||||
#ifndef _GLIBCXX_EXTERN_TEMPLATE
|
||||
# define _GLIBCXX_EXTERN_TEMPLATE 1
|
||||
#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
|
||||
|
||||
// Assert.
|
||||
// Avoid the use of assert, because we're trying to keep the <cassert>
|
||||
// include out of the mix.
|
||||
#if !defined(_GLIBCXX_DEBUG) && !defined(_GLIBCXX_PARALLEL)
|
||||
#define __glibcxx_assert(_Condition)
|
||||
#else
|
||||
_GLIBCXX_BEGIN_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();
|
||||
}
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#define __glibcxx_assert(_Condition) \
|
||||
do \
|
||||
{ \
|
||||
if (! (_Condition)) \
|
||||
std::__replacement_assert(__FILE__, __LINE__, \
|
||||
__PRETTY_FUNCTION__, #_Condition); \
|
||||
} while (false)
|
||||
#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
|
||||
|
||||
#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
|
||||
|
||||
#ifndef _GLIBCXX_NOTHROW
|
||||
# ifdef __cplusplus
|
||||
# define _GLIBCXX_NOTHROW throw()
|
||||
# else
|
||||
# define _GLIBCXX_NOTHROW __attribute__((__nothrow__))
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// End of prewritten config; the discovered settings 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. */
|
||||
/* #undef _GLIBCXX_HAVE_ACOSL */
|
||||
|
||||
/* Define to 1 if you have the `asinf' function. */
|
||||
#define _GLIBCXX_HAVE_ASINF 1
|
||||
|
||||
/* Define to 1 if you have the `asinl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ASINL */
|
||||
|
||||
/* Define to 1 if the target assembler supports .symver directive. */
|
||||
#define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
|
||||
|
||||
/* Define to 1 if you have the `atan2f' function. */
|
||||
#define _GLIBCXX_HAVE_ATAN2F 1
|
||||
|
||||
/* Define to 1 if you have the `atan2l' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATAN2L */
|
||||
|
||||
/* Define to 1 if you have the `atanf' function. */
|
||||
#define _GLIBCXX_HAVE_ATANF 1
|
||||
|
||||
/* Define to 1 if you have the `atanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_ATANL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_CEILL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_COSHL */
|
||||
|
||||
/* Define to 1 if you have the `cosl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_COSL */
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_DLFCN_H */
|
||||
|
||||
/* Define if EBADMSG exists. */
|
||||
#define _GLIBCXX_HAVE_EBADMSG 1
|
||||
|
||||
/* Define if ECANCELED exists. */
|
||||
#define _GLIBCXX_HAVE_ECANCELED 1
|
||||
|
||||
/* Define if EIDRM exists. */
|
||||
#define _GLIBCXX_HAVE_EIDRM 1
|
||||
|
||||
/* Define to 1 if you have the <endian.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_ENDIAN_H */
|
||||
|
||||
/* Define if ENODATA exists. */
|
||||
#define _GLIBCXX_HAVE_ENODATA 1
|
||||
|
||||
/* Define if ENOLINK exists. */
|
||||
#define _GLIBCXX_HAVE_ENOLINK 1
|
||||
|
||||
/* Define if ENOSR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSR 1
|
||||
|
||||
/* Define if ENOSTR exists. */
|
||||
#define _GLIBCXX_HAVE_ENOSTR 1
|
||||
|
||||
/* Define if ENOTRECOVERABLE exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTRECOVERABLE 1
|
||||
|
||||
/* Define if ENOTSUP exists. */
|
||||
#define _GLIBCXX_HAVE_ENOTSUP 1
|
||||
|
||||
/* Define if EOVERFLOW exists. */
|
||||
#define _GLIBCXX_HAVE_EOVERFLOW 1
|
||||
|
||||
/* Define if EOWNERDEAD exists. */
|
||||
#define _GLIBCXX_HAVE_EOWNERDEAD 1
|
||||
|
||||
/* Define if EPROTO exists. */
|
||||
#define _GLIBCXX_HAVE_EPROTO 1
|
||||
|
||||
/* Define if ETIME exists. */
|
||||
#define _GLIBCXX_HAVE_ETIME 1
|
||||
|
||||
/* Define if ETXTBSY exists. */
|
||||
#define _GLIBCXX_HAVE_ETXTBSY 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_EXPL */
|
||||
|
||||
/* Define to 1 if you have the `fabsf' function. */
|
||||
#define _GLIBCXX_HAVE_FABSF 1
|
||||
|
||||
/* Define to 1 if you have the `fabsl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_FABSL */
|
||||
|
||||
/* Define to 1 if you have the <fenv.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_FENV_H */
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FLOORL */
|
||||
|
||||
/* Define to 1 if you have the `fmodf' function. */
|
||||
#define _GLIBCXX_HAVE_FMODF 1
|
||||
|
||||
/* 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 <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. */
|
||||
/* #undef _GLIBCXX_HAVE_FREXPL */
|
||||
|
||||
/* Define if _Unwind_GetIPInfo is available. */
|
||||
#define _GLIBCXX_HAVE_GETIPINFO 1
|
||||
|
||||
/* Define if gthr-default.h exists (meaning that threading support is
|
||||
enabled). */
|
||||
/* #undef _GLIBCXX_HAVE_GTHR_DEFAULT */
|
||||
|
||||
/* Define to 1 if you have the `hypot' function. */
|
||||
#define _GLIBCXX_HAVE_HYPOT 1
|
||||
|
||||
/* 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 if you have the iconv() function. */
|
||||
#define _GLIBCXX_HAVE_ICONV 1
|
||||
|
||||
/* Define to 1 if you have the <ieeefp.h> header file. */
|
||||
#define _GLIBCXX_HAVE_IEEEFP_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #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 */
|
||||
|
||||
/* Defined if iswblank exists. */
|
||||
#define _GLIBCXX_HAVE_ISWBLANK 1
|
||||
|
||||
/* Define if LC_MESSAGES is available in <locale.h>. */
|
||||
#define _GLIBCXX_HAVE_LC_MESSAGES 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpf' function. */
|
||||
#define _GLIBCXX_HAVE_LDEXPF 1
|
||||
|
||||
/* Define to 1 if you have the `ldexpl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LDEXPL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_LOG10L */
|
||||
|
||||
/* Define to 1 if you have the `logf' function. */
|
||||
#define _GLIBCXX_HAVE_LOGF 1
|
||||
|
||||
/* Define to 1 if you have the `logl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_LOGL */
|
||||
|
||||
/* Define to 1 if you have the <machine/endian.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
|
||||
|
||||
/* Define to 1 if you have the <machine/param.h> header file. */
|
||||
#define _GLIBCXX_HAVE_MACHINE_PARAM_H 1
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_MEMORY_H */
|
||||
|
||||
/* Define to 1 if you have the `modf' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODF */
|
||||
|
||||
/* Define to 1 if you have the `modff' function. */
|
||||
#define _GLIBCXX_HAVE_MODFF 1
|
||||
|
||||
/* Define to 1 if you have the `modfl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_MODFL */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_POWL */
|
||||
|
||||
/* Define to 1 if you have the `qfpclass' function. */
|
||||
/* #undef _GLIBCXX_HAVE_QFPCLASS */
|
||||
|
||||
/* 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. */
|
||||
/* #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. */
|
||||
#define _GLIBCXX_HAVE_SQRTF 1
|
||||
|
||||
/* Define to 1 if you have the `sqrtl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_SQRTL */
|
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */
|
||||
#define _GLIBCXX_HAVE_STDBOOL_H 1
|
||||
|
||||
/* 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>. */
|
||||
#define _GLIBCXX_HAVE_STRERROR_R 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
/* #undef _GLIBCXX_HAVE_STRINGS_H */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_STRTOLD */
|
||||
|
||||
/* Define if strxfrm_l is available in <string.h>. */
|
||||
/* #undef _GLIBCXX_HAVE_STRXFRM_L */
|
||||
|
||||
/* 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. */
|
||||
#define _GLIBCXX_HAVE_SYS_RESOURCE_H 1
|
||||
|
||||
/* 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/stat.h> header file. */
|
||||
#define _GLIBCXX_HAVE_SYS_STAT_H 1
|
||||
|
||||
/* 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>. */
|
||||
/* #undef _GLIBCXX_HAVE_S_ISREG */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_HAVE_TANHL */
|
||||
|
||||
/* Define to 1 if you have the `tanl' function. */
|
||||
/* #undef _GLIBCXX_HAVE_TANL */
|
||||
|
||||
/* Define to 1 if you have the <tgmath.h> header file. */
|
||||
#define _GLIBCXX_HAVE_TGMATH_H 1
|
||||
|
||||
/* Define to 1 if the target supports thread-local storage. */
|
||||
/* #undef _GLIBCXX_HAVE_TLS */
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define _GLIBCXX_HAVE_UNISTD_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
|
||||
|
||||
/* 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 as const if the declaration of iconv() needs const. */
|
||||
/* #undef _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 builtin atomic operations for bool are supported on this host. */
|
||||
#define _GLIBCXX_ATOMIC_BUILTINS_1 1
|
||||
|
||||
/* Define if builtin atomic operations for short are supported on this host.
|
||||
*/
|
||||
#define _GLIBCXX_ATOMIC_BUILTINS_2 1
|
||||
|
||||
/* Define if builtin atomic operations for int are supported on this host. */
|
||||
#define _GLIBCXX_ATOMIC_BUILTINS_4 1
|
||||
|
||||
/* Define if builtin atomic operations for long long are supported on this
|
||||
host. */
|
||||
/* #undef _GLIBCXX_ATOMIC_BUILTINS_8 */
|
||||
|
||||
/* Define to use concept checking code from the boost libraries. */
|
||||
/* #undef _GLIBCXX_CONCEPT_CHECKS */
|
||||
|
||||
/* Define to 1 if building for use with CSLIBC, or 0 otherwise. */
|
||||
#define _GLIBCXX_CSLIBC 0
|
||||
|
||||
/* Define if a fully dynamic basic_string is wanted. */
|
||||
/* #undef _GLIBCXX_FULLY_DYNAMIC_STRING */
|
||||
|
||||
/* 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 if EOF == -1, SEEK_CUR == 1, SEEK_END == 2. */
|
||||
#define _GLIBCXX_STDIO_MACROS 1
|
||||
|
||||
/* 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 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. */
|
||||
#define _GLIBCXX_USE_C99_CTYPE_TR1 1
|
||||
|
||||
/* Define if C99 functions in <fenv.h> should be imported in <tr1/cfenv> in
|
||||
namespace std::tr1. */
|
||||
/* #undef _GLIBCXX_USE_C99_FENV_TR1 */
|
||||
|
||||
/* 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. */
|
||||
/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
|
||||
|
||||
/* 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 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. */
|
||||
/* #undef _GLIBCXX_USE_DECIMAL_FLOAT */
|
||||
|
||||
/* Defined if gettimeofday is available. */
|
||||
/* #undef _GLIBCXX_USE_GETTIMEOFDAY */
|
||||
|
||||
/* 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 /dev/random and /dev/urandom are available for the random_device
|
||||
of TR1 (Chapter 5.1). */
|
||||
/* #undef _GLIBCXX_USE_RANDOM_TR1 */
|
||||
|
||||
/* Defined if sched_yield is available. */
|
||||
/* #undef _GLIBCXX_USE_SCHED_YIELD */
|
||||
|
||||
/* Define if code specialized for wchar_t should be used. */
|
||||
#define _GLIBCXX_USE_WCHAR_T 1
|
||||
|
||||
#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
|
@ -1,49 +0,0 @@
|
||||
// Underlying io library details -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
|
||||
// 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 c++io.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
// c_io_stdio.h - Defines for using "C" stdio.h
|
||||
|
||||
#ifndef _GLIBCXX_CXX_IO_H
|
||||
#define _GLIBCXX_CXX_IO_H 1
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstddef>
|
||||
#include <bits/gthr.h>
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
typedef __gthread_mutex_t __c_lock;
|
||||
|
||||
// for basic_file.h
|
||||
typedef FILE __c_file;
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
||||
|
||||
#endif
|
@ -1,91 +0,0 @@
|
||||
// Wrapper for underlying C-language localization -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
|
||||
// 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 c++locale.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// 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>
|
||||
#include <cstddef>
|
||||
|
||||
#define _GLIBCXX_NUM_CATEGORIES 0
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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, NULL);
|
||||
char* __sav = NULL;
|
||||
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
|
||||
|
||||
#endif
|
@ -1,33 +0,0 @@
|
||||
// Specific definitions for generic platforms -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2005, 2009 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 cpu_defines.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
#ifndef _GLIBCXX_CPU_DEFINES
|
||||
#define _GLIBCXX_CPU_DEFINES 1
|
||||
|
||||
#endif
|
@ -1,57 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h, for solaris2.5.1
|
||||
|
||||
// Support for Solaris 2.5.1
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
/// @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 char mask;
|
||||
static const mask upper = _U;
|
||||
static const mask lower = _L;
|
||||
static const mask alpha = _U | _L;
|
||||
static const mask digit = _N;
|
||||
static const mask xdigit = _X | _N;
|
||||
static const mask space = _S;
|
||||
static const mask print = _P | _U | _L | _N | _B;
|
||||
static const mask graph = _P | _U | _L | _N;
|
||||
static const mask cntrl = _C;
|
||||
static const mask punct = _P;
|
||||
static const mask alnum = _U | _L | _N;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE
|
@ -1,71 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_inline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
|
||||
// functions go in ctype.cc
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE(std)
|
||||
|
||||
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
|
@ -1,98 +0,0 @@
|
||||
// Locale support -*- C++ -*-
|
||||
|
||||
// Copyright (C) 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 3, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Under Section 7 of GPL version 3, you are granted additional
|
||||
// permissions described in the GCC Runtime Library Exception, version
|
||||
// 3.1, as published by the Free Software Foundation.
|
||||
|
||||
// You should have received a copy of the GNU General Public License and
|
||||
// a copy of the GCC Runtime Library Exception along with this program;
|
||||
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
// <http://www.gnu.org/licenses/>.
|
||||
|
||||
/** @file ctype_noninline.h
|
||||
* This is an internal header file, included by other library headers.
|
||||
* You should not attempt to use it directly.
|
||||
*/
|
||||
|
||||
//
|
||||
// ISO C++ 14882: 22.1 Locales
|
||||
//
|
||||
|
||||
// Information as gleaned from /usr/include/ctype.h
|
||||
|
||||
const ctype_base::mask*
|
||||
ctype<char>::classic_table() throw()
|
||||
{ return _ctype_ + 1; }
|
||||
|
||||
ctype<char>::ctype(__c_locale, const mask* __table, bool __del,
|
||||
size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
|
||||
: facet(__refs), _M_del(__table != 0 && __del),
|
||||
_M_toupper(NULL), _M_tolower(NULL),
|
||||
_M_table(__table ? __table : classic_table())
|
||||
{
|
||||
memset(_M_widen, 0, sizeof(_M_widen));
|
||||
_M_widen_ok = 0;
|
||||
memset(_M_narrow, 0, sizeof(_M_narrow));
|
||||
_M_narrow_ok = 0;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_toupper(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::lower, __c) ? (__x - 'a' + 'A') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_toupper(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_toupper(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
||||
char
|
||||
ctype<char>::do_tolower(char __c) const
|
||||
{
|
||||
int __x = __c;
|
||||
return (this->is(ctype_base::upper, __c) ? (__x - 'A' + 'a') : __x);
|
||||
}
|
||||
|
||||
const char*
|
||||
ctype<char>::do_tolower(char* __low, const char* __high) const
|
||||
{
|
||||
while (__low < __high)
|
||||
{
|
||||
*__low = this->do_tolower(*__low);
|
||||
++__low;
|
||||
}
|
||||
return __high;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user