Re: why does buildkernel set COMPILER_TYPE?

From: John-Mark Gurney <jmg_at_funkthat.com>
Date: Thu, 22 Aug 2013 09:23:53 -0700
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."
Received on Thu Aug 22 2013 - 14:23:55 UTC

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