Hi Segher,
thank you very much for your reply.
Hello Felipe,
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?
|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).
Please notice the|-mfloat-gprs=single|flag. That is the one that is
giving problems.
When I use|-mfloat-gprs=single|, I am not able to compile things
properly, as some functions are not implemented:
|undefined reference to `__extendsfdf2`,undefined reference to
`__adddf3`,undefined reference to `__divdf3`,|
- among others.
*That works fine for me (those functions are in libgcc.a). Please open
a PR for GCC 7 (and GCC 8).*
Segher
--
Ph.D. Felipe Gohring de Magalhães
Curriculum Lattes <http://lattes.cnpq.br/4701534141479314>