On 7 Oct, Christopher Faylor wrote: > On Thu, Oct 07, 2004 at 02:49:29PM +1000, [EMAIL PROTECTED] wrote: > >After installing Cygwin by using a shell script running by executing > >bash from a network-installed Cygwin, the script fails when it tries to > >run a post-install script. The error reported is: > > > > bash-2.05b$ post-install.sh -which latest -fresh > > c:\cygwin\bin\bash.exe (3208): *** cygheap version mismatch detected - 0x616D000 > > 0/0x61780000. > > You have multiple copies of cygwin1.dll on your system. > > Search for cygwin1.dll using the Windows Start->Find/Search facility > > and delete all but the most recent version. The most recent version *should* > > reside in x:\cygwin\bin, where 'x' is the drive on which you have > > installed the cygwin distribution. > > > >A search showed that there really is only c:\cygwin\bin\cygwin1.dll - > >the message is wrong. > > > >I'd say the sanity-check is detecting cygwin1.dll associated with the > >bash that's running from the network-mounted drive. > > You wouldn't say that if you knew what "cygheap" was. This is an indication > that a child executable is detecting that its cygheap is not at the same > location as the parent. Since the cygheap lives at the end of the cygwin DLL > it's hard to see how this could be anything other than two different versions > of cygwin being invoked.
Okay, and in fact there are two (possibly different) versions of cygwin1.dll available to be loaded into memory. I don't know why Cygwin attempted to load the freshly-installed cygwin1.dll, though. It wasn't on the PATH of the network-loaded shell script. To be pedantic, the warning is wrong because it says you have multiple copies of cygwin1.dll on your system. There aren't, and indeed a Search for cygwin1.dll using the Windows Start->Find/Search facility confirms that there is only a single cygwin1.dll, freshly installed. Try this: from a machine on your network, with Cygwin installed, share the c:/cygwin directory (i.e. the path where you installed Cygwin). On another PC, start a DOS window. set PATH=this network Cygwin path Type bash. You get a bash prompt. Now you have a situation where cygwin1.dll is loaded in memory from across the network. And if you have Cygwin installed on the local machine, you don't get error messages about multiple Cygwin versions installed on your PC. You can run all the Cygwin commands. So even knowing that the error message is imprecise and misleading in this situation, and that it probably means that Cygwin tried to load up cygwin1.dll from a different path to a copy that's already loaded, and that it's incompatible with the one that's already loaded, I don't know why Cygwin is trying to load this other DLL. I suspect the error message should be "Attempting to load an inconsistent version of cygwin1.dll". I freely confess I'm doing something unusual. Maybe I'm the first person on the planet to attempt to automate Cygwin installation via a shell script from an already existing and stable copy of Cygwin installed elsewhere on the network? Anyway, I'll keep battering away at the attempt, and see if I can find something on cygheap so I understand more about what's going on. Thanks, luke -- 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/