options for forcing use of GCC

Warner Losh imp at bsdimp.com
Mon Apr 28 16:10:01 UTC 2014


On Apr 28, 2014, at 9:52 AM, Kevin Oberman <rkoberman at gmail.com> wrote:

> On Mon, Apr 28, 2014 at 7:23 AM, Ian Lepore <ian at freebsd.org> wrote:
> 
>> On Mon, 2014-04-28 at 22:03 +0800, Julian Elischer wrote:
>>> On 4/28/14, 8:05 PM, Ian Lepore wrote:
>>>> On Mon, 2014-04-28 at 14:54 +0800, Julian Elischer wrote:
>>>>> On 4/28/14, 12:30 AM, Ian Lepore wrote:
>>>>>>  WITH_GCC=yes \
>>>>>>  WITH_GNUCXX=yes \
>>>>>>  WITHOUT_CLANG=yes \
>>>>>>  WITHOUT_CLANG_IS_CC=yes \
>>>>> forgot to ask.. is this in /etc/make.conf?
>>>>> or elsewhere?
>>>> Actually in our build system we build in a chroot, and we inject those
>>>> args into the environment during the builds so that we can have
>>>> different options for building world versus cross-world within the
>>>> chroot, but I think the more-normal place would be make.conf.
>>> 
>>> we also use a combination of environment and make.conf in a chroot.
>>> though people sometimes talk about a src.conf (or is that src.mk?) but
>>> I haven't found that one yet.
>>>> 
>>>> -- Ian
>>>> 
>>>> 
>>>> 
>> 
>> In theory, /etc/make.conf affects all builds you do -- world, kernel,
>> ports, your own apps, everything -- whereas /etc/src.conf affects only
>> kernel and world.  I've heard it said that the reality falls short of
>> that and src.conf settings inappropriately leak into ports builds.

That’s bogus. Port builds define _WITHOUT_SRCCONF which precludes not
only including /etc/src.conf, but also disables the while WITH/WITHOUT_FOO
mechanism from converting those options into MK_FOO options.

> I have also heard this, but a grep of ports/Mk finds no matches to
> src\.conf, so this appears to not be the case.

Ports specifically goes out of its way to make sure this doesn’t happen. Perhaps
it isn’t going out of its way far enough?

> It should not be as the whole purpose of src.conf was to have a make
> configuration that would be used to build the system, but not other things.
> make.conf already provided for that.

If someone can show me a specific, verifiable leak, I’ll look into it. Vague
rumors about possible issues that may have existed once upon a time
aren’t fruitful to chase.

> The only exception I might see is the building of a kernel module which
> might need to know how the system was made and that would be in the
> specific port's Makefile, not a system wide file.

I’m not sure I understand here. If a kernel module uses the kernel module build
stuff, it should be affected by the src.conf files unless you specifically request
otherwise because you know what you are doing (e.g., building for another system,
cross building, etc).

Warner


More information about the freebsd-current mailing list