Mail Archives: cygwin-developers/1999/09/07/22:38:47
On Wed, Sep 08, 1999 at 10:50:48AM +1000, Andrew Dalgleish wrote:
>
>
>> -----Original Message-----
>> From: Chris Faylor [SMTP:cgf AT cygnus DOT com]
>> Sent: Tuesday, September 07, 1999 12:59
>> To: cygwin-developers AT sourceware DOT cygnus DOT com
>> Subject: A trick for installing cygwin natively
>>
>>I've been having a devil of a time lately (sorry, I've just watched two
>>British movies in a row) trying to install a complete source tree into
>>a new "root" cygwin directory. Every time, the top level make install
>>hit 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
>>using 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
>>having 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 directory. 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.)
Yes. That's pretty much it. As soon as you install a cygwin1.dll in
your newly created /bin, Windows will try to use it iff you're also
running /bin/sh from that directory. If you aren't running any
programs from that directory then everything works fine.
Of course, you should remember to umount /bin/sh when you're done.
-chris
- Raw text -