make: evaluation of symbolic link with ../ fails
Julian H. Stacey
jhs at berklix.org
Tue Nov 6 08:17:58 PST 2007
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.
More information about the freebsd-hackers
mailing list