diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2011-08-29 12:54:55 +0000 |
---|---|---|
committer | Rainer Orth <ro@gcc.gnu.org> | 2011-08-29 12:54:55 +0000 |
commit | 09fae88db5dd9b8ce4d7cc774eac42921da851e5 (patch) | |
tree | c2d29549438148e93e2c263f449f91e969dad163 /libstdc++-v3 | |
parent | 25ebc085581bdd410ccb6d8be688c9775eb642d9 (diff) | |
download | gcc-09fae88db5dd9b8ce4d7cc774eac42921da851e5.zip gcc-09fae88db5dd9b8ce4d7cc774eac42921da851e5.tar.gz gcc-09fae88db5dd9b8ce4d7cc774eac42921da851e5.tar.bz2 |
Handle different versions of Solaris 8 <iso/math_iso.h>, <iso/stdlib_iso.h>
* acinclude.m4 (GLIBCXX_CHECK_MATH_PROTO)
(GLIBCXX_CHECK_STDLIB_PROTO): New tests.
* configure.ac (GLIBCXX_CHECK_MATH_PROTO)
(GLIBCXX_CHECK_STDLIB_PROTO): Call them.
* configure: Regenerate.
* config.h.in: Regenerate.
* config/os/solaris/solaris2.8/os_defines.h
(__CORRECT_ISO_CPP_MATH_H_PROTO2): Don't define.
* config/os/solaris/solaris2.9: Remove.
* configure.host (solaris2.8): Merge with ...
(solaris2.9, solaris2.1[0-9]): ... this.
Always use os/solaris/solaris2.8.
From-SVN: r178217
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 15 | ||||
-rw-r--r-- | libstdc++-v3/acinclude.m4 | 94 | ||||
-rw-r--r-- | libstdc++-v3/config.h.in | 15 | ||||
-rw-r--r-- | libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h | 9 | ||||
-rw-r--r-- | libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h | 60 | ||||
-rw-r--r-- | libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc | 99 | ||||
-rw-r--r-- | libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h | 76 | ||||
-rw-r--r-- | libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h | 40 | ||||
-rwxr-xr-x | libstdc++-v3/configure | 121 | ||||
-rw-r--r-- | libstdc++-v3/configure.ac | 2 | ||||
-rw-r--r-- | libstdc++-v3/configure.host | 5 |
11 files changed, 254 insertions, 282 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 69e297d..bc745b6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,18 @@ +2011-08-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> + + * acinclude.m4 (GLIBCXX_CHECK_MATH_PROTO) + (GLIBCXX_CHECK_STDLIB_PROTO): New tests. + * configure.ac (GLIBCXX_CHECK_MATH_PROTO) + (GLIBCXX_CHECK_STDLIB_PROTO): Call them. + * configure: Regenerate. + * config.h.in: Regenerate. + * config/os/solaris/solaris2.8/os_defines.h + (__CORRECT_ISO_CPP_MATH_H_PROTO2): Don't define. + * config/os/solaris/solaris2.9: Remove. + * configure.host (solaris2.8): Merge with ... + (solaris2.9, solaris2.1[0-9]): ... this. + Always use os/solaris/solaris2.8. + 2011-08-28 Paolo Carlini <paolo.carlini@oracle.com> * include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 8bbc40e..44ae984 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -1693,6 +1693,100 @@ AC_DEFUN([GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS], [ ]) dnl +dnl Check whether required C++ overloads are present in <math.h>. +dnl + +AC_DEFUN([GLIBCXX_CHECK_MATH_PROTO], [ + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + case "$host" in + *-*-solaris2.*) + # Solaris 8 FCS only had an overload for double std::abs(double) in + # <iso/math_iso.h>. Patches 111721-04 (SPARC) and 112757-01 (x86) + # introduced the full set also found from Solaris 9 onwards. + AC_MSG_CHECKING([for float std::abs(float) overload]) + AC_CACHE_VAL(glibcxx_cv_abs_float, [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [#include <math.h> + namespace std { + inline float abs(float __x) + { return __builtin_fabsf(__x); } + } + ])], + [glibcxx_cv_abs_float=no], + [glibcxx_cv_abs_float=yes] + )]) + + # autoheader cannot handle indented templates. + AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO1], + [/* Define if all C++ overloads are available in <math.h>. */ +#if __cplusplus >= 199711L +#undef __CORRECT_ISO_CPP_MATH_H_PROTO1 +#endif]) + AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO2], + [/* Define if only double std::abs(double) is available in <math.h>. */ +#if __cplusplus >= 199711L +#undef __CORRECT_ISO_CPP_MATH_H_PROTO2 +#endif]) + + if test $glibcxx_cv_abs_float = yes; then + AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO1) + else + AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO2) + fi + AC_MSG_RESULT($glibcxx_cv_abs_float) + ;; + esac + + AC_LANG_RESTORE +]) + +dnl +dnl Check whether required C++ overloads are present in <stdlib.h>. +dnl + +AC_DEFUN([GLIBCXX_CHECK_STDLIB_PROTO], [ + + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + case "$host" in + *-*-solaris2.*) + # Solaris 8 FCS lacked the overloads for long std::abs(long) and + # ldiv_t std::div(long, long) in <iso/stdlib_iso.h>. Patches 109607-02 + # (SPARC) and 109608-02 (x86) introduced them. + AC_MSG_CHECKING([for long std::abs(long) overload]) + AC_CACHE_VAL(glibcxx_cv_abs_long, [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [#include <stdlib.h> + namespace std { + inline long + abs(long __i) { return labs(__i); } + } + ])], + [glibcxx_cv_abs_long=no], + [glibcxx_cv_abs_long=yes] + )]) + + # autoheader cannot handle indented templates. + AH_VERBATIM([__CORRECT_ISO_CPP_STDLIB_H_PROTO], + [/* Define if all C++ overloads are available in <stdlib.h>. */ +#if __cplusplus >= 199711L +#undef __CORRECT_ISO_CPP_STDLIB_H_PROTO +#endif]) + if test $glibcxx_cv_abs_long = yes; then + AC_DEFINE(__CORRECT_ISO_CPP_STDLIB_H_PROTO, 1) + fi + AC_MSG_RESULT($glibcxx_cv_abs_long) + ;; + esac + + AC_LANG_RESTORE +]) + +dnl dnl Check whether macros, etc are present for <system_error> dnl AC_DEFUN([GLIBCXX_CHECK_SYSTEM_ERROR], [ diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index bf0ee34..837e2c7 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -826,6 +826,21 @@ /* Define to 1 if mutex_timedlock is available. */ #undef _GTHREAD_USE_MUTEX_TIMEDLOCK +/* Define if all C++ overloads are available in <math.h>. */ +#if __cplusplus >= 199711L +#undef __CORRECT_ISO_CPP_MATH_H_PROTO1 +#endif + +/* Define if only double std::abs(double) is available in <math.h>. */ +#if __cplusplus >= 199711L +#undef __CORRECT_ISO_CPP_MATH_H_PROTO2 +#endif + +/* Define if all C++ overloads are available in <stdlib.h>. */ +#if __cplusplus >= 199711L +#undef __CORRECT_ISO_CPP_STDLIB_H_PROTO +#endif + #if defined (HAVE__ACOSF) && ! defined (HAVE_ACOSF) # define HAVE_ACOSF 1 # define acosf _acosf diff --git a/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h index c58126b..82c1ec1 100644 --- a/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h +++ b/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h @@ -1,4 +1,4 @@ -// Specific definitions for Solaris 8 -*- C++ -*- +// Specific definitions for Solaris 8+ -*- C++ -*- // Copyright (C) 2000, 2002, 2005, 2009, 2011 Free Software Foundation, Inc. // @@ -28,9 +28,12 @@ // System-specific #define, typedefs, corrections, etc, go here. This // file will come before all others. -// FIXME: Autoconf if possible. #if __cplusplus >= 199711L -#define __CORRECT_ISO_CPP_MATH_H_PROTO2 +// Overloads in <iso/math_iso.h> and <iso/stdlib_iso.h> changed with +// Solaris 8 patches. Since <bits/c++config.h> includes +// <bits/os_defines.h> before configure results, +// __CORRECT_ISO_CPP_MATH_H_PROTO[12] and __CORRECT_ISO_CPP_STDLIB_H_PROTO +// must be defined via acinclude.m4. #define __CORRECT_ISO_CPP_STRING_H_PROTO #define __CORRECT_ISO_CPP_WCHAR_H_PROTO #endif diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h deleted file mode 100644 index 1ae3874..0000000 --- a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h +++ /dev/null @@ -1,60 +0,0 @@ -// Locale support -*- C++ -*- - -// Copyright (C) 1997, 1998, 1999, 2000, 2003, 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. Looks like this -// only works with solaris2.7 and solaris2.8. Thanks for not changing -// things, sun engineers! - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - /// @brief Base class for ctype. - struct ctype_base - { - // Non-standard typedefs. - typedef int* __to_type; - - // NB: Offsets into ctype<char>::_M_table force a particular size - // on the mask type. Because of this, we don't use an enum. - typedef unsigned int mask; - static const mask upper = _ISUPPER; - static const mask lower = _ISLOWER; - static const mask alpha = _ISALPHA; - static const mask digit = _ISDIGIT; - static const mask xdigit = _ISXDIGIT; - static const mask space = _ISSPACE; - static const mask print = _ISPRINT; - static const mask graph = _ISALPHA | _ISDIGIT | _ISPUNCT; - static const mask cntrl = _ISCNTRL; - static const mask punct = _ISPUNCT; - static const mask alnum = _ISALPHA | _ISDIGIT; - }; - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc deleted file mode 100644 index d351942..0000000 --- a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc +++ /dev/null @@ -1,99 +0,0 @@ -// Locale support -*- C++ -*- - -// Copyright (C) 2011 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file ctype_configure_char.cc */ - -// -// ISO C++ 14882: 22.1 Locales -// - -#include <locale> -#include <cstdlib> -#include <cstring> - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - -// Information as gleaned from /usr/include/ctype.h - - const ctype_base::mask* - ctype<char>::classic_table() throw() - { return __ctype_mask; } - - ctype<char>::ctype(__c_locale, const mask* __table, bool __del, - size_t __refs) - : facet(__refs), _M_del(__table != 0 && __del), - _M_toupper(__trans_upper), _M_tolower(__trans_lower), - _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(__trans_upper), _M_tolower(__trans_lower), - _M_table(__table ? __table : classic_table()) - { - memset(_M_widen, 0, sizeof(_M_widen)); - _M_widen_ok = 0; - memset(_M_narrow, 0, sizeof(_M_narrow)); - _M_narrow_ok = 0; - } - - char - ctype<char>::do_toupper(char __c) const - { return _M_toupper[static_cast<unsigned char>(__c)]; } - - const char* - ctype<char>::do_toupper(char* __low, const char* __high) const - { - while (__low < __high) - { - *__low = _M_toupper[static_cast<unsigned char>(*__low)]; - ++__low; - } - return __high; - } - - char - ctype<char>::do_tolower(char __c) const - { return _M_tolower[static_cast<unsigned char>(__c)]; } - - const char* - ctype<char>::do_tolower(char* __low, const char* __high) const - { - while (__low < __high) - { - *__low = _M_tolower[static_cast<unsigned char>(*__low)]; - ++__low; - } - return __high; - } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h deleted file mode 100644 index d6b8df4..0000000 --- a/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h +++ /dev/null @@ -1,76 +0,0 @@ -// Locale support -*- C++ -*- - -// Copyright (C) 2000, 2002, 2009, 2010 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -/** @file bits/ctype_inline.h - * This is an internal header file, included by other library headers. - * Do not attempt to use it directly. @headername{locale} - */ - -// -// ISO C++ 14882: 22.1 Locales -// - -// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*) -// functions go in ctype.cc - -namespace std _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - bool - ctype<char>:: - is(mask __m, char __c) const - { 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 - && !(_M_table[static_cast<unsigned char>(*__low)] & __m)) - ++__low; - return __low; - } - - const char* - ctype<char>:: - scan_not(mask __m, const char* __low, const char* __high) const - { - while (__low < __high - && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0) - ++__low; - return __low; - } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace diff --git a/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h deleted file mode 100644 index bf84f61..0000000 --- a/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h +++ /dev/null @@ -1,40 +0,0 @@ -// Specific definitions for Solaris 9+ -*- C++ -*- - -// Copyright (C) 2000, 2002, 2005, 2009, 2011 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library is free -// software; you can redistribute it and/or modify it under the -// terms of the GNU General Public License as published by the -// Free Software Foundation; either version 3, or (at your option) -// any later version. - -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// <http://www.gnu.org/licenses/>. - -#ifndef _GLIBCXX_OS_DEFINES -#define _GLIBCXX_OS_DEFINES 1 - -// System-specific #define, typedefs, corrections, etc, go here. This -// file will come before all others. - -// FIXME: Autoconf if possible. -#if __cplusplus >= 199711L -#define __CORRECT_ISO_CPP_MATH_H_PROTO1 -#define __CORRECT_ISO_CPP_STDLIB_H_PROTO -#define __CORRECT_ISO_CPP_STRING_H_PROTO -#define __CORRECT_ISO_CPP_WCHAR_H_PROTO -#endif - -#endif - diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index c7be667..dab2637 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -17188,6 +17188,127 @@ $as_echo "$enable_extern_template" >&6; } # Checks for operating systems support that doesn't require linking. + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + case "$host" in + *-*-solaris2.*) + # Solaris 8 FCS only had an overload for double std::abs(double) in + # <iso/math_iso.h>. Patches 111721-04 (SPARC) and 112757-01 (x86) + # introduced the full set also found from Solaris 9 onwards. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for float std::abs(float) overload" >&5 +$as_echo_n "checking for float std::abs(float) overload... " >&6; } + if test "${glibcxx_cv_abs_float+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <math.h> + namespace std { + inline float abs(float __x) + { return __builtin_fabsf(__x); } + } + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_abs_float=no +else + glibcxx_cv_abs_float=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + + # autoheader cannot handle indented templates. + + + + if test $glibcxx_cv_abs_float = yes; then + $as_echo "#define __CORRECT_ISO_CPP_MATH_H_PROTO1 1" >>confdefs.h + + else + $as_echo "#define __CORRECT_ISO_CPP_MATH_H_PROTO2 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_abs_float" >&5 +$as_echo "$glibcxx_cv_abs_float" >&6; } + ;; + esac + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + case "$host" in + *-*-solaris2.*) + # Solaris 8 FCS lacked the overloads for long std::abs(long) and + # ldiv_t std::div(long, long) in <iso/stdlib_iso.h>. Patches 109607-02 + # (SPARC) and 109608-02 (x86) introduced them. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long std::abs(long) overload" >&5 +$as_echo_n "checking for long std::abs(long) overload... " >&6; } + if test "${glibcxx_cv_abs_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> + namespace std { + inline long + abs(long __i) { return labs(__i); } + } + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_abs_long=no +else + glibcxx_cv_abs_long=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + + + # autoheader cannot handle indented templates. + + if test $glibcxx_cv_abs_long = yes; then + $as_echo "#define __CORRECT_ISO_CPP_STDLIB_H_PROTO 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_abs_long" >&5 +$as_echo "$glibcxx_cv_abs_long" >&6; } + ;; + esac + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOWNERDEAD" >&5 $as_echo_n "checking for EOWNERDEAD... " >&6; } if test "${glibcxx_cv_system_error1+set}" = set; then : diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 416c0d7..6e7fea6 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -135,6 +135,8 @@ GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING([no]) GLIBCXX_ENABLE_EXTERN_TEMPLATE([yes]) # Checks for operating systems support that doesn't require linking. +GLIBCXX_CHECK_MATH_PROTO +GLIBCXX_CHECK_STDLIB_PROTO GLIBCXX_CHECK_SYSTEM_ERROR # For the streamoff typedef. diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index 6aa1648..799cec2 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -284,12 +284,9 @@ case "${host_os}" in echo "Please specify the full version of Solaris, ie. solaris2.9 " 1>&2 exit 1 ;; - solaris2.8) + solaris2.[89] | solaris2.1[0-9]) os_include_dir="os/solaris/solaris2.8" ;; - solaris2.9 | solaris2.1[0-9]) - os_include_dir="os/solaris/solaris2.9" - ;; tpf) os_include_dir="os/tpf" ;; |