GNU bug report logs - #10697
subdir-objects "make clean" invokes one rm for each .o file

Previous Next

Package: automake;

Reported by: Jim Meyering <jim <at> meyering.net>

Date: Thu, 2 Feb 2012 16:08:02 UTC

Severity: minor

Tags: patch

Merged with 8031

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 10697 in the body.
You can then email your comments to 10697 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-automake <at> gnu.org:
bug#10697; Package automake. (Thu, 02 Feb 2012 16:08:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jim Meyering <jim <at> meyering.net>:
New bug report received and forwarded. Copy sent to bug-automake <at> gnu.org. (Thu, 02 Feb 2012 16:08:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jim Meyering <jim <at> meyering.net>
To: bug-automake <at> gnu.org
Subject: subdir-objects "make clean" invokes one rm for each .o file
Date: Thu, 02 Feb 2012 17:06:17 +0100
In cppi (http://git.savannah.gnu.org/cgit/cppi.git), I am now using non-
recursive make via subdir-objects, modeled after the way bison does it.
I see that "make clean" is inefficient: one "rm -f" per .o file:

  rm -fr *.o
  rm -f *.o
  rm -f lib/calloc.o
  rm -f lib/close-stream.o
  rm -f lib/closeout.o
  rm -f lib/error.o
  rm -f lib/exitfail.o
  rm -f lib/fpending.o
  rm -f lib/getopt.o
  rm -f lib/getopt1.o
  rm -f lib/localcharset.o
  rm -f lib/malloc.o
  rm -f lib/mbrtowc.o
  rm -f lib/mbsinit.o
  rm -f lib/msvc-inval.o
  rm -f lib/msvc-nothrow.o
  rm -f lib/obstack.o
  rm -f lib/progname.o
  rm -f lib/quote.o
  rm -f lib/quotearg.o
  rm -f lib/realloc.o
  rm -f lib/stpcpy.o
  rm -f lib/strerror-override.o
  rm -f lib/strerror.o
  rm -f lib/version-etc-fsf.o
  rm -f lib/version-etc.o
  rm -f lib/xalloc-die.o
  rm -f lib/xmalloc.o
  rm -f lib/xstrtol-error.o
  rm -f lib/xstrtol.o
  rm -f lib/xstrtoul.o
  rm -f src/cppi.o

cppi has so few .o files that it's not a problem, but with hundreds
(coreutils has over 600), it could be noticeable.

Contrast that with its removal of *.o above and of all tests/*.log files
using just one rm invocation each, I think it must simply be an oversight.
Seems like it'd be worth fixing some day.




Information forwarded to bug-automake <at> gnu.org:
bug#10697; Package automake. (Sun, 10 Jun 2012 12:21:02 GMT) Full text and rfc822 format available.

Message #8 received at 10697 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Jim Meyering <jim <at> meyering.net>
Cc: 10697 <at> debbugs.gnu.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>
Subject: Re: bug#10697: subdir-objects "make clean" invokes one rm for each
	.o file
Date: Sun, 10 Jun 2012 14:17:28 +0200
[Message part 1 (text/plain, inline)]
severity 10697 minor
tags 10697 + patch
thanks

Reference: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10697>

Hi Jim, sorry for the awful delay.

On 02/02/2012 05:06 PM, Jim Meyering wrote:
> In cppi (http://git.savannah.gnu.org/cgit/cppi.git), I am now using non-
> recursive make via subdir-objects, modeled after the way bison does it.
> I see that "make clean" is inefficient: one "rm -f" per .o file:
> 
>   rm -fr *.o
>   rm -f *.o
>   rm -f lib/calloc.o
>   rm -f lib/close-stream.o
>   ...
>   rm -f lib/xstrtol.o
>   rm -f lib/xstrtoul.o
>   rm -f src/cppi.o
> 
> cppi has so few .o files that it's not a problem, but with hundreds
> (coreutils has over 600), it could be noticeable.
> 
> Contrast that with its removal of *.o above and of all tests/*.log files
> using just one rm invocation each, I think it must simply be an oversight.
> Seems like it'd be worth fixing some day.
> 
I agree, and today could be the day :-)

See the attached patch; I will push it by tomorrow if there is no objection
(and if anyone would like to give it a try on a real project, that would be
much appreciated).

Regards,
  Stefano

[0001-subdir-objects-improve-make-mostlyclean-efficiency-a.patch (text/x-diff, attachment)]

Severity set to 'minor' from 'normal' Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 10 Jun 2012 12:21:03 GMT) Full text and rfc822 format available.

Added tag(s) patch. Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Sun, 10 Jun 2012 12:21:03 GMT) Full text and rfc822 format available.

Reply sent to Stefano Lattarini <stefano.lattarini <at> gmail.com>:
You have taken responsibility. (Mon, 11 Jun 2012 16:52:01 GMT) Full text and rfc822 format available.

Notification sent to Jim Meyering <jim <at> meyering.net>:
bug acknowledged by developer. (Mon, 11 Jun 2012 16:52:02 GMT) Full text and rfc822 format available.

Message #17 received at 10697-done <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Jim Meyering <jim <at> meyering.net>
Cc: 10697-done <at> debbugs.gnu.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>
Subject: Re: bug#10697: subdir-objects "make clean" invokes one rm for each
	.o file
Date: Mon, 11 Jun 2012 18:48:55 +0200
On 06/10/2012 02:17 PM, Stefano Lattarini wrote:
> Reference: <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10697>
> 
> See the attached patch; I will push it by tomorrow if there is no objection
> (and if anyone would like to give it a try on a real project, that would be
> much appreciated).
>
Pushed now (to maint).  I'm thus closing this  bug report.

Regards,
  Stefano




Forcibly Merged 8031 10697. Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Mon, 25 Jun 2012 09:54:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 23 Jul 2012 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 331 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.