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

From: Kevin Oberman <kob6558_at_gmail.com>
Date: Tue, 30 Aug 2011 13:25:20 -0700
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.
-- 
R. Kevin Oberman, Network Engineer - Retired
E-mail: kob6558_at_gmail.com
Received on Tue Aug 30 2011 - 18:25:21 UTC

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