From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27389 invoked by alias); 28 Apr 2005 01:58:23 -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 26619 invoked from network); 28 Apr 2005 01:58:13 -0000 Received: from unknown (HELO ds01.webmacher.de) (213.239.192.226) by sourceware.org with SMTP; 28 Apr 2005 01:58:13 -0000 Received: from [192.168.2.173] (dialin-145-254-152-008.arcor-ip.net [145.254.152.8]) by ds01.webmacher.de (Postfix) with ESMTP id 5BAC44441A5; Thu, 28 Apr 2005 04:55:39 +0200 (CEST) In-Reply-To: <20050428010620.5D7729842C@baradas.org> References: <20050427152844.GA86951@compsoc.man.ac.uk> <426FB37D.3060507@3am-software.com> <200504272157.21513.s.bosscher@student.tudelft.nl> <42700E81.60105@apple.com> <1114642999.18731.4.camel@linux.site> <8764y7n5zm.fsf@codesourcery.com> <1114646358.18731.10.camel@linux.site> <87wtqnlq14.fsf@codesourcery.com> <20050428010620.5D7729842C@baradas.org> Mime-Version: 1.0 (Apple Message framework v622) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: <76205f596867ac890c097b297105f170@dalecki.de> Content-Transfer-Encoding: 7bit Cc: s.bosscher@student.tudelft.nl, gcc@gcc.gnu.org, dberlin@dberlin.org, shebs@apple.com, zack@codesourcery.com From: Marcin Dalecki Subject: Re: GCC 4.1: Buildable on GHz machines only? Date: Thu, 28 Apr 2005 01:58:00 -0000 To: Peter Barada X-SW-Source: 2005-04/txt/msg01576.txt.bz2 On 2005-04-28, at 03:06, Peter Barada wrote: > >> Well, yes. 1 second/file is still slow! I want "make" to complete >> instantaneously! Don't you? > > Actually I want it to complete before I even start, but I don't want > to get too greedy. :) > > What's really sad is that for cross-compilation of the toolchain, we > have to repeat a few steps (build gcc twice, build glibc twice) > because glibc and gcc assume that a near-complete environment is > available(such as gcc needing headers, and glibc needing -lgcc-eh), so > even really fast machines(2.4Ghz P4) take an hour to do a cross-build > from scratch. Actually what GCC needs to know are the following: 1. What will the signal strucutre look alike on the target system. In esp.: What does the kernel think? What does the glibc think? 2. Do we do TLS? 3. Do we do linuxthreads or nptl? glibc just wants: 1. Say hello to libgcc_s 2. Does the compiler support TLS? And then don't forget that libgcc_s wants: 1. Say hello to C++, in a way requiring libc functions for exception handling. With a "tad bit" of work the double compilation can be avoided for the glibc. You will have to build a GCC with static libgcc first and you will only need the second gcc build cycle to get a dynamic libgcc_s as well as C++, since C++ makes a shared libgcc mandatory. The whole double build could be avoided if: 1. It would be possible to build libgcc for itself without rebuilding the whole compiler. 2. It would be possible to build first the C compiler and then just the C++ compiler. 2. The information required by glibc could be provided statically to it. All of the above are basically problems of the "configure" system - which isn't pretty.