This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]