why does buildkernel set COMPILER_TYPE?
John-Mark Gurney
jmg at funkthat.com
Thu Aug 22 16:23:55 UTC 2013
Dimitry Andric wrote this message on Thu, Aug 22, 2013 at 08:59 +0200:
> On Aug 22, 2013, at 06:04, John-Mark Gurney <jmg at funkthat.com> wrote:
> > I've noticed that if you do a:
> > make buildworld WITHOUT_CLANG_IS_CC=YES
> >
> > and then do a:
> > make buildkernel
> >
> > (w/o the WITHOUT_CLANG_IS_CC=YES option)
> > that it fails...
>
> Why don't you just put the WITHOUT_CLANG_IS_CC setting in /etc/src.conf,
> where it belongs? That would save you this trouble.
Except that I'm testing code that needs to work both with clang and
gcc... Putting an option like that in /etc/src.conf is bad as I'm
likely to forget it, plus it'll effect other trees which isn't good...
> I don't think we should support building different parts of the tree
> with incompatible settings. E.g. compiling part of the tree using
> WITH_FOO, and some other part using WITHOUT_FOO is *not* supposed to
> work properly.
Do we have a file that is source in /usr/src (or where your source tree
is located) that we can put these options in?
When we finally are able to build and install all as a normal user
(which we are getting close now), /etc/src.conf is a really bad place
to put these things....
> > Apparently instead of letting buildkernel figure out
> > which compiler it will use, the src/Makefile.inc1 forces COMPILER_TYPE
> > to be what the options specified instead of using what bsd.compiler.mk
> > figures out...
>
> This was added by brooks in r240468 (and further developed in r250659
> where he added external compiler support), with what I assume is the
> explanation in the commit message:
>
> "To avoid negative performance impacts in the default case and correct
> value for COMPILER_TYPE type is determined and passed in the environment
> of submake instances while building world."
>
> So I suspect this is really on purpose. Brooks, any comments? :)
Except that KMAKEENV just blindly takes all of WMAKEENV... I
understand why WMAKEENV would have COMPILER_TYPE, I'm just puzzled why
we don't let KMAKEENV figure out the correct one...
--
John-Mark Gurney Voice: +1 415 225 5579
"All that I will do, has been done, All that I have, has not."
More information about the freebsd-current
mailing list