From owner-freebsd-current@freebsd.org Mon May 23 23:46:25 2016 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 05E8DB47CD1 for ; Mon, 23 May 2016 23:46:25 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: from asp.reflexion.net (outbound-mail-211-190.reflexion.net [208.70.211.190]) (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 BF2BA18E2 for ; Mon, 23 May 2016 23:46:24 +0000 (UTC) (envelope-from markmi@dsl-only.net) Received: (qmail 27003 invoked from network); 23 May 2016 22:00:12 -0000 Received: from unknown (HELO rtc-sm-01.app.dca.reflexion.local) (10.81.150.1) by 0 (rfx-qmail) with SMTP; 23 May 2016 22:00:12 -0000 Received: by rtc-sm-01.app.dca.reflexion.local (Reflexion email security v7.90.3) with SMTP; Mon, 23 May 2016 17:59:48 -0400 (EDT) Received: (qmail 21030 invoked from network); 23 May 2016 21:59:47 -0000 Received: from unknown (HELO iron2.pdx.net) (69.64.224.71) by 0 (rfx-qmail) with SMTP; 23 May 2016 21:59:47 -0000 X-No-Relay: not in my network X-No-Relay: not in my network X-No-Relay: not in my network Received: from [192.168.1.8] (c-76-115-7-162.hsd1.or.comcast.net [76.115.7.162]) by iron2.pdx.net (Postfix) with ESMTPSA id 17BED1C43D6; Mon, 23 May 2016 14:59:38 -0700 (PDT) Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Subject: Re: WITH_SYSTEM_COMPILER: Skip Clang/GCC bootstrap [Critical note for Toolchain changes] From: Mark Millard In-Reply-To: <0aa6b29d-100e-6b10-efb3-933200cb0119@FreeBSD.org> Date: Mon, 23 May 2016 14:59:41 -0700 Cc: FreeBSD Current , FreeBSD Toolchain Message-Id: <2600671A-777E-4C72-90F4-25F79C48D1FA@dsl-only.net> References: <986EF3DE-84DA-4867-AD94-384EA3733144@dsl-only.net> <0aa6b29d-100e-6b10-efb3-933200cb0119@FreeBSD.org> To: Bryan Drewery X-Mailer: Apple Mail (2.3124) Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 May 2016 23:46:25 -0000 On 2016-May-23, at 2:50 PM, Bryan Drewery = wrote: > On 5/23/16 2:41 PM, Mark Millard wrote: >> Relative to (Bryan Drewery Mon May 23 16:40:23 UTC 2016): >>=20 >>> A critical note to toolchain developers, or anyone who touches the = Clang >>> or GCC source files. If you modify these files or add a new target >>> architecture into Clang, please bump the revision in the appropriate = file: >>>=20 >>> Clang: lib/clang/include/clang/Basic/Version.inc FREEBSD_CC_VERSION >>> GCC: gnu/usr.bin/cc/cc_tools/freebsd-native.h FBSD_CC_VER >>=20 >> quoting from https://svnweb.freebsd.org/changeset/base/300354 : >>=20 >>> This relies on the macros being incremented whenever any change = occurs >>> to these compilers that warrant rebuilding files. It also should = never >>> repeat earlier values. >>=20 >> It appears that someone that tries to make or test clang patches = without using a committer bit to be the one updating the official source = will have trouble meeting this criteria. I've been in that situation in = the past. Reverting back to, say, CURRENT after a patch is adopted is = another example of version number progression problems. >>=20 >=20 > If you are testing a local patch you can modify the files yourself as > well. Or just set WITHOUT_SYSTEM_COMPILER. But what temporary private value assignment will only "increment" and = yet "never repeat repeat earlier values" once the temporary period is = over and official numbering again is in use? Looks to me like = WITHOUT_SYSTEM_COMPILER is required for such contexts. >> It may be that official value updates to FREEBSD_CC_VERSION should be = spaced apart leaving versions available between official version numbers = for such local activities without version identification conflicts. >>=20 >> There are also projects such as the /project/clang*-import ones that = might have version number transition issues between it and CURRENT at = various stages for those working on the project and anyone that is just = following the project while it is active. I followed clang380-import and = reported on some powerpc64/powerpc/armv6 issues during the project so = I've been in this situation in the past. >>=20 >=20 > For project branches they could just use some unique number or disable > the option. So in some contexts the "increment" and/or "never repeat repeat earlier = values" do not apply (including when a temporary local assignment goes = to no longer being in use)? It still looks to me like = WITHOUT_SYSTEM_COMPILER is required for such contexts. >> It is not clear to me what the right things would have been to do and = when to do it if this FREEBSD_CC_VERSION criteria had been in place at = the time. >>=20 >> Similar comments probably apply to FBSD_CC_VER and gcc/g++. >>=20 >> Is it as simple as "never use WITH_SYSTEM_COMPILER" for patch/update = explorations that are not yet official commits on CURRENT or STABLE? = Does the version number involved then matter? >>=20 >> =3D=3D=3D >> Mark Millard >> markmi at dsl-only.net >>=20 >=20 >=20 > --=20 > Regards, > Bryan Drewery =3D=3D=3D Mark Millard markmi at dsl-only.net