From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: xdje42@gmail.com
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH] Makefile fix
Date: Mon, 10 Feb 2014 13:15:00 -0000 [thread overview]
Message-ID: <201402101315.s1ADFO19018000@glazunov.sibelius.xs4all.nl> (raw)
In-Reply-To: <CAP9bCMQi_bjYrQEUGzXwjGwyNBhmLF7X=6WRcKcM-N0miZqziA@mail.gmail.com> (message from Doug Evans on Sun, 9 Feb 2014 17:41:36 -0800)
> Date: Sun, 9 Feb 2014 17:41:36 -0800
> From: Doug Evans <xdje42@gmail.com>
>
> On Sun, Feb 9, 2014 at 4:58 PM, Doug Evans <xdje42@gmail.com> wrote:
> > On Sat, Feb 8, 2014 at 3:41 AM, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
> >>> Date: Fri, 7 Feb 2014 21:00:35 -0800
> >>> From: Doug Evans <dje@google.com>
> >>>
> >>> On Tue, Feb 4, 2014 at 2:33 AM, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
> >>> > The diff below fixes an issue that has been bothering me for quite a
> >>> > while. When using OpenBSD make, almost everything in gdb/ gets
> >>> > rebuilt. The problem is the use of the all-lib phony target, which is
> >>> > always considered to be out-of-date, and used as a prerequisite of
> >>> > libgnu.a and the gnulib string.h, which are therefore also considered
> >>> > to be out-of-date. I have no idea why this problem doesn't show up
> >>> > with GNU make. But the GNU make manual clearly states that phony
> >>> > targets should not be prerequisites of real target files:
> >>> >
> >>> > <http://www.gnu.org/software/make/manual/make.html#Phony-Targets>
> >>> >
> >>> > It seems to me that the phony target can be easily avoided; see the
> >>> > diff below. But perhaps I'm missing something?
> >>> >
> >>> >
> >>> >
> >>> > diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> >>> > index ed84e35..937478b 100644
> >>> > --- a/gdb/Makefile.in
> >>> > +++ b/gdb/Makefile.in
> >>> > @@ -1263,10 +1263,8 @@ gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
> >>> > $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
> >>> >
> >>> > # Convenience rule to handle recursion.
> >>> > -$(LIBGNU) $(GNULIB_H): all-lib
> >>> > -all-lib: $(GNULIB_BUILDDIR)/Makefile
> >>> > +$(LIBGNU) $(GNULIB_H): $(GNULIB_BUILDDIR)/Makefile
> >>> > @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do
> >>> > -.PHONY: all-lib
> >>> >
> >>> > # Convenience rule to handle recursion.
> >>> > .PHONY: all-data-directory
> >>>
> >>> I found the patch where this went in but I couldn't find anything interesting.
> >>> "all-lib" is there, I'm guessing, just as a convenience for typing,
> >>> but I'm not sure how often it's used so if it's getting in the way I'm
> >>> ok with this change.
> >>> I can't think of any problems with the patch.
> >>> [And we could still keep all-lib as a convenience rule, but I'm ok
> >>> with deleting it for now.]
> >>
> >> Thanks. Here's what I committed:
> >>
> >> From 0a6bd22df74bb5b6ffa30c3b10243a34d9055c32 Mon Sep 17 00:00:00 2001
> >> From: Mark Kettenis <kettenis@gnu.org>
> >> Date: Sat, 8 Feb 2014 12:36:17 +0100
> >> Subject: [PATCH] A phony target should not be a prerequisite of a real target
> >> file
> >>
> >> gdb/ChangeLog:
> >>
> >> * Makefile.in (all-lib): Remove.
> >> ($(LIBGNU) $(GNULIB_H)): Replace with gits of remove all-lib target.
> >> ---
> >> gdb/ChangeLog | 5 +++++
> >> gdb/Makefile.in | 4 +---
> >> 2 files changed, 6 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> >> index c2c9236..bb64a23 100644
> >> --- a/gdb/ChangeLog
> >> +++ b/gdb/ChangeLog
> >> @@ -1,3 +1,8 @@
> >> +2014-02-08 Mark Kettenis <kettenis@gnu.org>
> >> +
> >> + * Makefile.in (all-lib): Remove.
> >> + ($(LIBGNU) $(GNULIB_H)): Replace with gits of remove all-lib target.
> >> +
> >> 2014-02-07 Doug Evans <dje@google.com>
> >>
> >> * extension-priv.h (extension_language_script_ops): Add comment.
> >> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> >> index e714550..0976615 100644
> >> --- a/gdb/Makefile.in
> >> +++ b/gdb/Makefile.in
> >> @@ -1265,10 +1265,8 @@ gdb$(EXEEXT): gdb.o $(LIBGDB_OBS) $(ADD_DEPS) $(CDEPS) $(TDEPLIBS)
> >> $(TDEPLIBS) $(TUI_LIBRARY) $(CLIBS) $(LOADLIBES)
> >>
> >> # Convenience rule to handle recursion.
> >> -$(LIBGNU) $(GNULIB_H): all-lib
> >> -all-lib: $(GNULIB_BUILDDIR)/Makefile
> >> +$(LIBGNU) $(GNULIB_H): $(GNULIB_BUILDDIR)/Makefile
> >> @$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do
> >> -.PHONY: all-lib
> >>
> >> # Convenience rule to handle recursion.
> >> .PHONY: all-data-directory
> >> --
> >> 1.8.5.3
> >>
> >
> > I'm getting gnulib related build failures on linux, I'm guessing it's
> > this change.
> > Sorry 'bout that.
> > I think it's that a parallel make is now entering build-gnulib twice.
> > So we need to serialize it, without using a phony target.
>
> I reverted the patch to get linux builds going.
> Again., sorry 'bout that.
Thanks. Didn't realize it was safe to do parellel builds of gdb.
> I'll work on a different fix on Monday, unless you want to take it.
The problem here as having two targets with exactly the same rule.
Easiest way to fix this is to simply drop $(LIBGNU) as target and have only:
$(GNULIB_H): $(GNULIB_BUILDDIR)/Makefile
@$(MAKE) $(FLAGS_TO_PASS) DO=all DODIRS=$(GNULIB_BUILDDIR) subdir_do
I don't think that will break anything. But then I thought the same
about the previous diff...
next prev parent reply other threads:[~2014-02-10 13:15 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-04 10:33 Mark Kettenis
2014-02-08 5:00 ` Doug Evans
2014-02-08 11:41 ` Mark Kettenis
2014-02-10 0:58 ` Doug Evans
2014-02-10 1:41 ` Doug Evans
2014-02-10 13:15 ` Mark Kettenis [this message]
2014-02-10 14:23 ` Joel Brobecker
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=201402101315.s1ADFO19018000@glazunov.sibelius.xs4all.nl \
--to=mark.kettenis@xs4all.nl \
--cc=gdb-patches@sourceware.org \
--cc=xdje42@gmail.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