From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2854 invoked by alias); 10 Feb 2014 13:15:32 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 2844 invoked by uid 89); 10 Feb 2014 13:15:32 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: glazunov.sibelius.xs4all.nl Received: from sibelius.xs4all.nl (HELO glazunov.sibelius.xs4all.nl) (83.163.83.176) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Mon, 10 Feb 2014 13:15:30 +0000 Received: from glazunov.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3) with ESMTP id s1ADFOsN021721; Mon, 10 Feb 2014 14:15:25 +0100 (CET) Received: (from kettenis@localhost) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3/Submit) id s1ADFO19018000; Mon, 10 Feb 2014 14:15:24 +0100 (CET) Date: Mon, 10 Feb 2014 13:15:00 -0000 Message-Id: <201402101315.s1ADFO19018000@glazunov.sibelius.xs4all.nl> From: Mark Kettenis To: xdje42@gmail.com CC: gdb-patches@sourceware.org In-reply-to: (message from Doug Evans on Sun, 9 Feb 2014 17:41:36 -0800) Subject: Re: [PATCH] Makefile fix References: <201402041033.s14AX8Ai013211@glazunov.sibelius.xs4all.nl> <201402081141.s18Bf6U4019336@glazunov.sibelius.xs4all.nl> X-SW-Source: 2014-02/txt/msg00297.txt.bz2 > Date: Sun, 9 Feb 2014 17:41:36 -0800 > From: Doug Evans > > On Sun, Feb 9, 2014 at 4:58 PM, Doug Evans wrote: > > On Sat, Feb 8, 2014 at 3:41 AM, Mark Kettenis wrote: > >>> Date: Fri, 7 Feb 2014 21:00:35 -0800 > >>> From: Doug Evans > >>> > >>> On Tue, Feb 4, 2014 at 2:33 AM, Mark Kettenis 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: > >>> > > >>> > > >>> > > >>> > 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 > >> 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 > >> + > >> + * Makefile.in (all-lib): Remove. > >> + ($(LIBGNU) $(GNULIB_H)): Replace with gits of remove all-lib target. > >> + > >> 2014-02-07 Doug Evans > >> > >> * 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...