delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/08/14/02:46:59

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 <karheng AT softhome DOT net>
User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317)
MIME-Version: 1.0
To: cygwin mailing list <cygwin AT cygwin DOT com>
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>
X-IsSubscribed: yes

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019