[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.
https://gitlab.com/freepascal.org/fpc/source/-/issues/39824
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