From owner-svn-src-projects@FreeBSD.ORG Tue Dec 30 22:46:21 2014 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 344BEA34; Tue, 30 Dec 2014 22:46:21 +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 206DC1571; Tue, 30 Dec 2014 22:46:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id sBUMkKwi008769; Tue, 30 Dec 2014 22:46:20 GMT (envelope-from dim@FreeBSD.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id sBUMkKBo008768; Tue, 30 Dec 2014 22:46:20 GMT (envelope-from dim@FreeBSD.org) Message-Id: <201412302246.sBUMkKBo008768@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: dim set sender to dim@FreeBSD.org using -f From: Dimitry Andric Date: Tue, 30 Dec 2014 22:46:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r276431 - projects/clang350-import 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: Tue, 30 Dec 2014 22:46:21 -0000 Author: dim Date: Tue Dec 30 22:46:20 2014 New Revision: 276431 URL: https://svnweb.freebsd.org/changeset/base/276431 Log: First stab at UPDATING notes for clang 3.5.0. Modified: projects/clang350-import/UPDATING Modified: projects/clang350-import/UPDATING ============================================================================== --- projects/clang350-import/UPDATING Tue Dec 30 22:32:29 2014 (r276430) +++ projects/clang350-import/UPDATING Tue Dec 30 22:46:20 2014 (r276431) @@ -31,6 +31,62 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20141231: + Clang, llvm and lldb have been upgraded to 3.5.0 release. + + As of this release, a prerequisite for building llvm and clang is a + C++11 capable compiler and C++11 standard library. This means that to + be able to successfully build the cross-tools stage of buildworld, with + clang as the bootstrap compiler, your system compiler or cross compiler + should either be clang 3.3 or later, or gcc 4.8 or later, and your + system C++ library should be libc++, or libdstdc++ from gcc 4.8 or + later. + + On any earlier standard FreeBSD 10.x or 11.x installation, where clang + and libc++ are on by default (that is, on x86 or arm), this should work + out of the box, unless you explicitly disabled clang or libc++. In that + case, you must re-enable, build and install both of those first. + + On 9.x installations where clang is enabled by default, e.g. on x86 and + powerpc, libc++ will not be enabled by default, so libc++ should be + built (with clang) and installed first. If both clang and libc++ are + missing, build clang first, then use it to build libc++. + + On 8.x and earlier installations, upgrade to 9.x first, and then follow + the instructions for 9.x above. + + This new version of clang introduces a number of new warnings, of which + the following are most likely to appear: + + -Wabsolute-value + + This warns in two cases, for both C and C++: + * When the code is trying to take the absolute value of an unsigned + quantity, which is effectively a no-op, and almost never what was + intended. The code should be fixed, if at all possible. If you are + sure that the unsigned quantity can be safely cast to signed, without + loss of information or undefined behavior, you can add an explicit + cast, or disable the warning. + + * When the code is trying to take an absolute value, but the called + abs() variant is for the wrong type, which can lead to truncation. + If you want to disable the warning instead of fixing the code, please + make sure that truncation will not occur, or it might lead to unwanted + side-effects. + + -Wtautological-undefined-compare and + -Wundefined-bool-conversion + + These warn when C++ code is trying to compare 'this' against NULL, while + 'this' should never be NULL in well-defined C++ code. However, there is + some legacy (pre C++11) code out there, which actively abuses this + feature, which was less strictly defined in previous C++ versions. + + Squid and openjdk do this, for example. The warning can be turned off + for C++98 and earlier, but compiling the code in C++11 mode might result + in unexpected behavior; for example, the parts of the program that are + unreachable could be optimized away. + 20141222: The old NFS client and server (kernel options NFSCLIENT, NFSSERVER) kernel sources have been removed. The .h files remain, since some