On Sun, Dec 18, 2005 at 08:28:13AM -0500, Richard Kenner wrote:
>     Because the whole point of this process is to remove all the bootstrap
>     logic from the gcc subdirectory, which is exactly where it doesn't
>     belong.   This will let us take major steps forward in our build process
> 
> How does *removing* something take major steps forward?  The "whole
> bootstrap logic" you are talking about is 30 lines, if that.

This shows pretty clearly that you haven't looked at it - the
basic bootstrap targets are about 10% of gcc/Makefile.in, which is
rather more than 30 lines.

> If we want a better process (and I certainly agree we do with respect to
> libraries), indeed adding a top-level bootstrap process is appropriate.  By
> why delete what's there and works fine?  "If it ain't broke, don't fix it!"
> is very prudent engineering and very much applies here.

It's not prudent engineering when you suddenly discover you have to
maintain two fragile ways of doing something instead of just one.

The GCC build process is ridiculously rich and has a ridiculous number
of vaguely "user-tunable" knobs, e.g. about six ways to specify what
assembler the compiler is going to use.  The more complicated your
needs, the less likely they are to continue to work.  ./configure &&
make bootstrap is going to continue working, presumably forever.

> It's important to keep in mind that many of us, especially those supporting
> customers that use GCC, have to maintain many build directories, for multiple
> targets and versions of GCC.  Having vastly different procedures to use in
> different directories is a real pain.  At a minimum, there needs to be some
> compatibility mode to support the older procedures.

Any such build script - we've got plenty of our own here, thanks -
grows little widgets over time to handle particular configurations and
particular versions of GCC, in my experience.  Paolo's already
explained how to handle both old and new versions of bootstrapping. 
We're investigating losing the configure option.  But if you insist
that you must continue to run 'make' in the gcc subdirectory, you won't
get a bootstrap, just a rebuild of the current stage.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

Reply via email to