mirror of git://gcc.gnu.org/git/gcc.git
acinclude.m4, [...]: Support Bionic C library.
* acinclude.m4, configure.host: Support Bionic C library. * configure: Regenerate. * config/os/bionic/ctype_base.h, config/os/bionic/ctype_inline.h, * config/os/bionic/ctype_noincline.h, config/os/bionic/os_defines.h: New files, based on config/os/newlib/*. From-SVN: r160096
This commit is contained in:
parent
d47a371cf3
commit
aa6a73b9da
|
@ -1,3 +1,11 @@
|
||||||
|
2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||||
|
|
||||||
|
* acinclude.m4, configure.host: Support Bionic C library.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* config/os/bionic/ctype_base.h, config/os/bionic/ctype_inline.h,
|
||||||
|
* config/os/bionic/ctype_noincline.h, config/os/bionic/os_defines.h:
|
||||||
|
New files, based on config/os/newlib/*.
|
||||||
|
|
||||||
2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
|
2010-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
|
||||||
|
|
||||||
* config/arm/t-linux-androideabi: New.
|
* config/arm/t-linux-androideabi: New.
|
||||||
|
|
|
@ -95,7 +95,7 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
|
||||||
## (Right now, this only matters for enable_wchar_t, but nothing prevents
|
## (Right now, this only matters for enable_wchar_t, but nothing prevents
|
||||||
## other macros from doing the same. This should be automated.) -pme
|
## other macros from doing the same. This should be automated.) -pme
|
||||||
|
|
||||||
# Check for uClibc since Linux platforms use different configuration
|
# Check for C library flavor since Linux platforms use different configuration
|
||||||
# directories depending on the C library in use.
|
# directories depending on the C library in use.
|
||||||
AC_EGREP_CPP([_using_uclibc], [
|
AC_EGREP_CPP([_using_uclibc], [
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -104,6 +104,13 @@ AC_DEFUN([GLIBCXX_CONFIGURE], [
|
||||||
#endif
|
#endif
|
||||||
], uclibc=yes, uclibc=no)
|
], uclibc=yes, uclibc=no)
|
||||||
|
|
||||||
|
AC_EGREP_CPP([_using_bionic], [
|
||||||
|
#include <stdio.h>
|
||||||
|
#if __BIONIC__
|
||||||
|
_using_bionic
|
||||||
|
#endif
|
||||||
|
], bionic=yes, bionic=no)
|
||||||
|
|
||||||
# Find platform-specific directories containing configuration info.
|
# Find platform-specific directories containing configuration info.
|
||||||
# Also possibly modify flags used elsewhere, as needed by the platform.
|
# Also possibly modify flags used elsewhere, as needed by the platform.
|
||||||
GLIBCXX_CHECK_HOST
|
GLIBCXX_CHECK_HOST
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
//
|
||||||
|
// 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
|
|
@ -0,0 +1,71 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file 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
|
|
@ -0,0 +1,98 @@
|
||||||
|
// Locale support -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file 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;
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
// Specific definitions for Bionic -*- C++ -*-
|
||||||
|
|
||||||
|
// Copyright (C) 2010 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// Under Section 7 of GPL version 3, you are granted additional
|
||||||
|
// permissions described in the GCC Runtime Library Exception, version
|
||||||
|
// 3.1, as published by the Free Software Foundation.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License and
|
||||||
|
// a copy of the GCC Runtime Library Exception along with this program;
|
||||||
|
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
/** @file 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.
|
||||||
|
|
||||||
|
#endif
|
|
@ -5186,7 +5186,7 @@ fi
|
||||||
## (Right now, this only matters for enable_wchar_t, but nothing prevents
|
## (Right now, this only matters for enable_wchar_t, but nothing prevents
|
||||||
## other macros from doing the same. This should be automated.) -pme
|
## other macros from doing the same. This should be automated.) -pme
|
||||||
|
|
||||||
# Check for uClibc since Linux platforms use different configuration
|
# Check for C library flavor since Linux platforms use different configuration
|
||||||
# directories depending on the C library in use.
|
# directories depending on the C library in use.
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
|
@ -5206,6 +5206,24 @@ fi
|
||||||
rm -f conftest*
|
rm -f conftest*
|
||||||
|
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#if __BIONIC__
|
||||||
|
_using_bionic
|
||||||
|
#endif
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
|
||||||
|
$EGREP "_using_bionic" >/dev/null 2>&1; then :
|
||||||
|
bionic=yes
|
||||||
|
else
|
||||||
|
bionic=no
|
||||||
|
fi
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
|
||||||
# Find platform-specific directories containing configuration info.
|
# Find platform-specific directories containing configuration info.
|
||||||
# Also possibly modify flags used elsewhere, as needed by the platform.
|
# Also possibly modify flags used elsewhere, as needed by the platform.
|
||||||
|
|
||||||
|
@ -11442,7 +11460,7 @@ else
|
||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 11445 "configure"
|
#line 11463 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
|
@ -11548,7 +11566,7 @@ else
|
||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 11551 "configure"
|
#line 11569 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
|
@ -14888,7 +14906,7 @@ fi
|
||||||
#
|
#
|
||||||
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
|
# Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style.
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
#line 14891 "configure"
|
#line 14909 "configure"
|
||||||
struct S { ~S(); };
|
struct S { ~S(); };
|
||||||
void bar();
|
void bar();
|
||||||
void foo()
|
void foo()
|
||||||
|
@ -15256,7 +15274,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
|
||||||
# Fake what AC_TRY_COMPILE does.
|
# Fake what AC_TRY_COMPILE does.
|
||||||
|
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
#line 15259 "configure"
|
#line 15277 "configure"
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
typedef bool atomic_type;
|
typedef bool atomic_type;
|
||||||
|
@ -15293,7 +15311,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
|
||||||
rm -f conftest*
|
rm -f conftest*
|
||||||
|
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
#line 15296 "configure"
|
#line 15314 "configure"
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
typedef short atomic_type;
|
typedef short atomic_type;
|
||||||
|
@ -15330,7 +15348,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
|
||||||
rm -f conftest*
|
rm -f conftest*
|
||||||
|
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
#line 15333 "configure"
|
#line 15351 "configure"
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
// NB: _Atomic_word not necessarily int.
|
// NB: _Atomic_word not necessarily int.
|
||||||
|
@ -15368,7 +15386,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
|
||||||
rm -f conftest*
|
rm -f conftest*
|
||||||
|
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
#line 15371 "configure"
|
#line 15389 "configure"
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
typedef long long atomic_type;
|
typedef long long atomic_type;
|
||||||
|
@ -15444,7 +15462,7 @@ $as_echo "$as_me: WARNING: Performance of certain classes will degrade as a resu
|
||||||
# unnecessary for this test.
|
# unnecessary for this test.
|
||||||
|
|
||||||
cat > conftest.$ac_ext << EOF
|
cat > conftest.$ac_ext << EOF
|
||||||
#line 15447 "configure"
|
#line 15465 "configure"
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
_Decimal32 d1;
|
_Decimal32 d1;
|
||||||
|
|
|
@ -238,6 +238,8 @@ case "${host_os}" in
|
||||||
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
|
gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu)
|
||||||
if [ "$uclibc" = "yes" ]; then
|
if [ "$uclibc" = "yes" ]; then
|
||||||
os_include_dir="os/uclibc"
|
os_include_dir="os/uclibc"
|
||||||
|
elif [ "$bionic" = "yes" ]; then
|
||||||
|
os_include_dir="os/bionic"
|
||||||
else
|
else
|
||||||
os_include_dir="os/gnu-linux"
|
os_include_dir="os/gnu-linux"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue