On Tue, 27 Nov 2018, Mateusz wrote:

W dniu 26.11.2018 o 23:30, Jacek Caban pisze:
On 11/26/18 10:31 PM, Martin Storsjö wrote:
On Mon, 26 Nov 2018, Jacek Caban wrote:

Hi Mateusz,


The patch looks mostly good to me.


On 23/11/2018 22:37, Mateusz wrote:
--- a/mingw-w64-headers/crt/stdio.h
+++ b/mingw-w64-headers/crt/stdio.h
@@ -609,31 +609,20 @@ int vsnprintf (char *__stream, size_t __n, const char 
*__format, __builtin_va_li
      /* Shouldn't be any fseeko32 in glibc, 32bit to 64bit casting should be 
fine */
    /* int fseeko32(FILE* stream, _off_t offset, int whence);*/ /* fseeko32 
redirects to fseeko64 */
-#if __MSVCRT_VERSION__ >= 0x1400
+#if __MSVCRT_VERSION__ >= 0x900
    // Mark these as _CRTIMP to avoid trying to link in the mingwex versions.
    _CRTIMP int __cdecl _fseeki64(FILE *_File,__int64 _Offset,int _Origin);
    _CRTIMP __int64 __cdecl _ftelli64(FILE *_File);
-  __mingw_static_ovr int fseeko(FILE *_File, _off_t _Offset, int _Origin) {
-    return fseek(_File, _Offset, _Origin);
-  }
-  __mingw_static_ovr int fseeko64(FILE *_File, _off64_t _Offset, int _Origin) {
-    return _fseeki64(_File, _Offset, _Origin);
-  }
-  __mingw_static_ovr _off_t ftello(FILE *_File) {
-    return ftell(_File);
-  }
-  __mingw_static_ovr _off64_t ftello64(FILE *_File) {
-    return _ftelli64(_File);
-  }
  #else
    __MINGW_EXTENSION int __cdecl _fseeki64(FILE *_File,__int64 _Offset,int 
_Origin);
    __MINGW_EXTENSION __int64 __cdecl _ftelli64(FILE *_File);
+#endif

I would suggest to get rid of #if here and simply always use _CRTIMP without 
__MINGW_EXTENSION. This would require adding symbols with __MINGW_IMP_SYMBOL to 
symbols in fseeki64.c.

I'm not quite sure I know all the nuances about the difference between e.g. 
fseeko64 and _fseeki64 (looking at stdio/fseeko64.c, their implementation is 
rather different), but... On one hand I'd like to keep inline versions in the 
headers for ucrt, but on the other hand it is unnecessary if the libmingwex 
versions work as well. If others prefer unifying it I don't mind.


Actually I didn't notice that aspect, I concentrated on getting moving part 
right. Before changing that, it would at least deserve a reasoning. I'm not 
sure about nuances as well, so I don't know what's the best solution. I'd 
prefer to simply keep it out of this patch.



In general the patch (the latest version) looks rather straightforward to me, 
and I'm fine with it if Jacek is.


With inline helpers kept for ucrt builds, I will be fine with the patch.


Thanks,

Jacek

OK, I've attached minimal version -- inline helpers kept for ucrt, only 
_fseeki64 and _ftelli64 moved, I also removed 'DATA' guards for multiple 
definition in libmsvcr90 and 100.

This version looks fine to me. Jacek?

// Martin

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to