move _fseeki64 and _ftelli64 functions from libmingwex to libmsvcrt

_fseeki64 and _ftelli64 functions are already in libmsvcr90 and newer,
so we need to provide these functions only for libmsvcrt. In addition,
_ftelli64 function implementation is not compatible with ucrt.

Signed-off-by: Mateusz Brzostek <mateuszb@poczta.onet.pl>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 079dc5a..f8b0623 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -210,6 +210,7 @@
   secapi/vsprintf_s.c \
   secapi/wmemcpy_s.c \
   secapi/wmemmove_s.c \
+  stdio/fseeki64.c \
   stdio/mingw_lock.c
 
 src_ucrtbase=\
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index 2e942e0..5023e5a 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -1341,8 +1341,9 @@
 	secapi/_wmktemp_s.c secapi/_wstrdate_s.c secapi/asctime_s.c \
 	secapi/memcpy_s.c secapi/memmove_s.c secapi/rand_s.c \
 	secapi/sprintf_s.c secapi/strerror_s.c secapi/vsprintf_s.c \
-	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/mingw_lock.c \
-	misc/lc_locale_func.c lib-common/msvcrt.def.in
+	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/fseeki64.c \
+	stdio/mingw_lock.c misc/lc_locale_func.c \
+	lib-common/msvcrt.def.in
 am__objects_33 = misc/lib32_libmsvcrt_os_a-onexit_table.$(OBJEXT) \
 	misc/lib32_libmsvcrt_os_a-register_tls_atexit.$(OBJEXT) \
 	stdio/lib32_libmsvcrt_os_a-acrt_iob_func.$(OBJEXT)
@@ -1395,6 +1396,7 @@
 	secapi/lib32_libmsvcrt_os_a-vsprintf_s.$(OBJEXT) \
 	secapi/lib32_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT) \
 	secapi/lib32_libmsvcrt_os_a-wmemmove_s.$(OBJEXT) \
+	stdio/lib32_libmsvcrt_os_a-fseeki64.$(OBJEXT) \
 	stdio/lib32_libmsvcrt_os_a-mingw_lock.$(OBJEXT)
 am__objects_35 = $(am__objects_34) \
 	misc/lib32_libmsvcrt_os_a-lc_locale_func.$(OBJEXT)
@@ -2675,9 +2677,9 @@
 	secapi/_wmktemp_s.c secapi/_wstrdate_s.c secapi/asctime_s.c \
 	secapi/memcpy_s.c secapi/memmove_s.c secapi/rand_s.c \
 	secapi/sprintf_s.c secapi/strerror_s.c secapi/vsprintf_s.c \
-	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/mingw_lock.c \
-	misc/__p___argv.c misc/__p__acmdln.c misc/__p__fmode.c \
-	misc/__p__wcmdln.c lib-common/msvcrt.def.in
+	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/fseeki64.c \
+	stdio/mingw_lock.c misc/__p___argv.c misc/__p__acmdln.c \
+	misc/__p__fmode.c misc/__p__wcmdln.c lib-common/msvcrt.def.in
 am__objects_84 = misc/lib64_libmsvcrt_os_a-onexit_table.$(OBJEXT) \
 	misc/lib64_libmsvcrt_os_a-register_tls_atexit.$(OBJEXT) \
 	stdio/lib64_libmsvcrt_os_a-acrt_iob_func.$(OBJEXT)
@@ -2730,6 +2732,7 @@
 	secapi/lib64_libmsvcrt_os_a-vsprintf_s.$(OBJEXT) \
 	secapi/lib64_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT) \
 	secapi/lib64_libmsvcrt_os_a-wmemmove_s.$(OBJEXT) \
+	stdio/lib64_libmsvcrt_os_a-fseeki64.$(OBJEXT) \
 	stdio/lib64_libmsvcrt_os_a-mingw_lock.$(OBJEXT)
 am__objects_86 = $(am__objects_85) \
 	misc/lib64_libmsvcrt_os_a-__p___argv.$(OBJEXT) \
@@ -3875,9 +3878,9 @@
 	secapi/_wmktemp_s.c secapi/_wstrdate_s.c secapi/asctime_s.c \
 	secapi/memcpy_s.c secapi/memmove_s.c secapi/rand_s.c \
 	secapi/sprintf_s.c secapi/strerror_s.c secapi/vsprintf_s.c \
