[PATCH] gnulib: Ensure all libraries are used when building gdb/gdbserver

Andrew Burgess andrew.burgess@embecosm.com
Wed Oct 14 14:09:16 GMT 2020


* Simon Marchi <simark@simark.ca> [2020-10-13 10:26:48 -0400]:

> 
> On 2020-10-12 11:30 a.m., Andrew Burgess wrote:
> > commit 75b86a705adbb127962beb5ef8d9d7181afe3789
> > Author: Andrew Burgess <andrew.burgess@embecosm.com>
> > Date:   Mon Oct 12 16:04:32 2020 +0100
> >
> >     gdb/gdbserver: use '-include' to pull in Makefile.gnulib.inc
> 
> The patch subject doesn't seem right.
> 
> >
> >     After commit:
> >
> >       commit 361cb219351d8b7e39e1962fe77f40aa80657b27
> >       Date:   Tue Oct 6 10:09:06 2020 +0100
> >
> >           gnulib: Ensure all libraries are used when building gdb/gdbserver
> >
> >     We now get an error when, at the top level of the build tree, we do
> >     'make distclean'.
> >
> >     The reason for this is that the gnulib directory is cleaned before the
> >     gdb directory, cleaning gnulib deletes Makefile.gnulib.inc from the
> >     gnulib build directory, which is currently pulled in by the gdb
> >     Makefile.in using 'include'.
> >
> >     This commit adds a dependency between distclean-gnulib and both
> >     distclean-gdb and distclean-gdbserver.  This means that gdb and
> >     gdbserver will be cleaned before gnulib, as a result the
> >     Makefile.gnulib.inc file should exist when needed.
> >
> >     ChangeLog:
> >
> >             * Makefile.in: Rebuild.
> >             * Makefile.def: Make distclean-gnulib depend on distclean-gdb and
> >             distclean-gdbserver.
> >
> > diff --git a/Makefile.def b/Makefile.def
> > index 76d062bb671..089e70ae3ed 100644
> > --- a/Makefile.def
> > +++ b/Makefile.def
> > @@ -548,6 +548,12 @@ dependencies = { module=configure-libctf; on=all-intl; };
> >  dependencies = { module=configure-libctf; on=all-zlib; };
> >  dependencies = { module=configure-libctf; on=all-libiconv; };
> >
> > +// The Makefiles in gdb and gdbserver pull in a file that configure
> > +// generates in the gnulib directory, so distclean gnulib only after
> > +// gdb and gdbserver.
> > +dependencies = { module=distclean-gnulib; on=distclean-gdb; };
> > +dependencies = { module=distclean-gnulib; on=distclean-gdbserver; };
> > +
> >  // Warning, these are not well tested.
> >  dependencies = { module=all-bison; on=all-intl; };
> >  dependencies = { module=all-bison; on=all-build-texinfo; };
> > diff --git a/Makefile.in b/Makefile.in
> > index 9dfd39fae13..fe34132f9e5 100644
> > --- a/Makefile.in
> > +++ b/Makefile.in
> > @@ -52366,6 +52366,8 @@ configure-stage3-libctf: maybe-all-stage3-libiconv
> >  configure-stage4-libctf: maybe-all-stage4-libiconv
> >  configure-stageprofile-libctf: maybe-all-stageprofile-libiconv
> >  configure-stagefeedback-libctf: maybe-all-stagefeedback-libiconv
> > +distclean-gnulib: maybe-distclean-gdb
> > +distclean-gnulib: maybe-distclean-gdbserver
> >  all-bison: maybe-all-build-texinfo
> >  all-flex: maybe-all-build-bison
> >  all-flex: maybe-all-m4
> >
> 
> I haven't tested, but I presume that you were able to reproduce the
> problem and test the fix.  If so, that LGTM.

Indeed.

I updated the commit message title to:

  gdb/gdbserver: add dependencies for distclean-gnulib

And pushed this patch.

Joel - I think everything should be good now, but do let me know if
you are still seeing problems.

Thanks,
Andrew


More information about the Gdb-patches mailing list