Re: How exactly does the base toolchain determine WHICH language to build with?

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sat, 8 Nov 2014 14:46:21 +0100
On 08 Nov 2014, at 01:23, Chris H <bsd-lists_at_bsdforge.com> wrote:
> Sorry for the long title. I've been [needlessly] struggling
> with getting ports within the ports tree to build, on a
> fresh 11-CURRENT install from 2014-11-05. With custom
> KERNEL and WORLD built, and installed.
> Here's my situation, which has worked well since ~8.2;
> make.conf(5)
> WITHOUT_CLANG=true
> FAVORITE_COMPILER=gcc
> src.conf(5)
> WITHOUT_CLANG=true

If you don't want to use and build clang at all, I think you also need
these two settings (at least on recent -CURRENT):

WITHOUT_CLANG_BOOTSTRAP=foo
WITHOUT_CLANG_IS_CC=foo

The latter variable determines whether /usr/bin/cc, /usr/bin/c++ and so
on are linked to clang or gcc.  I suspect the root of all your problems
is that you don't have this setting.


> I'll neither argue, nor defend rational for w/o clang. To
> boring and out of scope for this thread. That said; I
> realize that lang/clang(33/34/35) is the default toolchain
> for 10+, and that's just fine by me. So I shouldn't be
> terribly surprised when install kernel/world, followed by
> make delete-old removes the clang built, or provided by
> the base install from the (initial) install procedure. But
> what _does_ surprise me, is that the install of lang/gcc-48
> does _not_ become the compiler of choice with the above
> $ENV, after [seemingly] deleting clang.

It does not work that way.  If you configure the base system to use gcc
only, individual ports can decide that they need newer C++ support, or
other features not available in the version of gcc in base (which is
very old by now).  In that case, they will use one of the gcc ports,
or possibly even one of the clang ports.

-Dimitry
Received on Sat Nov 08 2014 - 12:46:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:53 UTC