Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <42FEE8D7.9060700@softhome.net> Date: Sun, 14 Aug 2005 14:46:47 +0800 From: Chan Kar Heng User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) MIME-Version: 1.0 To: cygwin mailing list Subject: Re: g++ defines for win32 References: <000b01c5a032$3dabb7c0$cf34000a AT sven> <42FE9575 DOT 1060804 AT familiehaase DOT de> In-Reply-To: <42FE9575.1060804@familiehaase.de> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes another way: echo "#include " | 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/