CLANG; still cc in use when building the WORLD with CLANG?

Garrett Cooper yanegomi at gmail.com
Tue Aug 30 20:42:20 UTC 2011


On Tue, Aug 30, 2011 at 1:25 PM, Kevin Oberman <kob6558 at gmail.com> wrote:
> On Tue, Aug 30, 2011 at 12:34 PM, Hartmann, O.
> <ohartman at zedat.fu-berlin.de> wrote:
>> On 08/30/11 21:27, Kevin Oberman wrote:
>>>
>>> On Tue, Aug 30, 2011 at 11:13 AM, Hartmann, O.
>>> <ohartman at zedat.fu-berlin.de>  wrote:
>>>>
>>>> On 08/30/11 19:58, Dimitry Andric wrote:
>>>>>
>>>>> On 2011-08-30 18:44, Alex Kuster wrote:
>>>>>>
>>>>>> Thanks for pointing out those details !
>>>>>> This whole thing about make.conf&    src.conf is very confusing and
>>>>>> gives
>>>>>> the
>>>>>> impression of something half ported ...
>>>>>
>>>>> The only thing that is "half ported" at the moment, is an easy "use
>>>>> clang to build world" switch.  This will be properly addressed after 9.0
>>>>> is released.  As to the make.conf/src.conf confusion, it is very simple
>>>>> really:
>>>>>
>>>>> - make.conf is used for system-wide settings, applied to every build
>>>>>  using make.
>>>>>
>>>>> - src.conf is used for setting FreeBSD source tree settings, which are
>>>>>  always of the form WITH_XXX or WITHOUT_XXX.  See src.conf(5) for a
>>>>>  full list.  Any other "make" settings, such as CC, CFLAGS, etc, are
>>>>>  better specified in make.conf, though the manpage does not tell you
>>>>>  so explicitly.
>>>>
>>>> This is as I understood the manpage of src.conf. There is only a YES/set
>>>> and
>>>> NO/unset.
>>>
>>> No. There is only set and unset. WITH_option="NO" has the same effect as
>>> WITH_option="YES".
>>>
>>> I think this is confusing and often leads to unintended
>>> consequences, but I and also say that some of the WITH_options documented
>>> for src.conf (the man page is auto-generated from the code) are either
>>> non-functional or broken. I've had some interesting issues with unexpected
>>> interactions of WITH_options, as well. Be very careful!
>>
>> Sorry being so unprecise. I meant WITH_ and WITHOUT_. I learned the hard way
>> that setting a variable
>> to "be set" is simply done by naming it.
>>
>> Well, as I understand your comment, it seems that this /etc/src.conf facilty
>> isn't working properly yet?
>
> That's a semantic issue. It works as designed in that setting an
> option in src.conf
> does set the specified flags for make in /usr/src. Unfortunately some
> of the options
> were added as options, but the code to actually make the option
> effective was not.
> The more popular options work fine...SENDMAIL, BIND, BSNMP, and many more.
> Most of those that are simple skips of doing a make on a given
> directory are fine, too.
> In fact, most are working as expected.
>
> The problems are with more complex options that get involved with
> complex library
> dependencies. WITHOUT_SSH was broken for quite a while due to interactions
> with several other options. (Just look through the Makefiles involved
> in ssh and the
> complexity of the other cryto-related tools. It's not trivial and
> there are way too many
> options to fully test all possible combinations. (As far as I can
> tell, SSH issues are now
> resolved.)
>
> I will also point out that several options DO state that they have no
> effect in the man
> page, but that assumes people actually read the text associated with a
> given option.

    And there are some options which are truly just broken (or simply
put -- don't disable / enable things properly). See
http://phk.freebsd.dk/misc/stable7_build_options/ for an initial idea
(there's another one hanging around in another FreeBSD dev's public
directory -- I forget whom exactly).
HTH,
-Garrett


More information about the freebsd-current mailing list