modification has suddenly thrown up
Warning: Recompiling TAGraph, checksum changed for Graphics
Fatal: Cannot find TAGraph used by Scale, incompatible ppu=T:\lazarus\components\tachart\lib\i386-win32\win32\tagraph.ppu, package TAChartLazarusPkg
Actually a bit more detail on this error. (at least as far as my understanding goes / the compiler is mighty complex)
The unit for which the checksum changed was "Graphics", so that is the one that has a duplicate (or otherwise changed).
Each PPU has (several) checksums.
Also each ppu has the checksums of all the ppu for the units that it uses.
Now when something tried to use TAGraph.ppu, fpc detected that tagraph.ppu referred to graphics, but the checksum for graphics in tagraph.ppu differed from the one in graphics.ppu.
......
Now you have to look at how a build is done.
Each package is build on its own.
While a package is build fpc is told where to find the pas sources for that packages. But only for that packages, fpc will not know where sources of other packages are.
Fpc will however be given the path to all ppu from all packages that are required by the currently build package (or project).
.....
So when tagraph was compiled it saw one graphics.ppu
Later another graphics.ppu was build, and 2 graphics.ppu where in the path. And fpc saw the wrong one. So fpc noticed a new checksum.
It is also possible that the same graphics was rebuild, if any package/project has a custom include path, and included units from the LCL via this path (rather than using a reference to the package), in that case one and the same graphics.pas ends up with 2 ppu.
Well there is another possible cause. There was and is only one graphics.pas/ppu.
But something (maybe change of compiler opts) triggered it to be rebuild.
If then for some reason the IDE did not notice and failed to rebuild the package with tachart in it, then that tachart would refer to an older/overwritten version of graphics.
.........
There is a 3rd known way for this error. But it (probably) does not apply here.
The error can happen with 2 files in the same package. If the have circular references, and use inline in a very specific way.
They will both be build, but later one of them will give this error. (At least that was possible with older fpc)
------------------
Just a bit of background into the issue