Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Nov 2014 22:39:27 -0600
From:      Scot Hetzel <swhetzel@gmail.com>
To:        Chris H <bsd-lists@bsdforge.com>
Cc:        freebsd-hackers@freebsd.org, FreeBSD CURRENT <current@freebsd.org>, FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: How exactly does the base toolchain determine WHICH language to build with?
Message-ID:  <CACdU%2Bf8kJpfxNH=ktDCUGxx%2BEXPa5v_-f2vVMBs8HgLznJOk7Q@mail.gmail.com>
In-Reply-To: <6810431a15d054459a29d434dd22619e@ultimatedns.net>
References:  <6810431a15d054459a29d434dd22619e@ultimatedns.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Nov 7, 2014 at 6:23 PM, Chris H <bsd-lists@bsdforge.com> wrote:
> Greetings,
>  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
>
> 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

lang/clang(33/34/35) is not the default toolchain in 10+.  10+ uses a
version of clang that is included in the FreeBSD source (/usr/src).

> 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. I understand that

FAVORITE_COMPILER is used by Mk/Uses/compiler.mk.

If you want ports to build with lang/gcc-48, then you would need to
check that the ports you are trying to compile have either
USES=compiler or USES_GCC defined in their Makefile. Otherwise the
ports will use the compiler that is provided by the FreeBSD source
(gcc 2.4.x or clang).

When WITHOUT_CLANG is defined in make.conf/src.conf.  The FreeBSD
source will be built using gcc 2.4.x from the FreeBSD source.
/usr/bin/{cc,c++} will then be linked to the gcc versions.  The ports
will then use this version to build if there is no USES_GCC or
USES=compiler in the ports Makefile.

-- 
DISCLAIMER:

No electrons were maimed while sending this message. Only slightly bruised.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACdU%2Bf8kJpfxNH=ktDCUGxx%2BEXPa5v_-f2vVMBs8HgLznJOk7Q>