[fpc-pascal] System call ABI problem on ppc Linux
Karoly Balogh (Charlie/SGR)
charlie at scenergy.dfmk.hu
Tue Dec 5 19:20:07 CET 2017
On Tue, 5 Dec 2017, tobiasgiesen at gmail.com wrote:
> I think the only problem is with fpmake, which doesn't include
> FPC_ABI_EABI for powerpc 32-bit processors.
> My use case is running my software on a Synology DS-413 NAS, which has a
> PowerPC processor. It's only a few years old. Nowadays they use only
> Intel and ARM.
Please note that your NAS has a Freescale P1022 CPU, which has an e500v2
CPU core. In Linux architecture terms, this isn't a regular PowerPC but
PowerPCSPE, as it has a non-standard FPU. This means that classic PowerPC
FPU instructions are not supported, or supported only with kernel
emulation. It's also entirely incompatible with regular applications using
Altivec or VMX SIMD, as the instruction encoding overlaps. It could also
mean that the syscall ABI *could* be different to regular PowerPCs. I
don't know if it is, but could be.
Free Pascal doesn't support PPCSPE CPUs officially (we always generate
classic FPU code for memory copies for example, and the PPC code generator
doesn't support the SPE FPU or the softfpu at this point), so at least we
should verify if your patch doesn't cause problems on regular PPC Linux
installations, or if this bug also exist there.
More information about the fpc-pascal