This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Several puzzles about gcc top level makefile
- From: Ian Lance Taylor <iant at google dot com>
- To: "Cheng bin" <amker dot cheng at gmail dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Fri, 28 Nov 2008 11:09:15 -0800
- Subject: Re: Several puzzles about gcc top level makefile
- References: <e8b251c80811271721y322c4c99nd0d9397ebf190374@mail.gmail.com>
"Cheng bin" <amker.cheng@gmail.com> writes:
> 1 : At the end of that makefile , There is a section noted as
> "Regenerating top level configury".
> It is clear what it do, but for what? Where is this piece of
> code used in building procedure?
Those pieces of code are used by developers if and when they change
the original source files Makefile.tpl, configure.ac, etc.
> 2 : At lines around 462, There is a variable named "RECURSE_FLAGS", I
> also puzzled
> about its usage. It says that "When doing recursive invocations
> of the top-level Makefile,
> we don't want the outer make to evaluate them, so we pass these
> variables down
> unchanged. " Does it mean we will recall the top level makefile?
> if so, Is "RECURSE_FLAGS" have any relations with the first
> question. Maybe both
> "Regenerating top level configury" and "RECURSE_FLAGS" is used
> to compile gcc
> several times in bootstrap.
> Here I need a confirmation.
If you look at the uses of RECURSE_FLAGS_TO_PASS you will see the
cases where the top-level Makefile is reused in a recursive call to
make.
> 3 : For the cross compiler, I configured and compiled gcc twice, once
> with just language C
> supported, once with languages C/C++ supported. I compared the
> two top level makefile
> generated by configure and found the difference is that
> libiberty and libstdc++-v3 is
> compiled for target at the second time. So here is the question:
> libstdc++v3 is compiled
> for target as the c++ runtime library, but what libiberty for? I
> can only infer that libstdc++v3
> needs it(otherwise why the first time which only supports c
> language do not have it
> compiled?). Unfortunately, I did not find any code in
> libstdc++-v3 which calls functions
> in libiberty.
libstdc++-v3 uses the C++ demangler from libiberty.
Ian