Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: Kumba <kumba@gentoo.org>
To: linux-mips@linux-mips.org
Subject: Re: Trouble compiling MIPS cross-compiler
Date: Sun, 18 Jan 2004 00:36:31 -0500	[thread overview]
Message-ID: <400A1B5F.6010307@gentoo.org> (raw)
In-Reply-To: <200401181510.35686@korath>

Adam Nielsen wrote:

> I was just following the linux-mips.org FAQ for building a cross compiler.  
> The errors were something to do with missing headers (pthread.h among others) 
> so I tried configuring gcc with --disable-threads as suggested in a post 
> Google found, and so far that seems to be working...except just as I wrote 
> that it came up with this:
> 
> /usr/mips-linux/bin/ld: cannot open crti.o: No such file or directory
> 
> Now I see why it says on the FAQ that building a cross compiler has always 
> been the hardest step - it's certainly a lot harder than you'd expect (at 
> least for a cross-compiler newbie like me ;-))  I was thinking it would be a 
> simple matter of compiling a few programs in a certain order and that'd be 
> it, but it seems that there are huge differences between versions - the 
> instructions use ecgs-1.1.2 and binutils-2.13.2.1, but to compile linux-2.6.0 
> you need newer than ecgs-1.1.2, but using gcc-3.x means upgrading to 
> binutils-2.14, but then when you've done that gcc-3.x won't compile so you 
> try gcc-2.95.3 instead, but that means you have to go back to 
> binutils-2.13.2.1 but then gcc-2.95.3 is still too old to compile the kernel, 
> so you *need* gcc-3.x but that won't compile...grrr!!! ;-)

I can't guarantee the below will work for you, but it has produced a 
cross-compiler on my sparc64 machine (I now use an i686->mips 
cross-compiler), but the instructions should be easily adaptable.

The commands assume you are building in a separate build directory in 
the source tree (i.e. glibc-x.y.z/buildhere/).

I'd recommend the following:
binutils-2.14.90.0.7 (or you can try the latest .8 release, it has some 
more mips fixes in it)
glibc-2.3.2 (or 2.3.1)
gcc-3.3.2

CVS snaps of latest gcc/glibc/binutils may also work as well.


-------------------

# ${myARCH}: Target Architecture
# ${myHOST}: Build Architecture
# ${myDEST}: Install location
# ${myXTRA}: Arch-specific flags to build glibc with


export myARCH=mips-unknown-linux-gnu
export myHOST=sparc-unknown-linux-gnu
export myDEST=/home/crossdev/mips
export myXTRA="-mips3 -mabi=32"

--- binutils ---
../configure \
	--target=${myARCH} --host=${myHOST} \
	--prefix=${myDEST} --enable-shared \
	--enable-64-bit-bfd \
&& make && make install


--- kernel headers ---
cd ${myDEST}
cp -r /usr/include/* ${myDEST}/include/
rm -Rf ${myDEST}/include/linux
rm -Rf ${myDEST}/include/asm*
cp -r /usr/src/linux/include/linux ${myDEST}/include
cp -r /usr/src/linux/include/asm-$(echo ${myARCH} | cut -d- -f1) 
${myDEST}/include
cp -r /usr/src/linux/include/asm-generic ${myDEST}/include
ln -s ${myDEST}/include/asm-$(echo ${myARCH} | cut -d- -f1) 
${myDEST}/include/asm


--- gcc-bootstrap ---
../configure \
	--prefix=${myDEST} --host=${myHOST} \
	--target=${myARCH} --with-newlib \
	--disable-shared --disable-threads \
	--enable-languages=c --disable-multilib \
	--without-headers \
&& make && make install


--- glibc ---
CC="${myARCH}-gcc" CFLAGS="-O2 ${myXTRA}" \
	../configure \
		--prefix=${myDEST} --host=${myARCH} \
		--build=${myHOST} --without-tls \
		--without-__thread \
		--enable-add-ons=linuxthreads \
		--enable-kernel=2.4.0 --with-gd=no \
		--without-cvs --disable-profile \
		--with-headers="${myDEST}/include" \
	&& make && make install


--- gcc-full ---
../configure \
	--prefix=${myDEST} --target=${myARCH} \
	--host=${myHOST} --disable-multilib \
	--enable-shared --enable-languages="c,c++,ada,f77,objc" \
	--enable-nls --without-included-gettext \
	--with-system-zlib --enable-threads=posix \
	--enable-long-long --disable-checking \
	--enable-cstdio=stdio \
	--enable-clocale=generic \
	--enable-__cxa_atexit \
	--enable-version-specific-runtime-libs \
	--with-local-prefix=${prefix}/local \
	--with-libs="${myDEST}/lib" \
	--with-headers="${myDEST}/${myARCH}/include" \
&& make && make install



--Kumba

-- 
"Such is oft the course of deeds that move the wheels of the world: 
small hands do them because they must, while the eyes of the great are 
elsewhere."  --Elrond

  parent reply	other threads:[~2004-01-18  5:34 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-17  7:11 Trouble compiling MIPS cross-compiler Adam Nielsen
2004-01-17  7:36 ` Adam Nielsen
2004-01-17 16:27   ` Thiemo Seufer
2004-01-17 16:35     ` Ralf Baechle
2004-01-17 16:33   ` Ralf Baechle
2004-01-18  1:19     ` Adam Nielsen
2004-01-18  1:54       ` Adam Nielsen
2004-01-18  3:46         ` Ralf Baechle
2004-01-18  4:14       ` Eric Christopher
2004-01-18  5:10         ` Adam Nielsen
2004-01-18  5:31           ` Eric Christopher
2004-01-18  5:36           ` Kumba [this message]
2004-01-18  6:46             ` Adam Nielsen
2004-01-18  6:56               ` Eric Christopher
2004-01-18  7:28                 ` Thiemo Seufer
2004-01-18  7:35                   ` Unscribe this maillist ??(zhufeng)
2004-01-18  7:35                     ` ??(zhufeng)
2004-01-18 19:41                   ` Trouble compiling MIPS cross-compiler Eric Christopher
2004-01-18  7:18               ` Kumba
2004-01-18  7:17                 ` Eric Christopher
2004-01-18  8:04                 ` Adam Nielsen
2004-01-18  8:13                   ` Kumba
2004-01-18 10:05                   ` Geert Uytterhoeven
2004-01-22  2:32             ` Solving the cross-compiler issue (Was: Trouble compiling MIPS cross-compiler) Nathan Field
2004-01-22 20:12               ` Daniel Jacobowitz
2004-01-22 20:32               ` Kumba

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=400A1B5F.6010307@gentoo.org \
    --to=kumba@gentoo.org \
    --cc=linux-mips@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox