From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26566 invoked by alias); 26 Jan 2010 22:06:33 -0000 Received: (qmail 26550 invoked by uid 22791); 26 Jan 2010 22:06:32 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from mtaout01-winn.ispmail.ntl.com (HELO mtaout01-winn.ispmail.ntl.com) (81.103.221.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 26 Jan 2010 22:06:28 +0000 Received: from aamtaout02-winn.ispmail.ntl.com ([81.103.221.35]) by mtaout01-winn.ispmail.ntl.com (InterMail vM.7.08.04.00 201-2186-134-20080326) with ESMTP id <20100126220625.HZQW4204.mtaout01-winn.ispmail.ntl.com@aamtaout02-winn.ispmail.ntl.com>; Tue, 26 Jan 2010 22:06:25 +0000 Received: from [192.168.1.3] (really [82.30.110.254]) by aamtaout02-winn.ispmail.ntl.com (InterMail vG.2.02.00.01 201-2161-120-102-20060912) with ESMTP id <20100126220625.NAKC21638.aamtaout02-winn.ispmail.ntl.com@[192.168.1.3]>; Tue, 26 Jan 2010 22:06:25 +0000 Subject: Re: [PATCH] PR ada/42254, avoid providing multiple copies of object files to link of GNAT tools Mime-Version: 1.0 (Apple Message framework v1077) Content-Type: text/plain; charset=us-ascii From: Simon Wright In-Reply-To: <20100126213028.GA91716@adacore.com> Date: Tue, 26 Jan 2010 22:09:00 -0000 Cc: gcc-patches@gcc.gnu.org Content-Transfer-Encoding: quoted-printable Message-Id: <58C9135C-163D-4F4D-A36B-849420AF2674@pushface.org> References: <4385C106-8FD1-49F8-8B06-1A1368A943B0@pushface.org> <20100126213028.GA91716@adacore.com> To: Arnaud Charlet Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2010-01/txt/msg01351.txt.bz2 On 26 Jan 2010, at 21:30, Arnaud Charlet wrote: >> The only part of this patch you may be uncomfortable with is the change= =20 >> to target common-tools, where I delete all the .o files in the RTS direc= tory=20 >> that are already in libgna*.a before the gnatmake -b step (the problem=20 >> being that if gnatbind sees a .o file it includes it in the files to be = linked,=20 >> being unaware that the object is already in libgna*.a). The .o files tha= t=20 >> survive are g-trasym.o and (on powerpc-wrs-vxworks) memtrack.o - but=20 >> the latter doesn't get installed. >=20 > Right, I'm indeed uncomfortable with this part indeed. Would be good > to find a way to avoid this part, removing objects means always forcing > recompilation of these files. Also, you shouldn't need to remove > memtrack.o, it shouldn't conflict with any existing .o, so no need to. I will think about this some more, then. memtrack.o - it'll only get deleted if it isn't in libgmem.a, and it doesn'= t seem=20 to get installed anyway (target install-gnatlib at line 2357 only installs= =20 g-trasym$(objext)). [NB inconsstency between use of .o and $(objext)!] > The RM command lines generated by the Makefile may also exceed > command line length limits on some systems (e.g. IRIX). I took the idea for these commands from similar commands at line 2462ff in= =20 target gnatlib. So that would need fixing too if there is a problem (presum= ably=20 not). >> 2010-01-26 Simon Wright >>=20 >> PR ada/42554 >> * gcc-interface/Makefile.in (TOOLS_LIBS): remove LIB_GNAT. >> * gcc-interface/Makefile.in (GNATLINK_OBJS): remove object files >> that are present in the RTS. >> * gcc-interface/Makefile.in (GNATMAKE_OBJS): likewise. >> * gcc-interface/Makefile.in (common-tools): at the start, delete >> all the .o files in the RTS directory that are also in libraries. >> * gcc-interface/Makefile.in (../../gnatmake$(exeext)): add LIBGNAT. >> * gcc-interface/Makefile.in (../../gnatlink$(exeext)):likewise. >=20 > This changelog is also not in the right format, there should be > only one mention of the file name. Will fix. Do you need to see the (MACRO) and (target) indications? > The other parts of the patch (removing run-time objects from the explicit > list of gnatmake/gnatlink objects, removing the duplicated libgnat) look > reasonable. Good!