delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/07/18/08:25:50

X-Spam-Check-By: sourceware.org
From: "Dave Korn" <dave DOT korn AT artimi DOT com>
To: <cygwin AT cygwin DOT com>
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
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
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019