public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Christophe Lyon <christophe.lyon@linaro.org>
To: Jonathan Wakely <jwakely.gcc@gmail.com>
Cc: Thomas Schwinge <tschwinge@baylibre.com>,
	Sam James <sam@gentoo.org>,  Mark Wielaard <mark@klomp.org>,
	binutils@sourceware.org, gcc@gcc.gnu.org,
	 gdb-patches@sourceware.org, David Malcolm <dmalcolm@redhat.com>,
	arsen@gentoo.org,  Alexandre Oliva <aoliva@gcc.gnu.org>
Subject: Re: Help needed with maintainer-mode
Date: Mon, 4 Mar 2024 15:46:55 +0100	[thread overview]
Message-ID: <CAPS5khb6fHZMfLCgpF65MiGJXLLRyxk2bSDd9csji4ztbt=HwA@mail.gmail.com> (raw)
In-Reply-To: <CAH6eHdRpyu2XZPgfOszWo+N1EgRk09Eoo20pfFxpGhDjf8KK9Q@mail.gmail.com>

On Mon, 4 Mar 2024 at 12:25, Jonathan Wakely <jwakely.gcc@gmail.com> wrote:
>
> On Mon, 4 Mar 2024 at 10:44, Christophe Lyon via Gcc <gcc@gcc.gnu.org> wrote:
> >
> > Hi!
> >
> > On Mon, 4 Mar 2024 at 10:36, Thomas Schwinge <tschwinge@baylibre.com> wrote:
> > >
> > > Hi!
> > >
> > > On 2024-03-04T00:30:05+0000, Sam James <sam@gentoo.org> wrote:
> > > > Mark Wielaard <mark@klomp.org> writes:
> > > >> On Fri, Mar 01, 2024 at 05:32:15PM +0100, Christophe Lyon wrote:
> > > >>> [...], I read
> > > >>> https://gcc.gnu.org/wiki/Regenerating_GCC_Configuration
> > > >>> which basically says "run autoreconf in every dir where there is a
> > > >>> configure script"
> > > >>> but this is not exactly what autoregen.py is doing. IIRC it is based
> > > >>> on a script from Martin Liska, do you know/remember why it follows a
> > > >>> different process?
> > > >>
> > > >> CCing Sam and Arsen who helped refine the autoregen.py script, who
> > > >> might remember more details. We wanted a script that worked for both
> > > >> gcc and binutils-gdb. And as far as I know autoreconf simply didn't
> > > >> work in all directories. We also needed to skip some directories that
> > > >> did contain a configure script, but that were imported (gotools,
> > > >> readline, minizip).
> > > >
> > > > What we really need to do is, for a start, land tschwinge/aoliva's patches [0]
> > > > for AC_CONFIG_SUBDIRS.
> > >
> > > Let me allocate some time this week to get that one completed.
> > >
> > > > Right now, the current situation is janky and it's nowhere near
> > > > idiomatic autotools usage. It is not a comfortable experience
> > > > interacting with it even as someone who is familiar and happy with using
> > > > autotools otherwise.
> > > >
> > > > I didn't yet play with maintainer-mode myself but I also didn't see much
> > > > point given I knew of more fundamental problems like this.
> > > >
> > > > [0] https://inbox.sourceware.org/gcc-patches/oril72c4yh.fsf@lxoliva.fsfla.org/
> > >
> >
> > Thanks for the background. I didn't follow that discussion at that time :-)
> >
> > So... I was confused because I noticed many warnings when doing a simple
> > find . -name configure |while read f; do echo $f;d=$(dirname $f) &&
> > autoreconf -f $d && echo $d; done
> > as suggested by https://gcc.gnu.org/wiki/Regenerating_GCC_Configuration
> >
> > Then I tried with autoregen.py, and saw the same.... and now just
> > checked Sourceware's bot logs and saw the same numerous warnings at
> > least in GCC (didn't check binutils yet). Looks like this is
> > "expected" ....
> >
> > I started looking at auto-regenerating these files in our CI a couple
> > of weeks ago, after we received several "complaints" from contributors
> > saying that our precommit CI was useless / bothering since it didn't
> > regenerate files, leading to false alarms.
> > But now I'm wondering how such contributors regenerate the files
> > impacted by their patches before committing, they probably just
> > regenerate things in their subdir of interest, not noticing the whole
> > picture :-(
> >
> > As a first step, we can probably use autoregen.py too, and declare
> > maintainer-mode broken. However, I do notice that besides the rules
> > about regenerating configure/Makefile.in/..., maintainer-mode is also
> > used to update some files.
> > In gcc:
> > fixincludes: fixincl.x
> > libffi: doc/version.texi
> > libgfortran: some stuff :-)
> > libiberty: functions.texi
>
> My recently proposed patch adds the first of those to gcc_update, the
> other should be done too.
> https://gcc.gnu.org/pipermail/gcc-patches/2024-March/647027.html
>

This script touches files such that they appear more recent than their
dependencies,
so IIUC even if one uses --enable-maintainer-mode, it will have no effect.
For auto* files, this is "fine" as we can run autoreconf or
autoregen.py before starting configure+build, but what about other
files?
For instance, if we have to test a patch which implies changes to
fixincludes/fixincl.x, how should we proceed?
1- git checkout (with possibly "wrong" timestamps)
2- apply patch-to-test
3- contrib/gcc_update -t
4- configure --enable-maintainer-mode

I guess --enable-maintainer-mode would be largely (if not completely)
disabled by step 3 above?
And we should probably swap steps 2 and 3, so that the effects of
patch-to-test are handled by make?

Thanks,

Christophe

>
>
> >
> > in binutils/bfd:
> > gdb/sim
> > bfd/po/SRC-POTFILES.in
> > bfd/po/BLD-POTFILES.in
> > bfd/bfd-in2.h
> > bfd/libbfd.h
> > bfd/libcoff.h
> > binutils/po/POTFILES.in
> > gas/po/POTFILES.in
> > opcodes/i386*.h
> > gdb/copying.c
> > gdb/data-directory/*.xml
> > gold/po/POTFILES.in
> > gprof/po/POTFILES.in
> > gfprofng/doc/version.texi
> > ld/po/SRC-POTFILES.in
> > ld/po/BLD-POTFILES.in
> > ld: ldgram/ldlex... and all emulation sources
> > libiberty/functions.texi
> > opcodes/po/POTFILES.in
> > opcodes/aarch64-{asm,dis,opc}-2.c
> > opcodes/ia64 msp430 rl78 rx z8k decoders
> >
> > How are these files "normally" expected to be updated? Do people just
> > manually uncomment the corresponding maintainer lines in the Makefiles
> > and update manually?   In particular we hit issues several times with
> > files under opcodes, that we don't regenerate currently. Maybe we
> > could build binutils in maintainer-mode at -j1 but, well....
> >
> > README-maintainer-mode in binutils/gdb only mentions a problem with
> > 'make distclean' and maintainer mode
> > binutils/README-how-to-make-a-release indicates to use
> > --enable-maintainer-mode, and the sample 'make' invocations do not
> > include any -j flag, is that an indication that only -j1 is supposed
> > to work?
> > Similarly, the src-release.sh script does not use -j.
> >
> > Thanks,
> >
> > Christophe
> >
> > >
> > > Grüße
> > >  Thomas

  reply	other threads:[~2024-03-04 14:46 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-29 10:22 Christophe Lyon
2024-02-29 10:41 ` Richard Earnshaw (lists)
2024-02-29 17:36   ` Christophe Lyon
2024-02-29 11:00 ` Mark Wielaard
2024-02-29 17:39   ` Christophe Lyon
2024-03-01 13:08     ` Mark Wielaard
2024-03-01 13:21       ` Christophe Lyon
2024-03-01 16:32       ` Christophe Lyon
2024-03-03 21:15         ` Mark Wielaard
2024-03-04  0:30           ` Sam James
2024-03-04  9:36             ` Thomas Schwinge
2024-03-04 10:42               ` Christophe Lyon
2024-03-04 11:25                 ` Jonathan Wakely
2024-03-04 14:46                   ` Christophe Lyon [this message]
2024-03-04 15:36                     ` Richard Earnshaw (lists)
2024-03-04 15:40                       ` Richard Earnshaw
2024-03-04 16:42                         ` Christophe Lyon
2024-03-04 17:38                           ` Richard Earnshaw (lists)
2024-03-04 19:27                             ` Vladimir Mezentsev
2024-03-04 20:04                               ` Jonathan Wakely
2024-03-05 14:26                                 ` Richard Earnshaw (lists)
2024-03-05 15:39                                   ` Richard Earnshaw
2024-03-06 15:04     ` Andrew Carlotti
2024-03-06 17:22       ` Richard Earnshaw (lists)
2024-02-29 19:49 ` Thiago Jung Bauermann
2024-03-01 10:09   ` Christophe Lyon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPS5khb6fHZMfLCgpF65MiGJXLLRyxk2bSDd9csji4ztbt=HwA@mail.gmail.com' \
    --to=christophe.lyon@linaro.org \
    --cc=aoliva@gcc.gnu.org \
    --cc=arsen@gentoo.org \
    --cc=binutils@sourceware.org \
    --cc=dmalcolm@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=jwakely.gcc@gmail.com \
    --cc=mark@klomp.org \
    --cc=sam@gentoo.org \
    --cc=tschwinge@baylibre.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).