Re: November 5th is Clang-Day

From: Brooks Davis <brooks_at_freebsd.org>
Date: Fri, 2 Nov 2012 11:23:47 -0500
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)
> > _at__at_ -426,7 +426,6 _at__at_
> >      BIND_XML \
> >      BSDCONFIG \
> >      CLANG_EXTRAS \
> > -    CLANG_IS_CC \
> >      CTF \
> >      HESIOD \
> >      ICONV \
> > _at__at_ -455,6 +454,12 _at__at_
> >  .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
> 
> 

Received on Fri Nov 02 2012 - 15:23:50 UTC

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