From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17051 invoked by alias); 18 Dec 2014 20:56:42 -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 17039 invoked by uid 89); 18 Dec 2014 20:56:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.0 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Thu, 18 Dec 2014 20:56:40 +0000 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id sBIKuRgD030315 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 18 Dec 2014 15:56:27 -0500 Received: from localhost (dhcp-10-15-16-169.yyz.redhat.com [10.15.16.169]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id sBIKuQih011774 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Thu, 18 Dec 2014 15:56:27 -0500 From: Sergio Durigan Junior To: Jan Kratochvil Cc: Kai Tietz , Steve Ellcey , Eli Zaretskii , brobecker@adacore.com, yao@codesourcery.com, gdb-patches@sourceware.org Subject: Re: [patch] compile: rm -rf -> ftw()+rmdir()+unlink() [Re: [patch] compile: Fix MinGW build] References: <20141217210144.GA26674@host2.jankratochvil.net> X-URL: http://blog.sergiodj.net Date: Thu, 18 Dec 2014 20:56:00 -0000 In-Reply-To: <20141217210144.GA26674@host2.jankratochvil.net> (Jan Kratochvil's message of "Wed, 17 Dec 2014 22:01:44 +0100") Message-ID: <877fxozngl.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2014-12/txt/msg00551.txt.bz2 On Wednesday, December 17 2014, Jan Kratochvil wrote: > On Wed, 17 Dec 2014 18:29:51 +0100, Steve Ellcey wrote: >> /scratch/sellcey/repos/nightly2/src/binutils-gdb/gdb/compile/compile.c:175:10: error: ignoring return value of 'system', declared with attribute warn_unused_result [-Werror=unused-result] >> cc1: all warnings being treated as errors >> make[1]: *** [compile.o] Error 1 > > It should get fixed by this patch. https://sourceware.org/bugzilla/show_bug.cgi?id=17718 has been fixed about this as well, FYI. > I have briefly tested (on Linux; on MinGW I have only tested the build) it > really does delete the directory and its files. > > OK for check-in? > > > Thanks, > Jan > gdb/ChangeLog > 2014-12-17 Jan Kratochvil > > * compile/compile.c: Include ftw.h. > (do_rmdir_fn): New function. > (do_rmdir): Call nftw with it. > > diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c > index 414fc35..7dbc819 100644 > --- a/gdb/compile/compile.c > +++ b/gdb/compile/compile.c > @@ -37,6 +37,7 @@ > #include "filestuff.h" > #include "target.h" > #include "osabi.h" > +#include > > > > @@ -162,17 +163,42 @@ compile_code_command (char *arg, int from_tty) > do_cleanups (cleanup); > } > > +/* Helper for do_rmdir. */ > + > +static int > +do_rmdir_fn (const char *fpath, const struct stat *sb, int typeflag, > + struct FTW *ftwbuf) > +{ > + switch (typeflag) > + { > + case FTW_DP: > + if (rmdir (fpath) != 0) > + warning (_("Cannot remove 'compile' command directory \"%s\": %s"), > + fpath, safe_strerror (errno)); > + break; > + case FTW_F: > + if (unlink (fpath) != 0) > + warning (_("Cannot remove 'compile' command file \"%s\": %s"), > + fpath, safe_strerror (errno)); > + break; > + default: > + warning (_("Unknown 'typeflag' %d for 'compile' command file \"%s\"."), > + typeflag, fpath); > + } > + > + /* Continue the walk. */ > + return 0; > +} > + > /* A cleanup function to remove a directory and all its contents. */ > > static void > do_rmdir (void *arg) > { > const char *dir = arg; > - char *zap; > - > + > gdb_assert (strncmp (dir, TMP_PREFIX, strlen (TMP_PREFIX)) == 0); > - zap = concat ("rm -rf ", dir, (char *) NULL); > - system (zap); > + nftw (dir, do_rmdir_fn, 10, FTW_DEPTH | FTW_MOUNT | FTW_PHYS); > } > > /* Return the name of the temporary directory to use for .o files, and -- Sergio GPG key ID: 0x65FC5E36 Please send encrypted e-mail if possible http://sergiodj.net/