>>>>> Edmar Wienskoski writes: Edmar> Second, is the long double ABI problem. In the past gcc always generated function calls to _q_* functions. (Per ABI Chapter 5) Edmar> For this code: Edmar> long double foo (long double x, long double y){ return x + y; } Edmar> gcc-4.0, target powerpc-eabise and Edmar> gcc-4.0, target powerpc-*-linux-gnuspe with -mlong-double-128 option Edmar> both generates a call to _q_add. Edmar> The same code with gcc-4.2, both targets generates a call to __gcc_qadd.
Edmar> If there is an intention to change the E500 ABI, then somebody has to step forward and actually change the document (With all the administrative burden that cames with it..). The PowerPC Linux ABI uses IBM long double format. The PowerPC SVR4 Supplement defines IEEE long double, but no library actually implemented the _q_* functions or at least it was not generally available. If Freescale wants users who configure with powerpc-*-linux-gnuspe to be compatible with the rest of PowerPC GNU+Linux, it needs to accept IBM long double. This is defined in the PowerPC Linux ABI, regardless of SVR4. IEEE long double also is not very efficient on PowerPC and few people (if any) could use it because of the lack of library support. An unimplemented ABI is not very useful, except in theory. David