Re: November 5th is Clang-Day

From: Roman Divacky <rdivacky_at_freebsd.org>
Date: Fri, 2 Nov 2012 16:30:50 +0100
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)
> _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 - 14:38:30 UTC

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