This is the mail archive of the
mailing list for the Cygwin project.
RE: A trick for installing cygwin natively
- To: "'email@example.com'" <firstname.lastname@example.org>
- Subject: RE: A trick for installing cygwin natively
- From: Andrew Dalgleish <email@example.com>
- Date: Wed, 8 Sep 1999 10:50:48 +1000
> -----Original Message-----
> From: Chris Faylor [SMTP:firstname.lastname@example.org]
> Sent: Tuesday, September 07, 1999 12:59
> To: email@example.com
> Subject: A trick for installing cygwin natively
> I've been having a devil of a time lately (sorry, I've just watched
> British movies in a row) trying to install a complete source tree into
> new "root" cygwin directory. Every time, the top level make install
> the winsup directory, the installation would go crazy because it was
> installing a new cygwin1.dll and the /bin/sh that was being run was
> the old one.
> I tried making sure that nothing in the new root directory was in the
> path but that didn't help because many things reference /bin/sh
> directory. I tried renaming the dll out of the way, which worked, but
> fork didn't like that at all.
> My solution is to do this:
> mount -b c:\oldcygwin\bin\sh.exe /bin/sh
> Then, any time that somebody (i.e., make) wants to run /bin/sh it uses
> the older version of both /bin/sh and the cygwin1.dll.
> It works great.
> I thought that I'd pass this tidbit along in case anyone else was
> similar difficulties.
I'm not sure I understand.
Actually I am sure I don't understand. :-)
Apparently you can mount files as well as directories.
Neat trick, but how does that help with the dll version skew problems?
Why won't "mount -b c:\oldcygwin\bin /bin" do the same thing?
(I think I just answered my own question.
You are mounting the "old" sh.exe over the top of your "new" /bin
Because of the path search sequence Windows uses, loads the DLL from the
same directory as the .EXE, but that directory is not your new /bin.
Am I close?
If so, it is a very neat trick.)