Linux MIPS Architecture development
 help / color / mirror / Atom feed
* gcc 3.0 / glibc 2.2.3 cross-toolchain
@ 2001-08-08 23:42 Bradley D. LaRonde
  2001-08-08 23:42 ` Bradley D. LaRonde
  2001-08-08 23:45 ` Daniel Jacobowitz
  0 siblings, 2 replies; 11+ messages in thread
From: Bradley D. LaRonde @ 2001-08-08 23:42 UTC (permalink / raw)
  To: linux-mips

I have spent quite a bit of time trying to get a gcc 3.0 / glibc 2.2.3
cross-toolchain working.  I am not a Toolchain Builder, but I really wanted
to try this combo and I don't see any way around building it myself.

I've had some success.  Everything seems to build fine.  However, when I try
to run a simple "hello world" dynamically linked with glibc, I get this:

    <myprogram>: error while loading shared libraries: failed to map
    segment from shared object: cannot load shared object file: Invalid
argument

I think it is trying to load libc.so.6, which is in my root in /lib/,
symlinked to libc-2.2.3.so, and so is ld.so.1, symlinked to ld-2.2.3.so.

I feel like I am pretty close, but I am starting to get discouraged and
could really use some help.  I really am clueless about what
should/shouldn't work.  I'm trying to do this based on bits and pieces of
information that I've collected from countless sources.  I have heard that
gcc 3.0 isn't really "working", but I still want to try.

Here is what I've used:

   * binutils-2.11.90.0.25.tar.gz (extracted from H. J. Lu's
     srpm on oss.sgi.com; I've tried others also)
   * gcc-3.0.tar.gz (released version - no patches)
   * glibc-linuxthreads-2.2.3.tar.gz (released version - no
     patches; glibc didn't want to configure without this)
   * glibc-2.2.3.tar.gz (released version)

plus a tiny patch to glibc that looks like:

--- libc-04052001/sysdeps/mips/mipsel/rtld-parms Sat Jul 12 18:26:15 1997
+++ libc-04052001-patched/sysdeps/mips/mipsel/rtld-parms Fri Apr  6 09:23:27
2001
@@ -1,3 +1,3 @@
 ifndef rtld-oformat
-rtld-oformat = elf32-littlemips
+rtld-oformat = elf32-tradlittlemips
 endif

I built everything on my i386 Debian 2.2 box as follows:

Build the mipsel cross-binutils

  tar -xzf binutils-2.11.90.0.25.tar.gz
  mkdir mipsel-binutils
  cd mipsel-binutils

  ../binutils-2.11.2/configure --target=mipsel-linux \
    --libdir='${exec_prefix}'/mipsel-linux/i386-linux/lib

  make
  make install
  cd ..

Build the mipsel cross-gcc:

  tar -xzf gcc-3.0.tar.gz
  mkdir mipsel-gcc
  cd mipsel-gcc

  ../gcc-3.0/configure --target=mipsel-linux \
     --enable-languages=c --disable-shared

  make
  make install
  cd ..

Install the kernel headers

  mkdir /usr/local/mipsel-linux/include
  cp -r $LINUX_SRC/include/linux /usr/local/mipsel-linux/include
  cp -r $LINUX_SRC/include/asm-mips /usr/local/mipsel-linux/include/asm

Build glibc:

  tar -xzf glibc-2.2.3
  cd glibc-2.2.3
  patch -p1 -i../elf32-tradlittlemips.diff
  tar -xzf ../glibc-linuxthreads-2.2.3.tar.gz
  cd ..
  mkdir mipsel-glibc
  cd mipsel-glibc

  ../glibc-2.2.3/configure --build=i686-linux --host=mipsel-linux \
    --enable-add-ons --prefix=/usr/local/mipsel-linux

  make
  make install
  cd ..

Thanks.

Regards,
Brad

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2001-08-09  7:11 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-08-08 23:42 gcc 3.0 / glibc 2.2.3 cross-toolchain Bradley D. LaRonde
2001-08-08 23:42 ` Bradley D. LaRonde
2001-08-08 23:45 ` Daniel Jacobowitz
2001-08-08 23:58   ` Bradley D. LaRonde
2001-08-08 23:58     ` Bradley D. LaRonde
2001-08-09  2:44     ` Bradley D. LaRonde
2001-08-09  2:44       ` Bradley D. LaRonde
2001-08-09  3:49       ` Bradley D. LaRonde
2001-08-09  3:49         ` Bradley D. LaRonde
2001-08-09 13:03         ` Arnaud Rolly
2001-08-09  7:11           ` Ilya Volynets

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox