From 3d05b34592f594b7c91c62d44575add57593aa81 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Wed, 22 Oct 2003 15:51:55 +0000 Subject: [PATCH] re PR libstdc++/8610 (large file support in libstdc++-v3 (std::streamoff type is 32-bit in GCC 3.2 whereas it was 64-bit in GCC 2.96)) 2003-10-22 Paolo Carlini PR libstdc++/8610 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): New macro, checking for the availability of int64_t. (GLIBCXX_CHECK_LFS): New macro, checking for LFS support. * configure.ac: Call here. * acconfig.h: Add undef for the corresponding symbols. * config/io/basic_file_stdio.cc (__basic_file::open): Depending on _GLIBCXX_USE_LFS, call fopen64 or fopen. (__basic_file::seekoff): Likewise, call lseek64 when available, otherwise lseek, checking the __off parameter. * include/bits/postypes.h: Typedef __streamoff_base_type to int64_t if available, otherwise long long. * aclocal.m4: Regenerate. * config.h.in: Likewise. * configure: Likewise. * acinclude.m4 (GLIBCXX_CHECK_POLL, GLIBCXX_CHECK_WRITEV): Use AC_TRY_LINK instead of AC_TRY_COMPILE. From-SVN: r72806 --- libstdc++-v3/ChangeLog | 21 +++ libstdc++-v3/acconfig.h | 6 + libstdc++-v3/acinclude.m4 | 39 +++++- libstdc++-v3/aclocal.m4 | 39 +++++- libstdc++-v3/config.h.in | 6 + libstdc++-v3/config/io/basic_file_stdio.cc | 17 ++- libstdc++-v3/configure | 216 +++++++++++++++++++++++------ libstdc++-v3/configure.ac | 6 + libstdc++-v3/include/bits/postypes.h | 14 +- 9 files changed, 316 insertions(+), 48 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7ee8180..76d345e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,26 @@ 2003-10-22 Paolo Carlini + PR libstdc++/8610 + * acinclude.m4 (GLIBCXX_CHECK_INT64_T): New macro, + checking for the availability of int64_t. + (GLIBCXX_CHECK_LFS): New macro, checking for LFS support. + * configure.ac: Call here. + * acconfig.h: Add undef for the corresponding symbols. + * config/io/basic_file_stdio.cc (__basic_file::open): + Depending on _GLIBCXX_USE_LFS, call fopen64 or fopen. + (__basic_file::seekoff): Likewise, call lseek64 when + available, otherwise lseek, checking the __off parameter. + * include/bits/postypes.h: Typedef __streamoff_base_type + to int64_t if available, otherwise long long. + * aclocal.m4: Regenerate. + * config.h.in: Likewise. + * configure: Likewise. + + * acinclude.m4 (GLIBCXX_CHECK_POLL, GLIBCXX_CHECK_WRITEV): + Use AC_TRY_LINK instead of AC_TRY_COMPILE. + +2003-10-22 Paolo Carlini + PR libstdc++/12657 * include/bits/basic_ios.tcc (copyfmt(const basic_ios&)): Implement resolution of DR 292 (WP). diff --git a/libstdc++-v3/acconfig.h b/libstdc++-v3/acconfig.h index 87022c3..df110cd 100644 --- a/libstdc++-v3/acconfig.h +++ b/libstdc++-v3/acconfig.h @@ -153,6 +153,12 @@ // Define if writev is available in . #undef HAVE_WRITEV +// Define if int64_t is available in . +#undef HAVE_INT64_T + +// Define if LFS support is available. +#undef _GLIBCXX_USE_LFS + // Define if LC_MESSAGES is available in . #undef HAVE_LC_MESSAGES diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 57875a1..c0713b8 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -540,7 +540,7 @@ dnl Check whether poll is available in , and define HAVE_POLL. dnl AC_DEFUN(GLIBCXX_CHECK_POLL, [ AC_CACHE_VAL(glibcxx_cv_POLL, [ - AC_TRY_COMPILE( + AC_TRY_LINK( [#include ], [struct pollfd pfd[1]; pfd[0].events = POLLIN; @@ -559,7 +559,7 @@ dnl Check whether writev is available in , and define HAVE_WRITEV. dnl AC_DEFUN(GLIBCXX_CHECK_WRITEV, [ AC_CACHE_VAL(glibcxx_cv_WRITEV, [ - AC_TRY_COMPILE( + AC_TRY_LINK( [#include ], [struct iovec iov[2]; writev(0, iov, 0);], @@ -573,6 +573,41 @@ AC_DEFUN(GLIBCXX_CHECK_WRITEV, [ dnl +dnl Check whether int64_t is available in , and define HAVE_INT64_T. +dnl +AC_DEFUN(GLIBCXX_CHECK_INT64_T, [ + AC_CACHE_VAL(glibcxx_cv_INT64_T, [ + AC_TRY_COMPILE( + [#include ], + [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) + fi +]) + + +dnl +dnl Check whether LFS support is available. +dnl +AC_DEFUN(GLIBCXX_CHECK_LFS, [ + AC_CACHE_VAL(glibcxx_cv_LFS, [ + AC_TRY_LINK( + [#include ], + [fopen64("t", "w"); + lseek64(1, 0, SEEK_CUR);], + [glibcxx_cv_LFS=yes], + [glibcxx_cv_LFS=no]) + ]) + if test $glibcxx_cv_LFS = yes; then + AC_DEFINE(_GLIBCXX_USE_LFS) + fi +]) + + +dnl dnl Does any necessary configuration of the testsuite directory. Generates dnl the testsuite_hooks.h header. dnl diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4 index 9d7e3ac..ad6fc5e 100644 --- a/libstdc++-v3/aclocal.m4 +++ b/libstdc++-v3/aclocal.m4 @@ -553,7 +553,7 @@ dnl Check whether poll is available in , and define HAVE_POLL. dnl AC_DEFUN(GLIBCXX_CHECK_POLL, [ AC_CACHE_VAL(glibcxx_cv_POLL, [ - AC_TRY_COMPILE( + AC_TRY_LINK( [#include ], [struct pollfd pfd[1]; pfd[0].events = POLLIN; @@ -572,7 +572,7 @@ dnl Check whether writev is available in , and define HAVE_WRITEV. dnl AC_DEFUN(GLIBCXX_CHECK_WRITEV, [ AC_CACHE_VAL(glibcxx_cv_WRITEV, [ - AC_TRY_COMPILE( + AC_TRY_LINK( [#include ], [struct iovec iov[2]; writev(0, iov, 0);], @@ -586,6 +586,41 @@ AC_DEFUN(GLIBCXX_CHECK_WRITEV, [ dnl +dnl Check whether int64_t is available in , and define HAVE_INT64_T. +dnl +AC_DEFUN(GLIBCXX_CHECK_INT64_T, [ + AC_CACHE_VAL(glibcxx_cv_INT64_T, [ + AC_TRY_COMPILE( + [#include ], + [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) + fi +]) + + +dnl +dnl Check whether LFS support is available. +dnl +AC_DEFUN(GLIBCXX_CHECK_LFS, [ + AC_CACHE_VAL(glibcxx_cv_LFS, [ + AC_TRY_LINK( + [#include ], + [fopen64("t", "w"); + lseek64(1, 0, SEEK_CUR);], + [glibcxx_cv_LFS=yes], + [glibcxx_cv_LFS=no]) + ]) + if test $glibcxx_cv_LFS = yes; then + AC_DEFINE(_GLIBCXX_USE_LFS) + fi +]) + + +dnl dnl Does any necessary configuration of the testsuite directory. Generates dnl the testsuite_hooks.h header. dnl diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index 72fe7bf..8c59a31 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -154,6 +154,12 @@ // Define if writev is available in . #undef HAVE_WRITEV +// Define if int64_t is available in . +#undef HAVE_INT64_T + +// Define if LFS support is available. +#undef _GLIBCXX_USE_LFS + // Define if LC_MESSAGES is available in . #undef HAVE_LC_MESSAGES diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc index a74ac07..3025de5 100644 --- a/libstdc++-v3/config/io/basic_file_stdio.cc +++ b/libstdc++-v3/config/io/basic_file_stdio.cc @@ -68,6 +68,8 @@ # endif #endif +#include // For ::max() and min() + namespace std { // Definitions for __basic_file. @@ -173,7 +175,11 @@ namespace std if (!this->is_open()) { +#ifdef _GLIBCXX_USE_LFS + if ((_M_cfile = fopen64(__name, __c_mode))) +#else if ((_M_cfile = fopen(__name, __c_mode))) +#endif { _M_cfile_created = true; __ret = this; @@ -262,7 +268,16 @@ namespace std streamoff __basic_file::seekoff(streamoff __off, ios_base::seekdir __way) - { return lseek(this->fd(), __off, __way); } + { +#ifdef _GLIBCXX_USE_LFS + return lseek64(this->fd(), __off, __way); +#else + if (__off > std::numeric_limits::max() + || __off < std::numeric_limits::min()) + return -1L; + return lseek(this->fd(), __off, __way); +#endif + } int __basic_file::sync() diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 4f1966c..bf21ec1 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -971,7 +971,7 @@ ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi - cd "$ac_popdir" + cd $ac_popdir done fi @@ -1170,7 +1170,7 @@ _ASBOX echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 - rm -f core *.core && + rm -f core core.* *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 @@ -2800,7 +2800,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ - '' \ + ''\ + '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ @@ -2814,8 +2815,8 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_declaration #include +$ac_declaration int main () { @@ -3125,7 +3126,8 @@ else fi fi for ac_declaration in \ - '' \ + ''\ + '#include ' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ @@ -3139,8 +3141,8 @@ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ -$ac_declaration #include +$ac_declaration int main () { @@ -4265,7 +4267,7 @@ test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic" case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 4268 "configure"' > conftest.$ac_ext + echo '#line 4270 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -4869,7 +4871,7 @@ fi; # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF -#line 4872 "configure" +#line 4874 "configure" struct S { ~S(); }; void bar(); void foo() @@ -5457,7 +5459,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi @@ -5648,7 +5650,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) enable_clocale_flag=generic fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi @@ -7804,7 +7806,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" @@ -26443,7 +26445,12 @@ done echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF @@ -26461,13 +26468,13 @@ struct pollfd pfd[1]; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -26480,7 +26487,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 glibcxx_cv_POLL=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi @@ -26753,7 +26760,12 @@ done echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF @@ -26770,6 +26782,59 @@ struct iovec iov[2]; return 0; } _ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + glibcxx_cv_WRITEV=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +glibcxx_cv_WRITEV=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +fi + + if test $glibcxx_cv_WRITEV = yes; then + cat >>confdefs.h <<\_ACEOF +#define HAVE_WRITEV 1 +_ACEOF + + fi + + + # For the __streamoff_base_type typedef. + + if test "${glibcxx_cv_INT64_T+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +int64_t var; + ; + return 0; +} +_ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 @@ -26782,20 +26847,79 @@ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - glibcxx_cv_WRITEV=yes + glibcxx_cv_INT64_T=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -glibcxx_cv_WRITEV=no +glibcxx_cv_INT64_T=no fi rm -f conftest.$ac_objext conftest.$ac_ext fi - if test $glibcxx_cv_WRITEV = yes; then + if test $glibcxx_cv_INT64_T = yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_WRITEV 1 +#define HAVE_INT64_T 1 +_ACEOF + + fi + + + # For LFS support. + + if test "${glibcxx_cv_LFS+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +fopen64("t", "w"); + lseek64(1, 0, SEEK_CUR); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + glibcxx_cv_LFS=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +glibcxx_cv_LFS=no +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + +fi + + if test $glibcxx_cv_LFS = yes; then + cat >>confdefs.h <<\_ACEOF +#define _GLIBCXX_USE_LFS 1 _ACEOF fi @@ -27437,7 +27561,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_mmap_fixed_mapped=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 @@ -46470,7 +46594,12 @@ done echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF @@ -46488,13 +46617,13 @@ struct pollfd pfd[1]; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -46507,7 +46636,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 glibcxx_cv_POLL=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi @@ -46780,7 +46909,12 @@ done echo $ECHO_N "(cached) $ECHO_C" >&6 else - cat >conftest.$ac_ext <<_ACEOF + if test x$gcc_no_link = xyes; then + { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5 +echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;} + { (exit 1); exit 1; }; } +fi +cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ _ACEOF @@ -46797,13 +46931,13 @@ struct iovec iov[2]; return 0; } _ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' + { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -46816,7 +46950,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 glibcxx_cv_WRITEV=no fi -rm -f conftest.$ac_objext conftest.$ac_ext +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext fi @@ -47136,7 +47270,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" @@ -49278,7 +49412,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" @@ -51289,7 +51423,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" @@ -53309,7 +53443,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" @@ -55276,7 +55410,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" @@ -57142,7 +57276,7 @@ sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_sectionLDflags=no fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "$ac_test_CFLAGS" = set; then CFLAGS="$ac_save_CFLAGS" diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 7549202..b71117b9 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -134,6 +134,12 @@ if $GLIBCXX_IS_NATIVE; then AC_CHECK_HEADERS(sys/uio.h) GLIBCXX_CHECK_WRITEV + # For the __streamoff_base_type typedef. + GLIBCXX_CHECK_INT64_T + + # For LFS support. + GLIBCXX_CHECK_LFS + AC_LC_MESSAGES AC_TRY_COMPILE( diff --git a/libstdc++-v3/include/bits/postypes.h b/libstdc++-v3/include/bits/postypes.h index 50781ba..935ba7c 100644 --- a/libstdc++-v3/include/bits/postypes.h +++ b/libstdc++-v3/include/bits/postypes.h @@ -45,6 +45,10 @@ #include // For mbstate_t +#ifdef _GLIBCXX_HAVE_STDINT_H +#include // For int64_t +#endif + namespace std { // The types streamoff, streampos and wstreampos and the class @@ -52,8 +56,14 @@ namespace std // 27.2, 27.4.1, 27.4.3 and D.6. Despite all this verbage, the // behaviour of these types is mostly implementation defined or // unspecified. The behaviour in this implementation is as noted - // below. - typedef long __streamoff_base_type; + // below. + +#ifdef _GLIBCXX_HAVE_INT64_T + typedef int64_t __streamoff_base_type; +#else + typedef long long __streamoff_base_type; +#endif + typedef ptrdiff_t streamsize; // Signed integral type template -- 2.7.4