X-Git-Url: http://git.pld-linux.org/?p=packages%2Fcrossmingw32-gcc.git;a=blobdiff_plain;f=crossmingw32-gcc-lfs.patch;fp=crossmingw32-gcc-lfs.patch;h=589bad1a565630ab4f758ea5f9780c3b28dbd305;hp=7a28abab8cf82258d14c9fbd83236868bd65c157;hb=0c9e92e0681b61587065ff25a44c77d1dcc1adc6;hpb=b113b3d529bf3af8e521b14d20bdb95eb895f3f8 diff --git a/crossmingw32-gcc-lfs.patch b/crossmingw32-gcc-lfs.patch index 7a28aba..589bad1 100644 --- a/crossmingw32-gcc-lfs.patch +++ b/crossmingw32-gcc-lfs.patch @@ -1,19 +1,6 @@ -diff -r faddb1a6e933 libstdc++-v3/config/io/basic_file_stdio.cc ---- a/libstdc++-v3/config/io/basic_file_stdio.cc Fri Jul 31 08:58:42 2009 -0600 -+++ b/libstdc++-v3/config/io/basic_file_stdio.cc Fri Jul 31 13:09:27 2009 -0600 -@@ -224,16 +224,16 @@ - } - return __ret; - } -- -- __basic_file* -- __basic_file::open(const char* __name, ios_base::openmode __mode, -+ -+ __basic_file* -+ __basic_file::open(const char* __name, ios_base::openmode __mode, - int /*__prot*/) - { - __basic_file* __ret = NULL; +--- gcc-7.5.0/libstdc++-v3/config/io/basic_file_stdio.cc.orig 2017-08-14 14:14:09.143001000 +0200 ++++ gcc-7.5.0/libstdc++-v3/config/io/basic_file_stdio.cc 2019-12-25 20:03:25.172581834 +0100 +@@ -236,7 +236,7 @@ const char* __c_mode = fopen_mode(__mode); if (__c_mode && !this->is_open()) { @@ -22,31 +9,31 @@ diff -r faddb1a6e933 libstdc++-v3/config/io/basic_file_stdio.cc if ((_M_cfile = fopen64(__name, __c_mode))) #else if ((_M_cfile = fopen(__name, __c_mode))) -@@ -317,7 +317,7 @@ +@@ -311,7 +311,7 @@ streamoff - __basic_file::seekoff(streamoff __off, ios_base::seekdir __way) + __basic_file::seekoff(streamoff __off, ios_base::seekdir __way) throw () { -#ifdef _GLIBCXX_USE_LFS +#if defined(_GLIBCXX_USE_LFS) || defined(__MINGW32__) return lseek64(this->fd(), __off, __way); #else if (__off > numeric_limits::max() -@@ -366,6 +366,15 @@ - ios_base::cur); - return std::min(__off, streamoff(numeric_limits::max())); - } +@@ -355,6 +355,15 @@ + if (!__err && _GLIBCXX_ISREG(__buffer.st_mode)) + { + const streamoff __off = __buffer.st_size - lseek64(this->fd(), 0, ++ ios_base::cur); ++ return std::min(__off, streamoff(numeric_limits::max())); ++ } +#elif defined(__MINGW32__) + struct _stati64 __buffer; + const int __err = _fstati64(this->fd(), &__buffer); + if (!__err && _GLIBCXX_ISREG(__buffer.st_mode)) + { + const streamoff __off = __buffer.st_size - lseek64(this->fd(), 0, -+ ios_base::cur); -+ return std::min(__off, streamoff(numeric_limits::max())); -+ } - #else - struct stat __buffer; - const int __err = fstat(this->fd(), &__buffer); + ios_base::cur); + return std::min(__off, streamoff(numeric_limits::max())); + } diff -r faddb1a6e933 libstdc++-v3/include/ext/stdio_sync_filebuf.h --- a/libstdc++-v3/include/ext/stdio_sync_filebuf.h Fri Jul 31 08:58:42 2009 -0600 +++ b/libstdc++-v3/include/ext/stdio_sync_filebuf.h Fri Jul 31 13:09:27 2009 -0600