Forum > LCL
[SOLVED] Lazarus LCL FPC compatibility question
lagprogramming:
The latest stable release of Lazarus(including the lcl) should be compatible with FPC 3.2.2(because according to the release announcements it was built with FPC 3.2.2.), but also should be compatible with FPC 2.6.4(according to the docs/INSTALL.txt file). Is my understanding right?
What about the development(trunk) sources, do they have to be backwards compatible with FPC 2.6.4, too?
If the information in docs/INSTALL.txt has become obsolete, maybe it should be updated.
Martin_fr:
It seems to me docs/install may not have been updated.
The general rule is:
A version of Lazarus should be compatible with the two most recent FPC releases, at the time of the release of that Lazarus version.
I.e. if at the time Lazarus 2.2.0 was released, the current FPC was 3.2.2, then it should be compatible with 3.2.2 and 3.2.0.
I am not sure, if updates to fixes would break the 3.2.0 compatibility, if in the meantime FPC 3.2.4 was out (and therefore the 2 most recent FPC would be 3.2.4 and 3.2.2).
I don't know what the last Lazarus was that supported 2.6.4. That would have to be from the time that 3.0.0 was the current fpc.
lagprogramming:
I've noticed that the docs/INSTALL.txt file has been updated.
In a clean linux environment, compiling Lazarus 2.2.6 using FPC 3.0.0 fails with:
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---/tmp/lazarus/components/freetype/ttraster.pas(163,57) Hint: (5024) Parameter "max" not used/tmp/lazarus/components/freetype/ttraster.pas(145,75) Hint: (5024) Parameter "Left" not used/tmp/lazarus/components/freetype/ttraster.pas(146,12) Hint: (5024) Parameter "Right" not used/tmp/lazarus/components/freetype/easylazfreetype.pas(55,23) Error: (5000) Identifier not found "TPointF"/tmp/lazarus/components/freetype/easylazfreetype.pas(55,30) Error: (5007) Error in type definition/tmp/lazarus/components/freetype/easylazfreetype.pas(245,5) Fatal: Internal error 2010021405Fatal: (1018) Compilation abortedError: /tmp/fpc-3.0.0/bin/ppcx64 returned an error exitcodemake[1]: *** [Makefile:3394: freetypelaz.ppu] Error 1make[1]: Leaving directory '/tmp/lazarus/components/freetype'make: *** [Makefile:3845: lazbuild] Error 2guest@localhost ~/lazarus $ This means that removing from the official development(trunk) files the code for obsolete FPC versions(at least those prior to 3.0.0), can be done without complaints regarding eventual regresions, right!?
The best answer would be to update lcl/lclversion.pas too, as it has the following lines:
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---{ At least 2.4.2 is required, except for wince which supports fpc 2.2.0+ too }{$ifdef Wince} {$if defined(ver1) or (FPC_FULLVERSION<20200)} {$fatal Lazarus for WinCE requires at least FPC 2.2.0} {$endif}{$else} {$if defined(ver1) or (FPC_FULLVERSION<20402) } {$fatal Lazarus requires at least FPC 2.4.2} {$endif}{$endif}
lagprogramming:
Knowing that Lazarus needs a newer FPC version than 3.0.0 in order to be built, the following patch removes the obsolete lines from lcl/lclversion.pas
--- Code: Pascal [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---diff --git a/lcl/lclversion.pas b/lcl/lclversion.pasindex 69c270c063..4d2eb43b77 100644--- a/lcl/lclversion.pas+++ b/lcl/lclversion.pas@@ -16,17 +16,6 @@ } unit LCLVersion; -{ At least 2.4.2 is required, except for wince which supports fpc 2.2.0+ too }-{$ifdef Wince}- {$if defined(ver1) or (FPC_FULLVERSION<20200)}- {$fatal Lazarus for WinCE requires at least FPC 2.2.0}- {$endif}-{$else}- {$if defined(ver1) or (FPC_FULLVERSION<20402) }- {$fatal Lazarus requires at least FPC 2.4.2}- {$endif}-{$endif}- {$mode objfpc}{$H+} interface
Martin_fr:
Please report on the bug tracker. Thanks
Navigation
[0] Message Index
[#] Next page