From owner-svn-src-projects@FreeBSD.ORG Wed Dec 10 22:33:58 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 077A18CB; Wed, 10 Dec 2014 22:33:58 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E83B2E47; Wed, 10 Dec 2014 22:33:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBAMXvrd062728; Wed, 10 Dec 2014 22:33:57 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBAMXviM062727; Wed, 10 Dec 2014 22:33:57 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412102233.sBAMXviM062727@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Wed, 10 Dec 2014 22:33:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r275691 - projects/clang350-import/share/mk X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2014 22:33:58 -0000 Author: dim Date: Wed Dec 10 22:33:57 2014 New Revision: 275691 URL: https://svnweb.freebsd.org/changeset/base/275691 Log: Since clang 3.5.0 and later must be built by a compiler with C++11 support, make this explicit in src.opts.mk, by updating the default settings. The defaults become as follows: * If the host compiler is not C++11 capable, use gcc and disable clang. * On x86, enable clang, make it the default cc, and disable gcc. * On little-endian ARM, enable clang, but not the full build, make it the default cc, and disable gcc. * On PowerPC, enable clang, but enable gcc and make that the default cc. * On everything else, use gcc, and disable clang. This can be amended later, if we get e.g. sparc64 or big-endian ARM working with clang. Reviewed by: imp, brooks Differential Revision: https://reviews.freebsd.org/D1294 Modified: projects/clang350-import/share/mk/src.opts.mk Modified: projects/clang350-import/share/mk/src.opts.mk ============================================================================== --- projects/clang350-import/share/mk/src.opts.mk Wed Dec 10 20:54:23 2014 (r275690) +++ projects/clang350-import/share/mk/src.opts.mk Wed Dec 10 22:33:57 2014 (r275691) @@ -191,25 +191,29 @@ __TT=${TARGET} .else __TT=${MACHINE} .endif -# Clang is only for x86, powerpc and little-endian arm right now, by default. -.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*} -__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP -.elif ${__TT} == "arm" && ${__T:Marm*eb*} == "" -__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP -# GCC is unable to build the full clang on arm, disable it by default. -__DEFAULT_NO_OPTIONS+=CLANG_FULL -.else -__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL CLANG_BOOTSTRAP -.endif -# Clang the default system compiler only on little-endian arm and x86. -.if ${__T} == "amd64" || (${__TT} == "arm" && ${__T:Marm*eb*} == "") || \ - ${__T} == "i386" -__DEFAULT_YES_OPTIONS+=CLANG_IS_CC + +.include +.if !${COMPILER_FEATURES:Mc++11} +# If the compiler is not C++11 capable, disable clang and use gcc instead. +__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX +__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC +.elif ${__T} == "amd64" || ${__T} == "i386" +# On x86, clang is enabled, and will be installed as the default cc. +__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC __DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX +.elif ${__TT} == "arm" && ${__T:Marm*eb*} == "" +# On little-endian arm, clang is enabled, and it is installed as the default +# cc, but since gcc is unable to build the full clang, disable it by default. +__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_IS_CC +__DEFAULT_NO_OPTIONS+=CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX +.elif ${__T:Mpowerpc*} +# On powerpc, clang is enabled, but gcc is installed as the default cc. +__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX +__DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC .else -# If clang is not cc, then build gcc by default -__DEFAULT_NO_OPTIONS+=CLANG_IS_CC CLANG CLANG_BOOTSTRAP +# Everything else disables clang, and uses gcc instead. __DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX +__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC .endif .include @@ -217,7 +221,6 @@ __DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP # # MK_* options that default to "yes" if the compiler is a C++11 compiler. # -.include .for var in \ LIBCPLUSPLUS .if !defined(MK_${var})