Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Feb 2011 09:54:14 +0100
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@spoerlein.net>
To:        Alexander Best <arundel@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: $PATH and buildworld not getting along
Message-ID:  <20110220085414.GS65811@acme.spoerlein.net>
In-Reply-To: <20110218163613.GA21409@freebsd.org>
References:  <20110215211029.GA74471@freebsd.org> <20110218131603.GO65811@acme.spoerlein.net> <20110218163613.GA21409@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 18.02.2011 at 16:36:13 +0000, Alexander Best 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).

You're assuming a build of FreeBSD on FreeBSD. But people might want to
build FreeBSD on NetBSD and use the initial bootstrap cc from
/usr/pkg/bin (or whatever).

FreeBSD should be about tools, not policy. If you shoot yourself in the
foot by messing with PATH + cc(1), that's your problem.

hth
Uli



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