[PATCH 1/2] msvcrt: Use __iob_func instead of __p__iob in __acrt_iob_func implementation.

Jacek Caban jacek at codeweavers.com
Fri Aug 9 07:16:07 CDT 2019


On 8/9/19 11:44 AM, Alexandre Julliard wrote:
> Jacek Caban <jacek at codeweavers.com> writes:
>
>> @@ -780,9 +780,10 @@ static int msvcrt_int_to_base32_w(int num, MSVCRT_wchar_t *str)
>>   }
>>   
>>   /*********************************************************************
>> - *		__p__iob  (MSVCRT.@)
>> + *		__iob_func  (MSVCRT.@)
>>    */
>> -MSVCRT_FILE * CDECL __p__iob(void)
>> +#undef __iob_func
>> +MSVCRT_FILE * CDECL __iob_func(void)
> This is breaking the 64-bit Windows build, sorry for not catching this
> earlier:
>
> x86_64-w64-mingw32-gcc -m64 -c -o file.o ../../../wine/dlls/crtdll/../msvcrt/file.c -I. -I../../../wine/dlls/crtdll \
>    -I../../../wine/dlls/crtdll/../msvcrt -I../../include -I../../../wine/include -D__WINESRC__ -D_MT \
>    -D_MSVCR_VER=0 -D_CRTDLL -D_REENTRANT -Wall -pipe -fno-strict-aliasing \
>    -Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Wno-packed-not-aligned \
>    -Wshift-overflow=2 -Wstrict-prototypes -Wtype-limits -Wunused-but-set-parameter -Wvla \
>    -Wwrite-strings -Wpointer-arith -Wlogical-op -gdwarf-2 -gstrict-dwarf -Wno-format -g -O2 -fno-diagnostics-show-caret -Wno-format-overflow -D_WIN32
> ../../../wine/dlls/crtdll/../msvcrt/file.c:786:21: error: conflicting types for ‘__iob_func’
> In file included from ../../../wine/dlls/crtdll/../msvcrt/file.c:33:
> /usr/share/mingw-w64/include/stdio.h:85:25: note: previous declaration of ‘__iob_func’ was here
> make: *** [Makefile:406: file.o] Error 1


It works fine here, I guess it depends on mingw-w64 version. Does the 
attached patch help? We could try to prefix the implementation name with 
MSVCRT_, like we do for most functions, but then non-mingw would have a 
problem, since it links iob.o into DLL itself. Long term, when msvcrt 
will be migrated to -mno-cygwin and use our headers, this will not be a 
problem.


Thanks,

Jacek

-------------- next part --------------
A non-text attachment was scrubbed...
Name: iob_func.diff
Type: text/x-patch
Size: 304 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20190809/4dab7502/attachment.bin>


More information about the wine-devel mailing list