Recent

Author Topic: [SOLVED] How to recompile my private patched FPC 3.0.4 installation?  (Read 1838 times)

Hartmut

  • Sr. Member
  • ****
  • Posts: 439
I found a bug (https://bugs.freepascal.org/view.php?id=36486) which was fixed in FPC trunc and FPC 3.2.0. Because I found no estimate for the release of FPC 3.2.0 I wanted to apply a "private patch" in my FPC 3.0.4 installation, which at the 1st moment looked easy, because I only had to insert 1 line in file h:\Progs\Lazarus\184\fpc\3.0.4\source\packages\fcl-db\src\sqldb\sqlite\sqlite3conn.pp in function ExtractPrecisionAndScale():

Code: Pascal  [Select][+][-]
  1. size1:=0;
  2. size2:=0;
  3. case FT of
  4.   ftInteger,ftSmallint,ftWord: ft:=ftLargeInt;
  5.   ftString,
  6.   ftFixedChar,  
  7.  

But when I recompiled my demo program, my changed *.pp file was not utilized - because of the existence of this old 2 files:
h:\Progs\Lazarus\184\fpc\3.0.4\units\i386-win32\fcl-db\sqlite3conn.o
h:\Progs\Lazarus\184\fpc\3.0.4\units\i386-win32\fcl-db\sqlite3conn.ppu

I renamed them, in the hope they would be automatically recompiled (as I would expect in good old Turbo Pascal times), but this was wrong. And then I slowly realized, that my problem was bigger than I thougt, because
 - not only unit sqlite3conn had to be recompiled, but every dependent unit too
 - and all these units would be in different folders and the sources would be in other folders then the resulting *.o and *.ppu files had to be.

So that's why I'm here... I can imagine that Makefiles could be a solution, but I never used them and my knowledge about them is zero. But I assume, that FPC comes with a couple of Makefiles and maybe I only have to start the right one with the right parameters? (Is it enough to recompile the necessary FPC units or must some Lazarus units (or Lazarus itself) recompiled too?)

To make things a little more complicate, I have more than one FPC 3.0.4 installation and (if the effort is manageable) I want to patch them all:
 - h:\Progs\Lazarus\184\fpc\3.0.4\  (Windows 7, 32 bit)
 - h:\Progs\Lazarus\206\fpc\3.0.4\  (Windows 7, 32 bit)
 - /usr/share/lazarus/1.8.4/  and /usr/share/fpcsrc/3.0.4/  (Ubuntu 18.04, 64 bit)
 - /opt/lazarus_206/fpc/ (includes FPC 3.0.4) installed by fpcupdeluxe  (Ubuntu 18.04, 64 bit)

I hope the answers are not too laborious for you and that I don't ask you too much (?). Thanks a lot for your help in advance.
« Last Edit: December 31, 2019, 06:12:54 pm by Hartmut »

jamie

  • Hero Member
  • *****
  • Posts: 3637
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #1 on: December 28, 2019, 07:49:23 pm »
The problem you are seeing is that you can make changes to those files which basically are just unit libs that come with the install, not the compiler itself. The UNIT folder needs to be updated.

And I believe there Is a MAKE file in the branch somewhere that you run which will rebuild all of those files and update the UNIT files

 you could I suppose include all of the source code of the package of concern into a project , compile it, where by it will create a unit file with the changes..

 One of the guys here I am sure is more versed on how to rebuild the compile UNIT directory in fpc for the specific target.
 
  Also I think there is a project already made to do so but you may need to do it from another install so not to conflict with the current one being used

The only true wisdom is knowing you know nothing

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1005
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #2 on: December 28, 2019, 11:37:16 pm »
I found a bug (https://bugs.freepascal.org/view.php?id=36486) which was fixed in FPC trunc and FPC 3.2.0. Because I found no estimate for the release of FPC 3.2.0 I wanted to apply a "private patch" in my FPC 3.0.4 installation, which at the 1st moment looked easy, because I only had to insert 1 line in file h:\Progs\Lazarus\184\fpc\3.0.4\source\packages\fcl-db\src\sqldb\sqlite\sqlite3conn.pp in function ExtractPrecisionAndScale():

Code: Pascal  [Select][+][-]
  1. size1:=0;
  2. size2:=0;
  3. case FT of
  4.   ftInteger,ftSmallint,ftWord: ft:=ftLargeInt;
  5.   ftString,
  6.   ftFixedChar,  
  7.  

But when I recompiled my demo program, my changed *.pp file was not utilized - because of the existence of this old 2 files:
h:\Progs\Lazarus\184\fpc\3.0.4\units\i386-win32\fcl-db\sqlite3conn.o
h:\Progs\Lazarus\184\fpc\3.0.4\units\i386-win32\fcl-db\sqlite3conn.ppu

I renamed them, in the hope they would be automatically recompiled (as I would expect in good old Turbo Pascal times), but this was wrong. And then I slowly realized, that my problem was bigger than I thougt, because
 - not only unit sqlite3conn had to be recompiled, but every dependent unit too
 - and all these units would be in different folders and the sources would be in other folders then the resulting *.o and *.ppu files had to be.

So that's why I'm here... I can imagine that Makefiles could be a solution, but I never used them and my knowledge about them is zero. But I assume, that FPC comes with a couple of Makefiles and maybe I only have to start the right one with the right parameters? (Is it enough to recompile the necessary FPC units or must some Lazarus units (or Lazarus itself) recompiled too?)

To make things a little more complicate, I have more than one FPC 3.0.4 installation and (if the effort is manageable) I want to patch them all:
 - h:\Progs\Lazarus\184\fpc\3.0.4\  (Windows 7, 32 bit)
 - h:\Progs\Lazarus\206\fpc\3.0.4\  (Windows 7, 32 bit)
 - /usr/share/lazarus/1.8.4/  and /usr/share/fpcsrc/3.0.4/  (Ubuntu 18.04, 64 bit)
 - /opt/lazarus_206/fpc/ (includes FPC 3.0.4) installed by fpcupdeluxe  (Ubuntu 18.04, 64 bit)

I hope the answers are not too laborious for you and that I don't ask you too much (?). Thanks a lot for your help in advance.
FPC in Lazarus is a special one and it's not easy to rebuild it at all...

Please, read the following threads to get you acquainted:

0034687: Easy way on IDE to recompile FPC
https://bugs.freepascal.org/view.php?id=34687

FPC 3.2.x series branched, trunk update to 3.3.1
https://forum.lazarus.freepascal.org/index.php/topic,42265.msg303647.html#msg303647

Compile unit without project
https://forum.lazarus.freepascal.org/index.php/topic,46354.msg330193.html#msg330193

Bug Busters
https://forum.lazarus.freepascal.org/index.php/topic,25820.0.html

why is lazarus not made in delphi?
https://forum.lazarus.freepascal.org/index.php/topic,5394.msg238540.html#msg238540

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1005
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #3 on: December 29, 2019, 12:22:28 am »
I found a bug (https://bugs.freepascal.org/view.php?id=36486) which was fixed in FPC trunc and FPC 3.2.0.
Because I found no estimate for the release of FPC 3.2.0 I wanted to apply a "private patch" in my FPC 3.0.4 installation, which at the 1st moment looked easy, because I only had to insert 1 line in file
So that's why I'm here... I can imagine that Makefiles could be a solution, but I never used them and my knowledge about them is zero. But I assume, that FPC comes with a couple of Makefiles and maybe I only have to start the right one with the right parameters? (Is it enough to recompile the necessary FPC units or must some Lazarus units (or Lazarus itself) recompiled too?)
...
To make things a little more complicate, I have more than one FPC 3.0.4 installation and (if the effort is manageable) I want to patch them all:
...
I hope the answers are not too laborious for you and that I don't ask you too much (?). Thanks a lot for your help in advance.

The problem you are seeing is that you can make changes to those files which basically are just unit libs that come with the install, not the compiler itself. The UNIT folder needs to be updated.
And I believe there Is a MAKE file in the branch somewhere that you run which will rebuild all of those files and update the UNIT files
you could I suppose include all of the source code of the package of concern into a project , compile it, where by it will create a unit file with the changes..
One of the guys here I am sure is more versed on how to rebuild the compile UNIT directory in fpc for the specific target.
Also I think there is a project already made to do so but you may need to do it from another install so not to conflict with the current one being used
The easiest solution I could find it's using fpcupdeluxe and multiple installations.
That said, working on Microsoft Windows is very different from working on Linux such as compiling a [complex] compiler is very different from compiling a [simple] application...
Be patient and be prepared for a long learning curve to build a patched FPC inside a Lazarus installation on Microsoft Windows.

fpcupdeluxe
https://forum.lazarus.freepascal.org/index.php/topic,34645.msg343633.html#msg343633

PascalDragon

  • Hero Member
  • *****
  • Posts: 2248
  • Compiler Developer
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #4 on: December 29, 2019, 09:51:15 am »
I hope the answers are not too laborious for you and that I don't ask you too much (?). Thanks a lot for your help in advance.
The FPC sources provided with Lazarus are not complete (they are only there for the IDE's codetools), so you first need to download the source of FPC 3.0.4 and extract that into Lazarus' FPC directory (%lazdir%\fpc\3.0.4) (it can directly replace the source in there). Then you do the following (in directory %lazdir%\fpc\3.0.4, and you should replace %lazdir% with the correct directory ;) ):
Code: [Select]
make clean all FPMAKEOPT="-T <CPUCORES>"
make install INSTALL_PREFIX=%lazdir%\fpc\3.0.4

wp

  • Hero Member
  • *****
  • Posts: 7619
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #5 on: December 29, 2019, 12:32:17 pm »
Here are step-by-step instructions that fill the missing pieces from PascalDragon's post. I just tested it, it is working correctly (I hope I did not forget anything...)
  • I am assuming that you start from a Lazarus installation created by the official installer on Windows (I am not a Linux specialist and expecting some differences here and there). Suppose Lazarus is installed in c:\Lazarus, and inside this folder there is a folder "fpc" with subfolder "3.0.4".
  • Rename c:\lazarus\fpc\3.0.4 to c:\lazarus\fpc\3.0.4-orig
  • Download https://sourceforge.net/projects/freepascal/files/Source/3.0.4/fpc-3.0.4.source.zip/download and extract to c:\lazarus\fpc. This creates a folder c:\lazarus\fpc\fpc-3.0.4. Rename it to c:\lazarus\fpc\3.0.4 to have the same name as in the official installation.
  • Copy the bin folder from the original installation (c:\lazarus\fpc\3.0.4-orig\bin) to c:\lazarus\fpc\3.0.4.
  • Create a batch file, maybe "build_fpc.bat", and copy the following content to it (note that this is valid for 32-bit fpc only; for 64-bit replace the "i386-win32" by "x86_64-win64" everywhere).
Code: Text  [Select][+][-]
  1. set lazdir=c:\lazarus
  2. path %lazdir%\fpc\3.0.4\bin\i386-win32
  3.  
  4. if exist base.build-stamp.i386-win32 del base.build-stamp.i386-win32
  5. if exist build-stamp.i386-win32 del build-stamp.i386-win32
  6.  
  7. make clean all FPMAKEOPT="-T <CPUCORES>"
  8. make install INSTALL_PREFIX=%lazdir%\fpc\3.0.4
  • Execute the batch file - this will take some time
  • When the compilation is finished start Lazarus. Because the downloaded sources have a different directory structure than those distributed along with Lazarus there will be a message that the fpc sources cannot be found. In the "Configure Lazarus" dialog, which opens automatically, edit the combobox in the "FPC sources" tab to show "$(LazarusDir)\fpc\$(FPCVer)" only (no quotes please), i.e. simply remove the "source" at the end. Then "Start IDE". When Lazarus appears everything should be like before, i.e. all your installed component should be there, as well as your personal settings of the IDE.
  • Now edit the fpc sources as you want. Save. Execute the batch file again and you'll be all set. At least in principle because the modified fpc will have an effect on installed packages and Lazarus itself; therefore, I recommend to rebuild the IDE as well - but this is easy: menu "Tools" > "Configure 'Build lazarus'" > in the "Clean up" box check "Clean all" and "Switch after building to automatically". Then click "Build" --> Ready when Lazarus restarts.
  • Repeat the previous step when you want to apply further changes.
  • If you somehow want to return to the original fpc rename the current folder "fpc/3.0.4" to "fpc/3.0.4-modified", and the folder "fpc/3.0.4-orig" to "fpc/3.0.4". Start Lazarus, and in the "Configure Lazarus" dialog restore the old sources directory (i.e.: add "sources" to the content of the combobox). You can also switch back to the modified sources similarly. Always rebuild the IDE after switching fpc.
  • Always keep in mind: you are working with a modified release version, i.e. when you see strange behavior there is a good chance that this is due to your changes, and when you report this here or in the bug tracker, nobody will be able to reproduce it.
« Last Edit: December 29, 2019, 09:09:50 pm by wp »
Mainly Lazarus trunk / fpc 3.2.0 / all 32-bit on Win-10, but many more...

Hartmut

  • Sr. Member
  • ****
  • Posts: 439
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #6 on: December 29, 2019, 08:04:15 pm »
Thanks a lot to all who answered me to help me.

I walked through the links of valdir.marcos. This was a lot of stuff and for me hard to understand. I was probably a little too blue-eyed thinking that calling 1 Makefile might do it.

Tomorrow I will follow the very detailed step-by-step instructions from wp because for me as a beginner to all that stuff this seems to be the most promising way. After that I will report here.

I am assuming that you start from a Lazarus installation created by the official installer on Windows
That's right.

Thank you so much.

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 8780
  • FPC developer.
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #7 on: December 29, 2019, 08:51:38 pm »

Hartmut

  • Sr. Member
  • ****
  • Posts: 439
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #8 on: December 30, 2019, 11:36:15 am »
I inspected the Windows FPC buildscript of marcov. Thanks a lot. For me it was difficult to understand how it works and how to adapt it. And as far as I understood, it only recompiles FPC itself, but parts of Lazarus have to be recompiled too? I was too afraid to run this script on my FPC installation, the detailed step-by-step instructions from wp looked more safe to me.

Create a batch file, maybe "build_fpc.bat", and copy the following content to it... Execute the batch file.
Please, in which directory this batch file should be created and which directory must be the current one when I start this batchfile? Thanks.

Edit:
I assume I found the answer in the post from PascalDragon:
Then you do the following (in directory %lazdir%\fpc\3.0.4, and you should replace %lazdir% with the correct directory ;) ):
I will try this.
« Last Edit: December 30, 2019, 11:54:26 am by Hartmut »

wp

  • Hero Member
  • *****
  • Posts: 7619
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #9 on: December 30, 2019, 12:08:32 pm »
Create a batch file, maybe "build_fpc.bat", and copy the following content to it... Execute the batch file.
Please, in which directory this batch file should be created and which directory must be the current one when I start this batchfile? Thanks.
Put it in c:\lazarus\fpc\3.0.4 (the folder with the "Makefile" etc). If it is somewhere else must add a "cd %lazdir%\fpc\3.0.4" as second line (after "set lazdir=...")
Mainly Lazarus trunk / fpc 3.2.0 / all 32-bit on Win-10, but many more...

Hartmut

  • Sr. Member
  • ****
  • Posts: 439
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #10 on: December 30, 2019, 12:56:28 pm »
Everything went ok including this step:
In the "Configure Lazarus" dialog ... edit the combobox in the "FPC sources" tab ... Then "Start IDE".
When Lazarus appears everything should be like before, i.e. all your installed component should be there, as well as your personal settings of the IDE.

Everything looked fine. As a test I tried then to compile a GUI program (I hat not changed any FPC sources yet). I got this error:
Kompiliere Package FCL 1.0.1: Erfolg
Kompiliere Package LazUtils 1.0: Erfolg, Warnungen: 2
laz2_dom.pas(1944,14) Warning: Symbol "BuildList" is deprecated: "Use NodeFilter instead."
laz2_dom.pas(1952,14) Warning: Symbol "BuildList" is deprecated: "Use NodeFilter instead."
Kompiliere Package LCLBase 2.0.6: Erfolg, Warnungen: 2
shellctrls.pas(880,70) Warning: Symbol "faSysFile" is not portable
shellctrls.pas(880,81) Warning: Symbol "faHidden" is not portable
Kompiliere Package LCL 2.0.6: Exit code 1, Fehler: 1, Warnungen: 2
win32int.pp(21,26) Warning: User defined: Fix implicit pointer conversions
win32wsbuttons.pp(583,7) Warning: Class types "TBitBtn" and "TBitBtnAceess" are not related
win32wsbuttons.pp(583,7) Error: Class or Object types "TBitBtn" and "TBitBtnAceess" are not related


The error is in file H:\Progs\Lazarus\206\lcl\interfaces\win32\win32wsbuttons.pp and the cursor marked this line:
Code: Pascal  [Select][+][-]
  1. class procedure TWin32WSBitBtn.GetPreferredSize(const AWinControl: TWinControl;
  2.   var PreferredWidth, PreferredHeight: integer; WithThemeSpace: Boolean);
  3. var
  4.   BitBtn: TBitBtn absolute AWinControl;
  5.   spacing, srcWidth, AIndex: integer;
  6.   AImageRes: TScaledImageListResolution;
  7.   AEffect: TGraphicsDrawEffect;
  8. begin
  9.   if MeasureText(AWinControl, AWinControl.Caption, PreferredWidth, PreferredHeight) then
  10.   begin
  11.     if BitBtn.CanShowGlyph(True) then
  12.     begin
  13.       TBitBtnAceess(BitBtn).FButtonGlyph.GetImageIndexAndEffect(Low(TButtonState), BitBtn.Font.PixelsPerInch, 1,
  14.         AImageRes, AIndex, AEffect);
  15.       srcWidth := AImageRes.Width;
  16.       if BitBtn.Spacing = -1 then
  17.         spacing := 8
  18.       else
  19.         spacing := BitBtn.Spacing;
  20.       if BitBtn.Layout in [blGlyphLeft, blGlyphRight] then
  21.       begin
  22.         Inc(PreferredWidth, spacing + srcWidth);
  23.         if AImageRes.Height > PreferredHeight then
  24.           PreferredHeight := AImageRes.Height;
  25.       end else begin
  26.         Inc(PreferredHeight, spacing + AImageRes.Height);
  27.         if srcWidth > PreferredWidth then
  28.           PreferredWidth := srcWidth;
  29.       end;
  30.     end;
  31.     Inc(PreferredWidth, 20);
  32.     Inc(PreferredHeight, 4);
  33.     if WithThemeSpace then
  34.     begin
  35.       Inc(PreferredWidth, 6);
  36.       Inc(PreferredHeight, 6);
  37.     end;
  38.   end;
  39. end;

Because wp wrote to rebuild the IDE, I tried this, but got the same error message in the same location than before:
Clean Lazarus Source: Success
Compile package FCL 1.0.1: Success
Compile package LazUtils 1.0: Success, Warnings: 2
laz2_dom.pas(1944,14) Warning: Symbol "BuildList" is deprecated: "Use NodeFilter instead."
laz2_dom.pas(1952,14) Warning: Symbol "BuildList" is deprecated: "Use NodeFilter instead."
Compile package LCLBase 2.0.6: Success, Warnings: 2
shellctrls.pas(880,70) Warning: Symbol "faSysFile" is not portable
shellctrls.pas(880,81) Warning: Symbol "faHidden" is not portable
Compile package CodeTools 1.0.1: Success
Compile package LCL 2.0.6: Exit code 1, Errors: 1, Warnings: 2
win32int.pp(21,26) Warning: User defined: Fix implicit pointer conversions
win32wsbuttons.pp(583,7) Warning: Class types "TBitBtn" and "TBitBtnAceess" are not related
win32wsbuttons.pp(583,7) Error: Class or Object types "TBitBtn" and "TBitBtnAceess" are not related
Compile package DebuggerIntf 0.1: Success
Compile package CmdLineDebuggerBase 0.0: Success
Compile package DateTimeCtrls 1.5.1: Aborted
Compile package fpdebug 0.0: Aborted
Compile package LazDebuggerLldb 0.0: Aborted


This installation is Lazarus 2.0.6 with FPC 3.0.4 on Windows 7 (32 bit). Can please someone help?

wp

  • Hero Member
  • *****
  • Posts: 7619
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #11 on: December 30, 2019, 01:35:59 pm »
It is working for me...

Maybe you must re-scan the FPC source directory when Lazarus starts for the first time after building FPC: "Tools" > "Rescan FPC source directory". Then, since your error happens in Lazarus, rebuild the IDE, and make sure to do a clean compilation (like I described).
Mainly Lazarus trunk / fpc 3.2.0 / all 32-bit on Win-10, but many more...

Hartmut

  • Sr. Member
  • ****
  • Posts: 439
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #12 on: December 30, 2019, 02:46:11 pm »
Thank you very much, wp, for your quick reply. In the end I found the "bad guy", it was my changed fpc.cfg. Here is the story:
 - after "Rescan FPC source directory" and "Configure 'Build lazarus'" the same error occured as above
 - because my Lazarus config folder has a long history (converting it from 1.4.4 => 1.6.2 => 1.8.0 => and so on) I thought there could be something wrong, so I retried with an empty Lazarus config folder, but the same error occured
 - then I came to the idea to restore my changed fpc.cfg with the original one (which I fortunately had saved) => success!
I assume, the problem occured because I had added
  -CrtoiR
which I did for (my) security. Now I know, that this disables compiling the IDE.

Now I will continue... Thanks a lot again.

Hartmut

  • Sr. Member
  • ****
  • Posts: 439
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #13 on: December 31, 2019, 04:35:02 pm »
I was successfull on both of my Windows-Installations (Win7, 32 bit):
 - Lazarus 1.8.4 with FPC 3.0.4
 - Lazarus 2.0.6 with FPC 3.0.4
As far as I could test, everything works perfect including my new "private patch". I am happy :-))

