I have 3 packages, A, B, and C.
B requires A; C requires A too.
I compile them in order: A, B, C.
When I compile them on Linux (Lazarus 3.8 ), I got errors when compiling the last package, C. Lazarus says that it cannot find some unit belonging to package A (incompatible PPU, or unit not found, or checksum changed).
After spending some time, it seems I found the reason. When I compile package B, Lazarus recompiles units of package A that are used by package B. The rest of units of package A become incompatible with these recompiled units.
As a workaround, I added all units of package A in "uses" of unit of package B, even though they are not needed there. Now all units of package A are recompiled when compiling package B, so I can compile all packages.
But is there more elegant solution?