-	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/mingw_lock.c \
-	misc/__p___argv.c misc/__p__acmdln.c misc/__p__fmode.c \
-	misc/__p__wcmdln.c lib-common/msvcrt.def.in
+	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/fseeki64.c \
+	stdio/mingw_lock.c misc/__p___argv.c misc/__p__acmdln.c \
+	misc/__p__fmode.c misc/__p__wcmdln.c lib-common/msvcrt.def.in
 am__objects_124 = misc/libarm32_libmsvcrt_os_a-onexit_table.$(OBJEXT) \
 	misc/libarm32_libmsvcrt_os_a-register_tls_atexit.$(OBJEXT) \
 	stdio/libarm32_libmsvcrt_os_a-acrt_iob_func.$(OBJEXT)
@@ -3930,6 +3933,7 @@
 	secapi/libarm32_libmsvcrt_os_a-vsprintf_s.$(OBJEXT) \
 	secapi/libarm32_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT) \
 	secapi/libarm32_libmsvcrt_os_a-wmemmove_s.$(OBJEXT) \
+	stdio/libarm32_libmsvcrt_os_a-fseeki64.$(OBJEXT) \
 	stdio/libarm32_libmsvcrt_os_a-mingw_lock.$(OBJEXT)
 am__objects_126 = $(am__objects_125) \
 	misc/libarm32_libmsvcrt_os_a-__p___argv.$(OBJEXT) \
@@ -4966,9 +4970,9 @@
 	secapi/_wmktemp_s.c secapi/_wstrdate_s.c secapi/asctime_s.c \
 	secapi/memcpy_s.c secapi/memmove_s.c secapi/rand_s.c \
 	secapi/sprintf_s.c secapi/strerror_s.c secapi/vsprintf_s.c \
-	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/mingw_lock.c \
-	misc/__p___argv.c misc/__p__acmdln.c misc/__p__fmode.c \
-	misc/__p__wcmdln.c lib-common/msvcrt.def.in
+	secapi/wmemcpy_s.c secapi/wmemmove_s.c stdio/fseeki64.c \
+	stdio/mingw_lock.c misc/__p___argv.c misc/__p__acmdln.c \
+	misc/__p__fmode.c misc/__p__wcmdln.c lib-common/msvcrt.def.in
 am__objects_160 = misc/libarm64_libmsvcrt_os_a-onexit_table.$(OBJEXT) \
 	misc/libarm64_libmsvcrt_os_a-register_tls_atexit.$(OBJEXT) \
 	stdio/libarm64_libmsvcrt_os_a-acrt_iob_func.$(OBJEXT)
@@ -5021,6 +5025,7 @@
 	secapi/libarm64_libmsvcrt_os_a-vsprintf_s.$(OBJEXT) \
 	secapi/libarm64_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT) \
 	secapi/libarm64_libmsvcrt_os_a-wmemmove_s.$(OBJEXT) \
+	stdio/libarm64_libmsvcrt_os_a-fseeki64.$(OBJEXT) \
 	stdio/libarm64_libmsvcrt_os_a-mingw_lock.$(OBJEXT)
 am__objects_162 = $(am__objects_161) \
 	misc/libarm64_libmsvcrt_os_a-__p___argv.$(OBJEXT) \
@@ -6949,6 +6954,7 @@
   secapi/vsprintf_s.c \
   secapi/wmemcpy_s.c \
   secapi/wmemmove_s.c \
+  stdio/fseeki64.c \
   stdio/mingw_lock.c
 
 src_ucrtbase = \
@@ -11107,6 +11113,8 @@
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 secapi/lib32_libmsvcrt_os_a-wmemmove_s.$(OBJEXT):  \
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
+stdio/lib32_libmsvcrt_os_a-fseeki64.$(OBJEXT): stdio/$(am__dirstamp) \
+	stdio/$(DEPDIR)/$(am__dirstamp)
 stdio/lib32_libmsvcrt_os_a-mingw_lock.$(OBJEXT):  \
 	stdio/$(am__dirstamp) stdio/$(DEPDIR)/$(am__dirstamp)
 misc/lib32_libmsvcrt_os_a-lc_locale_func.$(OBJEXT):  \
@@ -12962,6 +12970,8 @@
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 secapi/lib64_libmsvcrt_os_a-wmemmove_s.$(OBJEXT):  \
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
+stdio/lib64_libmsvcrt_os_a-fseeki64.$(OBJEXT): stdio/$(am__dirstamp) \
+	stdio/$(DEPDIR)/$(am__dirstamp)
 stdio/lib64_libmsvcrt_os_a-mingw_lock.$(OBJEXT):  \
 	stdio/$(am__dirstamp) stdio/$(DEPDIR)/$(am__dirstamp)
 misc/lib64_libmsvcrt_os_a-__p___argv.$(OBJEXT): misc/$(am__dirstamp) \
@@ -14708,6 +14718,8 @@
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 secapi/libarm32_libmsvcrt_os_a-wmemmove_s.$(OBJEXT):  \
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
+stdio/libarm32_libmsvcrt_os_a-fseeki64.$(OBJEXT):  \
+	stdio/$(am__dirstamp) stdio/$(DEPDIR)/$(am__dirstamp)
 stdio/libarm32_libmsvcrt_os_a-mingw_lock.$(OBJEXT):  \
 	stdio/$(am__dirstamp) stdio/$(DEPDIR)/$(am__dirstamp)
 misc/libarm32_libmsvcrt_os_a-__p___argv.$(OBJEXT):  \
@@ -16235,6 +16247,8 @@
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
 secapi/libarm64_libmsvcrt_os_a-wmemmove_s.$(OBJEXT):  \
 	secapi/$(am__dirstamp) secapi/$(DEPDIR)/$(am__dirstamp)
+stdio/libarm64_libmsvcrt_os_a-fseeki64.$(OBJEXT):  \
+	stdio/$(am__dirstamp) stdio/$(DEPDIR)/$(am__dirstamp)
 stdio/libarm64_libmsvcrt_os_a-mingw_lock.$(OBJEXT):  \
 	stdio/$(am__dirstamp) stdio/$(DEPDIR)/$(am__dirstamp)
 misc/libarm64_libmsvcrt_os_a-__p___argv.$(OBJEXT):  \
@@ -20089,6 +20103,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmsvcr90_a-acrt_iob_func.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmsvcr90d_a-acrt_iob_func.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-acrt_iob_func.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-mingw_lock.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libucrt_extra_a-ucrt__snwprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libucrt_extra_a-ucrt__vsnprintf.Po@am__quote@
@@ -20205,6 +20220,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libmsvcr90_a-acrt_iob_func.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libmsvcr90d_a-acrt_iob_func.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-acrt_iob_func.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-mingw_lock.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libucrt_extra_a-ucrt__snwprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libucrt_extra_a-ucrt__vsnprintf.Po@am__quote@
@@ -20313,6 +20329,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libmingwex_a-wtoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libmsvcr110_a-acrt_iob_func.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-acrt_iob_func.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-mingw_lock.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libucrt_extra_a-ucrt__snwprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libucrt_extra_a-ucrt__vsnprintf.Po@am__quote@
@@ -20420,6 +20437,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libmingwex_a-vwscanf2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libmingwex_a-wtoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-acrt_iob_func.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-mingw_lock.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libucrt_extra_a-ucrt__snwprintf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libucrt_extra_a-ucrt__vsnprintf.Po@am__quote@
@@ -30927,6 +30945,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib32_libmsvcrt_os_a-wmemmove_s.obj `if test -f 'secapi/wmemmove_s.c'; then $(CYGPATH_W) 'secapi/wmemmove_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemmove_s.c'; fi`
 
+stdio/lib32_libmsvcrt_os_a-fseeki64.o: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/lib32_libmsvcrt_os_a-fseeki64.o -MD -MP -MF stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/lib32_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/lib32_libmsvcrt_os_a-fseeki64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/lib32_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+
+stdio/lib32_libmsvcrt_os_a-fseeki64.obj: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/lib32_libmsvcrt_os_a-fseeki64.obj -MD -MP -MF stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/lib32_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/lib32_libmsvcrt_os_a-fseeki64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/lib32_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+
 stdio/lib32_libmsvcrt_os_a-mingw_lock.o: stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/lib32_libmsvcrt_os_a-mingw_lock.o -MD -MP -MF stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-mingw_lock.Tpo -c -o stdio/lib32_libmsvcrt_os_a-mingw_lock.o `test -f 'stdio/mingw_lock.c' || echo '$(srcdir)/'`stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-mingw_lock.Tpo stdio/$(DEPDIR)/lib32_libmsvcrt_os_a-mingw_lock.Po
@@ -41231,6 +41263,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/lib64_libmsvcrt_os_a-wmemmove_s.obj `if test -f 'secapi/wmemmove_s.c'; then $(CYGPATH_W) 'secapi/wmemmove_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemmove_s.c'; fi`
 
+stdio/lib64_libmsvcrt_os_a-fseeki64.o: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/lib64_libmsvcrt_os_a-fseeki64.o -MD -MP -MF stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/lib64_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/lib64_libmsvcrt_os_a-fseeki64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/lib64_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+
+stdio/lib64_libmsvcrt_os_a-fseeki64.obj: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/lib64_libmsvcrt_os_a-fseeki64.obj -MD -MP -MF stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/lib64_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/lib64_libmsvcrt_os_a-fseeki64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/lib64_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+
 stdio/lib64_libmsvcrt_os_a-mingw_lock.o: stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/lib64_libmsvcrt_os_a-mingw_lock.o -MD -MP -MF stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-mingw_lock.Tpo -c -o stdio/lib64_libmsvcrt_os_a-mingw_lock.o `test -f 'stdio/mingw_lock.c' || echo '$(srcdir)/'`stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-mingw_lock.Tpo stdio/$(DEPDIR)/lib64_libmsvcrt_os_a-mingw_lock.Po
@@ -51059,6 +51105,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/libarm32_libmsvcrt_os_a-wmemmove_s.obj `if test -f 'secapi/wmemmove_s.c'; then $(CYGPATH_W) 'secapi/wmemmove_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemmove_s.c'; fi`
 
+stdio/libarm32_libmsvcrt_os_a-fseeki64.o: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/libarm32_libmsvcrt_os_a-fseeki64.o -MD -MP -MF stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/libarm32_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/libarm32_libmsvcrt_os_a-fseeki64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/libarm32_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+
+stdio/libarm32_libmsvcrt_os_a-fseeki64.obj: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/libarm32_libmsvcrt_os_a-fseeki64.obj -MD -MP -MF stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/libarm32_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/libarm32_libmsvcrt_os_a-fseeki64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/libarm32_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+
 stdio/libarm32_libmsvcrt_os_a-mingw_lock.o: stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm32_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/libarm32_libmsvcrt_os_a-mingw_lock.o -MD -MP -MF stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-mingw_lock.Tpo -c -o stdio/libarm32_libmsvcrt_os_a-mingw_lock.o `test -f 'stdio/mingw_lock.c' || echo '$(srcdir)/'`stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-mingw_lock.Tpo stdio/$(DEPDIR)/libarm32_libmsvcrt_os_a-mingw_lock.Po
@@ -59809,6 +59869,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o secapi/libarm64_libmsvcrt_os_a-wmemmove_s.obj `if test -f 'secapi/wmemmove_s.c'; then $(CYGPATH_W) 'secapi/wmemmove_s.c'; else $(CYGPATH_W) '$(srcdir)/secapi/wmemmove_s.c'; fi`
 
+stdio/libarm64_libmsvcrt_os_a-fseeki64.o: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/libarm64_libmsvcrt_os_a-fseeki64.o -MD -MP -MF stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/libarm64_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/libarm64_libmsvcrt_os_a-fseeki64.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/libarm64_libmsvcrt_os_a-fseeki64.o `test -f 'stdio/fseeki64.c' || echo '$(srcdir)/'`stdio/fseeki64.c
+
+stdio/libarm64_libmsvcrt_os_a-fseeki64.obj: stdio/fseeki64.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/libarm64_libmsvcrt_os_a-fseeki64.obj -MD -MP -MF stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Tpo -c -o stdio/libarm64_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Tpo stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-fseeki64.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='stdio/fseeki64.c' object='stdio/libarm64_libmsvcrt_os_a-fseeki64.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stdio/libarm64_libmsvcrt_os_a-fseeki64.obj `if test -f 'stdio/fseeki64.c'; then $(CYGPATH_W) 'stdio/fseeki64.c'; else $(CYGPATH_W) '$(srcdir)/stdio/fseeki64.c'; fi`
+
 stdio/libarm64_libmsvcrt_os_a-mingw_lock.o: stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libarm64_libmsvcrt_os_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stdio/libarm64_libmsvcrt_os_a-mingw_lock.o -MD -MP -MF stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-mingw_lock.Tpo -c -o stdio/libarm64_libmsvcrt_os_a-mingw_lock.o `test -f 'stdio/mingw_lock.c' || echo '$(srcdir)/'`stdio/mingw_lock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-mingw_lock.Tpo stdio/$(DEPDIR)/libarm64_libmsvcrt_os_a-mingw_lock.Po
diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in
index d103a2b..99a39c9 100644
--- a/mingw-w64-crt/lib32/msvcr100.def.in
+++ b/mingw-w64-crt/lib32/msvcr100.def.in
@@ -880,7 +880,7 @@
 _fscanf_l
 _fscanf_s_l
 _fseek_nolock
-_fseeki64 DATA
+_fseeki64
 _fseeki64_nolock
 _fsopen
 _fstat32
@@ -890,7 +890,7 @@
 _fstat64
 _fstat64i32
 _ftell_nolock
-_ftelli64 DATA
+_ftelli64
 _ftelli64_nolock
 _ftime32
 _ftime32_s
diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in
index 861ce56..a055ce3 100644
--- a/mingw-w64-crt/lib32/msvcr90.def.in
+++ b/mingw-w64-crt/lib32/msvcr90.def.in
@@ -507,7 +507,7 @@
 _fscanf_l
 _fscanf_s_l
 _fseek_nolock
-_fseeki64 DATA
+_fseeki64
 _fseeki64_nolock
 _fsopen
 _fstat32
@@ -517,7 +517,7 @@
 _fstat64
 _fstat64i32
 _ftell_nolock
-_ftelli64 DATA
+_ftelli64
 _ftelli64_nolock
 _ftime32
 _ftime32_s
diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in
index b3be302..b9929a6 100644
--- a/mingw-w64-crt/lib64/msvcr100.def.in
+++ b/mingw-w64-crt/lib64/msvcr100.def.in
@@ -837,7 +837,7 @@
 _fscanf_l
 _fscanf_s_l
 _fseek_nolock
-_fseeki64 DATA
+_fseeki64
 _fseeki64_nolock
 _fsopen
 _fstat32
@@ -847,7 +847,7 @@
 _fstat64
 _fstat64i32
 _ftell_nolock
-_ftelli64 DATA
+_ftelli64
 _ftelli64_nolock
 _ftime32
 _ftime32_s
diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in
index f18166a..70a14f2 100644
--- a/mingw-w64-crt/lib64/msvcr90.def.in
+++ b/mingw-w64-crt/lib64/msvcr90.def.in
@@ -454,7 +454,7 @@
 _fscanf_l
 _fscanf_s_l
 _fseek_nolock
-_fseeki64 DATA
+_fseeki64
 _fseeki64_nolock
 _fsopen
 _fstat32
@@ -464,7 +464,7 @@
 _fstat64
 _fstat64i32
 _ftell_nolock
-_ftelli64 DATA
+_ftelli64
 _ftelli64_nolock
 _ftime32
 _ftime32_s
