Such functions don`t work correctly because fpu model is different for e500. For example by calling getcontext function the process terminates with illegal instruction error.
Created attachment 502 [details] proposed patch
It seems your version is based on old glibc 2.3.2. In the latest version, getcontext is existed in (ex) sysdeps/unix/sysv/linux/powerpc/powerpc32/ directory and so on. Could you check it again?
yes, sorry I was wrong about 2.3.5. Illegal instruction occurs only under glibc-2.3.2. But in 2.3.5, it still does not save whole fpu context(64-bit GPRs) for e500.
Steven, could you look at this report?
special purpose embeded (Book-E) processor which does not conform to the core PowerPC architecture. It is a 32-bit (LR,CTR, XER) processor with combined 64-bit GPR/FPR set plus Accumulator. The current glibc port targets powerpc32 and powerpc64 conform to the SysV ABI PowerPC[32-bit] Processor Supplement and the 64-bit PowerPC ELF ABI Supplement and fully support the standard PowerPC Architecure for 32-/64-bit implementations/modes. So this is not a bug. The current powerpc32/powerpc64 implementations are correct according to thier respective ABIs. e500 would have to be a separate target/ABI. And will require a separate port.
Created attachment 508 [details] proposed patch
This is not sufficient: 1) setcontext is not the only function that needs to be different between powerpc32 and e500 what ever. Also the versioning cruft either does not apply or needs to be different. 2) I don't think your patch has the correct directory path for a add-on port. Also I don't think the spe is a valid autoconf target plaform. 3) What IS you ABI and where is it documented?
This is not of any interest since it's not for a regular chip. Embedded crap isn't supported in glibc.