[APISETS] Fix data forwarding.

Thanks to Timo for the help :)
This commit is contained in:
Mark Jansen 2018-04-21 18:55:57 +02:00
parent 01ae49857a
commit a91899a6a1
No known key found for this signature in database
GPG key ID: B39240EE84BEAE8B
3 changed files with 4 additions and 13 deletions

View file

@ -13,8 +13,7 @@
@ stdcall _onexit() msvcrt._onexit
@ stdcall _purecall() msvcrt._purecall
@ stdcall _time64() msvcrt._time64
@ extern -arch=arm64,i386,arm atexit msvcrt._imp__atexit
@ extern -arch=x86_64 atexit msvcrt.__imp_atexit
@ extern -stub atexit msvcrt.atexit # the -stub is a HACK to fix VS < 2017 build!
@ stdcall exit() msvcrt.exit
@ stub hgets
@ stub hwprintf

View file

@ -69,8 +69,7 @@
@ stub _mbbtombc_l
@ stdcall _mbbtype() msvcrt._mbbtype
@ stub _mbbtype_l
@ extern -arch=arm64,i386,arm _mbcasemap msvcrt._imp___mbcasemap
@ extern -arch=x86_64 _mbcasemap msvcrt.__imp__mbcasemap
@ extern -stub _mbcasemap msvcrt._mbcasemap # the -stub is a HACK to fix VS < 2017 build!
@ stdcall _mbccpy() msvcrt._mbccpy
@ stub _mbccpy_l
@ stub _mbccpy_s

View file

@ -247,15 +247,8 @@ class SpecEntry(object):
arch = self.arch
if self.callconv == 'extern':
args = ''
callconv = 'extern'
if arch.has(Arch.x86_64):
fwd = '{}.__imp_{}'.format(*self._forwarder)
self.arch = arch - Arch(Arch.x86_64)
estimate_size += self.write(spec_file)
self.arch = arch
arch = Arch(Arch.x86_64)
else:
fwd = '{}._imp__{}'.format(*self._forwarder)
callconv = 'extern -stub' # HACK
fwd += ' # the -stub is a HACK to fix VS < 2017 build!'
if arch != Arch(Arch.Any):
opts = '{} -arch={}'.format(opts, arch.to_str())
spec_file.write('{ord} {cc}{opts} {name}{args} {fwd}{nl}'.format(ord=self._ord,