X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,FH_DATE_PAST_20XX,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <4B3DEC83.2070508@users.sourceforge.net> Date: Fri, 01 Jan 2010 20:37:23 +0800 From: JonY User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080213 Thunderbird/2.0.0.12 Mnenhy/0.7.5.0 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Appropriate expectation on the degree of cygwin and MS interoperability References: <004c01ca8ada$ecdb5060$c691f120$@calgacus.com> In-Reply-To: <004c01ca8ada$ecdb5060$c691f120$@calgacus.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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 On 1/1/2010 20:06, Neil DOT Mowbray AT calgacus DOT com wrote: > Folks, > > A bit of a vague question but any greater clarity concerning the appropriate > level of interoperability between Cygwin and MS would be appreciated. > > I have my Windows 6 and 7 platforms configured to build software using > different toolchains, the most common being (1) Visual Studio 10 and (2) > Cygwin with gcc-4. > > When using the Visual Studio toolchain I will prefer a cygwin tool over a > MS tool, so for example, I always use bash and gnu make and never use the > cmd shell/power shell or nmake. Taking this further, I will try to use > nm over dumpbin and ar over lib. > > For the most part the cygwin tools interoperate with MS artifacts but > it does break down, especially, with 64bit artifacts. For example, nm > can work with 32bit object files created by MS cl.exe but it cannot > work with 64bit MS object files (unrecognised file format). > > The question is: how far should I expect the interoperability to go? > For example, is the fact that nm cannot handle 64bit MS object files > a (1) defeat in cygwin/nm or (2) I should be grateful that it works > with 32bit files and otherwise lower my expectation? > > I suppose at its core the question is about the intent of cygwin. Is > it (1) to provide unix like capabilities to a MS platform (in which case > one would expect/demand a high degree of interoperability), or > (2) to provide a unix like island inside a MS platform? > > The problem with (2) is one cannot really stay isolated from the > host MS environment. > > My previous question of how/if one can use cyginw *.h *.dll *.a > artifacts in a MS compiled program is essentaily the same theme > although I have lower expectations that it is possible. > > Any pointers? Hi, for nm to recognize 64bit objects, you need to rebuild binutils to recognize 64bit objects. Use --enable-target=i686-pc-cygwin,x86_64-w64-mingw32 with binutils configure. Beware that MSVC now uses the "short" library format instead of the older "long" library format used by the GNU toolchain. See for toolchains targeting win64. IMHO Cygwin is more of an island, you're supposed to use Cygwin tools only under Cygwin. Others might have different opinions. -- 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