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.

Reply via email to