November 5th is Clang-Day
Brooks Davis
brooks at freebsd.org
Fri Nov 2 16:23:50 UTC 2012
On Fri, Nov 02, 2012 at 04:30:50PM +0100, Roman Divacky wrote:
> Nice :)
>
> Does this deserve mentioning in UPDATING and/or version bump?
It certainly does deserve mention in UPDATING. A version bump is
probably useful if we end up wanting to make USE_GCC=any the default
post the switch so I will do both.
-- Brooks
>
> On Thu, Nov 01, 2012 at 10:29:45PM -0500, Brooks Davis wrote:
> > On Monday, November 5th I plan to commit the following patch to make
> > clang the default compiler on i386 and amd64. Many people have worked
> > long and hard to make this a reality and we're finally close enough to
> > throw the switch. For many users the transition should be transparent.
> > Others will likely hit some bumps, but I think we've addresses most
> > major issues at this point and the LLVM community has demonstrated it's
> > ability and willingness to help given actionable bug reports.
> >
> > Known Issues
> > - Not all ports compile with clang. This can be worked around in
> > individual ports by setting USE_GCC=any which will cause the base gcc
> > to be used. Depending how things shake out we may end up making
> > USE_GCC=any the default for a period. [0]
> > - Not all libm tests pass. More work by subject matter experts is
> > required to create tests cases for LLVM developers. Most problems are
> > not expected to be major in practice given that LLVM is being used for
> > scientific computing in a number of products including Cray's FORTRAN
> > compiler, most OpenCL compilers, and the Julia language.
> > - Small but noticeable slowdown in some benchmarks. For example
> > sysbench against mysql was found to run about 1% slower on top of a
> > clang compiled world+kernel. http://people.freebsd.org/~flo/perf.pdf
> >
> > Known Non-Issues
> > - "make buildenv" works fine with clang.
> >
> > -- Brooks
> >
> > [0] Work is underway to switch to building ports with a ports specific
> > compiler version. Likely this will be gcc-4.6 initially. This would
> > help insulate ports from the base compiler. That being said, there are
> > significant advantages to getting as many ports as possible to build
> > with clang. Among other things, cross building for embedded systems is
> > much easier with clang.
> >
> >
> > Index: share/mk/bsd.own.mk
> > ===================================================================
> > --- share/mk/bsd.own.mk (revision 242464)
> > +++ share/mk/bsd.own.mk (working copy)
> > @@ -426,7 +426,6 @@
> > BIND_XML \
> > BSDCONFIG \
> > CLANG_EXTRAS \
> > - CLANG_IS_CC \
> > CTF \
> > HESIOD \
> > ICONV \
> > @@ -455,6 +454,12 @@
> > .else
> > __DEFAULT_NO_OPTIONS+=CLANG
> > .endif
> > +# Clang the default system compiler only on x86.
> > +.if ${__T} == "amd64" || ${__T} == "i386"
> > +__DEFAULT_YES_OPTIONS+=CLANG_IS_CC
> > +.else
> > +__DEFAULT_NO_OPTIONS+=CLANG_IS_CC
> > +.endif
> > # FDT is needed only for arm, mips and powerpc
> > .if ${__T:Marm*} || ${__T:Mpowerpc*} || ${__T:Mmips*}
> > __DEFAULT_YES_OPTIONS+=FDT
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 188 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20121102/88260714/attachment.sig>
More information about the freebsd-current
mailing list