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