delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2004/03/12/22:55:42

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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
To: cygwin AT cygwin DOT com
From: Thorsten Kampe <thorsten AT thorstenkampe DOT de>
Subject: Re: Difference between just having cygwin1.dll and running under cygw in
Date: Sat, 13 Mar 2004 04:55:06 +0100
Lines: 88
Message-ID: <12go2is7f9htj$.dlg@thorstenkampe.de>
References: <6 DOT 0 DOT 1 DOT 1 DOT 0 DOT 20040311152043 DOT 03a47df8 AT 127 DOT 0 DOT 0 DOT 1> <NUTMEGeUOLUei3tVLhU00000117 AT NUTMEG DOT CAM DOT ARTIMI DOT COM> <c2tkb6$q4b$1 AT sea DOT gmane DOT org>
Mime-Version: 1.0
X-Complaints-To: usenet AT sea DOT gmane DOT org
X-Gmane-NNTP-Posting-Host: isi-dialin-129-208.isionline-dialin.de
User-Agent: 40tude_Dialog/2.0.10.1de

* George Hester (2004-03-13 01:24 +0100)
> This coming from a whipper-snapper I don't expect a response.  But you sure have a famous name.
> Now if I could just get the Korn Shell in cygwin or integrate UWin into cygwin that would be really neat.
> 
> George Hester
> __________________________________
> "Dave Korn" <dk AT artimi DOT com> wrote in message news:NUTMEGeUOLUei3tVLhU00000117 AT NUTMEG DOT CAM DOT ARTIMI DOT COM...
>>> -----Original Message-----
>>> From: cygwin-owner On Behalf Of Larry Hall
>>> Sent: 11 March 2004 20:28
>> 
>>> At 03:17 PM 3/11/2004, you wrote:
>>> >What's the difference between running an executable in the cygwin
>>> >environment and running it in a Win2K DOS shell on the same 
>>> > machine(which obviously has cygwin1.dll)?
>>> >
>>> >As I mentioned in another thread of mine, I have a 
>>> program(port of objcopy)
>>> >that I've compiled that runs just fine under cygwin, but 
>>> crashes with a
>>> >stack violation whenever I run it under a DOS window on the 
>>> same machine! 
>> 
>>> There's really no significant difference, assuming your DOS 
>>> shell can see cygwin1.dll and it's the same one you get when 
>>> you run under your Cygwin shell (having more than 1 
>>> cygwin1.dll on your system is a *very* bad idea anyway).  
>>> Certainly, there can be all kinds of differences in the 
>>> environment, literally, but it should be pretty obvious if 
>>> you're dependent on some environment variable or something 
>>> that's not set for Windows.  Maybe you just need to debug it 
>>> and see where the problem is and why you get it.  
>>> Like I said, objcopy that comes with Cygwin's binutils works 
>>> just fine for me outside of a Cygwin shell so it's not a 
>>> problem with the tool in general.
>>> 
>>> Larry
>> 
>>   I think you may slightly underestimate the amount of difference it makes.
>> For example, it's going to make a big difference to the runtime memory
>> layout.  If you run under bash you're going to have a whole load of posix
>> environment vars at the very top of your runtime stack.  I could easily
>> imagine a stray pointer or stack smashing bug that harmlessly scribbles on
>> the environment vars under bash but writes over what is active program stack
>> at the same address / offset-from-sp when run from dos.  However, I agree
>> with your conclusion: any *correct* program should run equally well under
>> either, and I think in this case it's not that running under DOS breaks the
>> program, but that it just happens to get lucky and work by chance under
>> bash.
>> 
>>> >My makefile does the same thing as the objcopy
>>> >makefile, but the result of my compilation is something that 
>>> >only works under cygwin.
>> 
>>   That's quite an assertion to make!  How did you generate your makefile,
>> and how can you be really sure it's doing exactly the same?
>> Autoconf-produced makefiles are fairly hairy; if you've hacked up the
>> autoconf one, you're probably in the clear, but if you've tried reading the
>> autoconf one and duplicating it's effects from scratch, you may easily have
>> introduced a discrepancy.  However, that's a side issue; it's unlikely to be
>> a compiler option that's causing your problem.
>> 
>>   The fact that it's hanging in malloc suggests that it's very likely that
>> the root cause of the crash is trashing the heap, most likely by writing
>> past the end of a malloc'd block of memory.  Beyond that it's difficult to
>> speculate, particularly since we don't really have any idea what sort of
>> changes you've made to the code.  You should investigate any of the changes
>> you've made that refer to arrays or malloc'd memory, or perhaps use some
>> kind of error-checking malloc wrappers - e.g. efence,
>> http://perens.com/FreeSoftware/ (ftp site currently down, it seems) or
>> http://freshmeat.net/projects/efence/?branch_id=2277&release_id=7043 .
>> 
>>   Of course it's always possible that it's not the code you've changed that
>> is overwriting memory but something elsewhere by means of some indirect and
>> unexpected interaction.  Those are the worst kinds of bugs to look for, but
>> malloc-wrappers might still help.
>> 
>>   How big are the changes you've made to the source?  Minor overhaul or
>> radical surgery?
>> 
>>     cheers, 
>>       DaveK
>> -- 
>> Can't think of a witty .sigline today....
>> 
>>

pdksh


--
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