ts-7000
[Top] [All Lists]

[ts-7000] Re: crosstool naming conventions

To:
Subject: [ts-7000] Re: crosstool naming conventions
From: "tachion0niohcat" <>
Date: Fri, 29 Jan 2010 15:04:22 -0000
The --host flag indicates the system that is used to *run* the compiler on, the 
--target flag indicates the system for which code will be generated, the 
--build flag is usually guessed correctly, which is the system that is creating 
the compiler.

Some info comes from ./configure --help

This compiler appears to be setup for eabi, but not using the FPU (it is using 
"soft") by default. To use the FPU in a program that also calls code compiled 
with "soft float" you need to use the "-mfpu=softfp" flag.

You can tell if the resulting library contains FPU calls by looking at the 
assembly. Specifically, executing:

objdump -d MyObject.o  | gawk  '/ \tcf/' | less

(note that on a non arm machine, objdump should be arm-linux-gnueabi-objdump )

This will look for assembly instructions starting with "cf" which are all 
Maverick instructions.

I do think that if you want to use the FPU you will need to patch gcc and 
binutils to get something that will actually compile and not crash.

Best of luck!

--- In  "oberg_at_isy" <> wrote:
>
> Thank you all for your replies. I have looked into the compiler info from 
> Martin Guy which looks really interesting.
>
> I have come to the conclusion that if the core system is softfloat-gnueabi i 
> will still be able to compile code that uses maverick crunch for it's own 
> floating point calculations as long as I'm aware of the bugs. Is it true that 
> this code may also be linked to softfloat gcc libs as long as they are 
> gnueabi?
>
> I have checked the config flags for my "armv4tl-xxx" toolchain as you can see 
> below. I can see the softfloat as you mentioned and the "--host" seems to be 
> armv4tl but this is where i get  lost. I have tried reading the gcc-manual, 
> especially the part about configure 
> "http://gcc.gnu.org/install/configure.html"; but i cannot find any  references 
> to "--host" and the documentation for "--target" is three lines. Am i looking 
> in the right place?
>
> Best regards
> /Per Öberg
>
> ------------------------------------------------------
> My gcc configuration
> ------------------------------------------------------
>
> Using built-in specs.
> Target: armv4tl-softfloat-linux-gnueabi
>
> Configured with:
>
> /var/tmp/portage/sys-devel/gcc-4.3.4/work/gcc-4.3.4/configure --prefix=/usr 
> --bindir=/usr/armv4tl-softfloat-linux-gnueabi/gcc-bin/4.3.4 
> --includedir=/usr/lib/gcc/armv4tl-softfloat-linux-gnueabi/4.3.4/include 
> --datadir=/usr/share/gcc-data/armv4tl-softfloat-linux-gnueabi/4.3.4 
> --mandir=/usr/share/gcc-data/armv4tl-softfloat-linux-gnueabi/4.3.4/man 
> --infodir=/usr/share/gcc-data/armv4tl-softfloat-linux-gnueabi/4.3.4/info 
> --with-gxx-include-dir=/usr/lib/gcc/armv4tl 
> -softfloat-linux-gnueabi/4.3.4/include/g++-v4 
> --host=armv4tl-softfloat-linux-gnueabi 
> --build=armv4tl-softfloat-linux-gnueabi --disable-altivec 
> --disable-fixed-point --with-float=soft --enable-nls 
> --without-included-gettext --with-system-zlib --disable-checking 
> --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap 
> --disable-libssp --enable-libgomp --disable-libgcj 
> --enable-languages=c,c++,treelang,fortran --enable-shared 
> --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu 
> --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.3.4 p1.0, 
> pie-10.1.5'
>
> Thread model: posix
>
> gcc version 4.3.4 (Gentoo 4.3.4 p1.0, pie-10.1.5)
>
>
> --- In  "tachion0niohcat" <holtrop@> wrote:
> >
> > I think you need to dig a little into the documentation for gcc. GNU does a 
> > pretty good job documenting everything, if you are willing to put up the 
> > patience to read it through.
> >
> > The: arm-unknown-linux-gnu   part comes from the target specifications that 
> > were past to the configure script when the compiler is build.
> >
> > The first term is the processor, the second the "vendor name", which is 
> > arbitrary, the third the OS, the last one specifies some detail about the 
> > OS. All possible combinations are listed here: 
> > http://gcc.gnu.org/install/specific.html, all the other combinations are 
> > variations on this.
> >
> > I have not seen "armv4tl" as a specific compiler target. One would usually 
> > specify this on the command line with -tune or -arch or -mcpu. The same 
> > with endianness. However it is possible to configure the compiler so that a 
> > specific subset of these options are default, which may be the case here. 
> > If you type "gcc -v" you should see the exact configure options that were 
> > given to the compiler you are using. You can learn a lot from that.
> >
> > Note that the floating point on the EP93xx processors is a Maverick Crunch, 
> > for which most versions of gcc are pretty seriously defect, so almost all 
> > use the -mfpu=soft, which means fpu software emulation (not using FPU), 
> > which is slow. Not using that will give you "illegal instruction" errors, 
> > unless you patched gcc.
> >
> > Martin Guy has a lot to say about compilers for the TS7250, see 
> > http://martinwguy.co.uk/martin/ts7250/FPU and 
> > http://martinwguy.co.uk/martin/crunch/
> > His patched compiler works great.
> >
> > 
> >
> >
> > --- In  "oberg_at_isy" <oberg@> wrote:
> > >
> > > Hi everyone!
> > >
> > > I'm trying out different toolchains for cross-compilation to my TS7250 
> > > board. I think i have a basic understanding of the naming conventions for 
> > > compilers but there are still some things i cannot figure out.
> > >
> > > Example:
> > >
> > > A toolchain named "arm-unknown-linux-gnu" compiles generic code for the 
> > > arm processor and uses glib or something like that.
> > >
> > > In gentoo, which i use, there are however more specific names like 
> > > "armv4tl-unknown-linux-gnueabi" which indicates that the compiler 
> > > generates  armv4t compliant code which uses the new eabi instead of the 
> > > old.
> > >
> > > A couple of questions about this
> > >
> > > 1) It is stated somewhere that armv4teb means big endian for armv4t. Is 
> > > armv4tl little endian then?
> > >
> > > 2) Cant a toolchain that is arm-generic compile code for all the arm 
> > > processors, abis, floating point types, as well as endiannesses  given 
> > > the right gcc-flags? It seems unnecessary to specify to much in the 
> > > toolchain name so what am i missing?
> > >
> > > 3) Maybe a gentoo specific question but i am using gentoo crossdev to 
> > > create a crosstoolchain and the documentation for the available choises 
> > > "arm, armeb, armv4tl, ..." is lacking. Is there any place where all the 
> > > theoretically possible combinations are listed?
> > >
> > > Best regards
> > > /Per Öberg
> > >
> >
>




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

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/ts-7000/join
    (Yahoo! ID required)

<*> To change settings via email:
    
    

<*> To unsubscribe from this group, send an email to:
    

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU