Minimum Linux version for FPC 3.0.2 (armhf)

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Minimum Linux version for FPC 3.0.2 (armhf)

tobiasgiesen
Hello,
I wonder what the minimum Linux version is ... I have made NAS versions of my app,
and it runs fine on an older Synology NAS with this uname info:
Linux DS-212j 2.6.32.12
armv5tel GNU/Linux synology_88f6281_212j

But it crashes with access violations, and EThread exceptions on this old QNAP Linux:
Linux QNAPTS109II 2.6.12.6-arm1
armv5tejl unknown

All newer QNAP versions running Linux 3.x are fine. But that firmware is not available
for the some of the really old boxes.

I admit that it's not important for me to support the old Linux, but I wonder what
causes it and if it can be fixed?

I suspect that TCriticalSection and threading causes it, but it is really hard to find out.
The AVs seem to be memory corruption related (allocating/freeing strings for example).

Cheers,
Tobias


_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Minimum Linux version for FPC 3.0.2 (armhf)

Florian Klaempfl
Am 20.11.2017 um 19:50 schrieb Tobias Giesen:

> Hello,
> I wonder what the minimum Linux version is ... I have made NAS versions of my app,
> and it runs fine on an older Synology NAS with this uname info:
> Linux DS-212j 2.6.32.12
> armv5tel GNU/Linux synology_88f6281_212j
>
> But it crashes with access violations, and EThread exceptions on this old QNAP Linux:
> Linux QNAPTS109II 2.6.12.6-arm1
> armv5tejl unknown
>
> All newer QNAP versions running Linux 3.x are fine. But that firmware is not available
> for the some of the really old boxes.
>
> I admit that it's not important for me to support the old Linux, but I wonder what
> causes it and if it can be fixed?
>

Are the older ones really armhf? Even for the DS-212 I doubt it. Can you please post the output of
cat /proc/cpuinfo

Another reason might be the use of kernel based synchronization primitives (e.g. kuser_cmpxchg),
those appeared years ago in the kernel, I gues around 2.6.20. You can test this by removing the
defines SYSTEM_HAS_KUSER_... in fpc/rtl/arm/armdefines.inc and recompile fpc.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Minimum Linux version for FPC 3.0.2 (armhf)

tobiasgiesen
Hi Florian,
many thanks for your reply!

On DS-212j, it works perfectly including complex threading, OpenSSL, sqlite, sockets
etc. so I didn't have any reason to think about armhf or not. Here's the CPU Info:

Synology cpuinfo:
Processor       : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS        : 1192.75
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1

Hardware        : Feroceon-KW
Revision        : 0000
Serial          : 0000000000000000

QNAP TS 109 (not working):
Processor       : ARM926EJ-Sid(wb) rev 0 (v5l)
BogoMIPS        : 332.59
Features        : swp half thumb fastmult
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 0
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 1
I line length   : 32
I sets          : 1024
D size          : 32768
D assoc         : 1
D line length   : 32
D sets          : 1024

Hardware        : MV-88fxx81
Revision        : 0000
Serial          : 0000000000000000

Cheers,
Tobias

----

On Mon, 20 Nov 2017 20:18:21 +0100
Florian Klämpfl <[hidden email]> wrote:

> Am 20.11.2017 um 19:50 schrieb Tobias Giesen:
> > Hello,
> > I wonder what the minimum Linux version is ... I have made NAS versions of my app,
> > and it runs fine on an older Synology NAS with this uname info:
> > Linux DS-212j 2.6.32.12
> > armv5tel GNU/Linux synology_88f6281_212j
> >
> > But it crashes with access violations, and EThread exceptions on this old QNAP Linux:
> > Linux QNAPTS109II 2.6.12.6-arm1
> > armv5tejl unknown
> >
> > All newer QNAP versions running Linux 3.x are fine. But that firmware is not available
> > for the some of the really old boxes.
> >
> > I admit that it's not important for me to support the old Linux, but I wonder what
> > causes it and if it can be fixed?
> >
>
> Are the older ones really armhf? Even for the DS-212 I doubt it. Can you please post the output of
> cat /proc/cpuinfo
>
> Another reason might be the use of kernel based synchronization primitives (e.g. kuser_cmpxchg),
> those appeared years ago in the kernel, I gues around 2.6.20. You can test this by removing the
> defines SYSTEM_HAS_KUSER_... in fpc/rtl/arm/armdefines.inc and recompile fpc.
> _______________________________________________
> fpc-pascal maillist  -  [hidden email]
> 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  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal