FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Embedded

 
 
LinkBack Thread Tools
 
Old 12-03-2008, 10:44 AM
"Martin Guy"
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

Hi
I too have been trying to set hard maverick crunch FPU code
generation as the default for a compiler here, and I see some people
here made the same mistake of configuring GCC using
--with-float-abi=softfp
This option does nothing and is silently ignored (well ok, "configure"
sets $with_float_abi but nothing ever inspects that) - you still have
to supply --with-float-abi=softfp at runtime to get hard FP
instructions, obtaining soft float otherwise.

There is currently no way to select softfp Maverick code generation by default.
for GCC 4.3.2, the closest configure options are, as well as
--with-float=softfp and --with-fpu=maverick:

--with-arch=armv4t the build fails when it tries to compile hard FPA
instructions into libgcc,
--with-cpu=ep9312 it compiles armv5t instructions into libgcc
--with-arch=ep9312 the assembler barfs saying that ep9312 is not a
recognised architecture.

There is even one check that looks for --target=ep9312-* and selects
default fpu=Maverick but I very much doubt that works.

This whole area is bit-rotten. I think the 'ep9312' should be
eliminated,or mapped into arm920t+maverick early on, and everything
should work off -m[cf]pu= the same as every other fpu. Unfortunately,
checks for ep9312 are spread through the config scripts and source
like a fungus.

M
 
Old 12-19-2008, 08:32 AM
Jakub Ladman
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

Because of reading this message, i am trying to create toolchain (with
crossdev) for the maverick crunch again.
I made a try with gcc-4.3.2 and 4.1.2, but both failed with this messages:

collect2: ld terminated with signal 8 [Výjimka matematického koprocesoru
(SIGFPE)] during the last stage - compiling C++ compiler.

I have czech localization, so:
Výjimka matematického koprocesoru = FPU exception

What you think about?

Jakub Ladman
Dne Wednesday 03 of December 2008 12:44:34 Martin Guy napsal(a):
> Hi
> I too have been trying to set hard maverick crunch FPU code
> generation as the default for a compiler here, and I see some people
> here made the same mistake of configuring GCC using
> --with-float-abi=softfp
> This option does nothing and is silently ignored (well ok, "configure"
> sets $with_float_abi but nothing ever inspects that) - you still have
> to supply --with-float-abi=softfp at runtime to get hard FP
> instructions, obtaining soft float otherwise.
>
> There is currently no way to select softfp Maverick code generation by
> default. for GCC 4.3.2, the closest configure options are, as well as
> --with-float=softfp and --with-fpu=maverick:
>
> --with-arch=armv4t the build fails when it tries to compile hard FPA
> instructions into libgcc,
> --with-cpu=ep9312 it compiles armv5t instructions into libgcc
> --with-arch=ep9312 the assembler barfs saying that ep9312 is not a
> recognised architecture.
>
> There is even one check that looks for --target=ep9312-* and selects
> default fpu=Maverick but I very much doubt that works.
>
> This whole area is bit-rotten. I think the 'ep9312' should be
> eliminated,or mapped into arm920t+maverick early on, and everything
> should work off -m[cf]pu= the same as every other fpu. Unfortunately,
> checks for ep9312 are spread through the config scripts and source
> like a fungus.
>
> M
 
Old 12-19-2008, 11:46 AM
"Martin Guy"
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

On 12/19/08, Jakub Ladman <ladmanj@volny.cz> wrote:
> Because of reading this message, i am trying to create toolchain (with
> crossdev) for the maverick crunch again.
> I made a try with gcc-4.3.2 and 4.1.2, but both failed with this messages:
>
> collect2: ld terminated with signal 8 [Výjimka matematického koprocesoru
> (SIGFPE)] during the last stage - compiling C++ compiler.
>
> I have czech localization, so:
> Výjimka matematického koprocesoru = FPU exception
>
> What you think about?

I've never had that failure. You need to say exactly what tools you
are using to create the cross toolchain, what exact command lines you
issue, what special lines you have in config files.

Like I say, I failed to find a combination of options that will set
Maverick hardfloat as the default, so I just create a regular ARM
toolchain, then pass
-mcpu=ep9312 -mfpu=maverick -mfloat-abi=softfp
when using it to compile binaries. Yes, it's a pain.

If you want to compile for Maverick FP, check out
martinwguy.co.uk/martin/crunch (published yesterday!) where there is a
set of patches to make gcc-4.3.2 generate working code for Maverick
Crunch. Otherwise GCC producing Maverick instrutions will definitely
output bad code that gives the wrong results - this may be the root
cause of the problem you describe.

Good luck, let us know how it goes.

M
 
Old 12-19-2008, 12:28 PM
Jakub Ladman
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

> Like I say, I failed to find a combination of options that will set
> Maverick hardfloat as the default, so I just create a regular ARM
> toolchain, then pass
> -mcpu=ep9312 -mfpu=maverick -mfloat-abi=softfp
> when using it to compile binaries. Yes, it's a pain.
>


Yes, i know that, but it fails during any standard cross-gcc version of 4.x.x
I tried to generate it via latest crossdev, with

crossdev --g 4.3.2 -t arm-softfloat-linux-gnueabi
crossdev --g 4.1.2 -t arm-softfloat-linux-gnueabi

with native x86 compiler gcc-3.4.6 and gcc-4.1.2

both four combinations ended with the same error message - about the floating
point exception.


I will try your patches.

Unfortunately i have big trouble with compilers not comming from gentoo
crossdev, can't switch compilers with gcc-config and i need this, because i
use many types of arm, not only the cirrus logic one.
(And i do not know how to append independently built compiler to this gentoo
gcc-config system)


Thank You
 
Old 12-19-2008, 12:55 PM
Peter Stuge
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

Jakub Ladman wrote:
> I made a try with gcc-4.3.2 and 4.1.2, but both failed with this
> messages:
>
> collect2: ld terminated with signal 8 [Výjimka matematického
> koprocesoru (SIGFPE)] during the last stage - compiling C++
> compiler.

This looks like you are getting an FPU exception on the build system.

Try installing Gentoo on a few other machines and see if they can
build a working crosscompiler for you.


Jakub Ladman wrote:
> Unfortunately i have big trouble with compilers not comming from
> gentoo crossdev, can't switch compilers with gcc-config and i need
> this, because i use many types of arm, not only the cirrus logic
> one.
> (And i do not know how to append independently built compiler to
> this gentoo gcc-config system)

The most beneficial way for the most people would of course be to
work on crossdev so that it is able to build all of your required
toolchains.

That said, I don't think gcc-config is so complex, you should be able
to reverse engineer it with little to moderate effort.


//Peter
 
Old 12-19-2008, 01:16 PM
Jakub Ladman
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

> > collect2: ld terminated with signal 8 [Výjimka matematického
> > koprocesoru (SIGFPE)] during the last stage - compiling C++
> > compiler.
>
> This looks like you are getting an FPU exception on the build system.

>
> That said, I don't think gcc-config is so complex, you should be able
> to reverse engineer it with little to moderate effort.


I will try it, but my "load average" at work is now somewhere about 2.50 -
3.00.

Jakub Ladman
 
Old 12-19-2008, 02:25 PM
Jakub Ladman
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

Former tests was on AMD single core Athlon in x86 mode.
Now i tested it also on dual core amd64 with completely same result:

collect2: ld terminated with signal 8 [Výjimka matematického koprocesoru
(SIGFPE)]

I will try it now on some intel machine.

Jakub Ladman

Dne Friday 19 of December 2008 14:55:59 Peter Stuge napsal(a):
> Jakub Ladman wrote:
> > I made a try with gcc-4.3.2 and 4.1.2, but both failed with this
> > messages:
> >
> > collect2: ld terminated with signal 8 [Výjimka matematického
> > koprocesoru (SIGFPE)] during the last stage - compiling C++
> > compiler.
>
> This looks like you are getting an FPU exception on the build system.
>
> Try installing Gentoo on a few other machines and see if they can
> build a working crosscompiler for you.
>
> Jakub Ladman wrote:
> > Unfortunately i have big trouble with compilers not comming from
> > gentoo crossdev, can't switch compilers with gcc-config and i need
> > this, because i use many types of arm, not only the cirrus logic
> > one.
> > (And i do not know how to append independently built compiler to
> > this gentoo gcc-config system)
>
> The most beneficial way for the most people would of course be to
> work on crossdev so that it is able to build all of your required
> toolchains.
>
> That said, I don't think gcc-config is so complex, you should be able
> to reverse engineer it with little to moderate effort.
>
>
> //Peter
 
Old 12-19-2008, 03:44 PM
Jakub Ladman
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

Even on intel machine it fails with the same message (FPU exception)

Martin, do you have also built x86 hosted crosscompiler?
Or do someone know, how to add the Martins patches to crossdev?

Jakub Ladman

Dne Friday 19 of December 2008 16:25:06 Jakub Ladman napsal(a):
> Former tests was on AMD single core Athlon in x86 mode.
> Now i tested it also on dual core amd64 with completely same result:
>
> collect2: ld terminated with signal 8 [Výjimka matematického koprocesoru
> (SIGFPE)]
>
> I will try it now on some intel machine.
>
> Jakub Ladman
>
> Dne Friday 19 of December 2008 14:55:59 Peter Stuge napsal(a):
> > Jakub Ladman wrote:
> > > I made a try with gcc-4.3.2 and 4.1.2, but both failed with this
> > > messages:
> > >
> > > collect2: ld terminated with signal 8 [Výjimka matematického
> > > koprocesoru (SIGFPE)] during the last stage - compiling C++
> > > compiler.
> >
> > This looks like you are getting an FPU exception on the build system.
> >
> > Try installing Gentoo on a few other machines and see if they can
> > build a working crosscompiler for you.
> >
> > Jakub Ladman wrote:
> > > Unfortunately i have big trouble with compilers not comming from
> > > gentoo crossdev, can't switch compilers with gcc-config and i need
> > > this, because i use many types of arm, not only the cirrus logic
> > > one.
> > > (And i do not know how to append independently built compiler to
> > > this gentoo gcc-config system)
> >
> > The most beneficial way for the most people would of course be to
> > work on crossdev so that it is able to build all of your required
> > toolchains.
> >
> > That said, I don't think gcc-config is so complex, you should be able
> > to reverse engineer it with little to moderate effort.
> >
> >
> > //Peter
 
Old 12-21-2008, 12:01 AM
"Martin Guy"
 
Default gcc configure for ARM ep93xx: --with-float-abi= does not exist

On 12/19/08, Jakub Ladman <ladmanj@volny.cz> wrote:
> Even on intel machine it fails with the same message (FPU exception)
>
> Martin, do you have also built x86 hosted crosscompiler?

There are some old ARM x-compilers at freaknet.org/martin/crosstool
but I did that before working on the Maverick patches so they do not
include it. Yes, I should do that work again and produce more recent
x-compilers with the crunch patches.
If you would like me to do that, please write privately and I'll tell
you how cheap I am for open-source work |-)

M
 

Thread Tools




All times are GMT. The time now is 01:47 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org