X-Spam-Check-By: sourceware.org From: "Dave Korn" To: References: <20070718100058 DOT 203680 AT gmx DOT net> <20070718105312 DOT 83940 AT gmx DOT net> <026a01c7c932$4cae0810$2e08a8c0 AT CAM DOT ARTIMI DOT COM> <20070718121556 DOT 83920 AT gmx DOT net> Subject: RE: Own Compiled Program Immediately Crashes on Startup Date: Wed, 18 Jul 2007 13:25:30 +0100 Message-ID: <026e01c7c936$bad581c0$2e08a8c0@CAM.ARTIMI.COM> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <20070718121556.83920@gmx.net> 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 18 July 2007 13:16, Hans Streibel wrote: >>> $ cygcheck `pwd`/jjove.exe >>> C:/cygwin/home/hstreibel/private/src/jove/jove4.16.0.65/jjove.exe >>> C:\cygwin\bin\cygncurses-8.dll >>> C:\cygwin\bin\cygwin1.dll >>> C:\WINDOWS\system32\ADVAPI32.DLL >>> C:\WINDOWS\system32\ntdll.dll >>> C:\WINDOWS\system32\KERNEL32.dll >>> C:\WINDOWS\system32\RPCRT4.dll >>> >> It looks pretty odd to me that the only dll the executable is linked >> against is the cygncurses one, and that the cygwin dll is only linked as >> an indirect dependency of that. > > How can this link order be changed so that the cygwin dll > is linked in first? Well, for a start, you'd need to link against the cygwin dll directly, and it would need to be first on the linker command line. > Just for comparison, here is the cygcheck output for > my running "hello world" program: > > $ cygcheck /tmp/hello.exe > C:/cygwin/tmp/hello.exe > C:\cygwin\bin\cygwin1.dll > C:\WINDOWS\system32\ADVAPI32.DLL > C:\WINDOWS\system32\ntdll.dll > C:\WINDOWS\system32\KERNEL32.dll > C:\WINDOWS\system32\RPCRT4.dll Yes, that's how a cygwin executable should look; the first dependency should be directly on the cygwin dll. >> I'm going to have to take a guess here: did the instructions tell you to >> use "-mno-cygwin" in the compiler flags? > > No. > And I did not use that flag. Hmm. It could also be a problem with the link stage. Make sure the makefile is using 'gcc' to link the application and not trying to invoke 'ld' directly. > Maybe you could try to compile and run that program at your site? I will do if I find myself some free time, but that's not really very likely with my current workload.... > Maybe my environment is somehow broken. > I could send you the sources and my cygwin Makefile via private email. No thank you. I can download them myself just as easily, and I should follow the standard procedure described in the notes to try and reproduce the problem. One thing, though, by "*my* cygwin Makefile", do you mean the project doesn't come with its own makefile and you had to put one together yourself? Or is it just the one that the project came with or autogenerated using configure or some similar script? Anyway, check the linker invocation. Always use the gcc driver to invoke the linker for you, never try and do it directly is the general rule. cheers, DaveK -- Can't think of a witty .sigline today.... -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/