On Fri, 18 Feb 2011 16:36:13 +0000 Alexander Best <arun...@freebsd.org> wrote:
> On Fri Feb 18 11, Ulrich Spörlein wrote: > > On Tue, 15.02.2011 at 21:10:29 +0000, Alexander Best wrote: > > > hi there, > > > > > > i've run into an issue where $PATH doesn't get discarded during > > > buildworld. is > > > this behavior to be expected? to reproduce do: > > > > > > 1) be sure /usr/local/bin comes *before* /usr/bin in your $PATH > > > 2) ln -s /bin/cat /usr/local/bin/cc (some sh script would be better) > > > 3) cd /usr/src ; make SRCCONF=/dev/null __MAKE_CONF=/dev/null buildworld > > > 4) see how buildworld fails, because cat(1) gets invoked instead of cc(1). > > > > > > ... buildkernel on the other hand seems to be immune to such an issue. > > > > The bootstrap stage needs *some* compiler on the host system to build > > the (cross)compiler that is then used during the rest of buildworld (and > > all of buildkernel). If you remove cc or c++ or libstdc++.so then you're > > screwed. > > sure, but cc resides in in /usr/bin. so there's no need to invoke anything > from /usr/local/bin at all. > > > > > As to whether the user's PATH should be honored for building the > > bootstrap/cross/build-tools, I'd say yes. > > i'd say no. imo nothing from /usr/local/* should ever be invoked when > compiling > a target in /usr/src. everything that's needed is in /usr/* (excluding local). > > so $PATH should unconditionally be set to sth. like: > > PATH=/sbin:/bin:/usr/sbin:/usr/bin; > > to be sure no tools, libs or whatever from any foreign place such as > /usr/local/* get sucked into a build. > But what if the user wants to test whether world/kernel are buildable using a more recent version of gcc from ports? That seems legitimate to me. Just my Euro .02. -- Gary Jennejohn _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"