[fpc-devel] Smart-linking on linux/x86-64

Martin Frb lazarus at mfriebe.de
Mon Jul 4 21:26:15 CEST 2022

On 04/07/2022 21:11, Michael Van Canneyt via fpc-devel wrote:
> On Mon, 4 Jul 2022, Joost van der Sluis via fpc-devel wrote:
>> Hi all,
>> I have a very small application, see below. One procedure is not 
>> called at all.
>> But when I compile with
>> ppcx64 -XX -CX testcfi.pp
>> The P$TESTCFI_$$_NEVERCALLES symbol is still in the executable.
>> On Windows (internal linker) this code is omitted from the 
>> executable, but not on Linux.
> It's omitted here as well:

Not 100% on topic (sorry) but talking about symbols that are (or are 
not) included/excluded from the exe...

There are cases were (imho) too many symbols are omitted, and it has 
gotten worse from 3.2.3 to 3.3.1.

There may not be a variable of the class in question, but the class is 
created. Therefore it exists in the app, and could be needed by a debugger.

Yet while both 2.3.2 and 3.3.1 omit the info itself, an effort was made 
in 3.3.1 to clean up the $$vmt info too, imho that should be reverted, 
and the full info included.

More information about the fpc-devel mailing list