From: Kai Tietz Date: Thu, 2 Dec 2010 13:15:10 +0000 (+0000) Subject: re PR libstdc++/43738 (basic_file_stdio.cc uses ioctl on a fd, but not available... X-Git-Tag: releases/gcc-4.6.0~2197 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=266afdd60e1f7c6429fd7a6902b4b3360f55a90a;p=thirdparty%2Fgcc.git re PR libstdc++/43738 (basic_file_stdio.cc uses ioctl on a fd, but not available on mingw32) 2010-12-02 Kai Tietz PR libstdc++/43738 * config/io/basic_file_stdio.cc (showmanyc): Check _GLIBCXX_NO_IOCTL before use of ioctl. * config/os/mingw32/os_defines.h (_GLIBCXX_NO_IOCTL): New. From-SVN: r167369 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 933fb231b2e8..c5f6ab9555f2 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2010-12-02 Kai Tietz + + PR libstdc++/43738 + * config/io/basic_file_stdio.cc (showmanyc): Check _GLIBCXX_NO_IOCTL + before use of ioctl. + * config/os/mingw32/os_defines.h (_GLIBCXX_NO_IOCTL): New. + 2010-12-01 François Dumont * testsuite/23_containers/deque/cons/2.cc: Fix to explicitely invoke diff --git a/libstdc++-v3/config/io/basic_file_stdio.cc b/libstdc++-v3/config/io/basic_file_stdio.cc index 472f12396d3f..d2de028f099a 100644 --- a/libstdc++-v3/config/io/basic_file_stdio.cc +++ b/libstdc++-v3/config/io/basic_file_stdio.cc @@ -334,6 +334,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) streamsize __basic_file::showmanyc() { +#ifndef _GLIBCXX_NO_IOCTL #ifdef FIONREAD // Pipes and sockets. #ifdef _GLIBCXX_FIONREAD_TAKES_OFF_T @@ -344,7 +345,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) int __r = ioctl(this->fd(), FIONREAD, &__num); if (!__r && __num >= 0) return __num; -#endif +#endif +#endif #ifdef _GLIBCXX_HAVE_POLL // Cheap test. diff --git a/libstdc++-v3/config/os/mingw32/os_defines.h b/libstdc++-v3/config/os/mingw32/os_defines.h index 5435ce9ae84d..22a11f5a9d96 100644 --- a/libstdc++-v3/config/os/mingw32/os_defines.h +++ b/libstdc++-v3/config/os/mingw32/os_defines.h @@ -60,4 +60,9 @@ // See libstdc++/37522. #define _GLIBCXX_HAVE_BROKEN_VSWPRINTF 1 +// See libstdc++/43738 +// On native windows targets there is no ioctl function. And the existing +// ioctlsocket function doesn't work for normal file-descriptors. +#define _GLIBCXX_NO_IOCTL 1 + #endif