This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Multiple GCC's, keeping them straight
Gary Thomas <gary@mlbassoc.com> writes:
> On Sun, 2003-11-23 at 10:59, Chuck McManis wrote:
> > I'm being challenged by having multiple GCC tool chains around. It occurred
> > to me that some readers might do this because they have multiple
> > architectures to support and could thus offer some advice.
> >
> > What I'm trying to do is to have gcc 3.3.2 both 'native' and 'target' mode
> > in my path. The goal is actually to have gcj (both 'native' and 'target')
> > in my path so that I can compile Java code into my ECOS application.
> >
> > It hasn't been working particularly well, and I seem to get hung up in the
> > binutils (either ld or perhaps gas) picking up the native one when I want
> > the target one. Do folks run multiple chains in the same directory
> > (differentiated by "gcc" vs "i386-elf-gcc" for example) or do they run with
> > multiple paths and set those paths in Makefiles or something?
>
> The most common case (and certainly how I manage it) is to use prefixed
> compilers, e.g. i386-elf-gcc, etc. Trying to differentiate via paths is
> bound to only cause you grief.
The way I do it, and the way that the eCosCentric-built toolchains are
intended to work, is to have each toolchain installed in its own
directory. For example:
[nickg@balti:nickg]$ ls /opt/ecos/gnutools/
arm-elf/ h8300-elf-old/ m68k-elf/ mn10300-elf/ sh-elf/
h8300-elf/ i386-elf/ mipsisa32-elf/ powerpc-eabi/ v850-elf/
[nickg@balti:nickg]$
I then add these directories to my PATH:
[nickg@balti:nickg]$ echo $PATH
/opt/ecos/gnutools/m68k-elf/bin:/opt/ecos/gnutools/h8300-elf/bin:/opt/ecos/gnutools/mipsisa32-elf/bin:/opt/ecos/gnutools/sh-elf/bin:/opt/ecos/gnutools/powerpc-eabi/bin:/opt/ecos/gnutools/arm-elf/bin:/opt/ecos/gnutools/i386-elf/bin:/local/tools/sid/bin:/home/nickg/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/enlightenment/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome2/bin:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/jre/bin:/opt/gnome/bin:.
[nickg@balti:nickg]$
Usually I only add the toolchains I am currently using.
The binaries are all named i386-elf-gcc, mipsisa32-elf-gdb etc. and
are able to pick up the correct linker or whatever from their own
directory.
The important thing to do is to give each toolchain a separate
--prefix when configuring. Don't try to install them all in the same
place.
--
Nick Garnett eCos Kernel Architect
http://www.ecoscentric.com The eCos and RedBoot experts
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss