Re: PowerPC compilation flags

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

On Sun, Nov 25, 2018 at 05:36:38PM -0500, Felipe GM wrote:
> >On Sun, Nov 25, 2018 at 02:42:10PM -0500, Felipe GM wrote:
> >>Currently I am developing for a MPC5777 board, with e200z7 cores. Most
> >>of the things are going well, but I am stuck with a problem that is
> >>really annoying me already. I am trying to use floating point operations
> >>on portions of my code, using the embedded hardware support. My
> >>toolchain is GCC 6.3 (powerpc-gcc, although I have tried with 7.3 and
> >>8.2 too), for which I am using the following flags:
> >*GCC 6 is no longer maintained. GCC 8 powerpc*-* does not support SPE 
> >anymore (you need to configure for powerpc*-*spe* instead; you 
> >probably want that for GCC 6 and GCC 7 as well).*
> That is why I tried 7.3 and 8.2! Regarding powerpc-*-spe, do you mean to 
> use a different cross gcc? Or just different compilation flags?

It's easiest if you build for target powerpc-eabispe or whatever you have.
That will default -mspe etc.; and you may not even be able to switch it
on other configurations, at all.

> >>|ASFLAGS_BASE =-g -a32 -mbooke -me500 --fatal-warnings ARCH_FLAGS
> >>=-mpowerpc-gpopt -mfprnd -misel -m32 -mhard-float-mabi=spe -mmfpgpr
> >>-mfloat-gprs=single|
> >*-mpowerpc-gpopt, -mfprnd, -mmfpgpr, and -mhard-float do not make 
> >sense for your target.*
> I have used most of them in order to try to solve the issue. One 
> question here though. When I use -mspe (or something similar, depending 
> on the gcc version) flag, not always the floating point support is 
> provided. More than once the linker asked for the unimplemented 
> functions, similar to what I said before (__divdf3, etc).

Your CPU has hardware support for single precision only.  You get the
soft float support for double precision (like that __divdf3, yes --
anything "df").  This is what -mfloat-gprs=single does :-)

You always should link libgcc.  This is the default if you link using
gcc, but your custom linker scripts may have other plans ;-)


Segher



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux