Browse Source

Upgrade toolchain to GCC 8.2.0 MinGW v6.0.0

zrythm
Andoni Morales Alastruey 4 years ago committed by Nicolas Dufresne
parent
commit
430056babf
  1. 91
      cerbero/bootstrap/windows.py
  2. 3
      cerbero/build/filesprovider.py
  3. 3
      cerbero/ide/vs/genlib.py
  4. 8
      config/mingw-multilib-lin.cbc
  5. 13
      config/mingw-multilib-win.cbc
  6. 9
      config/mingw-w32-lin.cbc
  7. 13
      config/mingw-w32-win.cbc
  8. 8
      config/mingw-w64-lin.cbc
  9. 13
      config/mingw-w64-win.cbc
  10. 53
      config/windows.config
  11. 47
      recipes-toolchain/binutils.recipe
  12. 64
      recipes-toolchain/gcc-bootstrap.recipe
  13. 22
      recipes-toolchain/gcc-sources.recipe
  14. 71
      recipes-toolchain/gcc.recipe
  15. 26
      recipes-toolchain/gcc/0001-Fix-graphite-build-with-isl-0.20.patch
  16. 23
      recipes-toolchain/gcc/0002-Disable-split-stack-for-non-thread-builds.patch
  17. 27
      recipes-toolchain/gcc/0003-Force-SEH-SJLJ.patch
  18. 10
      recipes-toolchain/gendef.recipe
  19. 18
      recipes-toolchain/gmp.recipe
  20. 17
      recipes-toolchain/isl.recipe
  21. 30
      recipes-toolchain/mingw-w64-crt.recipe
  22. 30
      recipes-toolchain/mingw-w64-headers.recipe
  23. 19
      recipes-toolchain/mingw-w64-sources.recipe
  24. 83
      recipes-toolchain/mingw-w64/0001-timeb.h-declare-_ftime32-function-define-_ftime-acco.patch
  25. 223
      recipes-toolchain/mingw-w64/0002-Add-_ftime-aliases-for-all-msvcr-versions.patch
  26. 733
      recipes-toolchain/mingw-w64/0003-move-_fseeki64-and-_ftelli64-functions-from-libmingw.patch
  27. 17
      recipes-toolchain/mpc.recipe
  28. 11
      recipes-toolchain/mpfr.recipe
  29. 2
      recipes-toolchain/toolchain.recipe
  30. 99
      recipes-toolchain/winpthreads.recipe
  31. 4
      recipes/gmp.recipe
  32. 134
      recipes/mingw-runtime.recipe
  33. 14
      recipes/toolchain/cloog.recipe
  34. 62
      recipes/toolchain/gcc-core.recipe
  35. 83
      recipes/toolchain/gcc.recipe
  36. 17
      recipes/toolchain/gendef.recipe
  37. 16
      recipes/toolchain/gmp.recipe
  38. 277
      recipes/toolchain/mingw-w64-headers.recipe
  39. 107
      recipes/toolchain/mingw-w64.recipe
  40. 8
      recipes/toolchain/mpc.recipe
  41. 8
      recipes/toolchain/mpfr.recipe
  42. 45
      recipes/toolchain/winpthreads.recipe
  43. 48
      tools/build-toolchains.sh

91
cerbero/bootstrap/windows.py

@ -29,13 +29,12 @@ from cerbero.utils import shell, _, fix_winpath, to_unixpath, git @@ -29,13 +29,12 @@ from cerbero.utils import shell, _, fix_winpath, to_unixpath, git
from cerbero.utils import messages as m
# Toolchain
GCC_VERSION = '4.7.3'
MINGW_DOWNLOAD_TPL = 'https://gstreamer.freedesktop.org/data/cerbero/toolchain/windows/mingw-%s-gcc-%s-%s-%s.tar.xz'
MINGW_CHECKSUMS = {
'mingw-w32-gcc-4.7.3-linux-x86.tar.xz': '16a3ad2584f0dc25ec122029143b186c99f362d1be1a77a338431262491004ae',
'mingw-w64-gcc-4.7.3-linux-x86_64.tar.xz': 'e673536cc89a778043789484f691d7e35458a5d72638dc4b0123f92ecf868592',
'mingw-w32-gcc-4.7.3-windows-x86.tar.xz': 'da783488ab3a2b28471c13ece97c643f8e8ec774308fb2a01152b23618f13a33',
'mingw-w64-gcc-4.7.3-windows-x86_64.tar.xz': '820fa7490b3d738b9cf8c360cdd9a7aeb0592510a8ea50486e721b5b92722b08',
TOOLCHAIN_BASE_URL = 'https://gstreamer.freedesktop.org/data/cerbero/toolchain/windows/'
TOOLCHAIN_PLATFORM = {
Platform.LINUX: ('mingw-6.0.0-gcc-8.2.0-linux-multilib.tar.xz',
'396ceb50161720b19971e2c71c87ce08150213b091ed8ffc00782df8759921bf'),
Platform.WINDOWS: ('mingw-6.0.0-gcc-8.2.0-windows-multilib.tar.xz',
'77fc1319b13894d7340d4994150e3af615e23a63113a9947412d11be95f4d8a9'),
}
# MinGW Perl
@ -69,23 +68,22 @@ class WindowsBootstrapper(BootstrapperBase): @@ -69,23 +68,22 @@ class WindowsBootstrapper(BootstrapperBase):
self.perl_prefix = self.config.mingw_perl_prefix
self.platform = self.config.target_platform
self.arch = self.config.target_arch
if self.arch == Architecture.X86:
self.version = 'w32'
else:
self.version = 'w64'
self.platform = self.config.platform
# Register all network resources this bootstrapper needs. They will all
# be downloaded into self.config.local_sources
#
# MinGW toolchain
url = MINGW_DOWNLOAD_TPL % (self.version, GCC_VERSION, self.platform, self.arch)
self.fetch_urls.append((url, MINGW_CHECKSUMS[os.path.basename(url)]))
filename, checksum = TOOLCHAIN_PLATFORM[self.config.platform]
url = TOOLCHAIN_BASE_URL + filename
self.fetch_urls.append((url, checksum))
self.extract_steps.append((url, True, self.prefix))
# wglext.h
url = KHRONOS_WGL_TPL.format(OPENGL_COMMIT)
self.fetch_urls.append((url, WGL_CHECKSUM))
inst_path = os.path.join(self.prefix, self.config.host, 'include/GL')
self.extract_steps.append((url, False, inst_path))
sysroot = os.path.join(self.prefix,
'x86_64-w64-mingw32/sysroot/usr/x86_64-w64-mingw32')
gl_inst_path = os.path.join(sysroot, 'include/GL/')
self.extract_steps.append((url, False, gl_inst_path))
if self.platform == Platform.WINDOWS:
# MinGW Perl needed by openssl
url = MINGW_PERL_TPL.format(PERL_VERSION)
@ -106,7 +104,6 @@ class WindowsBootstrapper(BootstrapperBase): @@ -106,7 +104,6 @@ class WindowsBootstrapper(BootstrapperBase):
"$git config core.autocrlf false")
self.check_dirs()
self.fix_mingw()
self.fix_non_prefixed_strings()
if self.platform == Platform.WINDOWS:
self.fix_openssl_mingw_perl()
self.fix_bin_deps()
@ -124,12 +121,27 @@ class WindowsBootstrapper(BootstrapperBase): @@ -124,12 +121,27 @@ class WindowsBootstrapper(BootstrapperBase):
os.makedirs(etc_path)
def fix_mingw(self):
self.fix_lib_paths()
if self.arch == Architecture.X86:
try:
shutil.rmtree('/mingw/lib')
except Exception:
pass
if self.platform == Platform.WINDOWS:
# Tar does not create correctly the mingw symlink
sysroot = os.path.join(self.prefix, 'x86_64-w64-mingw32/sysroot')
mingwdir = os.path.join(sysroot, 'mingw')
# The first time the toolchain is extracted it creates a file with
# symlink
if not os.path.isdir(mingwdir):
os.remove(mingwdir)
# Otherwise we simply remove the directory and link back the sysroot
else:
shutil.rmtree(mingwdir)
shell.call('ln -s usr/x86_64-w64-mingw32 mingw', sysroot)
# In cross-compilation gcc does not create a prefixed cpp
cpp_exe = os.path.join(self.prefix, 'bin', 'cpp.exe')
host_cpp_exe = os.path.join(self.prefix, 'bin', 'x86_64-w64-mingw32-cpp.exe')
shutil.copyfile(cpp_exe, host_cpp_exe)
def fix_openssl_mingw_perl(self):
'''
@ -157,33 +169,6 @@ class WindowsBootstrapper(BootstrapperBase): @@ -157,33 +169,6 @@ class WindowsBootstrapper(BootstrapperBase):
shell.replace(os.path.join(self.prefix, f),
{'/opt/perl/bin/perl': '/bin/perl'})
def fix_lib_paths(self):
orig_sysroot = self._find_mingw_sys_root()
if self.config.platform != Platform.WINDOWS:
new_sysroot = os.path.join(self.prefix, 'mingw', 'lib')
else:
new_sysroot = os.path.join(self.prefix, 'lib')
lib_path = new_sysroot
# Replace the old sysroot in all .la files
for path in [f for f in os.listdir(lib_path) if f.endswith('la')]:
path = os.path.abspath(os.path.join(lib_path, path))
shell.replace(path, {orig_sysroot: new_sysroot})
def _find_mingw_sys_root(self):
if self.config.platform != Platform.WINDOWS:
f = os.path.join(self.prefix, 'mingw', 'lib', 'libstdc++.la')
else:
f = os.path.join(self.prefix, 'lib', 'libstdc++.la')
with open(f, 'r') as f:
# get the "libdir=/path" line
libdir = [x for x in f.readlines() if x.startswith('libdir=')][0]
# get the path
libdir = libdir.split('=')[1]
# strip the surrounding quotes
print("Replacing old libdir : ", libdir)
return libdir.strip()[1:-1]
def fix_mingw_unused(self):
mingw_get_exe = shutil.which('mingw-get')
if not mingw_get_exe:
@ -207,24 +192,6 @@ class WindowsBootstrapper(BootstrapperBase): @@ -207,24 +192,6 @@ class WindowsBootstrapper(BootstrapperBase):
if msys_link_exe.is_file() and 'msys/1.0/bin/link' in msys_link_exe.as_posix():
os.replace(msys_link_exe, msys_link_bindir / 'link.exe.bck')
def fix_non_prefixed_strings(self):
# libtool m4 macros uses non-prefixed 'strings' command. We need to
# create a copy here
if self.config.platform == Platform.WINDOWS:
ext = '.exe'
else:
ext = ''
if self.config.target_arch == Architecture.X86:
host = 'i686-w64-mingw32'
else:
host = 'x86_64-w64-mingw32'
bindir = os.path.join(self.config.toolchain_prefix, 'bin')
p_strings = os.path.join(bindir, '%s-strings%s' % (host, ext))
strings = os.path.join(bindir, 'strings%s' % ext)
if os.path.exists(strings):
os.remove(strings)
shutil.copy(p_strings, strings)
def register_all():
register_bootstrapper(Distro.WINDOWS, WindowsBootstrapper)

3
cerbero/build/filesprovider.py

@ -22,6 +22,7 @@ import glob @@ -22,6 +22,7 @@ import glob
import shutil
import inspect
from functools import partial
import shlex
from pathlib import Path
from cerbero.config import Platform, LibraryType
@ -58,7 +59,7 @@ def get_implib_dllname(config, path): @@ -58,7 +59,7 @@ def get_implib_dllname(config, path):
if not dlltool:
raise FatalError('dlltool not found, check cerbero configuration')
try:
return shell.check_output([dlltool, '-I', path])
return shell.check_output(shlex.split(dlltool) + ['-I', path])
except FatalError:
return 0

3
cerbero/ide/vs/genlib.py

@ -18,6 +18,7 @@ @@ -18,6 +18,7 @@
import os
import re
import shlex
import shutil
from cerbero.enums import Architecture, Platform
@ -52,7 +53,7 @@ class GenLib(object): @@ -52,7 +53,7 @@ class GenLib(object):
return defname
def dlltool(self, defname, dllname, outputdir):
cmd = [os.environ['DLLTOOL'], '-d', defname, '-l', self.filename, '-D', dllname]
cmd = shlex.split(os.environ['DLLTOOL']) + ['-d', defname, '-l', self.filename, '-D', dllname]
shell.new_call(cmd, outputdir, logfile=self.logfile)
def create(self, libname, dllpath, platform, target_arch, outputdir):

8
config/mingw-multilib-lin.cbc

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
import os
from cerbero.config import Platform, Architecture, Distro, DistroVersion
target_arch=Architecture.X86_64
cache_file='mingw-multilib-lin'
prefix=os.path.expanduser('~/mingw/linux/multilib')
sources=os.path.join(home_dir, 'sources', 'mingw-multilib-lin')
recipes_dir = os.path.join(recipes_dir, '..', 'recipes-toolchain')

13
config/mingw-multilib-win.cbc

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
import os
from cerbero.config import Platform, Architecture, Distro, DistroVersion
target_platform=Platform.WINDOWS
target_distro=Distro.WINDOWS
target_distro_version=DistroVersion.WINDOWS_7
target_arch=Architecture.X86_64
cache_file='mingw-multilib-win'
prefix=os.path.expanduser('~/mingw/windows/multilib')
sources=os.path.join(home_dir, 'sources', 'mingw-multilib-win')
toolchain_prefix=os.path.expanduser('~/mingw/linux/multilib/')
recipes_dir = os.path.join(recipes_dir, '..', 'recipes-toolchain')
build='x86_64-pc-linux-gnu'

9
config/mingw-w32-lin.cbc

@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
import os
from cerbero.config import Platform, Architecture, Distro, DistroVersion
target_arch=Architecture.X86
cache_file='mingw-w32-lin'
prefix=os.path.expanduser('~/mingw/linux/w32')
sources=os.path.join(home_dir, 'sources', 'mingw-w32-lin')
recipes_dir = os.path.join(recipes_dir, 'toolchain')
host = ''

13
config/mingw-w32-win.cbc

@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
import os
from cerbero.config import Platform, Architecture, Distro, DistroVersion
target_platform=Platform.WINDOWS
target_distro=Distro.WINDOWS
target_distro_version=DistroVersion.WINDOWS_7
target_arch=Architecture.X86
cache_file='mingw-w32-win'
prefix=os.path.expanduser('~/mingw/windows/w32')
sources=os.path.join(home_dir, 'sources', 'mingw-w32-win')
toolchain_prefix=os.path.expanduser('~/mingw/linux/w32/')
recipes_dir = os.path.join(recipes_dir, 'toolchain')
build='x86_64-pc-linux-gnu'

8
config/mingw-w64-lin.cbc

@ -1,8 +0,0 @@ @@ -1,8 +0,0 @@
import os
from cerbero.config import Platform, Architecture, Distro, DistroVersion
target_arch=Architecture.X86_64
cache_file='mingw-w64-lin'
prefix=os.path.expanduser('~/mingw/linux/w64')
sources=os.path.join(home_dir, 'sources', 'mingw-w64-lin')
recipes_dir = os.path.join(recipes_dir, 'toolchain')

13
config/mingw-w64-win.cbc

@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
import os
from cerbero.config import Platform, Architecture, Distro, DistroVersion
target_platform=Platform.WINDOWS
target_distro=Distro.WINDOWS
target_distro_version=DistroVersion.WINDOWS_7
target_arch=Architecture.X86_64
cache_file='mingw-w64-win'
prefix=os.path.expanduser('~/mingw/windows/w64')
sources=os.path.join(home_dir, 'sources', 'mingw-w64-win')
toolchain_prefix=os.path.expanduser('~/mingw/linux/w64/')
recipes_dir = os.path.join(recipes_dir, 'toolchain')
build='x86_64-pc-linux-gnu'

53
config/windows.config

@ -25,12 +25,18 @@ else: @@ -25,12 +25,18 @@ else:
if target_arch == Architecture.X86:
buildname='windows_x86'
host = 'i686-w64-mingw32'
_path = 'w32'
arch_flags = ' -m32 '
arch_rcflags = ' -F pe-i386 '
dlltool_flags = '--as-flags=--32 -m i386'
host = 'i386-w64-mingw32'
_path = 'multilib'
else:
buildname='windows_x86_64'
arch_flags = ''
arch_rcflags = ''
dlltool_flags = ''
host = 'x86_64-w64-mingw32'
_path = 'w64'
_path = 'multilib'
target = host
@ -39,14 +45,24 @@ if not toolchain_prefix: @@ -39,14 +45,24 @@ if not toolchain_prefix:
if not mingw_perl_prefix:
mingw_perl_prefix = os.path.join(home_dir, 'mingw', 'perl')
if not tools_prefix:
tools_prefix = host+'-'
__cc_candidate = os.path.join(toolchain_prefix, 'bin', '%sgcc' % tools_prefix)
# Check for a multilib toolchain
if not os.path.exists(__cc_candidate):
tools_prefix = 'x86_64-w64-mingw32-'
def cmd(command):
return '%s-%s' % (host, command)
return '%s%s' % (tools_prefix, command)
# Default GCC compiler flags
if not for_shell or 'novisualstudio' in variants:
os.environ['CFLAGS'] = '-Wall -g -O2 '
os.environ['CXXFLAGS'] = '-Wall -g -O2 '
os.environ['OBJCFLAGS'] = '-Wall -g -O2 '
os.environ['CFLAGS'] = '-Wall -g -O2 ' + arch_flags
os.environ['CXXFLAGS'] = '-Wall -g -O2 ' + arch_flags
os.environ['OBJCFLAGS'] = '-Wall -g -O2 ' + arch_flags
os.environ['CASFLAGS'] = arch_flags
os.environ['LDFLAGS'] = arch_flags
os.environ['RCFLAGS'] = arch_rcflags
else:
os.environ['CFLAGS'] = ''
@ -57,23 +73,25 @@ os.environ['CFLAGS'] += " -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 " @@ -57,23 +73,25 @@ os.environ['CFLAGS'] += " -DWINVER=0x0600 -D_WIN32_WINNT=0x0600 "
os.environ['CXXFLAGS']=os.environ['CFLAGS']
os.environ['PERL'] = 'perl'
os.environ['NM']= cmd('nm')
os.environ['DLLTOOL']= cmd('dlltool')
os.environ['DLLTOOL']= cmd('dlltool') + ' ' + dlltool_flags
if not for_shell or 'novisualstudio' in variants:
os.environ['LIBRARY_PATH'] = "{0}/lib{1}".format(prefix, lib_suffix)
os.environ['CC']= '%s%s' % (ccache, cmd('gcc'))
os.environ['CXX']= '%s%s' % (ccache, cmd('g++'))
os.environ['CC']= '%s%s' % (ccache, cmd('gcc' + arch_flags))
os.environ['CXX']= '%s%s' % (ccache, cmd('g++'+ arch_flags))
os.environ['LD']= cmd('ld')
os.environ['CPP']= cmd('cpp')
os.environ['RANLIB']= cmd('ranlib')
os.environ['AR']= cmd('ar')
os.environ['AS']= cmd('as')
os.environ['STRIP']= cmd('strip')
os.environ['WINDRES']= cmd('windres')
os.environ['RC']= cmd('windres')
os.environ['WINDRES']= cmd('windres') + ' ' + arch_rcflags
os.environ['RC']= cmd('windres') + ' ' + arch_rcflags
# MinGW toolchain PATH
toolchainbin = os.path.join(toolchain_prefix, 'bin')
if os.path.isdir(toolchainbin) and toolchainbin not in os.environ['PATH']:
os.environ['PATH'] = '%s%s%s' % (toolchainbin, separator, os.environ['PATH'])
libexecdir = os.path.join(toolchain_prefix, "libexec/gcc/x86_64-w64-mingw32/8.2.0/")
os.environ['PATH'] = '%s%s%s' % (libexecdir, separator, os.environ['PATH'])
os.environ['ne_cv_libsfor_socket'] = '-lws2_32'
os.environ['ne_cv_libsfor_gethostbyname'] = '-lws2_32'
@ -119,10 +137,6 @@ if platform == Platform.WINDOWS: @@ -119,10 +137,6 @@ if platform == Platform.WINDOWS:
# https://docs.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8
msvc_toolchain_env['CFLAGS'] = ['/source-charset:utf-8', '']
# With MinGW, DirectX headers are inside a subdir, and we don't want to
# accidentally use these when building with MSVC, so we don't unconditionally
# add them to CFLAGS.
mingw_toolchain_env = {'CPPFLAGS': ('-I%s/%s/include/directx' % (toolchain_prefix, host), ' ')}
# Export the env for an MSVC shell
if for_shell and 'novisualstudio' not in variants:
for var, (val, sep) in msvc_toolchain_env.items():
@ -133,7 +147,6 @@ if platform == Platform.WINDOWS: @@ -133,7 +147,6 @@ if platform == Platform.WINDOWS:
os.environ[var] = '{}{}{}'.format(val, sep, os.environ[var])
else:
os.environ[var] = val
else:
# For cross-mingw, we need to set this in the env so it's added to the
# cross file before Meson is run.
os.environ['CFLAGS'] += '-I%s/%s/include/directx' % (toolchain_prefix, host)
# For cross-mingw, we need to set this in the env so it's added to the
# cross file before Meson is run.
mingw_toolchain_env = dict()

47
recipes/toolchain/binutils.recipe → recipes-toolchain/binutils.recipe

@ -1,11 +1,22 @@ @@ -1,11 +1,22 @@
import shutil
class Recipe(recipe.Recipe):
name = 'binutils'
version = '2.22'
version = '2.31.1'
licenses = [License.LGPLv2Plus]
licenses_bins = [License.GPLv2Plus]
configure_options = '--with-sysroot=$CERBERO_PREFIX --disable-multilib'
url = 'https://ftpmirror.gnu.org/gnu/binutils/binutils-%(version)s.tar.bz2'
tarball_checksum = 'ffcc382695bf947da6135e7436b8ed52d991cf270db897190f19d6f9838564d0'
stype = SourceType.TARBALL
autoreconf = True
configure_options = '--enable-ld=yes ' \
'--enable-gold=no ' \
'--disable-sim ' \
'--disable-gdb ' \
'--disable-nls ' \
'--enable-multilib '
add_host_build_target = False
files_bins = ['addr2line', 'ar', 'as', 'c++filt', 'dlltool', 'dllwrap',
'elfedit', 'gprof', 'ld', 'ld.bfd', 'nm', 'objcopy',
'objdump', 'ranlib', 'readelf', 'size', 'strings', 'strip',
@ -33,15 +44,15 @@ class Recipe(recipe.Recipe): @@ -33,15 +44,15 @@ class Recipe(recipe.Recipe):
'%(host)s/lib32/ldscripts/i386pe.xr',
'%(host)s/lib32/ldscripts/i386pe.xu']
files_lib = ['lib/libiberty.a']
files_lang = ['bfd', 'binutils', 'gas', 'gprof', 'ld', 'opcodes']
files_lang = ['bfd', 'binutils', 'gas', 'gprof',
'ld', 'opcodes']
def prepare(self):
if self.config.target_arch == Architecture.X86:
self.target = 'i686-w64-mingw32'
else:
self.target = 'x86_64-w64-mingw32'
self.configure_options += ' --target=%s' % self.target
raise InvalidRecipeError(self)
self.target = 'x86_64-w64-mingw32'
self.configure_options += ' --target=%s ' % self.target
self.configure_options += '--with-sysroot=$CERBERO_PREFIX/%s/sysroot ' % self.target
if self.config.target_platform == Platform.WINDOWS:
self.configure_options += ' --host=%s' % self.target
@ -54,15 +65,23 @@ class Recipe(recipe.Recipe): @@ -54,15 +65,23 @@ class Recipe(recipe.Recipe):
files.extend([x % {'host': 'mingw', 'bext': '%(bext)s'} for x in
self.files_binutils])
self.files_binutils = files
# temporary hack to not build info files (requires old texinfo)
# Remove when switching to newer version than 2.22
self.set_env('MAKEINFO', 'missing')
async def configure(self):
for d in ['bfd', 'opcodes', 'gas', 'binutils', 'gprof', 'ld']:
shell.call('autoreconf -ivf', os.path.join(self.build_dir, d))
await super().configure()
def post_install(self):
import shutil
# Prefix binaries with the host triplet
if self.config.target_platform == Platform.WINDOWS:
for f in self.files_list_by_category('bins'):
f = os.path.join(self.config.prefix, f)
shutil.move(f.replace(self.target + '-', ''), f)
shutil.copy(f.replace(self.target + '-', ''), f)
# libtool m4 macros uses non-prefixed 'strings' command.
elif self.config.target_platform == Platform.LINUX:
bindir = os.path.join(self.config.prefix, 'bin')
strings = os.path.join(bindir, 'strings')
if os.path.exists(strings):
os.remove(strings)
shell.call('ln -s %s-strings strings' % self.target, bindir)
super().post_install()

64
recipes-toolchain/gcc-bootstrap.recipe

@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
from cerbero.utils import shell
# This recipe bootstraps an initial compiler that is used
# for the cross-toolchain to compile the CRT before the
# real final compiler.
class Recipe(recipe.Recipe):
name = 'gcc-bootstrap'
version = '8.2.0'
stype = SourceType.CUSTOM
licenses = [License.GPLv3Plus]
configure_options = '--with-newlib ' \
'--disable-maintainer-mode ' \
'--with-host-libstdcxx=\'-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm\' ' \
'--disable-shared ' \
'--disable-libgomp ' \
'--disable-libquadmath ' \
'--disable-libquadmath-support ' \
'--disable-libmudflap ' \
'--disable-libmpx ' \
'--disable-libssp ' \
'--disable-nls ' \
'--enable-threads=no ' \
'--enable-__cxa_atexit ' \
'--enable-lto ' \
'--enable-languages=c ' \
'--enable-multiarch ' \
''
make = 'make configure-gcc configure-libcpp configure-build-libiberty &&' \
'make all-libcpp all-build-libiberty && '\
'make configure-libdecnumber && '\
'make -C libdecnumber libdecnumber.a && '\
'make configure-libbacktrace && '\
'make -C libbacktrace && '\
'make all-gcc all-target-libgcc'
make_install = 'make install-gcc install-target-libgcc'
use_system_libs = True
add_host_build_target = False
deps = ['gcc-sources', 'mingw-w64-headers', 'gmp', 'mpfr', 'mpc', 'isl']
def prepare(self):
if self.config.target_arch == Architecture.X86:
raise InvalidRecipeError(self)
self.set_env('CPP')
self._target = 'x86_64-w64-mingw32'
sysroot = os.path.join(self.config.prefix, self._target, 'sysroot')
self.configure_options += ' --with-sysroot=%s ' % sysroot
self.configure_options += ' --with-local-prefix=%s ' % sysroot
self.configure_options += ' --target=%s' % self._target
if self.config.target_platform == Platform.WINDOWS:
self.configure_options += ' --host=%s' % self._target
if self.config.target_platform == Platform.WINDOWS:
self.allow_parallel_build = False
self.build_dir = os.path.join(self.config.sources,
'gcc-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'gcc_build_core')
self.config_sh = os.path.join(self.config.sources,
'gcc-%s' % self.version, 'configure')
async def configure(self):
try:
os.mkdir(self.make_dir)
except:
pass
await super(Recipe, self).configure()

22
recipes-toolchain/gcc-sources.recipe

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
from cerbero.utils import shell
# This recipes extracts and patches the gcc sources that
# will be used by gcc-bootstrap and gcc recipes
class Recipe(recipe.Recipe):
name = 'gcc-sources'
version = '8.2.0'
url = 'https://ftpmirror.gnu.org/gnu/gcc/gcc-8.2.0/gcc-%(version)s.tar.xz'
tarball_checksum = '196c3c04ba2613f893283977e6011b2345d1cd1af9abeac58e916b1aab3e0080'
stype = SourceType.TARBALL
btype = BuildType.CUSTOM
licenses = [License.GPLv3Plus]
patches = ['gcc/0001-Fix-graphite-build-with-isl-0.20.patch',
'gcc/0002-Disable-split-stack-for-non-thread-builds.patch',
'gcc/0003-Force-SEH-SJLJ.patch',
]
def prepare(self):
if self.config.target_arch == Architecture.X86:
raise InvalidRecipeError(self)
self.build_dir = os.path.join(self.config.sources,
'gcc-%s' % self.version)

71
recipes-toolchain/gcc.recipe

@ -0,0 +1,71 @@ @@ -0,0 +1,71 @@
import shutil
class Recipe(recipe.Recipe):
name = 'gcc'
version = '8.2.0'
licenses = [License.GPLv3Plus]
stype = SourceType.CUSTOM
make = 'make all'
make_install = 'make install-strip'
add_host_build_target = False
override_libtool = False
deps = ['gcc-sources', 'mingw-w64-crt', 'winpthreads', 'gmp', 'mpc', 'mpfr',
'isl']
configure_options = '--with-host-libstdcxx=\'-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm\' ' \
'--disable-maintainer-mode' \
'--disable-shared ' \
'--disable-libgomp ' \
'--disable-libquadmath ' \
'--disable-libquadmath-support ' \
'--disable-libmudflap ' \
'--disable-libmpx ' \
'--disable-libssp ' \
'--disable-nls ' \
'--enable-threads=posix ' \
'--enable-__cxa_atexit ' \
'--enable-lto ' \
'--enable-plugin ' \
'--enable-multiarch ' \
'--enable-languages=c,c++ ' \
'--enable-long-long ' \
''
def prepare(self):
if self.config.target_arch == Architecture.X86:
raise InvalidRecipeError(self)
# The configure checks are failing on this function
# which ends in a double definition, so let's override it.
self.set_env ('ac_cv_func_powf', 'yes')
self.set_env ('CPP')
self._target = 'x86_64-w64-mingw32'
sysroot = os.path.join(self.config.prefix, self._target, 'sysroot')
self.configure_options += ' --with-sysroot=%s ' % sysroot
self.configure_options += ' --with-local-prefix=%s ' % sysroot
self.configure_options += ' --target=%s' % self._target
if self.config.target_platform == Platform.WINDOWS:
self.configure_options += ' --host=%s' % self._target
self.build_dir = os.path.join(self.config.sources,
'gcc-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'gcc_build_final')
self.config_sh = '../configure'
async def configure(self):
try:
os.mkdir(self.make_dir)
except:
pass
await super(Recipe, self).configure()
def post_install(self):
if self.config.target_platform == Platform.WINDOWS:
bindir = os.path.join(self.config.prefix, 'bin')
libdir = os.path.join(self.config.prefix, 'lib')
lib32dir = os.path.join(self.config.prefix, 'lib32')
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89044
os.remove(os.path.join(bindir, 'libstdc++-6.dll'))
stdc64 = 'x86_64-w64-mingw32/libstdc++-v3/src/.libs/libstdc++-6.dll'
stdc32 = 'x86_64-w64-mingw32/32/libstdc++-v3/src/.libs/libstdc++-6.dll'
shutil.copy(os.path.join(self.make_dir, stdc64), libdir)
shutil.copy(os.path.join(self.make_dir, stdc32), lib32dir)
super().post_install()

26
recipes-toolchain/gcc/0001-Fix-graphite-build-with-isl-0.20.patch

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
From f4be86ae6d774aa4df3666ff6f55232b92fbc475 Mon Sep 17 00:00:00 2001
From: Andoni Morales Alastruey <ylatuya@gmail.com>
Date: Thu, 27 Dec 2018 23:51:16 +0100
Subject: [PATCH] Fix graphite build with isl-0.20
---
gcc/graphite.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/graphite.h b/gcc/graphite.h
index 4e0e58c..1398668 100644
--- a/gcc/graphite.h
+++ b/gcc/graphite.h
@@ -37,6 +37,9 @@ along with GCC; see the file COPYING3. If not see
#include <isl/schedule.h>
#include <isl/ast_build.h>
#include <isl/schedule_node.h>
+#include <isl/id.h>
+#include <isl/space.h>
+
typedef struct poly_dr *poly_dr_p;
--
2.7.4

23
recipes-toolchain/gcc/0002-Disable-split-stack-for-non-thread-builds.patch

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
From 1776d9054e428d1e6ab7aee79cb05474355fdbbf Mon Sep 17 00:00:00 2001
From: Andoni Morales Alastruey <ylatuya@gmail.com>
Date: Fri, 4 Jan 2019 15:32:34 +0100
Subject: [PATCH 2/2] Disable split-stack for non-thread builds
---
libgcc/config/t-stack | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libgcc/config/t-stack b/libgcc/config/t-stack
index cc0366b..f3f97e8 100644
--- a/libgcc/config/t-stack
+++ b/libgcc/config/t-stack
@@ -1,4 +1,6 @@
# Makefile fragment to provide generic support for -fsplit-stack.
# This should be used in config.host for any host which supports
# -fsplit-stack.
+ifeq ($(enable_threads),yes)
LIB2ADD_ST += $(srcdir)/generic-morestack.c $(srcdir)/generic-morestack-thread.c
+endif
--
2.7.4

27
recipes-toolchain/gcc/0003-Force-SEH-SJLJ.patch

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
From aec9c53549c9a755890114ccaacf5f15ed978dd9 Mon Sep 17 00:00:00 2001
From: Andoni Morales Alastruey <ylatuya@gmail.com>
Date: Wed, 9 Jan 2019 14:56:22 +0100
Subject: [PATCH 3/3] Force SEH+SJLJ
---
libgcc/config.host | 4 ----
1 file changed, 4 deletions(-)
diff --git a/libgcc/config.host b/libgcc/config.host
index 11b4aca..c76712c 100644
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -765,10 +765,6 @@ x86_64-*-mingw*)
# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
if test x$ac_cv_sjlj_exceptions = xyes; then
tmake_eh_file="i386/t-sjlj-eh"
- elif test "${host_address}" = 32; then
- # biarch -m32 with --disable-sjlj-exceptions
- tmake_eh_file="i386/t-dw2-eh"
- md_unwind_header=i386/w32-unwind.h
else
tmake_eh_file="i386/t-seh-eh"
fi
--
2.7.4

10
recipes-toolchain/gendef.recipe

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
class Recipe(recipe.Recipe):
name = 'gendef'
version = 'v6.0.0'
licenses = [License.LGPLv2Plus]
stype = SourceType.CUSTOM
files_bin = ['bin/gendef.exe']
def prepare(self):
self.build_dir = self.config_src_dir = os.path.join(self.config.sources, 'mingw-w64-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'mingw-w64-tools', 'gendef')

18
recipes-toolchain/gmp.recipe

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
class Recipe(recipe.Recipe):
name = 'gmp'
version = '6.1.2'
url = 'https://gmplib.org/download/gmp/gmp-%(version)s.tar.bz2'
tarball_dirname = 'gmp-%(version)s'
tarball_checksum = '5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2'
stype = SourceType.TARBALL
licenses = [License.LGPLv3Plus]
configure_options = "--disable-shared --enable-static"
files_libs = ['libgmp']
files_devel = ['include/gmp.h']
def gen_library_file(self, output_dir=None):
return

17
recipes-toolchain/isl.recipe

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
class Recipe(recipe.Recipe):
name = 'isl'
version = '0.20'
url = 'https://deb.debian.org/debian/pool/main/i/isl/isl_0.20.orig.tar.xz'
tarball_checksum = 'a5596a9fb8a5b365cb612e4b9628735d6e67e9178fae134a816ae195017e77aa'
stype = SourceType.TARBALL
licenses = [License.LGPLv3Plus]
configure_options = '--disable-shared '\
'--enable-static ' \
'--with-gmp=system '\
'--with-clang=no '\
'--with-sysroot=$CERBERO_PREFIX'
deps = ['gmp']

30
recipes-toolchain/mingw-w64-crt.recipe

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
class Recipe(recipe.Recipe):
name = 'mingw-w64-crt'
version = 'v6.0.0'
licenses = [License.LGPLv2Plus]
stype = SourceType.CUSTOM
add_host_build_target = False
configure_options = ' --with-default-msvcrt=ucrtbase '
deps = ['mingw-w64-sources', 'binutils']
def prepare(self):
if self.config.target_arch == Architecture.X86:
raise InvalidRecipeError(self)
if self.config.target_platform == Platform.LINUX:
self.deps.append('gcc-bootstrap')
# Since we are cross-compiling we have to reset all the env
# variables set by cerbero (eg: we don't want -m64 overriding
# a i386 build or gcc being used instead of x86_64-mingw32-w64-gcc)
for v in ['CC', 'LD', 'CPP', 'AS', 'RC', 'CXX','CFLAGS', 'LDFLAGS',
'CXXFLAGS', 'CCASFLAGS']:
self.set_env(v)
self.host = 'x86_64-w64-mingw32'
sysroot = os.path.join(self.config.prefix, self.host, 'sysroot')
self.configure_options += ' --host=%s' % self.host
self.configure_options += ' --with-sysroot=%s ' % sysroot
self.make_install = 'make install DESTDIR=%s' % sysroot
self.build_dir = os.path.join(self.config.sources,
'mingw-w64-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'mingw-w64-crt')
self.configure_tpl = "%%(config-sh)s --prefix /usr/%(host)s "\
"--libdir /usr/%(host)s/lib %%(options)s" % {'host': self.host}

30
recipes-toolchain/mingw-w64-headers.recipe

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
class Recipe(recipe.Recipe):
name = 'mingw-w64-headers'
version = 'v6.0.0'
licenses = [License.LGPLv2Plus]
stype = SourceType.CUSTOM
srcdir = 'mingw-w64-headers'
configure_options='--enable-sdk=all --enable-secure-api \
--with-default-msvcrt=ucrtbase '
add_host_build_target = False
deps = ['mingw-w64-sources']
def prepare(self):
if self.config.target_arch == Architecture.X86:
raise InvalidRecipeError(self)
self.host = 'x86_64-w64-mingw32'
self._sysroot = os.path.join(self.config.prefix, self.host, 'sysroot')
self.configure_options += ' --host=%s' % self.host
self.configure_options += ' --with-sysroot=%s ' % self._sysroot
self.make_install = 'make install DESTDIR=%s' % self._sysroot
self.build_dir = os.path.join(self.config.sources,
'mingw-w64-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'mingw-w64-headers')
self.configure_tpl = "%%(config-sh)s --prefix /usr/%(host)s "\
"--libdir /usr/%(host)s %%(options)s" % {'host': self.host}
def post_install(self):
if not os.path.exists(os.path.join(self._sysroot, 'mingw')):
shell.call('ln -s usr/%(host)s mingw' \
% {'host': self.host}, self._sysroot)
super().post_install()

19
recipes-toolchain/mingw-w64-sources.recipe

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
class Recipe(recipe.Recipe):
name = 'mingw-w64-sources'
version = 'v6.0.0'
licenses = [License.LGPLv2Plus]
url = 'https://downloads.sourceforge.net/project/mingw-w64/mingw-w64/mingw-w64-release/mingw-w64-%(version)s.tar.bz2'
tarball_checksum = '805e11101e26d7897fce7d49cbb140d7bac15f3e085a91e0001e80b2adaf48f0'
stype = SourceType.TARBALL
btype = BuildType.CUSTOM
patches = [
'mingw-w64/0001-timeb.h-declare-_ftime32-function-define-_ftime-acco.patch',
'mingw-w64/0002-Add-_ftime-aliases-for-all-msvcr-versions.patch',
'mingw-w64/0003-move-_fseeki64-and-_ftelli64-functions-from-libmingw.patch',
]
def prepare(self):
if self.config.target_arch == Architecture.X86:
raise InvalidRecipeError(self)
self.build_dir = os.path.join(self.config.sources,
'mingw-w64-%s' % self.version)

83
recipes-toolchain/mingw-w64/0001-timeb.h-declare-_ftime32-function-define-_ftime-acco.patch

@ -0,0 +1,83 @@ @@ -0,0 +1,83 @@
From f1537152d336cd072fa4fe00ffe775e45d4df8d9 Mon Sep 17 00:00:00 2001
From: Mateusz <mateuszb@poczta.onet.pl>
Date: Sun, 4 Nov 2018 17:39:10 +0100
Subject: [PATCH 1/3] timeb.h: declare _ftime32 function, define _ftime
according to _USE_32BIT_TIME_T
Signed-off-by: Mateusz Brzostek <mateuszb@poczta.onet.pl>
Signed-off-by: Liu Hao <lh_mouse@126.com>
(cherry picked from commit 38496499910a580ddc449a7d09f3bc0302767f31)
Signed-off-by: Jonathan Yong <10walls@gmail.com>
---
mingw-w64-crt/lib-common/msvcrt.def.in | 3 ++-
mingw-w64-headers/crt/sec_api/sys/timeb_s.h | 4 +++-
mingw-w64-headers/crt/sys/timeb.h | 9 +++++----
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/mingw-w64-crt/lib-common/msvcrt.def.in b/mingw-w64-crt/lib-common/msvcrt.def.in
index 1a1db2b4..13115412 100644
--- a/mingw-w64-crt/lib-common/msvcrt.def.in
+++ b/mingw-w64-crt/lib-common/msvcrt.def.in
@@ -532,7 +532,8 @@ _fstat64
_fstati64
F64(_fstat64i32 == _fstat)
_ftime
-F_ARM_ANY(_ftime32)
+F_I386(_ftime32 == _ftime)
+F_NON_I386(_ftime32)
_ftime32_s
_ftime64
_ftime64_s
diff --git a/mingw-w64-headers/crt/sec_api/sys/timeb_s.h b/mingw-w64-headers/crt/sec_api/sys/timeb_s.h
index f635d32b..ed92946e 100644
--- a/mingw-w64-headers/crt/sec_api/sys/timeb_s.h
+++ b/mingw-w64-headers/crt/sec_api/sys/timeb_s.h
@@ -15,11 +15,13 @@ extern "C" {
#if defined(MINGW_HAS_SECURE_API)
- _CRTIMP errno_t __cdecl _ftime_s(struct __timeb32 *_Time);
+ _CRTIMP errno_t __cdecl _ftime32_s(struct __timeb32 *_Time);
_CRTIMP errno_t __cdecl _ftime64_s(struct __timeb64 *_Time);
#ifndef _USE_32BIT_TIME_T
#define _ftime_s _ftime64_s
+#else
+#define _ftime_s _ftime32_s
#endif
#endif
diff --git a/mingw-w64-headers/crt/sys/timeb.h b/mingw-w64-headers/crt/sys/timeb.h
index c92c8e01..7bfe98e0 100644
--- a/mingw-w64-headers/crt/sys/timeb.h
+++ b/mingw-w64-headers/crt/sys/timeb.h
@@ -76,13 +76,14 @@ extern "C" {
#endif
_CRTIMP void __cdecl _ftime64(struct __timeb64 *_Time);
+ _CRTIMP void __cdecl _ftime32(struct __timeb32 *_Time);
-#ifdef _WIN64
+#ifndef _USE_32BIT_TIME_T
#define _timeb __timeb64
- _CRTIMP void __cdecl _ftime(struct __timeb64 *);
+#define _ftime _ftime64
#else
#define _timeb __timeb32
- _CRTIMP void __cdecl _ftime(struct __timeb32 *);
+#define _ftime _ftime32
#endif
#ifndef _TIMESPEC_DEFINED
@@ -109,7 +110,7 @@ struct itimerspec {
}
#else
__CRT_INLINE void __cdecl ftime(struct timeb *_Tmb) {
- _ftime((struct __timeb32 *)_Tmb);
+ _ftime32((struct __timeb32 *)_Tmb);
}
#endif /* _USE_32BIT_TIME_T */
#endif /* !__CRT__NO_INLINE */
--
2.14.1

223
recipes-toolchain/mingw-w64/0002-Add-_ftime-aliases-for-all-msvcr-versions.patch

@ -0,0 +1,223 @@ @@ -0,0 +1,223 @@
From ade3f5ad8ec5686d0acdff3986619e0469434104 Mon Sep 17 00:00:00 2001
From: Johannes Pfau <johannespfau@gmail.com>
Date: Wed, 2 Jan 2019 14:10:59 +0100
Subject: [PATCH 2/3] Add _ftime aliases for all msvcr versions.
Signed-off-by: Johannes Pfau <johannespfau@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
(cherry picked from commit 6a5c1535fb22d94797dcc75a4b4b9109d8360058)
Signed-off-by: Jonathan Yong <10walls@gmail.com>
---
mingw-w64-crt/lib32/msvcr100.def.in | 1 +
mingw-w64-crt/lib32/msvcr110.def.in | 1 +
mingw-w64-crt/lib32/msvcr120.def.in | 1 +
mingw-w64-crt/lib32/msvcr120_app.def.in | 1 +
mingw-w64-crt/lib32/msvcr120d.def.in | 1 +
mingw-w64-crt/lib32/msvcr90.def.in | 1 +
mingw-w64-crt/lib32/msvcr90d.def.in | 1 +
mingw-w64-crt/lib64/msvcr100.def.in | 1 +
mingw-w64-crt/lib64/msvcr110.def.in | 1 +
mingw-w64-crt/lib64/msvcr120.def.in | 1 +
mingw-w64-crt/lib64/msvcr120_app.def.in | 1 +
mingw-w64-crt/lib64/msvcr120d.def.in | 1 +
mingw-w64-crt/lib64/msvcr90.def.in | 1 +
mingw-w64-crt/lib64/msvcr90d.def.in | 1 +
mingw-w64-crt/libarm32/msvcr110.def | 1 +
mingw-w64-crt/libarm32/msvcr120_clr0400.def | 1 +
16 files changed, 16 insertions(+)
diff --git a/mingw-w64-crt/lib32/msvcr100.def.in b/mingw-w64-crt/lib32/msvcr100.def.in
index d103a2b0..53ccd37b 100644
--- a/mingw-w64-crt/lib32/msvcr100.def.in
+++ b/mingw-w64-crt/lib32/msvcr100.def.in
@@ -896,6 +896,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_futime32
diff --git a/mingw-w64-crt/lib32/msvcr110.def.in b/mingw-w64-crt/lib32/msvcr110.def.in
index 7296955b..920677bc 100644
--- a/mingw-w64-crt/lib32/msvcr110.def.in
+++ b/mingw-w64-crt/lib32/msvcr110.def.in
@@ -1019,6 +1019,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_futime32
diff --git a/mingw-w64-crt/lib32/msvcr120.def.in b/mingw-w64-crt/lib32/msvcr120.def.in
index 57122cbf..c1e2af84 100644
--- a/mingw-w64-crt/lib32/msvcr120.def.in
+++ b/mingw-w64-crt/lib32/msvcr120.def.in
@@ -1042,6 +1042,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_futime32
diff --git a/mingw-w64-crt/lib32/msvcr120_app.def.in b/mingw-w64-crt/lib32/msvcr120_app.def.in
index 0c5aaff9..b13d9a66 100644
--- a/mingw-w64-crt/lib32/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib32/msvcr120_app.def.in
@@ -654,6 +654,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_futime32
diff --git a/mingw-w64-crt/lib32/msvcr120d.def.in b/mingw-w64-crt/lib32/msvcr120d.def.in
index 194a0d24..385d4913 100644
--- a/mingw-w64-crt/lib32/msvcr120d.def.in
+++ b/mingw-w64-crt/lib32/msvcr120d.def.in
@@ -1098,6 +1098,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_fullpath_dbg
diff --git a/mingw-w64-crt/lib32/msvcr90.def.in b/mingw-w64-crt/lib32/msvcr90.def.in
index 861ce56c..69765e53 100644
--- a/mingw-w64-crt/lib32/msvcr90.def.in
+++ b/mingw-w64-crt/lib32/msvcr90.def.in
@@ -523,6 +523,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_futime32
diff --git a/mingw-w64-crt/lib32/msvcr90d.def.in b/mingw-w64-crt/lib32/msvcr90d.def.in
index 419c65ce..2fe211dd 100644
--- a/mingw-w64-crt/lib32/msvcr90d.def.in
+++ b/mingw-w64-crt/lib32/msvcr90d.def.in
@@ -583,6 +583,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_ftol
_fullpath
_fullpath_dbg
diff --git a/mingw-w64-crt/lib64/msvcr100.def.in b/mingw-w64-crt/lib64/msvcr100.def.in
index b3be3024..b1e3e073 100644
--- a/mingw-w64-crt/lib64/msvcr100.def.in
+++ b/mingw-w64-crt/lib64/msvcr100.def.in
@@ -853,6 +853,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_futime32
_futime64
diff --git a/mingw-w64-crt/lib64/msvcr110.def.in b/mingw-w64-crt/lib64/msvcr110.def.in
index 59868920..a4129975 100644
--- a/mingw-w64-crt/lib64/msvcr110.def.in
+++ b/mingw-w64-crt/lib64/msvcr110.def.in
@@ -978,6 +978,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_futime32
_futime64
diff --git a/mingw-w64-crt/lib64/msvcr120.def.in b/mingw-w64-crt/lib64/msvcr120.def.in
index 0ec1dc48..38d5af29 100644
--- a/mingw-w64-crt/lib64/msvcr120.def.in
+++ b/mingw-w64-crt/lib64/msvcr120.def.in
@@ -998,6 +998,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_futime32
_futime64
diff --git a/mingw-w64-crt/lib64/msvcr120_app.def.in b/mingw-w64-crt/lib64/msvcr120_app.def.in
index b829b841..a5f6f777 100644
--- a/mingw-w64-crt/lib64/msvcr120_app.def.in
+++ b/mingw-w64-crt/lib64/msvcr120_app.def.in
@@ -611,6 +611,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_futime32
_futime64
diff --git a/mingw-w64-crt/lib64/msvcr120d.def.in b/mingw-w64-crt/lib64/msvcr120d.def.in
index f5304d45..df0425af 100644
--- a/mingw-w64-crt/lib64/msvcr120d.def.in
+++ b/mingw-w64-crt/lib64/msvcr120d.def.in
@@ -1052,6 +1052,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_fullpath_dbg
_futime32
diff --git a/mingw-w64-crt/lib64/msvcr90.def.in b/mingw-w64-crt/lib64/msvcr90.def.in
index f18166aa..72f30700 100644
--- a/mingw-w64-crt/lib64/msvcr90.def.in
+++ b/mingw-w64-crt/lib64/msvcr90.def.in
@@ -470,6 +470,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_futime32
_futime64
diff --git a/mingw-w64-crt/lib64/msvcr90d.def.in b/mingw-w64-crt/lib64/msvcr90d.def.in
index 07755389..99b167ee 100644
--- a/mingw-w64-crt/lib64/msvcr90d.def.in
+++ b/mingw-w64-crt/lib64/msvcr90d.def.in
@@ -524,6 +524,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime64
_fullpath
_fullpath_dbg
_futime32
diff --git a/mingw-w64-crt/libarm32/msvcr110.def b/mingw-w64-crt/libarm32/msvcr110.def
index 40a40937..9ce6a8ac 100644
--- a/mingw-w64-crt/libarm32/msvcr110.def
+++ b/mingw-w64-crt/libarm32/msvcr110.def
@@ -635,6 +635,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_fullpath
_futime32
_futime64
diff --git a/mingw-w64-crt/libarm32/msvcr120_clr0400.def b/mingw-w64-crt/libarm32/msvcr120_clr0400.def
index 32d7965f..84f768a5 100644
--- a/mingw-w64-crt/libarm32/msvcr120_clr0400.def
+++ b/mingw-w64-crt/libarm32/msvcr120_clr0400.def
@@ -634,6 +634,7 @@ _ftime32
_ftime32_s
_ftime64
_ftime64_s
+_ftime == _ftime32
_fullpath
_futime32
_futime64
--
2.14.1

733
recipes-toolchain/mingw-w64/0003-move-_fseeki64-and-_ftelli64-functions-from-libmingw.patch

@ -0,0 +1,733 @@ @@ -0,0 +1,733 @@
From 71276530be885bd3558d5f351a7bd0fb3bcb88d6 Mon Sep 17 00:00:00 2001
From: Mateusz Brzostek <mateuszb@poczta.onet.pl>
Date: Tue, 27 Nov 2018 09:21:36 +0100
Subject: [PATCH 3/3] 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>
---
mingw-w64-crt/Makefile.am | 1 +
mingw-w64-crt/Makefile.in | 96 ++++++++++++++++---
mingw-w64-crt/lib32/msvcr100.def.in | 4 +-
mingw-w64-crt/lib32/msvcr90.def.in | 4 +-
mingw-w64-crt/lib64/msvcr100.def.in | 4 +-
mingw-w64-crt/lib64/msvcr90.def.in | 4 +-
mingw-w64-crt/stdio/fseeki64.c | 177 ++++++++++++++++++++++++++++++++++++
mingw-w64-crt/stdio/fseeko64.c | 131 --------------------------
mingw-w64-headers/crt/stdio.h | 5 +-
9 files changed, 272 insertions(+), 154 deletions(-)
create mode 100644 mingw-w64-crt/stdio/fseeki64.c
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 30f9f7fc..c4b19beb 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -210,6 +210,7 @@ src_msvcrt=\
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 4952edde..aea778a5 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -1341,8 +1341,9 @@ am__lib32_libmsvcrt_os_a_SOURCES_DIST = misc/onexit_table.c \
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 @@ am__objects_34 = $(am__objects_33) \
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)
@@ -2669,9 +2671,9 @@ am__lib64_libmsvcrt_os_a_SOURCES_DIST = misc/onexit_table.c \
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)
@@ -2724,6 +2726,7 @@ am__objects_85 = $(am__objects_84) \
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) \
@@ -3863,9 +3866,9 @@ am__libarm32_libmsvcrt_os_a_SOURCES_DIST = misc/onexit_table.c \
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)
@@ -3918,6 +3921,7 @@ am__objects_125 = $(am__objects_124) \
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) \
@@ -4948,9 +4952,9 @@ am__libarm64_libmsvcrt_os_a_SOURCES_DIST = misc/onexit_table.c \
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)
@@ -5003,6 +5007,7 @@ am__objects_161 = $(am__objects_160) \
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) \
@@ -6925,6 +6930,7 @@ src_msvcrt = \
secapi/vsprintf_s.c \
secapi/wmemcpy_s.c \
secapi/wmemmove_s.c \
+ stdio/fseeki64.c \
stdio/mingw_lock.c
src_ucrtbase = \
@@ -11079,6 +11085,8 @@ secapi/lib32_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT): \
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): \
@@ -12926,6 +12934,8 @@ secapi/lib64_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT): \
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) \
@@ -14664,6 +14674,8 @@ secapi/libarm32_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT): \
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): \
@@ -16183,6 +16195,8 @@ secapi/libarm64_libmsvcrt_os_a-wmemcpy_s.$(OBJEXT): \
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): \
@@ -20029,6 +20043,7 @@ distclean-compile:
@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__vsnprintf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib32_libucrt_extra_a-ucrt__vsnwprintf.Po@am__quote@
@@ -20141,6 +20156,7 @@ distclean-compile:
@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__vsnprintf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/lib64_libucrt_extra_a-ucrt__vsnwprintf.Po@am__quote@
@@ -20245,6 +20261,7 @@ distclean-compile:
@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__vsnprintf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm32_libucrt_extra_a-ucrt__vsnwprintf.Po@am__quote@
@@ -20348,6 +20365,7 @@ distclean-compile:
@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__vsnprintf.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@stdio/$(DEPDIR)/libarm64_libucrt_extra_a-ucrt__vsnwprintf.Po@am__quote@
@@ -30851,6 +30869,20 @@ secapi/lib32_libmsvcrt_os_a-wmemmove_s.obj: secapi/wmemmove_s.c
@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
@@ -41099,6 +41131,20 @@ secapi/lib64_libmsvcrt_os_a-wmemmove_s.obj: secapi/wmemmove_s.c
@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
@@ -50871,6 +50917,20 @@ secapi/libarm32_libmsvcrt_os_a-wmemmove_s.obj: secapi/wmemmove_s.c
@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
@@ -59565,6 +59625,20 @@ secapi/libarm64_libmsvcrt_os_a-wmemmove_s.obj: secapi/wmemmove_s.c
@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 53ccd37b..1c6ae3dc 100644
--- a/mingw-w64-crt/lib32/msvcr100.def.in
+++ b/mingw-w64-crt/lib32/msvcr100.def.in
@@ -880,7 +880,7 @@ _freefls@4
_fscanf_l
_fscanf_s_l
_fseek_nolock
-_fseeki64 DATA
+_fseeki64
_fseeki64_nolock
_fsopen
_fstat32
@@ -890,7 +890,7 @@ _fstat32i64
_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 69765e53..fd4ef944 100644
--- a/mingw-w64-crt/lib32/msvcr90.def.in
+++ b/mingw-w64-crt/lib32/msvcr90.def.in
@@ -507,7 +507,7 @@ _freefls@4
_fscanf_l
_fscanf_s_l
_fseek_nolock
-_fseeki64 DATA
+_fseeki64
_fseeki64_nolock
_fsopen
_fstat32
@@ -517,7 +517,7 @@ _fstat32i64
_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 b1e3e073..68c09d6c 100644
--- a/mingw-w64-crt/lib64/msvcr100.def.in
+++ b/mingw-w64-crt/lib64/msvcr100.def.in
@@ -837,7 +837,7 @@ _freefls
_fscanf_l
_fscanf_s_l
_fseek_nolock
-_fseeki64 DATA
+_fseeki64
_fseeki64_nolock
_fsopen
_fstat32
@@ -847,7 +847,7 @@ _fstat32i64
_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 72f30700..49b57010 100644
--- a/mingw-w64-crt/lib64/msvcr90.def.in
+++ b/mingw-w64-crt/lib64/msvcr90.def.in
@@ -454,7 +454,7 @@ _freefls
_fscanf_l
_fscanf_s_l
_fseek_nolock
-_fseeki64 DATA
+_fseeki64
_fseeki64_nolock
_fsopen
_fstat32
@@ -464,7 +464,7 @@ _fstat32i64
_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 00000000..fdb8f1c1
--- /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;