libstdc++: Use _wstat64 for Windows [PR 95749]
authorJonathan Wakely <jwakely@redhat.com>
Mon, 10 Aug 2020 10:10:26 +0000 (11:10 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Mon, 10 Aug 2020 10:10:26 +0000 (11:10 +0100)
In order to handle large files on Windows we need to use stat API with
64-bit st_sioze member.

libstdc++-v3/ChangeLog:

PR libstdc++/95749
* src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS]
(stat_type): Change to __wstat64.
(stat): Use _wstat64.

libstdc++-v3/src/filesystem/ops-common.h

index 445d1ad054427b8d57cc85474460805214ca6a64..5cf900b045b0ccc30cd1805a676680bebcf9368c 100644 (file)
@@ -71,14 +71,14 @@ namespace __gnu_posix
   inline int close(int fd)
   { return ::_close(fd); }
 
-  typedef struct ::_stat stat_type;
+  typedef struct ::__stat64 stat_type;
 
   inline int stat(const wchar_t* path, stat_type* buffer)
-  { return ::_wstat(path, buffer); }
+  { return ::_wstat64(path, buffer); }
 
   inline int lstat(const wchar_t* path, stat_type* buffer)
   {
-    // TODO symlinks not currently supported
+    // FIXME: symlinks not currently supported
     return stat(path, buffer);
   }