From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32159 invoked by alias); 4 Mar 2003 11:25:53 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 32150 invoked from network); 4 Mar 2003 11:25:52 -0000 Received: from unknown (HELO anchor-post-35.mail.demon.net) (194.217.242.85) by 172.16.49.205 with SMTP; 4 Mar 2003 11:25:52 -0000 Received: from mailgate.softwire.co.uk ([62.49.203.138] helo=GRIZZLYBEAR) by anchor-post-35.mail.demon.net with esmtp (Exim 3.36 #2) id 18qAYQ-0001f9-0Z; Tue, 04 Mar 2003 11:25:52 +0000 From: "Rupert Wood" To: =?iso-8859-1?Q?'Pop_S=E9bastian'?= , "'Gabriel Dos Reis'" Cc: "'Nathanael Nerode'" , Subject: RE: Putting C++ code into gcc front end Date: Tue, 04 Mar 2003 11:55:00 -0000 Message-ID: <616BE6A276E3714788D2AC35C40CD18D5EC842@whale.softwire.co.uk> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal In-Reply-To: <616BE6A276E3714788D2AC35C40CD18DAD4FC1@whale.softwire.co.uk> Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-SW-Source: 2003-03/txt/msg00181.txt.bz2 (Apologies if this is what's already proposed / already refuted - only have time to skim gcc mail.) Could we build the C++ compiler as a 'stage 1a', carrying over the C/Ada compilers from stage 1? * stage 1: use cc to build xgcc, cc1 and gnat1 * stage 1a: use stage 1 to build cc1plus * stage 2: use 1's xgcc, cc1 and gnat1 and 1a's cc1plus to build stage 2 * stage 3: use stage 2 to build stage 3 The only issue here is if we can link the cc-built libbackend into the code built with stage1 xgcc - but that's almost always true and saves us a back-end rebuild versus four complete stages. Or we could make it 2a: * stage 1: use cc to build xgcc, cc1 and gnat1 * stage 2: use stage 1 to build xgcc, cc1 and libbackend.a * stage 2a: use stage 2's output to build cc1plus * stage 2b: build remainding front-ends and runtimes using stages 2 + 2a * stage 3: use stages 2, 2a and 2b to build stage 3 In this case it's pointless comparing the c++ frontend objects in the bootstrap since they were all built using stage 2's cc1 - unless you repeat 2a and 2b as 3a and 3b. But I don't think that's necessary.