[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: building a mipsel-linux cross-compiler



On Mon, Feb 18, 2002 at 11:51:34AM +0100, Geert Uytterhoeven wrote:

> I'm trying to build a cross-compiler for mipsel-linux on an ia32 box, using the
> gcc-2.95.4 sources from Debian unstable. I build lots of cross-compilers in the
> past (for m68k-linux, powerpc-linux, mipsel-linux, m68k-amigaos on
> Linux/{m68k,PPC,ia32) or Solaris/SPARC boxes), but this time I'm really stuck.

Are there reasons that the toolchain-source package is not suitable for 
you?  The gcc-avr source package shows an example of how to make use of 
this (and has just gotten a boost during this weekend's bug-squashing 
party).

toolchain-source provides a cross-build toolchain of binutils 
2.11.92.0.12.3 and gcc 3.0.3.

Steve Langasek
postmodern programmer

> Binutils is the easy part:

> % apt-get source binutils
> % cd binutils-2.11.92.0.12.3
> % debian/rules setup
> % cd ..
> % mkdir binutils-mipsel-linux
> % cd binutils-mipsel-linux
> % ../binutils-2.11.92.0.12.3/build-tree/binutils-2.11.92.0.12.3/configure --target=mipsel-linux
> % make
> % make install (as root)
> 
> Glibc includes:
> 
> % dpkg -x libc6-dev_2.2.5-3_mipsel.deb libc6
> % cp -a libc6/usr/include /usr/local/mipsel-linux
> 
> Gcc is the though part:
> 
> % apt-get source gcc-2.95
> % cd gcc-2.95-2.95.4.ds8
> % debian/rules control
> % cd ..
> % patch internals.texi (see patch below)
> % mkdir gcc-mipsel-linux
> % cd gcc-mipsel-linux
> % ../gcc-2.95-2.95.4.ds8/src-native/configure --target=mipsel-linux
> % make LANGUAGES=c
> 
> First problem:
> 
> | Configuring in mipsel-linux/libiberty
> | configure: error: installation or configuration problem: C compiler cannot
> | create executables.
> 
> Looking at the Makefile, it seems we have a `make cross' now. Try to use that:
> 
> % make cross
> 
> Ah, we need some more includes. Why aren't these found?
> 
> % cp -a /usr/local/mipsel-linux/include/* mipsel-linux/libio/
> % rm mipsel-linux/libio/libio.h
> % make cross
> 
> Conflicting declaration between internal and external includes
> 
> % patch mathcalls.h (see patch below)
> % make cross
> 
> | mipsel-linux/libiberty: No targets specified and no makefile found.
> 
> Libiberty got configured in gcc-mipsel-linux/libiberty instead of
> gcc-mipsel-linux/mipsel-linux/libiberty??
> 
> % mv mipsel-linux/libiberty mipsel-linux/libiberty.orig
> % mv libiberty mipsel-linux  
> % ( cd mipsel-linux/libiberty; ../../../gcc-2.95-2.95.4.ds8/src-native/libiberty/configure --target=mipsel-linux)
> % make cross
> 
> Conflicting declaration between internal and external includes
> 
> % patch string.h (see patch below)
> % make cross
> 
> Cross-compiler built! Let's retry with the good old `make LANGUAGES=c':
> 
> % make LANGUAGES=c
> 
> No changes, let's install (as root)
> 
> % make LANGUAGES=c install
> 
> | gcc: ../libiberty/libiberty.a: No such file or directory
> 
> Ah, it wants the libiberty.a from gcc-mipsel-linux/mipsel-linux/libiberty
> instead of gcc-mipsel-linux/libiberty
> 
> % ln -s mipsel-linux/libiberty
> % make LANGUAGES=c install
> 
> | configure: error: installation or configuration problem: C compiler cannot
> | create executables.
> | make[1]: *** [p/rts/Makefile] Error 1
> | make[1]: Leaving directory `/home/geert/src/gcc-mipsel-linux/gcc'
> | make: *** [install-gcc] Error 2
> 
> And then I'm really stuck :-( What happened? Building a cross-compiler used to
> be very simple (configure --target=xxx-linux; make;make install)!
> 
> Anyone with a clue? Thanks!
> 
> --- gcc-2.95-2.95.4.ds8/src-native/gcc/p/doc/en/internals.texi.orig	Sat Dec 22 12:04:47 2001
> +++ gcc-2.95-2.95.4.ds8/src-native/gcc/p/doc/en/internals.texi	Sun Feb 17 14:54:17 2002
> @@ -260,7 +260,7 @@
>  ``Syntax diagrams'' are a graphical variant of the Backus-Naur Form.
>  
>  For details about the ``bison'' language, see
> -@ref{,the Bison documentation,,bison,the Bison manual}.  A short overview
> +@ref{the Bison documentation,,bison,the Bison manual}.  A short overview
>  how to pick up some information you might need for programming follows.
>  
>  Suppose you have forgotten how a variable is declared in Pascal.  After some
> --- gcc-mipse-linux/mipsel-linux/libio/bits/mathcalls.h.orig	Tue Feb  5 02:48:38 2002
> +++ gcc-mipse-linux/mipsel-linux/libio/bits/mathcalls.h	Mon Feb 18 11:18:17 2002
> @@ -147,7 +147,7 @@
>  
>  #if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
>  /* Return `sqrt(X*X + Y*Y)'.  */
> -__MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
> +//__MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
>  #endif
>  
>  #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
> --- gcc-mipse-linux/mipsel-linux/libio/string.h.orig	Tue Feb  5 02:49:19 2002
> +++ gcc-mipse-linux/mipsel-linux/libio/string.h	Mon Feb 18 11:26:58 2002
> @@ -269,8 +269,8 @@
>  # endif
>  
>  /* Compare S1 and S2, ignoring case.  */
> -extern int strcasecmp (__const char *__s1, __const char *__s2)
> -     __THROW __attribute_pure__;
> +//extern int strcasecmp (__const char *__s1, __const char *__s2)
> +//     __THROW __attribute_pure__;
>  
>  /* Compare no more than N chars of S1 and S2, ignoring case.  */
>  extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
> 
> Gr{oetje,eeting}s,
> 
> 						Geert
> 
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
> 
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> 							    -- Linus Torvalds
> 
> 
> -- 
> To UNSUBSCRIBE, email to debian-mips-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Attachment: pgpl1Lk018_Ol.pgp
Description: PGP signature


Reply to: