Hi Groups:
Right now I am studying the procedure of building gcc(mipsel cross
compiler), so I look into the makefiles generated by configure
procedure.
This message is about the top level makefile, I got most of it (It's
some kind of well structured) except several puzzles as following
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?
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.
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.
Following is the arguments I used to configure makefile two times, if it useful.
First time (for C):
/cygdrive/e/work/buildroot/buildroot/toolchain_build_mipsel_nofpu/gcc-3.4.2/configure
--prefix=/cygdrive/e/work/buildroot/buildroot/build_mipsel_nofpu/staging_dir
--build=i386-pc-linux-gnu --host=i386-pc-linux-gnu
--target=mipsel-linux-uclibc --enable-languages=c
--with-sysroot=/cygdrive/e/work/buildroot/buildroot/toolchain_build_mipsel_nofpu/uClibc_dev/
--disable-__cxa_atexit --enable-target-optspace --with-gnu-ld
--disable-shared --disable-nls --enable-threads --enable-multilib
--with-float=soft
-----------------------------------------------------------------------------------------------------------
Second time (for C&C++):
/cygdrive/e/work/buildroot/buildroot/toolchain_build_mipsel_nofpu/gcc-3.4.2/configure
--prefix=/cygdrive/e/work/buildroot/buildroot/build_mipsel_nofpu/staging_dir
--build=i386-pc-linux-gnu --host=i386-pc-linux-gnu
--target=mipsel-linux-uclibc --enable-languages=c
--disable-__cxa_atexit --enable-target-optspace --with-gnu-ld
--enable-shared --disable-nls --enable-threads --enable-multilib
--with-float=soft
-----------------------------------------------------------------------------------------------------------
Thanks is advance and any messages will be appreciated.
Best wishes.