|
From: | J. Grant |
Subject: | Re: Latest CVS compile problem - "error no variadic api" |
Date: | Wed, 10 Mar 2004 00:17:39 +0000 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5b) Gecko/20030824 |
on the 09/03/04 19:39, Eli Zaretskii wrote:
Date: Fri, 5 Mar 2004 09:31:53 -0500 From: "Paul D. Smith" <address@hidden> jg> __STDC__ is not defined on win32 builds, or defined as 1 etc. Hm... really? The ISO C standard says that if your compiler conforms to the standard it should define __STDC__: I have to believe that in 2004 the Windows compilers at least comply with the 1989 standard!!It's possible that MSVC needs a special command-line switch to define __STDC__ as mandated by ISO. Can someone check that?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vcce4/html/evlrffsZacmafsZelpDisableLanguageExtensionsrp.asp It seems MS C/C++ extensions are on by default, now that is surprising. /Za "Language constructs not compatible with either ANSI C++ or ANSI C are flagged as errors.". Marvelous. The only problem being the MS code used. e.g. many compile errors such as: cl /nologo /MT /W3 /GX /Zi /Za /YX /I . /I glob /I w32/include /D WIN32 /D WINDOWS32 /D _CONSOLE /D HAVE_CONFIG_H /O2 /D NDEBUG /FR.\WinRel/ /Fp.\WinRel/make.pch /Fo.\WinRel/ /c arscan.c arscan.c make.h(369) : warning C4115: 'stat' : named type definition in parentheses C:\msvc6\VC98\include\winnt.h(357) : error C2467: illegal declaration of anonymous 'struct' C:\msvc6\VC98\include\winnt.h(376) : error C2467: illegal declaration of anonymous 'struct' C:\msvc6\VC98\include\winnt.h(1519) : error C2054: expected '(' to follow '_inline' C:\msvc6\VC98\include\winnt.h(1519) : error C2085: 'GetFiberData' : not in formal parameter list C:\msvc6\VC98\include\winnt.h(1519) : error C2143: syntax error : missing ';' before '{' C:\msvc6\VC98\include\winnt.h(1524) : error C2054: expected '(' to follow '_inline' C:\msvc6\VC98\include\winnt.h(1524) : error C2085: 'GetCurrentFiber' : not in formal parameter list C:\msvc6\VC98\include\winnt.h(1524) : error C2143: syntax error : missing ';' before '{' ... In this case __STDC__ is both defined and 1. If MS code is not compatible with __STDC__ I think we won't be able to have the mode (/Za) which turns it on. One thing that I think would be better to have on the Windows32 port would be /W4, this is the highest warning level. (Other than /Wall which is a ridiculous amount of warnings) I can make a patch for the NMakefile.template and build_w32.bat if this is desired. Please let me know. Kind regards JH
[Prev in Thread] | Current Thread | [Next in Thread] |