This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: pwd vs $PWD, bash, cygwin vs Linux


On Wed, May 04, 2005 at 09:27:15AM -0400, Igor Pechtchanski wrote:
>On Wed, 4 May 2005, John Williams wrote:
>
>> Christopher Faylor wrote:
>>
>> > > > In this case, the operative observation is bash != ash.  PWD is a
>> > > > bash construct.  You would be much better off just using the gnu
>> > > > make "CURDIR" variable.  Changing PWD to CURDIR in your examples
>> > > > makes things work as you'd expect.
>> > >
>> > > Thanks for the quick response and workaround.
>> > >
>> > > While what you say might be a true statement, "better off" means
>> > > different things to different people!
>> >
>> > > What surprised me was that the same shell, and same make, resulted
>> > > in different behaviour.  I guess this is just reflecting differences
>> > > in the underlying process architectures of Linux vs Windows.
>> >
>> > Again, it *isn't* the same shell.  You have now learned that it isn't
>> > the same shell and you now know that this is the reason for the
>> > inconsistency.  ash isn't normally used as /bin/sh on linux.  A
>> > stripped down version of ash is used as /bin/sh for performance
>> > purposes on cygwin.  ash does not set PWD.
>>
>> OK - I see the confusion.  Make is spawning ash as the subshell, not
>> bash. Now everything you said makes sense.  Out of interest, can that
>> behaviour be modified at the runtime/user/Makefile level?
>
>In addition to what Gary said, you could also try the following (WARNING:
>untested), which isn't as drastic:
>
>mount -u -f -b -x "`cygpath -aw /bin/bash.exe`" /bin/sh.exe
>mount -u -f -b -x "`cygpath -aw /bin/bash`" /bin/sh
>make
>umount -u /bin/sh.exe
>umount -u /bin/sh
>
>I may have gotten some flags slightly wrong -- "man mount" should help
>with that.
>HTH,

I really don't understand why using CURDIR isn't the ultimate solution
here.  If you can mess with your mount table or copy bash to sh, then
you really should be able to also change your Makefile to use $(CURDIR)
rather than $$PWD.

cgf

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


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