X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Fri, 29 Apr 2011 20:56:11 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: CYGWIN withholds error message when trying to run 64-bit binary on 32-bit PC Message-ID: <20110429185611.GE802@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 On Apr 29 17:52, John Ottusch wrote: > I have a Windows console application that I build in both 32-bit and 64-bit > versions. They both have the same name (fsr.exe). > > The 32-bit version runs from a CYGWIN bash shell console window on a 32-bit PC > and a 64-bit PC. The 64-bit version runs from a Cygwin bash shell console window > only on a 64-bit PC. > > If a user mistakenly runs the 64-bit version from a CYGWIN bash shell console > window on a 32-bit Windows PC he gets this message: > > bash: ./fsr.exe: Permission denied > > That's not very revealing. > > On the other hand, if he launches the same command from a CMD console window on > the same 32-bit Windows PC, he gets this back: > > This version of fsr.exe is not compatible with the version of Windows you're > running. Check your computer's system information to see whether you need a x86 > (32-bit) or x64 (64-bit) version of the program, and then contact the software > publisher. > > The second result is closer to what I was hoping for. > > So my question is this: Why isn't CYGWIN responding with the more helpful error > message and is there anything I can do to make it respond that way instead? THe problem is that the Win32 error code ERROR_EXE_MACHINE_TYPE_MISMATCH isn't mapped to a POSIX errno. Thus it's converted to the default EACCES. I checked in a patch to CVS which maps the error code to ENOEXEC. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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