This is the mail archive of the cygwin-developers@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: A trick for installing cygwin natively


On Wed, Sep 08, 1999 at 10:50:48AM +1000, Andrew Dalgleish wrote:
>
>
>> -----Original Message-----
>> From:	Chris Faylor [SMTP:cgf@cygnus.com]
>> Sent:	Tuesday, September 07, 1999 12:59
>> To:	cygwin-developers@sourceware.cygnus.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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]