Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Nov 2007 17:20:14 +0100
From:      "Julian H. Stacey" <jhs@berklix.org>
To:        Harti Brandt <harti@freebsd.org>
Cc:        hackers@freebsd.org
Subject:   Re: make: evaluation of symbolic link with ../ fails 
Message-ID:  <200711061620.lA6GKE8L090019@fire.js.berklix.net>
In-Reply-To: <20071105085259.A39496@knop-beagle.kn.op.dlr.de> 
References:  <200711050002.lA502KUe064392@fire.js.berklix.net> <20071105085259.A39496@knop-beagle.kn.op.dlr.de>

next in thread | previous in thread | raw e-mail | index | archive | help

Hi Harti cc Hackers,
Thanks for answer.

> Are you sure that this is not a problem with /bin/sh?

Good question ! I think you'r right. I tested several shells with
	[ Effectively: ln -s /usra/jhs/xtra/pics /usra/home/jhs/pics ] +
	source `which unsetenv.csh`
	[ sh, bash, csh, ksh, zsh ]
	cd /usra/home/jhs ; cd pics/.. ; pwd ; /bin/pwd
& got these results:
	sh:
		/usra/home/jhs
		/usra/home/jhs
	bash:
		/usra/home/jhs
		/usra/home/jhs
	csh:
		/usra/jhs/xtra
		/usra/jhs/xtra
	ksh:
		/usra/home/jhs
		/usra/home/jhs
	zsh:
		/usr/home/jhs
		/usra/home/jhs

> Make always execs a 
> shell if it finds special symbols like ';' in the line. It does not 
> interprete the cd.
> 
> What shell are you using (I mean in which shell did you do the successful 
> tests above)?

Csh

> Try something like:
> 
> SHELL: name="sh" path="/path/to/your/shell"
> 
> in the Makefile (given that you're not using a c-shell). If it works then 
> the problem is in /bin/sh.

My Makefile specifies no shell (so I assume it uses /bin/sh)
My Makefile did have a 
	.include <bsd.subdir.mk>
but I have just hashed it out & I have no other
include line that might include specification elsewhere of shell.
FreeBSD includes leave shell unchanged:
	cd /usr/share/mk ; grep -i SHELL *
	sys.mk:SHELL            ?=      sh

It seems to me that all except csh (including bourne shell !) are
broken !! Amazing ! None of them cope properly actually following
symbolic links, they all make false premise the /some_path/.. ==
/some_path !

-- 
Julian Stacey. Munich Computer Consultant, BSD Unix C Linux. http://berklix.com
	Ihr Rauch=mein allergischer Kopfschmerz. Dump cigs 4 snuff.
 Q: Global warming,pollution,water,fish,fuel shortages etc. A: Contraception.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200711061620.lA6GKE8L090019>