described a patch to mingw32 headers to fix va_arg warnings

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4045 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1999-10-18 13:05:13 +00:00
parent c6d73ef67d
commit ce1a1ff40a

View File

@@ -36,7 +36,7 @@ and its make.exe).
where your compiler and tools reside where your compiler and tools reside
b-2) Using Mingw32 with gcc-2.95 and Anders Norlander's b-2) Using Mingw32 with gcc-2.95 and Anders Norlander's
Win32 headers Win32 headers
Using the newer gcc-2.95/Noralander header combination Using the newer gcc-2.95/Noralander header combination
will allow you to compile more of the MSW code, such will allow you to compile more of the MSW code, such
@@ -190,14 +190,37 @@ Type
and wait, wait, wait. Don't leave the room, because the minute you do there and wait, wait, wait. Don't leave the room, because the minute you do there
will be a compile error :-) will be a compile error :-)
NB: you risk to get quite a few warnings about "ANSI C++ forbids implicit
conversion from 'void *'" in all places where va_arg macro is used. This
is due to a bug in (some versions of) mingw32 headers which may be
corrected by editing the file
${install_prefix}/lib/gcc-lib/i586-mingw32/egcs-2.91.57/include/stdarg.h
(instead of egcs-2.91.57 you may have something different), searching for
the lines
/* Define __gnuc_va_list. */
#ifndef __GNUC_VA_LIST
#define __GNUC_VA_LIST
#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
typedef char *__gnuc_va_list;
#else
typedef void *__gnuc_va_list;
#endif
#endif
and adding "|| defined(_WIN32)" to the list of platforms on which
__gnuc_va_list is char *.
If this is successful, you end up with a libwx_msw.a in win32/lib. Now try If this is successful, you end up with a libwx_msw.a in win32/lib. Now try
building the minimal sample: building the minimal sample:
-> cd samples/minimal -> cd samples/minimal
-> make -> make
-> mv minimal minimal.exe
and run it with wine, for example and run it with wine, for example (or copy to a Windows box)
-> wine minimal.exe -> wine minimal.exe
If all is well, do an install; from win32 If all is well, do an install; from win32