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/
|