Markus Mützel wrote: > If the unit test passes with it, it might be passing erroneously.
No: Before making the fixes and adding the unit test, I verified that without the fixes, the unit test failed. In other words, the unit test is able to detect the bugs we are interested in. > > - Apparently the mingw fseeko already supports the 64-bit argument > fine. > > > "fseeko" has the following prototype in mingw-w64: > https://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-crt/stdio/fseeko32.c > int fseeko(FILE* stream, _off_t offset, int whence) > > The offset is of type "_off_t". That type is defined like this in mingw-w64: > https://sourceforge.net/p/mingw-w64/code/HEAD/tree/trunk/mingw-w64-headers/crt/_mingw_off_t.h > typedef long _off_t; > > "long" is a 32-bit integer on Windows. So, the "fseeko" function from > mingw-w64 shouldn't work for large files. > > Does that make sense? No. You missed the facts that - the Gnulib 'largefile' module defines _FILE_OFFSET_BITS to 64 on mingw, - mingw-w64-headers/crt/stdio.h thus does a #define fseeko fseeko64 - fseeko64 is defined in mingw-w64-crt/stdio/fseeko64.c and takes a 64-bit argument. Bruno