Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / fpc-pascal / 2017-11

Minimum Linux version for FPC 3.0.2 (armhf)

3 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

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?

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

Reply by email

Florian Klämpfl
to Tobias Giesen
Tobias Giesen wrote 16 lines
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.

Reply by email

Unknown author
to Florian Klämpfl

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

----

Show quoted text 27 lines
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 - 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

Reply by email