Regarding my both FPC installations on Linux (Ubuntu 18.04 64 bit) I decided:
 - the Lazarus 2.0.6 / FPC 3.0.4 installation made by fpcupdeluxe I have replaced with Lazarus 2.0.6 / FPC 3.2.0 beta (which includes the wanted fix)
 - the Lazarus 1.8.4 / FPC 3.0.4 installation not made by fpcupdeluxe I am too afraid to patch:
    - this installation is spread over so many folders, that for me it's impossible to make a backup
    - this installation is very valuable for me, because it's the only one, which does not have a very ugly IDE-bug (all other installations made by fpcupdeluxe "hang" between TForm1.FormCreate() and TForm1.FormActivate(), if any GUI-program is started within the IDE; if you are interested you can look here *) in the fpcupdeluxe Forum - until now no solution was found thanks to Bart a solution was found).

Many, many thanks to all who helped me. In particular to wp, I am repeatedly impressed by your extensive knowledge and your great helpfulness by writing all the details which help a beginner enormous.

This is a great forum!

*) I think I did not manage this link to work correctly. I mean https://forum.lazarus.freepascal.org/index.php/topic,34645.msg344054.html#msg344054
If someone knows how to "code" such a link that you can click on, please let me know. Thanks.
« Last Edit: January 05, 2020, 10:23:49 am by Hartmut »

lucamar

  • Hero Member
  • *****
  • Posts: 3074
Re: How to recompile my private patched FPC 3.0.4 installation?
« Reply #14 on: December 31, 2019, 05:43:34 pm »
*) I think I did not manage this link to work correctly. I mean https://forum.lazarus.freepascal.org/index.php/topic,34645.msg344054.html#msg344054
If someone knows how to "code" such a link that you can click on, please let me know. Thanks.

FWIW, it works alright here; you did it as it should:

Code: [Select]
[url=https://forum.lazarus.freepascal.org/index.php/topic,34645.msg344054.html#msg344054]here[url]
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus 2.0.8/FPC 3.0.4 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

 

TinyPortal © 2005-2018