Lazarus on aarch64 systems like Odroid-C2 (and RPi3) lazarus / 32-Linux ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 05:37 In this thread you can collect your experiences with running FPC and Lazarus on Linux Aarch64 systems. ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 05:41 @Rich I am going to install Ubuntu Mate 16.04 on my Odroid-C2, because a working debugger is very much needed in this case. Will keep you informed. Perhaps also need some help: I have never used Ubuntu before. ---------------------------------------------------------------------- criageek · 2016-03-24 13:04 Hello again DonAlfredo!  I got your message that your debugger still fails in Ubuntu    I can't think of anything I've done that might be out of the ordinary that would make my debugger work.  Did you do all the updates to Ubuntu before trying to install Lazarus? sudo apt-get update sudo apt-get upgrade One thing to remember is that Ubuntu 16.04 has not yet been released.  Ubuntu has a new release every 6 months, in October and April.  The version numbers correspond to the release date.  So 16.04 corresponds to 2016, 4th month.  But that doesn't explain why the debugger works on my install. The only thing I can think of is the sd card.  I've read about some people having trouble with certain sd cards and that you want to use  a class 10.  Mine is a 32gb class 10.  But really, if the install went ok I can't see that being the problem. I'll make another post right after this one with the issues I'm having so far. Rich ---------------------------------------------------------------------- criageek · 2016-03-24 13:17 Here are the major issues I've seen so far: Toolbars - Anywhere that a toolbar is used in the IDE, only the right- most button can be pressed.  I've duplicated this behavior in a simple app of my own.  I got around the problem on the Package Editor by moving the 'Use' button to the far right so I could use it to install packages. Cursor moves to top of Source Editor window - Anytime I press 'Enter' the cursor moves to the top of the Source Editor window and all the way to the right.  This also happens when debugging after I use F7 or F8 to step Step Into or Step Over. Range Check Error - This pops up frequently.  Clicking 'OK' to continue 'seems' to be ok most of the time, but it's annoying.  I can always make it appear by trying to open a Lazarus source file, such as toolbutton.inc. Source Editor blank - Sometimes after opening a file in the Source Editor, the window will be blank.  I can usually get around this by opening the file from the Project Inspector.  Although it's always blank after opening a Lazarus source file (like toolbutton.inc) and clicking 'OK' on the Range Check Error. IDE resized - At some point late last night my IDE resized itself (see attachment) and I've been unable to resize it myself. All for now!  Happy Odroiding! Rich ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 13:26 Thanks for the report. I have updated one of the Odroid bugreports: http://bugs.freepascal.org/view.php?id=29874 http://forum.odroid.com/viewtopic.php?f=136&t=19073 Seems that a very new kernel is needed for gdb to work correctly. If the debugger works again, the real debugging can start ! ps: I have installed Ubuntu. Looks great. Running uname -r gives 3.14.29-29 ---------------------------------------------------------------------- criageek · 2016-03-24 13:31 Mine is 3.14.29-37 Rich ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 13:33 Well ... there is your proof ! I will try to update/upgrade ! ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 15:33 Debugging has started ! Range check errors in source window are caused by (line 3315 of synedit.pp): i := GetWheelScrollAmount(LinesInWindow); Why ?!! ---------------------------------------------------------------------- JuhaManninen · 2016-03-24 15:48 How did you guys test GDB? Is it not working even from console using a simple test program? Its behavior under Lazarus is another issue. There some complex IPC is needed. However if this is about the issue explained ODROID forum and it can be cured with a recent kernel, then things look good. I will not use time for invertigating it. I was testing DonAlfredo's Odroid C2 through VNC. You mentioned that building Lazarus "Debug IDE" failed due to lack of memory. How is it possible as Odroid C2 has 2 GB memory? How much of it is used by GPU? How much more memory is needed for 64-bit operation versus 32-bit operation? Anyway it feels strange. I have built and used Lazarus in a Pentium II machine with 384 MB memory. IIRC the total used memory with swap was below 1 GB at all times. Some of the problems can come from buggy libraries. I read warnings about it. This ARM 64-bit architechture is new and lots of code is still buggy. I believe things will improve quickly because Odroid C2 and Raspberry Pi 3 have lots of testers. From an earlier thread: Quote from: criageek on March 23, 2016, 10:05:10 pmSo I guess reports are NOT welcome in the bug tracker... Reports about an alpha quality feature are not welcome. There must be some level of stability before reporting bugs makes sense. For example DonAlfredo's debugger report does not belong to Lazarus bug tracker, it belongs to Odroid bug tracker instead. Other bugs may be caused by some library, too, nobody knows yet. One bug report saying "Lazarus is broken on aarch64 systems" would be enough but even that is useless because I knew about it already, and I am the only Lazarus developer who tested the issue after communicating with DonAlfredo. The same is true with other alpha quality features like GTK3 bindings. A person who wants to improve it does not need bug reports because the missing things are so obvious. Lazarus IDE cannot be built with it for example. ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 16:01 @juha. Understood ! About (too many) bug reports: that is the reason for this thread !! Debugger: GDB is working with latest Ubuntu kernel (see bugtracker update). So don't put time in it !! Just have a quick look at the patch. I had to drop Arch for now, due to this kernel problem. Ubuntu is ok ! Message on Arch forum : https://archlinuxarm.org/forum/viewtopic.php?f=65&t=10045 If Arch is ok, I will switch back and enable remote access again. Memory: In my experience, building Lazarus on any arm system has always consumed huge amounts of memory. Strange compile problems could often be solved by adding (swap) memory. I did not investigate this further. Just increased swap and "voila". Now: Tracing many more range check errors, in places that I do not understand ! Newest: BalanceNode(P); (line 1426 of SynEditHighlighterFoldBase.pas). ---------------------------------------------------------------------- criageek · 2016-03-24 16:23 Thanks for the feedback JuhaManninen!  As a virgin bug reporter I did not know the guidelines when I reported aarch64 issues, but I will learn! As for swap size needed to compile Lazarus, I tried with 256mb and it failed, so I bumped it up to 1gb and then it worked. Rich ---------------------------------------------------------------------- JuhaManninen · 2016-03-24 16:26 Quote from: DonAlfredo on March 24, 2016, 04:33:25 pmRange check errors in source window are caused by (line 3315 of synedit.pp): i := GetWheelScrollAmount(LinesInWindow); Why ?!! It may come from inside GetWheelScrollAmount but GDB shows it inaccurately. I have seen similar cases. Normally I debug Lazarus using another Lazarus instance. It works well but requires lots of memory. It may not be possible in this Odroid gadget. I have not used GDB directly for setting breakpoint nor stepping in code for many years. Maybe I should learn again how to do it. Q: How stable is FPC in aarch64? Does it have known bugs? Q2: Are FPC + Lazarus in ARM 32-bit systems as stable as in Intel systems? ---------------------------------------------------------------------- criageek · 2016-03-24 16:32 As for Q2:  I have been using Lazarus on my Raspberry Pi2 Model B for several months and have seen no issues at all. Rich ---------------------------------------------------------------------- criageek · 2016-03-24 18:56 I found a work-around for my main ide window size problem.  I edited ~/development/config_lazarus/environmentoptions.xml In the MainIDE section I changed the value of the WindowState setting to 'Normal'. Rich ---------------------------------------------------------------------- criageek · 2016-03-24 21:50 I *think* I've found a workaround for the Range Check Errors when scrolling with the mouse wheel in the Source Editor.  In synedit.pp, in function GetWheelScrollAmount, I changed all instances of the Inc command and all instances of the Dec command to remove these commands.  So for instance, I changed Inc(FMouseWheelAccumulator, AnInfo.WheelDelta); to FMouseWheelAccumulator := FMouseWheelAccumulator + AnInfo.WheelDelta; I then rebuilt Lazarus.  I've not seen any Range Check Errors since then when using the mouse wheel to scroll. Rich ---------------------------------------------------------------------- DonAlfredo · 2016-03-24 22:31 That is a good find !!! Could be the same cause for range errors in SynEditHighlighterFoldBase.pas And if so, this could/would also mean a problem with the inc function on aarch64 in FPC ! Nighttime for me now ... I will sleep on it ... ---------------------------------------------------------------------- criageek · 2016-03-24 23:54 Good call!  I removed all instances of Inc and Dec in procedure BalanceNode in SynEditHighlighterFoldBase.pas and now it appears I can open any file in the Source Editor without getting the Range Check Errors! I'm not an expert on the internal working of Lazarus or FPC, but I'm guessing the problem has to do with how Integers and/or TCardinal are declared for aarch64. Rich ---------------------------------------------------------------------- JuhaManninen · 2016-03-25 09:29 Quote from: criageek on March 25, 2016, 12:54:08 amI'm not an expert on the internal working of Lazarus or FPC, but I'm guessing the problem has to do with how Integers and/or TCardinal are declared for aarch64. Yes, it looks like a compiler bug. The variables in GetWheelScrollAmount are Integers. If you can reproduce it with a small demo program (no LCL or other dependencies) it should be reported. The range check errors come only when Lazarus is built with -Cr, right? Another issue is that many things work wrong even without -Cr. Does it mean that FPC not only gives wrong range check errors but also generates wrong code for Inc() and Dec()? Could you please test it with a small test program, or by placing DebugLn() calls in SynEdit code showing values before and after Inc(), or by debugging Lazarus as GDB now works. ---------------------------------------------------------------------- DonAlfredo · 2016-03-25 10:13 I have been running inc / dec test programmes all morning now ... all work 100% on aarch64. I have also looked into the alignment patches that went into synedit. Old but perhaps not 100% correct for aarch64. http://bugs.freepascal.org/view.php?id=19109 @juha I will test further, with your suggestions ! ---------------------------------------------------------------------- DonAlfredo · 2016-03-25 11:01 @juha. I am now running the (normal) fpc tests (from fpc/tests ; make full). Should all tests pass normally ? I ask, because there are failures, and I do not know if this is normal for some of these tests ! ---------------------------------------------------------------------- JuhaManninen · 2016-03-25 11:22 Quote from: DonAlfredo on March 25, 2016, 12:01:39 pmI am now running the (normal) fpc tests (from fpc/tests ; make full). Should all tests pass normally ? I have no idea. You must ask FPC developers. "fpc-dev" list may be the best place to ask. ---------------------------------------------------------------------- DonAlfredo · 2016-03-25 11:27 Test-suite: found it ! http://www.freepascal.org/testsuite/cgi-bin/testsuite.cgi?os=1&cpu=14& version=0&date=&submitter=&machine=&comment=&cond=&Category=3 ---------------------------------------------------------------------- DonAlfredo · 2016-03-26 08:16 Kernel maintainers of Arch Linux Arm have updated the kernel. GDB is working on Arch ! ---------------------------------------------------------------------- DonAlfredo · 2016-03-29 16:03 The FPC developers have resolved two "bugs" ! http://bugs.freepascal.org/view.php?id=29912 http://bugs.freepascal.org/view.php?id=29923 Lazarus is now working without range errors ! Still some bugs to go .... ---------------------------------------------------------------------- criageek · 2016-04-01 01:53 Hey DonAlfredo - Can you talk me through how to update my FPC installation, which was done using your Lazarus/FPC install scripts?  While I'm quite comfortable using FPC and Lazarus, I'm quite a novice at building FPC and Lazarus, and all I know about git is that I can follow directions for using it.  I have FPC installed in /home/rich/development/fpc. Thanks, Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-01 04:36 To update both FPC and Lazarus, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo So, in this case, you need the above ! It will update the sources from SVN, and do a clean and build. But you can also limit the functionality of fpc(laz)up. To update FPC only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="fpc" To update Lazarus only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="lazarus" To clean and build FPC only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="FPCCleanOnly,FPCBuildOnly" To clean and build Lazarus only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="LazCleanAndBuildOnly" ---------------------------------------------------------------------- JuhaManninen · 2016-04-01 09:23 Quote from: DonAlfredo on March 29, 2016, 06:03:33 pmThe FPC developers have resolved two "bugs" ! http://bugs.freepascal.org/view.php?id=29912 http://bugs.freepascal.org/view.php?id=29923 Lazarus is now working without range errors ! Still some bugs to go ....  I guess it did not affect the Toolbar icon issue or the other GUI anomalies? ---------------------------------------------------------------------- criageek · 2016-04-01 23:48 Quote from: DonAlfredo on April 01, 2016, 06:36:36 amTo update both FPC and Lazarus, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo So, in this case, you need the above ! It will update the sources from SVN, and do a clean and build. But you can also limit the functionality of fpc(laz)up. To update FPC only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="fpc" To update Lazarus only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="lazarus" To clean and build FPC only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="FPCCleanOnly,FPCBuildOnly" To clean and build Lazarus only, run: fpclazup --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="LazCleanAndBuildOnly" Thanks DonAlfredo!  Worked perfectly! Rich ---------------------------------------------------------------------- criageek · 2016-04-01 23:49 Quote from: JuhaManninen on April 01, 2016, 11:23:11 amQuote from: DonAlfredo on March 29, 2016, 06:03:33 pmThe FPC developers have resolved two "bugs" ! http://bugs.freepascal.org/view.php?id=29912 http://bugs.freepascal.org/view.php?id=29923 Lazarus is now working without range errors ! Still some bugs to go ....  I guess it did not affect the Toolbar icon issue or the other GUI anomalies? No, it looks like the other problems are still there  Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-02 07:59 @rich  @juha No, that problem still exists. Among others. I have filed another bug report few days ago. http://bugs.freepascal.org/view.php?id=29933 Error: if you press enter in the Lazarus source form, the cursor jumps away to the first line in the form. This took a whole day debugging to get to the error. But I failed in isolating it into a simple FPC test program. In general. As you can see from the previous bugs, these were compiler errors. And if you look at their resolution, you see that they were way deep into the compiler. Which is also far beyond my capabilities to understand. So, unfortunately, I cannot help in solving the bugs, other than detecting them. And that is why they have to be solved one by one, in order to see their impact on other Lazarus issues. Its all in the hands of the FPC compiler guys ! ---------------------------------------------------------------------- JuhaManninen · 2016-04-02 08:17 Quote from: DonAlfredo on April 02, 2016, 09:59:10 amI have filed another bug report few days ago. http://bugs.freepascal.org/view.php?id=29933 Error: if you press enter in the Lazarus source form, the cursor jumps away to the first line in the form. This took a whole day debugging to get to the error. But I failed in isolating it into a simple FPC test program. Wow, you are very motivated to get aarch64 running with FPC/Lazarus. This bug may be difficult to fix because it does not happen in a small example. Maybe a data alignment issue? Just guessing... Fortunately Jonas has Odroid (or similar gadget) and can test / fix aarch64. ---------------------------------------------------------------------- DonAlfredo · 2016-04-13 18:58 Another aarch64 bug solved ! http://bugs.freepascal.org/view.php?id=29933 Many thanks @Jonas. This also solved the Lazarus toolbar button issue ! All buttons can now be selected normally. Lazarus now runs 100%, as far as I can test. However, running the test for SynEdit (SynTest) shows many range check errors and a couple of SigSeg's. I will try to isolate. Moving forward ! ---------------------------------------------------------------------- JuhaManninen · 2016-04-13 20:13 Quote from: DonAlfredo on April 13, 2016, 08:58:58 pmHowever, running the test for SynEdit (SynTest) shows many range check errors and a couple of SigSeg's. I will try to isolate. Good to hear it is moving forward... It is surprising to have range check errors because Intel x86-64 has been tested so much. They are both little endian, aren't they? ARM CPUs have selectable endianness but little endian is the default. ---------------------------------------------------------------------- DonAlfredo · 2016-04-13 20:43 Yep. Both LE. But if you look into i_linux.pas, you can see the differences (in alignment) between "system_x86_64_linux_info"and "system_aarch64_linux_info". And also, aarch64 behaves different between Darwin and Linux ! However, with the help (and patience) of Jonas, they will (hopefully) be solved one by one ! New bug filed : http://bugs.freepascal.org/view.php?id=30007 ---------------------------------------------------------------------- criageek · 2016-04-14 15:02 Outstanding!  Nice work DonAlfredo! Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-14 18:02 You're welcome. But you should really thank the bug-fixer ! ---------------------------------------------------------------------- criageek · 2016-04-15 01:33 Hey DonAlfredo - I just tried to update my Lazarus/FPC installation and got this error: fpclazup: info: Error running fpcup. Technical details: error executing sequence fpc; line: 4, param: FPC fpclazup: info: Error running fpcup. Technical details: error executing sequence defaultARM; line: 3, param: fpc Fpclazup failed. This is the command I ran from the Reiniero-fpcup-master/bin/aarch64-linux folder: ./fpclazup_linux_aarch64 --fpcURL="trunk" --lazURL="trunk" --getfullrepo Any idea what's going wrong? Thanks, Rich EDIT:  I decided to try limiting the update to only Lazarus: ./fpclazup_linux_aarch64 --fpcURL="trunk" --lazURL="trunk" --getfullrepo --only="lazarus" and received this error: fpclazup: info: Error running fpcup. Technical details: error executing sequence lazarus; line: 3, param: lazarus fpclazup: info: Error running fpcup. Technical details: error executing sequence Only; line: 1, param: lazarus Fpclazup failed. Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-15 05:45 Please add verbose to your command ! ./fpclazup_linux_aarch64 --fpcURL="trunk" --lazURL="trunk" --getfullrepo --verbose ---------------------------------------------------------------------- criageek · 2016-04-15 13:02 Ok...do you want me to post the entire output (long...393 lines) or just a certain part of it? Thanks, Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-15 13:34 You could add the logfile as an attachment. Or a screen-dump into a file (redirect) and add this file as an attachment. ps: I just ran the mORMot (http://synopse.info/fossil/wiki?name=SQLite3+Framework)  on aarch64 ... with some success !! ---------------------------------------------------------------------- criageek · 2016-04-15 13:59 Here you go! Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-15 14:20 Are you realy sure that this logfile is recent ? I only see old dates and old revisions ! ps: you ned to build both FPC and Lazarus, to enjoy the latest FPC patches. ---------------------------------------------------------------------- criageek · 2016-04-15 14:43 Yes, I just saved it this morning.  But now I see that the date on my Odroid is February 12!  I just changed it to the correct date but get the same error. Rich ---------------------------------------------------------------------- criageek · 2016-04-15 23:27 I tried this again for fpc and Lazarus in verbose mode.  The resulting screen listing was too long to capture the beginning part, but I've attached as much as I could.  As you can see, the first error is: fpclazup: info: DownloadFromSVN: SVN gave error code 256 although a few lines above that is says: svn: E170013: Unable to connect to a repository at URL 'http://svn.freepascal.org/svn/fpc/trunk' svn: E670003: Temporary failure in name resolution I'm not smart enough about svn to know what this means or how to resolve it. Thanks, Rich ---------------------------------------------------------------------- DonAlfredo · 2016-04-16 06:45 You are right: a SVN error. Two possibilities: 1) remove all except the bootstrap-directory. 2) run "svn cleanup" inside of the FPC and Lazarus directory. I would opt for 1. Most easy. ---------------------------------------------------------------------- DonAlfredo · 2016-04-16 07:40 I have updated fpc(laz)up, to give some more info in case of a SVN error. Also, the aarch64 bootstrap compiler was updated ! ---------------------------------------------------------------------- pijno · 2016-04-22 02:12 hi i am trying to get the trunk installed on an pine64 using ubuntu so tried to start with the aarch64 version of fpcup have setup everything git, subversion am running in an terminal as sudo su download fpclazup through git and issued ./fpclazup_linux_aarch64 --fpcURL="trunk" --lazURL="trunk" --getfullrepo --verbose --installdir=/home/ubuntu/fpctrunk then i get the next error fpclazup: info: Going to download /tmp/TMP00000.tmp from URL: https://github.com/LongDirtyAnimAlf/Reiniero- fpcup/raw/master/bin/aarch64-linux/aarch64-linux-ppca64 fpclazup: info: Download http(s) result: 500 fpclazup: ERROR: Error getting/extracting bootstrap compiler. Archive: /tmp/TMP00000.tmp fpclazup: info: Error running fpcup. Technical details: error executing sequence fpc; line: 2, param: FPC fpclazup: info: Error running fpcup. Technical details: error executing sequence defaultARM; line: 3, param: fpc Fpclazup failed. after that the normal fpcup errors when fpcup is failing Don Alfredo do you have an idea what is going on with the http 500 error ---------------------------------------------------------------------- DonAlfredo · 2016-04-22 04:24 Other users have reported the same error. For the moment, I do not know why the bootstrap compiler will not download. I will look into it. Has to do with github redirects. For the moment, a work-around: Just get the bootstrap compiler by hand and put it into: /home/ubuntu/fpctrunk/fpcbootstrap Rename it to : ppca64, and make it excutable. I hope you will succeed ---------------------------------------------------------------------- pijno · 2016-04-22 07:13 tnx don alfredo workaround is ok now having an running lazarus version 1.7 where the toolbar is working. First simple compile is working out ok. ---------------------------------------------------------------------- pijno · 2016-04-23 10:59 Hi DonAlfdredo you mentioned that you compiled mormot with some succes. If i try to compile demo 04-http client server sample i already get stuck at the Synopse.inc because of {$ASSMODE INTEL} in the CPU64 section. Where and how can i change CPU64 settings or how did you achieve compilling mormot on aarch64 ---------------------------------------------------------------------- DonAlfredo · 2016-04-23 11:23 At the moment, I am (nearly 24/7) busy getting the mORMot ready for aarch64. I did already send some patches to the maintainer (Ab). However, they are not yet included. If you want, I can upload my version of the mORMot, so that you can continue ! ---------------------------------------------------------------------- pijno · 2016-04-23 11:47 That would be nice ---------------------------------------------------------------------- DonAlfredo · 2016-04-23 13:08 Here you go ! https://drive.google.com/file/d/0B96fg3TpL5RDR214N2RJYlhVTTg/view?usp= sharing Reports and help welcome !! ---------------------------------------------------------------------- pijno · 2016-04-23 15:47 Demo project-04 Http server is compiling, running and talking with windows client Tell me where i can help (novice on arm,arm64 , but having some ancient assembly skill from way back, am an senior professional delphi programmer 20+ year experience on turbo/delphi with intrest in load balance rest servers profesionally).  Am now using indy/datasnap (windows only) in web - rest server that needs to be replaced to move our erp application into the cloud ---------------------------------------------------------------------- DonAlfredo · 2016-04-23 22:41 Glad to hear that it works ! ps: I am in the same league as you ... 30+ years pascal and started with assembler on a PDP11. The good old (easy) days ... ;-) The question is: how much time do you have ... debugging (mORMot) is a very time consuming business. To enjoy the full power of the mORMot, interface based services are the way to go. But these services need some (not yet available fully) RTTI, and an invoke method. I think (I hope) the FPC developers will be willing to cooperate in giving us some extra RTTI for aarch64, if asked for. They did already for x86, x64 and ARM. Vey usefull. We (mORMot-fans and developers) have to implement the invoke method. Have a look at pascalscript: https://github.com/remobjects/pascalscript It has already an invoke (comparable with mORMot) for x86, x64 and arm. See x86.inc, x64.inc and arm.inc. You could use (and upgrade) your assembler skills by helping develop an arm invoke for mORMot and, eventually, an aarch64 invoke. But it will take some time. For now, just compile and run mORMot TestSQL3, and you will see where the problems are. We could  start a new forum thread for mORMot (runnng with FPC/Lazarus) in general, and communicate our results and experiences and applications. ---------------------------------------------------------------------- DonAlfredo · 2016-05-01 15:55 Again some bugs solved for aarch64 ! http://bugs.freepascal.org/view.php?id=30007 http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/compiler/aarch64/