Skip site navigation (1)Skip section navigation (2)
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>