Re: [fpc-pascal] System call ABI problem on ppc Linux
Interesting! But my report was based on my development machine, a PowerBook G4. Apparently the special instructions are not used or not causing a problem because it also runs fine on the NAS. - Please excuse the shortness of this mail which was sent from my mobile phone. If necessary, I will send more information later. Cheers, Tobias Giesen > Am 05.12.2017 um 19:20 schrieb Karoly Balogh (Charlie/SGR) >: > > Hi, > >> On Tue, 5 Dec 2017, tobiasgie...@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. > > Charlie > ___ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] System call ABI problem on ppc Linux
Hi, On Tue, 5 Dec 2017, tobiasgie...@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. Charlie ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] System call ABI problem on ppc Linux
Hi, I will check it but the app really runs fine now after changing only FpFtruncate, and also FppRead and FppWrite (which nobody seems to use anyway). These are the occurrences of {$ifdef FPC_ABI_EABI}. 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. For old times' sake I will also release it for Mac OS / ppc. Cheers, Tobias On Tue, 5 Dec 2017 14:55:41 +0100 (CET) mar...@stack.nl (Marco van de Voort) wrote: > In our previous episode, Tobias Giesen said: > > I just filed a bug report about FpFtruncate passing the parameters > > incorrectly to the > > system. For example, setting a file size to $D would cause the file to have > > the size > > $D 000D. Apparently the conditional define FPC_ABI_EABI would fix it, > > but what > > other impact does it have? > > > > I wonder which other system calls might be affected? My application seems > > to work > > fine except for this function. > > > > https://bugs.freepascal.org/view.php?id=32772 > > I replied. Roughly anything with an 64-bit argument, (typically off_t) most > notably mmap. > ___ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal Kind Regards, Tobias Giesen Super Flexible Software Ltd. & Co. KG Buddenstr. 29-31 48143 Münster, Germany www.superflexible.com www.tgtools.com --- Registered at register court Münster as HRA 9716 Liability / general partner: TGTools Ltd. Company No. 05513299 Registered in England and Wales Directors: Tobias Giesen and Claudia Giesen ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Re: [fpc-pascal] System call ABI problem on ppc Linux
In our previous episode, Tobias Giesen said: > I just filed a bug report about FpFtruncate passing the parameters > incorrectly to the > system. For example, setting a file size to $D would cause the file to have > the size > $D 000D. Apparently the conditional define FPC_ABI_EABI would fix it, > but what > other impact does it have? > > I wonder which other system calls might be affected? My application seems to > work > fine except for this function. > > https://bugs.freepascal.org/view.php?id=32772 I replied. Roughly anything with an 64-bit argument, (typically off_t) most notably mmap. ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
[fpc-pascal] System call ABI problem on ppc Linux
Hello, I just filed a bug report about FpFtruncate passing the parameters incorrectly to the system. For example, setting a file size to $D would cause the file to have the size $D 000D. Apparently the conditional define FPC_ABI_EABI would fix it, but what other impact does it have? I wonder which other system calls might be affected? My application seems to work fine except for this function. https://bugs.freepascal.org/view.php?id=32772 Cheers, Tobias ___ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal