This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC 4.1: Buildable on GHz machines only?



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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]