])
-dnl
-dnl Check whether int64_t is available in <stdint.h>, and define HAVE_INT64_T.
-dnl Also check whether int64_t is actually a typedef to long or long long.
-dnl
-AC_DEFUN([GLIBCXX_CHECK_INT64_T], [
-
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
-
- AC_MSG_CHECKING([for int64_t])
- AC_CACHE_VAL(glibcxx_cv_INT64_T, [
- AC_TRY_COMPILE(
- [#include <stdint.h>],
- [int64_t var;],
- [glibcxx_cv_INT64_T=yes],
- [glibcxx_cv_INT64_T=no])
- ])
-
- if test $glibcxx_cv_INT64_T = yes; then
- AC_DEFINE(HAVE_INT64_T, 1, [Define if int64_t is available in <stdint.h>.])
- AC_MSG_RESULT($glibcxx_cv_INT64_T)
-
- AC_MSG_CHECKING([for int64_t as long])
- AC_CACHE_VAL(glibcxx_cv_int64_t_long, [
- AC_TRY_COMPILE(
- [#include <stdint.h>
- template<typename, typename> struct same { enum { value = -1 }; };
- template<typename Tp> struct same<Tp, Tp> { enum { value = 1 }; };
- int array[same<int64_t, long>::value];], [],
- [glibcxx_cv_int64_t_long=yes], [glibcxx_cv_int64_t_long=no])
- ])
-
- if test $glibcxx_cv_int64_t_long = yes; then
- AC_DEFINE(HAVE_INT64_T_LONG, 1, [Define if int64_t is a long.])
- AC_MSG_RESULT($glibcxx_cv_int64_t_long)
- fi
-
- AC_MSG_CHECKING([for int64_t as long long])
- AC_CACHE_VAL(glibcxx_cv_int64_t_long_long, [
- AC_TRY_COMPILE(
- [#include <stdint.h>
- template<typename, typename> struct same { enum { value = -1 }; };
- template<typename Tp> struct same<Tp, Tp> { enum { value = 1 }; };
- int array[same<int64_t, long long>::value];], [],
- [glibcxx_cv_int64_t_long_long=yes], [glibcxx_cv_int64_t_long_long=no])
- ])
-
- if test $glibcxx_cv_int64_t_long_long = yes; then
- AC_DEFINE(HAVE_INT64_T_LONG_LONG, 1, [Define if int64_t is a long long.])
- AC_MSG_RESULT($glibcxx_cv_int64_t_long_long)
- fi
- fi
-
- AC_LANG_RESTORE
-])
-
-
dnl
dnl Check whether LFS support is available.
dnl
/* Define to 1 if you have the <ieeefp.h> header file. */
#undef HAVE_IEEEFP_H
-/* Define if int64_t is available in <stdint.h>. */
-#undef HAVE_INT64_T
-
-/* Define if int64_t is a long. */
-#undef HAVE_INT64_T_LONG
-
-/* Define if int64_t is a long long. */
-#undef HAVE_INT64_T_LONG_LONG
-
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
-# For the streamoff typedef.
-
-
-
- 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
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int64_t" >&5
-$as_echo_n "checking for int64_t... " >&6; }
- if ${glibcxx_cv_INT64_T+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdint.h>
-int
-main ()
-{
-int64_t var;
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- glibcxx_cv_INT64_T=yes
-else
- glibcxx_cv_INT64_T=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-
- if test $glibcxx_cv_INT64_T = yes; then
-
-$as_echo "#define HAVE_INT64_T 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_INT64_T" >&5
-$as_echo "$glibcxx_cv_INT64_T" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int64_t as long" >&5
-$as_echo_n "checking for int64_t as long... " >&6; }
- if ${glibcxx_cv_int64_t_long+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdint.h>
- template<typename, typename> struct same { enum { value = -1 }; };
- template<typename Tp> struct same<Tp, Tp> { enum { value = 1 }; };
- int array[same<int64_t, long>::value];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- glibcxx_cv_int64_t_long=yes
-else
- glibcxx_cv_int64_t_long=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-
- if test $glibcxx_cv_int64_t_long = yes; then
-
-$as_echo "#define HAVE_INT64_T_LONG 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_int64_t_long" >&5
-$as_echo "$glibcxx_cv_int64_t_long" >&6; }
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for int64_t as long long" >&5
-$as_echo_n "checking for int64_t as long long... " >&6; }
- if ${glibcxx_cv_int64_t_long_long+:} false; then :
- $as_echo_n "(cached) " >&6
-else
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdint.h>
- template<typename, typename> struct same { enum { value = -1 }; };
- template<typename Tp> struct same<Tp, Tp> { enum { value = 1 }; };
- int array[same<int64_t, long long>::value];
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
- glibcxx_cv_int64_t_long_long=yes
-else
- glibcxx_cv_int64_t_long_long=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-
-
- if test $glibcxx_cv_int64_t_long_long = yes; then
-
-$as_echo "#define HAVE_INT64_T_LONG_LONG 1" >>confdefs.h
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_int64_t_long_long" >&5
-$as_echo "$glibcxx_cv_int64_t_long_long" >&6; }
- fi
- fi
-
- 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
-
-
-
# For LFS support.
GLIBCXX_CHECK_MATH11_PROTO
GLIBCXX_CHECK_UCHAR_H
-# For the streamoff typedef.
-GLIBCXX_CHECK_INT64_T
-
# For LFS support.
GLIBCXX_CHECK_LFS
#include <cwchar> // For mbstate_t
-// XXX If <stdint.h> is really needed, make sure to define the macros
-// before including it, in order not to break <tr1/cstdint> (and <cstdint>
-// in C++11). Reconsider all this as soon as possible...
-#if (defined(_GLIBCXX_HAVE_INT64_T) && !defined(_GLIBCXX_HAVE_INT64_T_LONG) \
- && !defined(_GLIBCXX_HAVE_INT64_T_LONG_LONG))
-
-#ifndef __STDC_LIMIT_MACROS
-# define _UNDEF__STDC_LIMIT_MACROS
-# define __STDC_LIMIT_MACROS
-#endif
-#ifndef __STDC_CONSTANT_MACROS
-# define _UNDEF__STDC_CONSTANT_MACROS
-# define __STDC_CONSTANT_MACROS
-#endif
-#include <stdint.h> // For int64_t
-#ifdef _UNDEF__STDC_LIMIT_MACROS
-# undef __STDC_LIMIT_MACROS
-# undef _UNDEF__STDC_LIMIT_MACROS
-#endif
-#ifdef _UNDEF__STDC_CONSTANT_MACROS
-# undef __STDC_CONSTANT_MACROS
-# undef _UNDEF__STDC_CONSTANT_MACROS
-#endif
-
-#endif
-
namespace std _GLIBCXX_VISIBILITY(default)
{
_GLIBCXX_BEGIN_NAMESPACE_VERSION
* Note: In versions of GCC up to and including GCC 3.3, streamoff
* was typedef long.
*/
-#ifdef _GLIBCXX_HAVE_INT64_T_LONG
- typedef long streamoff;
-#elif defined(_GLIBCXX_HAVE_INT64_T_LONG_LONG)
- typedef long long streamoff;
-#elif defined(_GLIBCXX_HAVE_INT64_T)
- typedef int64_t streamoff;
+#ifdef __INT64_TYPE__
+ typedef __INT64_TYPE__ streamoff;
#else
typedef long long streamoff;
#endif