delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/12/22/11:32:21

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-0.2 required=5.0 tests=AWL,BAYES_20,SPF_HELO_PASS,TW_RW,TW_WX,TW_YG,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: lemkemch AT t-online DOT de
Subject: Re: mingw-targeted cross-compiler question
Date: Wed, 22 Dec 2010 17:31:55 +0100
Lines: 101
Message-ID: <op.vn4ivhqs5o90vo@orion>
References: <30467239 DOT post AT talk DOT nabble DOT com> <AANLkTikCqUhVfD71CGGn6WsTASAgYVmjX2SBLoy+XgWb AT mail DOT gmail DOT com> <AANLkTinCuy-W_qdv5oR8GY664qCfPPeJ7M6jR3oSDSSK AT mail DOT gmail DOT com> <AANLkTi=oe9uXBpKQE1iyz2PB90F0ymVBB8vbrhKftYRm AT mail DOT gmail DOT com> <op DOT vn4byplj5o90vo AT orion> <AANLkTi=7ttVmyTupCkao16dPapL9Q0vPwe3c87Q-Xkd2 AT mail DOT gmail DOT com> <op DOT vn4c2ibb5o90vo AT orion> <AANLkTimgzBw-yeCOCFoBk8O54_K-1tdor-Nd+FhsEzUt AT mail DOT gmail DOT com>
Mime-Version: 1.0
User-Agent: Opera Mail/10.63 (Win32)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
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

On Wed, 22 Dec 2010 15:36:01 +0100, Kai Tietz <ktietz70 AT googlemail DOT com>  
wrote:

> 2010/12/22  <lemkemch AT t-online DOT de>:
>> On Wed, 22 Dec 2010 15:11:18 +0100, Kai Tietz <ktietz70 AT googlemail DOT com>
>> wrote:
>>
>>> 2010/12/22  <lemkemch AT t-online DOT de>:
>>>>
>>>> On Wed, 22 Dec 2010 14:13:15 +0100, Frédéric Bron  
>>>> <frederic DOT bron AT m4x DOT org>
>>>> wrote:
>>>>
>>>>>>>> I checked the Make file, it used this flag:
>>>>>>>> gcc -mno-cygwin -g -Wl,--add-stdcall-alias  
>>>>>>>> -Wl,--export-all-symbols
>>>>>>>> ...
>>>>>>>
>>>>>>> replace gcc by gcc-3
>>>>>>> gcc 4 is now the default on cygwin but the cross compiler is not
>>>>>>> supported for that version.
>>>>>>> Frédéric
>>>>>>
>>>>
>>>> Well, I don't know but I'd really like to know what is the replacement
>>>> these days for
>>>>
>>>> gcc -mno-cygwin -mwindows x.c
>>>>
>>>> I tried
>>>>
>>>> i686-w64-mingw32-gcc -mwindows  -m32 x.c
>>>>
>>>> but get
>>>>
>>>> x.c:35:13: error: expected '=', ',', ';', 'asm' or '__attribute__'  
>>>> before
>>>> 'WinMain'
>>>>
>>>> and that also for all other option combinations that made sense to me.
>>>>
>>>> Thanks,
>>>> Michael
>>>
>>> Btw the -m32 is superflous for the i686-w64-mingw32 cross-compiler, as
>>> it just produces 32-bit and has no 64-bit capabilities builtin.
>>> Could you show please your x.c file, as the message you get is a
>>> compiler error already. I would assume that you missed to include some
>>> header, or you were defining something which cause here the harm.
>>
>> Well, the program compiles just fine with the old gcc-3 -mno-cygwin but
>> anyway, here's a stripped down version:
>>
>>
>> #define WINVER 0x0500
>> #include <windows.h>
>>
>> int STDCALL WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int
>> nShow) {
>>   return 0;
>> }
>>
>>
>>  orion> i686-w64-mingw32-gcc -mwindows -m32 xx.c
>> xx.c:4:13: error: expected '=', ',', ';', 'asm' or '__attribute__'  
>> before
>> 'WinMain'
>>  orion> gcc-3 -mno-cygwin -mwindows -m32 xx.c
>>  orion>
>>
>>
>
> Well, the issue is STDCALL. We don't define this macro. Sorry, can
> find a single hint on that in msdn. Use here instead the standard
> WINAPI and it builds on all compilers you are using.

Thanks, that fixed it.  Don't know where I got that STDCALL from,
it certainly wasn't my invention.  However, the size of the executable
for that noop program went up from about 21kb to about 100kb.  cygcheck
lists the same dlls:

  orion> gcc-3 -mno-cygwin -mwindows -m32 xx.c
  orion> ls -ls a.exe
24 -rwxr-x--- 1 michael None 21347 Dec 22 17:18 a.exe
  orion> cygcheck ./a.exe
d:\cygwin\home\michael\a.exe
   C:\WINDOWS\system32\msvcrt.dll
     C:\WINDOWS\system32\KERNEL32.dll
       C:\WINDOWS\system32\ntdll.dll
  orion> i686-w64-mingw32-gcc -mwindows -m32 xx.c
  orion> ls -ls a.exe
100 -rwxr-x--- 1 michael None 100582 Dec 22 17:21 a.exe
  orion> cygcheck ./a.exe
d:\cygwin\home\michael\a.exe
   C:\WINDOWS\system32\KERNEL32.dll
     C:\WINDOWS\system32\ntdll.dll
   C:\WINDOWS\system32\msvcrt.dll

Why would that be?

Michael


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

- Raw text -


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