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: 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 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 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 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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" 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