Clang as default compiler November 4th
Chuck Burns
break19 at gmail.com
Mon Sep 10 22:35:08 UTC 2012
On Mon, Sep 10, 2012 at 5:01 PM, Brooks Davis <brooks at freebsd.org> wrote:
> On Mon, Sep 10, 2012 at 05:22:37PM -0400, Daniel Eischen wrote:
>> On Mon, 10 Sep 2012, Brooks Davis wrote:
>>
>> > [Please confine your replies to toolchain at freebsd.org to keep the thread
>> > on the most relevant list.]
>> >
>> > For the past several years we've been working towards migrating from
>> > GCC to Clang/LLVM as our default compiler. We intend to ship FreeBSD
>> > 10.0 with Clang as the default compiler on i386 and amd64 platforms. To
>> > this end, we will make WITH_CLANG_IS_CC the default on i386 and amd64
>> > platforms on November 4th.
>> >
>> > What does the mean to you?
>> >
>> > * When you build world after the default is changed /usr/bin/cc, cpp, and
>> > c++ will be links to clang.
>> >
>> > * This means the initial phase of buildworld and "old style" kernel
>> > compilation will use clang instead of gcc. This is known to work.
>> >
>> > * It also means that ports will build with clang by default. A major
>> > of ports work, but a significant number are broken or blocked by
>> > broken ports. For more information see:
>> > http://wiki.freebsd.org/PortsAndClang
>> >
>> > What issues remain?
>> >
>> > * The gcc->clang transition currently requires setting CC, CXX, and CPP
>> > in addition to WITH_CLANG_IS_CC. I will post a patch to toolchain@
>> > to address this shortly.
>>
>> I assume this will be done, tested and committed before 2012-11-04
>> (or whenever the switchover date is).
>
> Pending review it will be done this week.
>
>> > * Ports compiler selection infrastructure is still under development.
>>
>> This should be a prerequisite before making the switch, given
>> that ports will be broken without a work-around for building
>> them with gcc.
>
> We've defacto done that for more than a year. Some progress has
> resulted, but not enough. I will be helping fix ports and I hope others
> do as well. It's worth noting that a switchable compiler isn't a magic
> bullet. Many ports will need to be patched to support a compiler other
> than /usr/bin/cc or /usr/bin/gcc.
>
> -- Brooks
This is actually a pretty good thing. Because -before- it's the
default compiler, some ports maintainers (and even more upstreams)
have the attitude of "My port works fine" until it no longer does..
bringing this change will make a few of these people realize that we
are -serious- about switching to clang.
For those worrying about "zomg, my system wont work?!" Remember..
This is a -current thing. If you're running bleeding edge, you have to
expect to get cut every now and then.
--
Chuck Burns <break19 at gmail.com>
More information about the freebsd-toolchain
mailing list