delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2017/02/02/16:13:39

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type:content-transfer-encoding; q=dns; s=default; b=jCb
UudqPrYwLB3LOzWGv0gQIguwS26WEmDX1akt+VrQWJIf38s+kllFnNVNr/5dAWBC
KeS7giSEZtSBm1WjhorMqvxKuAYLol7ht/2IB3K8xyWF9E9dmTsQFyyZArXjsMwJ
oX17Df4Nm1CySMSKys7JUVYH/izKCCwqDOehKt8k=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:message-id:date:from:mime-version:to:subject
:content-type:content-transfer-encoding; s=default; bh=CtyhIOV84
Ed9Vi9raaz2fT+9Its=; b=ak6mgwlMyrLDepHXlfdMWSDoy8wxftUebkmq7OW3B
Sv+JkuD42PxvKhUN2KCYL62DkyRMtSeBGapZRcHaw75VJSPkk/awIRxtrcOeLJK4
dem0az+c+UTfGbxSYighDL1bkoli1RrxsNPuxnpG60YOFwPKaPAvBnUFbpWI5MmY
Q0=
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
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=HX-HELO:sk:mailrel, HX-Envelope-From:sk:thomas@, H*F:D*se, H*c:ISO-8859-1
X-HELO: mailrelay3.public.one.com
X-HalOne-Cookie: 3784f513781ae19c76c303ad0b37f857d14a6715
X-HalOne-ID: 59e575f0-e98c-11e6-9cd7-b8ca3afa9d73
Message-ID: <5893A0CD.5090107@junovagen.se>
Date: Thu, 02 Feb 2017 22:12:45 +0100
From: Thomas Nilefalk <thomas AT junovagen DOT se>
User-Agent: Postbox 5.0.10 (Windows/20170123)
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Providing cygwin1.dll in both 32- and 64-bit versions
X-IsSubscribed: yes

I'm cross-compiling on Cygwin64 to 32-bit. Or rather I'm trying to 
figure out what compiling to 32-bits on a Cygwin64 actually means.

Using 'gcc -m32' causes a lot of "skipping incompatible ..." for a lot 
of libraries, so obviously ld then looks for the 32-bit libraries in the 
"wrong" place.

Using 'i686-pc-cygwin-gcc' creates an executable but that is un-runnable 
in a Cygwin64 environment because the cygwin1.dll is a 64-bit version 
and not compatible with the produced executable. A cygwin32 DLL needs to 
be put first in the path to make the executable run.

Is this by design? At least it seems to me that 'gcc -m32' could be 
taken to mean 'create an executable in the current ABI-environment 
(cygwin64) which uses a 32-bit architecture'. I'm not sure that makes 
sense or is even possible, but if it is not, then the question becomes 
'how can I make a 32-bit compiled cygwin program run under cygwin64'?

One way to answer that is to say "export 
PATH=<path_to_32_bit_cygwin1.dll>:$PATH" but that requires installing 
cygwin32.

I understand that could be the semantics of "cross-compilation" (you 
could compile for any platform, and can't expect that to run in your 
host environment), but then I'd like to propose that "-m32" should/could 
mean compile for host using 32-bit restrictions.

Which part of this is true? Is there a bug with "-m32" or am I just 
misunderstanding everything?

/Thomas

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