On Fri, 10 Nov 2023, David Malcolm wrote:

> The .opt.urls files it generates become part of the source tree, and
> would be regenerated by maintainers whenever new options are added.
> Forgetting to update the files (or not having Python 3 handy) merely
> means that URLs might be missing or out of date until someone else
> regenerates them.

Do I understand correctly that there are no makefile targets to regenerate 
these files; it's up to maintainers to regenerate them manually?

Advantages:

* No need to update contrib/gcc_update to handle timestamps for the files.

* No modifications unexpectedly appearing in source trees, if the checked 
in files are out of date and you run a build with the timestamps such that 
the file gets regenerated.

Disadvantages:

* You need to know how to do the regeneration manually; "make" is the 
uniform way for generating any file the build system can generate, without 
needing more specific knowledge about that file.

Given the recent discussion starting at 
<https://gcc.gnu.org/pipermail/gcc/2023-November/242835.html> of 
post-commit CI to detect auto*-generated files that aren't fully up to 
date, maybe it would be appropriate to add a check for .opt.urls files 
being up to date (including making sure that each .opt file does have a 
corresponding .opt.urls file checked in) to that CI?

Since the Python script has hardcoded information about .opt files and 
corresponding URLs for target options documentation, the patch series 
should update sourcebuild.texi, section "Back End", to identify that 
script as one of the places to update when adding a new target back end.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to