This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: g++ defines for win32


It seems I've come upon an interesting issue, probably a bug. Here it is:
I have a header file that defines __stdcall, __fastdecl and __cdecl. If the preprocessor uses the CPLUS_INCLUDE_PATH to find that header file, then it does not issue a warning saying that any of the above identifiers has been redefined. If, however, it does not use that environment variable, then it DOES issue the warning.


Angel Tsankov
fn42551@fmi.uni-sofia.bg

----- Original Message ----- From: "Chan Kar Heng" <karheng@softhome.net>
To: "cygwin mailing list" <cygwin@cygwin.com>
Sent: Sunday, August 14, 2005 9:46 AM
Subject: Re: g++ defines for win32



another way:

echo "#include <stdio.h>" | gcc -dM -E -

... but this only shows macros defined for the current target platform unlike -dumpspecs which shows everything.
(in the above, the include file used could be removed, or other files could be specified instead).


rgds,

kh

Gerrit P. Haase wrote:
Angel Tsankov wrote:

I downloaded g++ from cygwin and installed it. I noticed that it has built-in definitions of __stdcall, __cdecl and __fastcall. I've come across other g++ builds for Windows that do not have definitions for these identifiers, so I had to filter them out from my source code with the help of macros. Now I need to know how to distinguish this build of g++ from others in order to not filter the above identifiers out.
Here's what I have now:


#if !(defined (_MSC_VER) || (defined (__GNUC__) && defined (__WIN32__)))
#define __cdecl
#define __stdcall
#define __fastcall
#endif


gcc -dumpspecs:


*cpp:
%(cpp_cpu) %{posix:-D_POSIX_SOURCE} %{mno-win32:%{mno-cygwin: %emno-cygwin and mno-win32 are not compatible}} %{mno-cygwin:-D__MSVCRT__ -D__MINGW32__ %{!ansi:%{mthreads:-D_MT}}} %{!mno-cygwin:-D__CYGWIN32__ -D__CYGWIN__ %{!ansi:-Dunix} -D__unix__ -D__unix } %{mwin32|mno-cygwin:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ %{!ansi:-DWINNT}} %{!nostdinc:%{!mno-win32|mno-cygwin:-idirafter ../include/w32api%s -idirafter ../../include/w32api%s}}



For Cygwin (= -mno-win32 = default): __CYGWIN32__ __CYGWIN__ __unix __unix__ unix

For MinGW (= -mno-cygwin):
__MINGW32__
__MSVCRT__
WIN32
_WIN32
__WIN32
__WIN32__

For Cygwin (+ -mwin32):
__CYGWIN32__
__CYGWIN__
WIN32
_WIN32
__WIN32
__WIN32__



Gerrit

-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]