[Lazarus] Packages can't compile - checksum changed error

Tony Whyman tony.whyman at mccallumwhyman.com
Thu Jun 25 13:29:36 CEST 2015


Try in the IDE

Run->Clean up and Build

Often works for me with this sort of problem.

Tony

On 25/06/15 11:41, Graeme Geldenhuys wrote:
> Hi,
>
> This is a odd one, but I'll try and explain as best I can.
>
> This relates to the *.lpk packages in the tiOPF project. These packages
> haven't changed for years. But in recent months they sometimes fail to
> compile. I say sometimes, because it is very strange. On my native OSX
> and FreeBSD systems the 'tiopflcl.lpk' package fails to compile, but in
> my Linux and Windows VM that exact same package compiles without
> problems. Same version of FPC and tiOPF.
>
> I first thought it was related to the Build Modes & "Additions and
> Overrides" changes, but the Linux VM that works is using a Lazarus v1.5
> from 3 weeks ago.
>
> I have two packages in the tiOPF project:
>
>    tiOPF.lpk              // GUI independent code
>    tiOPFLCL.lpk           // units that require LCL
>
> Each package has a different unit output directory, and the second
> package depends on the first package. What I find very weird (and
> consider wrong) is that in my unit output directories I have duplicate
> compiled units (units found in the first package). I would have expected
> the second package to reuse the already compiled units from the first
> package. The compiler options are matched exactly between packages.
>
> ls ./Compilers/FPC/lib/x86_64-freebsd/lcl
> ./Compilers/FPC/lib/x86_64-freebsd -1 | sort | uniq -c | sort
>
>        2 dzlib.o
>        2 dzlib.ppu
>        2 tiCompressZLib.o
>        2 tiCompressZLib.ppu
>        2 tiDataBuffer_BOM.o
>        2 tiDataBuffer_BOM.ppu
>        2 tiDataBuffer_Cli.o
>        2 tiDataBuffer_Cli.ppu
>        2 tiQueryCSV.o
>        2 tiQueryCSV.ppu
>        2 tiQueryDataset.o
>        2 tiQueryDataset.ppu
>        2 tiQuerySqldbIB.o
>        2 tiQuerySqldbIB.ppu
>        2 tiQuerySqldb.o
>        2 tiQuerySqldb.ppu
>        2 tiQueryTAB.o
>        2 tiQueryTAB.ppu
>        2 tiQueryTXTAbs.o
>        2 tiQueryTXTAbs.ppu
>        2 tiQueryXMLLight.o
>        2 tiQueryXMLLight.ppu
>        2 tiXML.o
>        2 tiXML.ppu
>        2 tiXMLToTIDataset.o
>        2 tiXMLToTIDataset.ppu
>
>
> So why the duplicate units? Obviously this is what causes the checksum
> changed issue and ultimately makes FPC go pear shaped. But more puzzling
> is why this confusion happens on some systems, but not on others.
>
> I opened each package and clicked the "Show Options" button. Here are
> the compiler settings for each package. As you can see, the second
> package does include the unit output directory from the first package
> (Compilers/FPC/lib/x86_64-freebsd), but why does it still decide to
> recompile some units (duplicates shown above). I can also add that the
> duplicates are only a subset of units found in the first package.
>
>
> *****  tiOPF  *****
> -MObjFPC -Scai -Cg -O1 -g -gl -l -vewnhibq -vm5024
> -Fi/data/devel/Wisa/fpcpackages/tiopf/Core
> -Fu/data/devel/Wisa/fpcpackages/tiopf/Core
> -Fu/data/devel/Wisa/fpcpackages/tiopf/Options
> -Fu/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/
> -FU/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/lib/x86_64-freebsd/
> -dLINK_CSV
> -dLINK_TAB
> -dLINK_FBLx
> -dLINK_SQLDB_IB
> -dLINK_SQLDB_PQx
> -dLINK_SQLDB_Oraclex
> -dLINK_SQLDB_SQLite3x
> -dLINK_SQLDB_ODBCx
> -dLINK_SQLDB_MySQL40x
> -dLINK_SQLDB_MySQL41x
> -dLINK_SQLDB_MySQL50x
> -dLINK_XMLLIGHT
> -dLINK_ZEOS_FBx
> -dUseCThreads
>
>
> *****  tiOPF+LCL  *****
> -MObjFPC -Scai -Cg -O1 -g -gl -l -vewnhibq
> -Fi/data/devel/Wisa/fpcpackages/tiopf/Core
> -Fu/data/devel/Wisa/fpcpackages/tiopf/Options
> -Fu/data/devel/Wisa/fpcpackages/tiopf/GUI
> -Fu/data/devel/Wisa/fpcpackages/tiopf/GUI/LCL
> -Fu/data/devel/lazarus/packager/units/x86_64-freebsd
> -Fu/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/lib/x86_64-freebsd
> -Fu/data/devel/lazarus/components/lazutils/lib/x86_64-freebsd
> -Fu/data/devel/lazarus/lcl/units/x86_64-freebsd
> -Fu/data/devel/lazarus/lcl/units/x86_64-freebsd/gtk2
> -Fu/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/
> -FU/data/devel/Wisa/fpcpackages/tiopf/Compilers/FPC/lib/x86_64-freebsd/lcl/
> -dLCL
> -dLCLgtk2
> -dUseCThreads
>
>
> Does anybody know what could be going wrong here? In help would be very
> much appreciated. As a work around I used IDE Macros in my project,
> instead of Lazarus Packages, then my project compiles just fine. The
> other alternative is to create a new package just for my project that
> contains all required tiOPF units in a single package, and not use the
> packages included with tiOPF. Both workarounds are not ideal.
>
> The problem doesn't occur just on my system. In the last week, somebody
> else also reported this issue in the tiOPF newsgroups. They use Linux.
> So the issue isn't even specific to OSX or FreeBSD either.
>
>
> If you want to have a try at compiling these packages yourself, you can
> grab a copy of the code via Git, or download a snapshot via SourceForge.
>
>    git clone git://git.code.sf.net/p/tiopf/code tiopf
>
> OR
>
>    via your web browser:
>      http://sourceforge.net/p/tiopf/code/ci/master/tarball
>
>
> Regards,
>    - Graeme -
>





More information about the Lazarus mailing list