Date: Mon, 23 May 2016 14:59:41 -0700 From: Mark Millard <markmi@dsl-only.net> To: Bryan Drewery <bdrewery@FreeBSD.org> Cc: FreeBSD Current <freebsd-current@freebsd.org>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org> Subject: Re: WITH_SYSTEM_COMPILER: Skip Clang/GCC bootstrap [Critical note for Toolchain changes] Message-ID: <2600671A-777E-4C72-90F4-25F79C48D1FA@dsl-only.net> In-Reply-To: <0aa6b29d-100e-6b10-efb3-933200cb0119@FreeBSD.org> References: <986EF3DE-84DA-4867-AD94-384EA3733144@dsl-only.net> <0aa6b29d-100e-6b10-efb3-933200cb0119@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2016-May-23, at 2:50 PM, Bryan Drewery <bdrewery at FreeBSD.org> = 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 <mailto:markmi@dsl-only.net> >>=20 >=20 >=20 > --=20 > Regards, > Bryan Drewery =3D=3D=3D Mark Millard markmi at dsl-only.net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2600671A-777E-4C72-90F4-25F79C48D1FA>