diff --git a/mingw-w64-crt/stdio/fseeki64.c b/mingw-w64-crt/stdio/fseeki64.c
new file mode 100644
index 0000000..fdb8f1c
--- /dev/null
+++ b/mingw-w64-crt/stdio/fseeki64.c
@@ -0,0 +1,177 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+#include <stdio.h>
+#include <io.h>
+#include <errno.h>
+#include <internal.h>
+
+#define _IOYOURBUF      0x0100
+#define _IOSETVBUF      0x0400
+#define _IOFEOF         0x0800
+#define _IOFLRTN        0x1000
+#define _IOCTRLZ        0x2000
+#define _IOCOMMIT       0x4000
+
+/* General use macros */
+
+#define inuse(s)        ((s)->_flag & (_IOREAD|_IOWRT|_IORW))
+#define mbuf(s)         ((s)->_flag & _IOMYBUF)
+#define nbuf(s)         ((s)->_flag & _IONBF)
+#define ybuf(s)         ((s)->_flag & _IOYOURBUF)
+#define bigbuf(s)       ((s)->_flag & (_IOMYBUF|_IOYOURBUF))
+#define anybuf(s)       ((s)->_flag & (_IOMYBUF|_IONBF|_IOYOURBUF))
+
+#define _INTERNAL_BUFSIZ    4096
+#define _SMALL_BUFSIZ       512
+
+#define FOPEN           0x01    /* file handle open */
+#define FEOFLAG         0x02    /* end of file has been encountered */
+#define FCRLF           0x04    /* CR-LF across read buffer (in text mode) */
+#define FPIPE           0x08    /* file handle refers to a pipe */
+#define FNOINHERIT      0x10    /* file handle opened _O_NOINHERIT */
+#define FAPPEND         0x20    /* file handle opened O_APPEND */
+#define FDEV            0x40    /* file handle refers to device */
+#define FTEXT           0x80    /* file handle is in text mode */
+
+_CRTIMP __int64 __cdecl _lseeki64(int fh,__int64 pos,int mthd);
+__int64 __cdecl _ftelli64(FILE *str);
+
+#if !defined(__arm__) && !defined(__aarch64__) /* we have F_ARM_ANY(_fseeki64) in msvcrt.def.in */
+int __cdecl _flush (FILE *str);
+
+int __cdecl _flush (FILE *str)
+{
+  FILE *stream;
+  int rc = 0; /* assume good return */
+  __int64 nchar;
+
+  stream = str;
+  if ((stream->_flag & (_IOREAD | _IOWRT)) == _IOWRT && bigbuf(stream)
+      && (nchar = (__int64) (stream->_ptr - stream->_base)) > 0ll)
+  {
+    if ( _write(_fileno(stream), stream->_base, nchar) == nchar) {
+      if (_IORW & stream->_flag)
+        stream->_flag &= ~_IOWRT;
+    } else {
+      stream->_flag |= _IOERR;
+      rc = EOF;
+    }
+  }
+  stream->_ptr = stream->_base;
+  stream->_cnt = 0ll;
+  return rc;
+}
+
+int __cdecl _fseeki64(FILE *str,__int64 offset,int whence)
+{
+        FILE *stream;
+        /* Init stream pointer */
+        stream = str;
+        errno=0;
+        if(!stream || ((whence != SEEK_SET) && (whence != SEEK_CUR) && (whence != SEEK_END)))
+	{
+	  errno=EINVAL;
+	  return -1;
+        }
+        /* Clear EOF flag */
+        stream->_flag &= ~_IOEOF;
+
+        if (whence == SEEK_CUR) {
+	  offset += _ftelli64(stream);
+	  whence = SEEK_SET;
+	}
+        /* Flush buffer as necessary */
+        _flush(stream);
+
+        /* If file opened for read/write, clear flags since we don't know
+           what the user is going to do next. If the file was opened for
+           read access only, decrease _bufsiz so that the next _filbuf
+           won't cost quite so much */
+
+        if (stream->_flag & _IORW)
+                stream->_flag &= ~(_IOWRT|_IOREAD);
+        else if ( (stream->_flag & _IOREAD) && (stream->_flag & _IOMYBUF) &&
+                  !(stream->_flag & _IOSETVBUF) )
+                stream->_bufsiz = _SMALL_BUFSIZ;
+
+        /* Seek to the desired locale and return. */
+
+        return (_lseeki64(_fileno(stream), offset, whence) == -1ll ? -1 : 0);
+}
+
+int __cdecl (*__MINGW_IMP_SYMBOL(_fseeki64))(FILE *, __int64, int) = _fseeki64;
+#endif /* !defined(__arm__) && !defined(__aarch64__) */
+
+__int64 __cdecl _ftelli64(FILE *str)
+{
+        FILE *stream;
+        size_t offset;
+        __int64 filepos;
+        register char *p;
+        char *max;
+        int fd;
+        size_t rdcnt = 0;
+
+	errno=0;
+        stream = str;
+        fd = _fileno(stream);
+        if (stream->_cnt < 0ll) stream->_cnt = 0ll;
+    if ((filepos = _lseeki64(fd, 0ll, SEEK_CUR)) < 0L)
+      return -1ll;
+
+    if (!bigbuf(stream))            /* _IONBF or no buffering designated */
+      return (filepos - (__int64) stream->_cnt);
+
+    offset = (size_t)(stream->_ptr - stream->_base);
+
+    if (stream->_flag & (_IOWRT|_IOREAD))
+      {
+        if (_osfile(fd) & FTEXT)
+          for (p = stream->_base; p < stream->_ptr; p++)
+            if (*p == '\n')  /* adjust for '\r' */
+              offset++;
+      }
+      else if (!(stream->_flag & _IORW)) {
+        errno=EINVAL;
+        return -1ll;
+      }
+      if (filepos == 0ll)
+        return ((__int64)offset);
+
+      if (stream->_flag & _IOREAD)    /* go to preceding sector */
+        {
+          if (stream->_cnt == 0ll)  /* filepos holds correct location */
+            offset = 0ll;
+          else
+            {
+	          rdcnt = ((size_t) stream->_cnt) + ((size_t) (size_t)(stream->_ptr - stream->_base));
+		      if (_osfile(fd) & FTEXT) {
+		        if (_lseeki64(fd, 0ll, SEEK_END) == filepos) {
+			      max = stream->_base + rdcnt;
+			    for (p = stream->_base; p < max; p++)
+			      if (*p == '\n') /* adjust for '\r' */
+			        rdcnt++;
+			    if (stream->_flag & _IOCTRLZ)
+			      ++rdcnt;
+		      } else {
+		        _lseeki64(fd, filepos, SEEK_SET);
+		        if ( (rdcnt <= _SMALL_BUFSIZ) && (stream->_flag & _IOMYBUF) &&
+		            !(stream->_flag & _IOSETVBUF))
+			      rdcnt = _SMALL_BUFSIZ;
+		        else
+		          rdcnt = stream->_bufsiz;
+		        if  (_osfile(fd) & FCRLF)
+		          ++rdcnt;
+		      }
+		    } /* end if FTEXT */
+	    }
+	  filepos -= (__int64)rdcnt;
+    } /* end else stream->_cnt != 0 */
+  return (filepos + (__int64)offset);
+}
+
+__int64 __cdecl (*__MINGW_IMP_SYMBOL(_ftelli64))(FILE *) = _ftelli64;
+
diff --git a/mingw-w64-crt/stdio/fseeko64.c b/mingw-w64-crt/stdio/fseeko64.c
index 5905aa2..99a54f7 100644
--- a/mingw-w64-crt/stdio/fseeko64.c
+++ b/mingw-w64-crt/stdio/fseeko64.c
@@ -76,33 +76,7 @@
   { ERROR_NOT_ENOUGH_QUOTA, ENOMEM }, { 0, -1 }
 };
 
