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

Chris H bsd-lists at
Sat Nov 8 00:23:17 UTC 2014

 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;

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. I understand that
it may not be advisable to eliminate the default [base]
toolchain. But leaving only remnants of clang, causes
quite a bit of what I would consider POLA. Given that
clang's bin files are [still] located in /usr/bin, while
additional compilers are located in /usr/local/bin. All
past installs -- even an older 11, did not exhibit this
problem. What's changed? What's the rational, and how
to best setup an effective build $ENV under the current
circumstances? Or is this simply an [unintended] anomaly?
Currently, the only way I can envision overcoming this,
is by way of make.conf(5). Using the CC, CXX, and CPP
directives. Which IMHO is not ideal.

Thank you for all your time, and consideration,
and sorry for the somewhat longish post.


More information about the freebsd-ports mailing list