[ECOS] Recommended gcc version for 1.0?

Gary Thomas gary@mlbassoc.com
Wed Aug 6 18:12:00 GMT 2003


On Wed, 2003-08-06 at 12:00, Nick Garnett wrote:
> Grant Edwards <grante@visi.com> writes:
> 
> > On Wed, Aug 06, 2003 at 04:18:22PM +0100, Nick Garnett wrote:
> > 
> > > > When did big-endian ARM gcc users become second-class citizens?
> > > > I swear that for 2.95, doing a "confgure --target=arm-elf" used
> > > > to work just fine.
> > > 
> > > This was done to keep the number of different versions of the
> > > libraries down.
> > 
> > Here is where I get confused.
> > 
> > What libraries?
> > 
> > When I build 2.95.2 for use with eCos, the only library that is
> > built is libgcc.a:
> > 
> > $ rpm -q -l arm-elf-gcc | grep '\.a'
> > /usr/local/lib/gcc-lib/arm-elf/2.95.2/be/libgcc.a
> > /usr/local/lib/gcc-lib/arm-elf/2.95.2/be/nofmult/libgcc.a
> > /usr/local/lib/gcc-lib/arm-elf/2.95.2/libgcc.a
> > /usr/local/lib/gcc-lib/arm-elf/2.95.2/nofmult/libgcc.a
> > 
> > Eliminating big-endian would cut that from four files to two.
> > 
> > There are now 21 different libgcc.a files in my 3.2.1
> > toolchain. Big endian support constitutes 8 of those files.
> > 
> 
> Well, in the toolchain I have, I see under lib/gcc-lib/arm-elf/3.2.1:
> 
> ./thumb/interwork/xscale/libgcc.a
> ./thumb/interwork/libgcc.a
> ./thumb/interwork/armv4t/libgcc.a
> ./thumb/libgcc.a
> ./thumb/xscale/libgcc.a
> ./thumb/armv4t/libgcc.a
> ./libgcc.a
> ./interwork/xscale/libgcc.a
> ./interwork/libgcc.a
> ./interwork/armv4t/libgcc.a
> ./xscale/libgcc.a
> ./strongarm/libgcc.a
> ./armv4t/libgcc.a
> 
> With associated crt0.o etc for each. BE would double that to 26.

It's actually much worse than that since the build actually builds lots
of support libraries (true they're not much used by eCos, but they
get built which takes time and space nonetheless).  In the toolchain
I built for myself, with all of the possibilities included, I get:
        /opt/mlb/xtools/arm-elf/lib/armv4t/libc.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/libg.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/libm.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/armv4t/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/libc.a
        /opt/mlb/xtools/arm-elf/lib/libg.a
        /opt/mlb/xtools/arm-elf/lib/libiberty.a
        /opt/mlb/xtools/arm-elf/lib/libm.a
        /opt/mlb/xtools/arm-elf/lib/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/strongarm/libc.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/libg.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/libm.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/strongarm/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/xscale/libc.a
        /opt/mlb/xtools/arm-elf/lib/xscale/libg.a
        /opt/mlb/xtools/arm-elf/lib/xscale/libm.a
        /opt/mlb/xtools/arm-elf/lib/xscale/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/xscale/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/xscale/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/xscale/libsupc++.la
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/armv4t/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/strongarm/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/xscale/libgcc.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/armv4t/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/strongarm/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/xscale/be/libsupc++.la
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/armv4t/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/strongarm/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/xscale/be/libgcc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libg.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libm.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/armv4t/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/libc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/libg.a
        /opt/mlb/xtools/arm-elf/lib/interwork/libm.a
        /opt/mlb/xtools/arm-elf/lib/interwork/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libc.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libg.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libm.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/interwork/xscale/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/armv4t/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/armv4t/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/interwork/xscale/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/be/libsupc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libc.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libg.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libm.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libstdc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libstdc++.la
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libsupc++.a
        /opt/mlb/xtools/arm-elf/lib/thumb/xscale/libsupc++.la
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/interwork/armv4t/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/interwork/armv4t/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/interwork/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/interwork/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/interwork/xscale/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/interwork/xscale/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/armv4t/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/armv4t/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/interwork/armv4t/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/interwork/armv4t/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/interwork/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/interwork/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/interwork/xscale/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/interwork/xscale/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/xscale/be/libgcc.a
        /opt/mlb/xtools/lib/gcc-lib/arm-elf/3.2.2/thumb/xscale/libgcc.a

A total of 209 (I think some are links).

On my build box (2GHz P4, 512M RAM, fast disks), this takes *hours*!
It's no wonder that eCosCentric chose to leave them "as an exercise
for the user"

-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list