From 0c71f582b5439db97f9a94b233f19e7290988b72 Mon Sep 17 00:00:00 2001 From: Jonathan Roelofs Date: Mon, 2 Feb 2015 15:04:29 +0000 Subject: [PATCH] Use fseek/ftell instead of fseeko/ftello when Newlib is the libc http://reviews.llvm.org/D6626 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@227804 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/fstream | 6 +++--- include/iosfwd | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/fstream b/include/fstream index 38778c67..ace5eb99 100644 --- a/include/fstream +++ b/include/fstream @@ -807,7 +807,7 @@ basic_filebuf<_CharT, _Traits>::seekoff(off_type __off, ios_base::seekdir __way, default: return pos_type(off_type(-1)); } -#if _WIN32 +#if defined(_WIN32) || defined(_NEWLIB_VERSION) if (fseek(__file_, __width > 0 ? __width * __off : 0, __whence)) return pos_type(off_type(-1)); pos_type __r = ftell(__file_); @@ -826,7 +826,7 @@ basic_filebuf<_CharT, _Traits>::seekpos(pos_type __sp, ios_base::openmode) { if (__file_ == 0 || sync()) return pos_type(off_type(-1)); -#if _WIN32 +#if defined(_WIN32) || defined(_NEWLIB_VERSION) if (fseek(__file_, __sp, SEEK_SET)) return pos_type(off_type(-1)); #else @@ -891,7 +891,7 @@ basic_filebuf<_CharT, _Traits>::sync() } } } -#if _WIN32 +#if defined(_WIN32) || defined(_NEWLIB_VERSION) if (fseek(__file_, -__c, SEEK_CUR)) return -1; #else diff --git a/include/iosfwd b/include/iosfwd index d24c227b..eccfd349 100644 --- a/include/iosfwd +++ b/include/iosfwd @@ -180,7 +180,12 @@ typedef fpos u16streampos; typedef fpos u32streampos; #endif // _LIBCPP_HAS_NO_UNICODE_CHARS +#if defined(_NEWLIB_VERSION) +// On newlib, off_t is 'long int' +typedef long int streamoff; // for char_traits in +#else typedef long long streamoff; // for char_traits in +#endif template class _Traits = char_traits<_CharT>,