This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [Mingw-users] mingw canadian cross for gcc3.1
- From: Kai Ruottu <kai dot ruottu at luukku dot com>
- To: Rekha Deshmukh <RekhaD at kpit dot com>
- Cc: gcc-bugs at gcc dot gnu dot org, gcc at gcc dot gnu dot org, mingw-users at lists dot sourceforge dot net
- Date: Mon, 06 May 2002 22:54:37 +0300
- Subject: Re: [Mingw-users] mingw canadian cross for gcc3.1
- Organization: MTV3i Internet, Finland
- References: <69595093233BB547BB70CF5E492B63F2295FCD@sohm.kpit.com>
Rekha Deshmukh wrote:
> I am building a canadian cross compiler for gcc-3.1 using mingw runtime 2.0-20020412 and w32api-1.3.
> I have successfully built the first compiler i.e build-to-host (linux to mingw) compiler. The first
> is built with gcc-3.0.3. I have a already built second compiler i.e build-to-target (linux to sh)
> compiler with gcc-3.1.
> While building the final compiler (mingw to sh) I am getting the following error in gcc make-
>
> make[1]: Entering directory `/home/kpit/mingwsh-elfbld3.1/build-gcc-3.1-20020429/gcc'
> make[1]: *** No rule to make target `../i686-pc-linux-gnu/libiberty/libiberty.a', needed by >`gengenrtl'. Stop.
> make[1]: Leaving directory `/home/kpit/mingwsh-elfbld3.1/build-gcc-3.1-20020429/gcc'
> make: *** [all-gcc] Error 2
>
> Please guide me on this.
Your '--build=' probably used a 'i686-linux-gnu' (the 'alias'-name), not 'i686-pc-linux-gnu'
(the generated 'canonical'-name), so you now don't have a 'i686-pc-linux-gnu/libiberty' subdir
in your '/home/kpit/mingwsh-elfbld3.1/build-gcc-3.1-20020429' build-directory. But have a
'i686-pc-linux-gnu' subdir there...
The 'gengenrtl' is a program aimed to be run on the build-system and it needs some function(s)
from 'libiberty'. Probably your native GCC has a suitable 'libiberty.a', but building one more
during the Canadian Cross doesn't seem to hurt... Anyway the 'gcc/Makefile' has this 'need' and
with the wrong subdir name in it. Just search for the '../i686-pc-linux-gnu/libiberty/libiberty.a'
in the 'gcc/Makefile' and edit the '-pc' away. Somewhere is a bug which caused this, so if you
have some extra time, please try to hunt this 'feature' -- it has remained as such for me,
editing the '-pc' away has just been much easier this far for me...
One thing more in this 'feature' is that a 'make' will be needed in order to create the
'libiberty.a' for the build-system, a 'make all-gcc' doesn't create it... So be prepared to
wait until the library is done and the gengenrtl linked and run, and then press Control-C or
something and then continue with 'make all-gcc', unless you want all those
'm2/m3e/m4/m4-single/m4-single-only' and all these for '-ml' too, library variations done once
again... (Done when building the Linux-x-sh-elf? toolchain). Avoiding the 'libgcc.a' rebuilds
may however be hard...
Maybe there is a 'make build-libiberty' or something available for forcing the library build,
haven't checked this yet...
Cheers, Kai