OSDN Git Service

2010-12-02 Kai Tietz <kai.tietz@onevision.com>
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Dec 2010 13:15:10 +0000 (13:15 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 2 Dec 2010 13:15:10 +0000 (13:15 +0000)
        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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167369 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/io/basic_file_stdio.cc
libstdc++-v3/config/os/mingw32/os_defines.h

index 933fb23..c5f6ab9 100644 (file)
@@ -1,3 +1,10 @@
+2010-12-02  Kai Tietz  <kai.tietz@onevision.com>
+
+       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  <francois.cppdevs@free.fr>
 
        * testsuite/23_containers/deque/cons/2.cc: Fix to explicitely invoke
index 472f123..d2de028 100644 (file)
@@ -334,6 +334,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   streamsize
   __basic_file<char>::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.
index 5435ce9..22a11f5 100644 (file)
@@ -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