diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 79dc7537537f..7ebd063df2a4 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,9 @@ 2017-01-13 Jonathan Wakely + PR libstdc++/65411 + * config/io/basic_file_stdio.cc (__basic_file::close()): Don't + retry fclose on EINTR. + * include/profile/base.h: Remove unused header that leads to header cycle in C++17 mode. diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc index a0ad82c75fb4..e7367016504f 100644 --- a/libstdc++-v3/config/io/basic_file_stdio.cc +++ b/libstdc++-v3/config/io/basic_file_stdio.cc @@ -267,16 +267,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { int __err = 0; if (_M_cfile_created) - { - // In general, no need to zero errno in advance if checking - // for error first. However, C89/C99 (at variance with IEEE - // 1003.1, f.i.) do not mandate that fclose must set errno - // upon error. - errno = 0; - do - __err = fclose(_M_cfile); - while (__err && errno == EINTR); - } + __err = fclose(_M_cfile); _M_cfile = 0; if (!__err) __ret = this;