Building with gcc?
Brooks Davis
brooks at freebsd.org
Tue Nov 26 19:00:36 UTC 2013
On Mon, Nov 25, 2013 at 07:57:52AM -0700, Ian Lepore wrote:
> On Mon, 2013-11-25 at 08:36 -0500, Glen Barber wrote:
> > On Mon, Nov 25, 2013 at 01:59:03PM +0100, Dimitry Andric wrote:
> > > On 25 Nov 2013, at 02:31, Glen Barber <gjb at freebsd.org> wrote:
> > > > On Sun, Nov 24, 2013 at 05:28:05PM -0800, Matthew Fleming wrote:
> > > >> I'm trying to test a change to gcc, and I'd like to do a full
> > > >> buildworld/buildkernel using the gcc compiler. So I added this to my
> > > >> /etc/src.conf (and make.conf, since I can't remember under which scenarios
> > > >> they're different):
> > > >>
> > > >> WITHOUT_CLANG=YES
> > > >> WITH_GCC=YES
> > > >> WITH_GNUCXX=YES
> > > >>
> > > >> and I started a buildworld. It's currently building clang.
> > > >>
> > > >> Why is it building clang?
> > > >>
> > > >
> > > > You also want WITHOUT_CLANG_IS_CC=YES. I have no reasonable explanation
> > > > for why it is different.
> > >
> > > WITHOUT_CLANG and WITHOUT_CLANG_IS_CC were decoupled in r256915 by brooks:
> > >
> > > "Stop conflating WITHOUT_CLANG with WITHOUT_CLANG_IS_CC. This allows
> > > bootstrapping a copy of clang without building clang for the base system
> > > which is useful for nanobsd and similar setups. It's still probably
> > > wrong to conflate what is installed as /usr/bin/cc with the selection
> > > of a bootstrap compiler under WITH*_CLANG_IS_CC, but that's for another
> > > day."
> > >
> > > I would still say that WITHOUT_CLANG implies that you cannot have clang
> > > as cc, so maybe it would be better to error out in this case?
> > >
> >
> > Yes, that is what I meant by not having a reasonable explanation why.
> > If WITHOUT_CLANG is set, WITHOUT_CLANG_IS_CC should (as it was before)
> > be implied.
> >
> > Glen
> >
>
> In a cross-build situation, you should be able to specify
> WITH_CLANG_IS_CC and WITHOUT_CLANG and you get a system that is
> cross-compiled for the target by clang, but clang itself is not
> cross-compiled and installed onto the target. (I'm not sure that
> actually works yet, but I think that's the intention.)
That is the intention as expressed in the commit log. Users of systems
like nanobsd or consumers like NetFlix want to build with the standard
compiler which currently that means bootstrapping clang, but they have
no interest in installing it on the host platform as it's a waste of
space and build time.
> The names involved are confusing, but the concept makes sense.
As the commit log says, it would make sense to break WITH*_CLANG_IS_CC
into WITH*_CLANG_IS_CC and something like WITH*_CROSS_COMPILER_IS_CLANG,
that name also sucks so it wasn't the issue I was trying to address at
the time.
Yes, the names suck, but I didn't invent them. There should probably be
some hierarchy in the names so things that effect _what_ is built (most
of the options) are clearly differentiated from things that effect _how_
things are built.
-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20131126/93bd6fa9/attachment.sig>
More information about the freebsd-hackers
mailing list