Dmitry Timoshkov dmitry@baikal.ru writes:
Alexandre Julliard julliard@winehq.org wrote:
This patch in particular fixes 32-bit build where a slightly old ming32-dlltool chokes on krn386.exe16.ApiName entries. These are marked as PRIVATE anyway, so they won't appear in the generated import library.
This should be done only for the mingw case, not for the .def import lib case. We need a list of all the functions to get the correct ordinal hints.
What is the sign of the mingw case? Can 'include_stubs' flag be used as an indicator, or something else?
Yes, include_stubs should work.
P.S. Also, not mentioned in the patch, for me the 32-bit build still fails like this in dlls/msvcrt/tests: ../../.././../wine64/tools/winegcc/winegcc -o msvcrt_test-stripped.exe -B../../.././../wine64/tools/winebuild \ --sysroot=../../.. -b i586-pc-mingw32 --lib-suffix=.cross.a -s -Wb,-F,msvcrt_test.exe -mno-cygwin \ cpp.cross.o data.cross.o dir.cross.o environ.cross.o file.cross.o headers.cross.o heap.cross.o \ locale.cross.o misc.cross.o printf.cross.o scanf.cross.o signal.cross.o string.cross.o \ time.cross.o testlist.cross.o ../../../dlls/advapi32/libadvapi32.cross.a ../../../dlls/msvcrt/libmsvcrt.cross.a(drjebs00585.o):(.text+0x0): multiple definition of `__onexit' /usr/i586-pc-mingw32/sys-root/mingw/lib/crt2.o:crt1.c:(.text+0x10): first defined here collect2: ld returned 1 exit status winegcc: i586-pc-mingw32-gcc failed
This is a wow64 build, but pure 32-bit build fails same way. I didn't want to make noise with creating a bug report, hopefully you have an idea how to fix this with new PE scheme for the tests.
For most of these cases, I'm afraid the answer will be: upgrade Mingw. The old mingw support library has many issues, and I'm not sure we can work around them all. What version are you using?