delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/12/22/09:27:05

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-0.4 required=5.0 tests=AWL,BAYES_40,SPF_HELO_PASS,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 15:26:32 +0100
Lines: 85
Message-ID: <op.vn4c2ibb5o90vo@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>
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: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
>>>>
>>>> What do you mean by not supported?  JonY maintains the cross
>>>> compilers....
>>>
>>> I meant that i686-w64-mingw32-gcc exists but not i686-w32-mingw32-gcc.
>>> I thought that w64 meant "built on win64" and mingw32 "run binary on
>>> win32".
>>> So it seems to me that with cygwin running on a 32 bit windows, it is
>>> not possible to cross compile to win32. However with a 64 bit windows
>>> you can produce win32 applications.
>>> However, I just tried to use i686-w64-mingw32-g++ on my win32 machine
>>> with a hello world program and it produces an binary that can be used
>>> from windows on that win32 machine.
>>> So my question to the list: what is the meaning of w64 in the name?
>>
>> 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
>
> Hi,
>
> the -w64- within cross-compiler's triplet means that this compiler
> uses mingw-w64 runtime headers and libraries. The architecture part of
> triplet (i686|x86_64) makes the difference, if a cross-compiler
> produces binaries for i686 (means 32-bit), or for x86_64  (means
> 64-bit) windows native.
> 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>

Thanks,
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