[fpc-devel] fnmatch (linux), where is the external

Marco van de Voort fpc at pascalprogramming.org
Tue Oct 17 13:30:19 CEST 2023


Op 17-10-2023 om 13:17 schreef robert rozee via fpc-devel:
> Date: Tue, 17 Oct 2023 09:32:16 +0200
> From: Marco van de Voort <fpc at pascalprogramming.org>
>> - without the patches you are reviewing it works all fine, suggesting a
>> problem in those patches that somehow forces linking to the symbol
>> without it being used.
>
> and installed the three packages (fpc-laz, fpc-src, lazarus-project) as per instructions. this gives a completely unpatch, unadulterated 64-bit Linux, running a completely unpatch, unadulterated FPC and Lazarus.

And that works.

> (1002) Target OS: Linux for x86-64
> (3104) Compiling project1.lpr
> (10001) PPU Loading /usr/share/lazarus/2.2.6/lcl/units/x86_64-linux/gtk2/gtk2int.ppu
> (10011) PPU Source: gtk2int.pas not found
> (10011) PPU Source: gtk2defines.inc not available
> (10011) PPU Source: gtk2winapih.inc not available
> (10011) PPU Source: gtk2lclintfh.inc not available
> (10011) PPU Source: gtk2listslh.inc not available
> (10011) PPU Source: gtk2widgetset.inc not available
> (10011) PPU Source: gtk2winapi.inc not available
> (10011) PPU Source: gtk2lclintf.inc not available
> (10011) PPU Source: gtk2listsl.inc not available
> (10028) Recompiling Gtk2Int, checksum changed for /usr/lib/fpc/3.2.2/units/x86_64-linux/gtk2/gtk2.ppu
> /usr/share/lazarus/2.2.6/lcl/units/x86_64-linux/gtk2/gtk2int.ppu:gtk2int.pas(14,36) Fatal: (10022) Can't find unit Gtk2Int used by Interfaces

This is not a linking error or mis-resolved symbol or something similar. 
It is about incrementally rebuilding the LCL automatically as a 
dependency of your project after

(1) installing a new compiler, possibly erasing a release (-Ur) compiler 
with one that isn't.

(2) modifying LCL source.

Which is not _that_ surprising as you leave a lot of state behind from 
your earlier compilation. A Lazarus developer might give you some tips 
on that how to do this more systematic.  I usually first build lazarus 
with make bigide and then with lazbuild (to reenable packages) after 
such mods.

Another, simpler thing might be to simply erase all .o and .ppu from the 
lazarus repo before doing the lazbuild. That erases state (that 
hopefully will then be rebuilt in a consistent way by lazbuild)

> reversing the edit, rebuilding the compiler, RTL, etc, and now when run lazbuild reports:

This seems to indicate the cause of the state problem is the source 
modification rather than the compiler recompile. Which is logical since 
it invalidates the RTL.




More information about the fpc-devel mailing list