-_CRTIMP __int64 __cdecl _lseeki64(int fh,__int64 pos,int mthd);
-__int64 __cdecl _ftelli64(FILE *str);
 void mingw_dosmaperr (unsigned long oserrno);
-int __cdecl _flush (FILE *str);
-
-int __cdecl _flush (FILE *str)
-{
-  FILE *stream;
-  int rc = 0; /* assume good return */
-  __int64 nchar;
-
-  stream = str;
-  if ((stream->_flag & (_IOREAD | _IOWRT)) == _IOWRT && bigbuf(stream)
-      && (nchar = (__int64) (stream->_ptr - stream->_base)) > 0ll)
-  {
-    if ( _write(_fileno(stream), stream->_base, nchar) == nchar) {
-      if (_IORW & stream->_flag)
-        stream->_flag &= ~_IOWRT;
-    } else {
-      stream->_flag |= _IOERR;
-      rc = EOF;
-    }
-  }
-  stream->_ptr = stream->_base;
-  stream->_cnt = 0ll;
-  return rc;
-}
 
 int fseeko64 (FILE* stream, _off64_t offset, int whence)
 {
@@ -130,111 +104,6 @@
   return fsetpos (stream, &pos);
 }
 
-int __cdecl _fseeki64(FILE *str,__int64 offset,int whence)
-{
-        FILE *stream;
-        /* Init stream pointer */
-        stream = str;
-        errno=0;
-        if(!stream || ((whence != SEEK_SET) && (whence != SEEK_CUR) && (whence != SEEK_END)))
-	{
-	  errno=EINVAL;
-	  return -1;
-        }
-        /* Clear EOF flag */
-        stream->_flag &= ~_IOEOF;
-
-        if (whence == SEEK_CUR) {
-	  offset += _ftelli64(stream);
-	  whence = SEEK_SET;
-	}
-        /* Flush buffer as necessary */
-        _flush(stream);
-
-        /* If file opened for read/write, clear flags since we don't know
-           what the user is going to do next. If the file was opened for
-           read access only, decrease _bufsiz so that the next _filbuf
-           won't cost quite so much */
-
-        if (stream->_flag & _IORW)
-                stream->_flag &= ~(_IOWRT|_IOREAD);
-        else if ( (stream->_flag & _IOREAD) && (stream->_flag & _IOMYBUF) &&
-                  !(stream->_flag & _IOSETVBUF) )
-                stream->_bufsiz = _SMALL_BUFSIZ;
-
-        /* Seek to the desired locale and return. */
-
-        return (_lseeki64(_fileno(stream), offset, whence) == -1ll ? -1 : 0);
-}
-
-__int64 __cdecl _ftelli64(FILE *str)
-{
-        FILE *stream;
-        size_t offset;
-        __int64 filepos;
-        register char *p;
-        char *max;
-        int fd;
-        size_t rdcnt = 0;
-
-	errno=0;
-        stream = str;
-        fd = _fileno(stream);
-        if (stream->_cnt < 0ll) stream->_cnt = 0ll;
-    if ((filepos = _lseeki64(fd, 0ll, SEEK_CUR)) < 0L)
-      return -1ll;
-
-    if (!bigbuf(stream))            /* _IONBF or no buffering designated */
-      return (filepos - (__int64) stream->_cnt);
-
-    offset = (size_t)(stream->_ptr - stream->_base);
-
-    if (stream->_flag & (_IOWRT|_IOREAD))
-      {
-        if (_osfile(fd) & FTEXT)
-          for (p = stream->_base; p < stream->_ptr; p++)
-            if (*p == '\n')  /* adjust for '\r' */
-              offset++;
-      }
-      else if (!(stream->_flag & _IORW)) {
-        errno=EINVAL;
-        return -1ll;
-      }
-      if (filepos == 0ll)
-        return ((__int64)offset);
-
-      if (stream->_flag & _IOREAD)    /* go to preceding sector */
-        {
-          if (stream->_cnt == 0ll)  /* filepos holds correct location */
-            offset = 0ll;
-          else
-            {
-	          rdcnt = ((size_t) stream->_cnt) + ((size_t) (size_t)(stream->_ptr - stream->_base));
-		      if (_osfile(fd) & FTEXT) {
-		        if (_lseeki64(fd, 0ll, SEEK_END) == filepos) {
-			      max = stream->_base + rdcnt;
-			    for (p = stream->_base; p < max; p++)
-			      if (*p == '\n') /* adjust for '\r' */
-			        rdcnt++;
-			    if (stream->_flag & _IOCTRLZ)
-			      ++rdcnt;
-		      } else {
-		        _lseeki64(fd, filepos, SEEK_SET);
-		        if ( (rdcnt <= _SMALL_BUFSIZ) && (stream->_flag & _IOMYBUF) &&
-		            !(stream->_flag & _IOSETVBUF))
-			      rdcnt = _SMALL_BUFSIZ;
-		        else
-		          rdcnt = stream->_bufsiz;
-		        if  (_osfile(fd) & FCRLF)
-		          ++rdcnt;
-		      }
-		    } /* end if FTEXT */
-	    }
-	  filepos -= (__int64)rdcnt;
-    } /* end else stream->_cnt != 0 */
-  return (filepos + (__int64)offset);
-}
-
 void mingw_dosmaperr (unsigned long oserrno)
 {
   size_t i;
diff --git a/mingw-w64-headers/crt/stdio.h b/mingw-w64-headers/crt/stdio.h
index c79d705..9c3d188 100644
--- a/mingw-w64-headers/crt/stdio.h
+++ b/mingw-w64-headers/crt/stdio.h
@@ -609,10 +609,9 @@
 
   /* 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
-  // 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);
+#if __MSVCRT_VERSION__ >= 0x1400
   __mingw_static_ovr int fseeko(FILE *_File, _off_t _Offset, int _Origin) {
     return fseek(_File, _Offset, _Origin);
   }
@@ -626,8 +625,6 @@
     return _ftelli64(_File);
   }
 #else
-  __MINGW_EXTENSION int __cdecl _fseeki64(FILE *_File,__int64 _Offset,int _Origin);
-  __MINGW_EXTENSION __int64 __cdecl _ftelli64(FILE *_File);
   int fseeko64(FILE* stream, _off64_t offset, int whence);
   int fseeko(FILE* stream, _off_t offset, int whence);
   /* Returns truncated 64bit off_t */