Date: Fri, 2 Nov 2012 16:30:50 +0100 From: Roman Divacky <rdivacky@freebsd.org> To: Brooks Davis <brooks@freebsd.org> Cc: freebsd-current@freebsd.org Subject: Re: November 5th is Clang-Day Message-ID: <20121102153050.GA44876@freebsd.org> In-Reply-To: <20121102032945.GF65074@lor.one-eyed-alien.net> References: <20121102032945.GF65074@lor.one-eyed-alien.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Nice :) Does this deserve mentioning in UPDATING and/or version bump? 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121102153050.GA44876>