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

Joost van der Sluis joost at cnoc.nl
Tue Jul 5 22:37:36 CEST 2022




Op 05-07-2022 om 08:39 schreef Sven Barth via fpc-devel:
> Joost van der Sluis via fpc-devel <fpc-devel at lists.freepascal.org 
> <mailto:fpc-devel at lists.freepascal.org>> schrieb am Di., 5. Juli 2022, 
> 00:17:
>     Any suggestions? Is it possible to place every fde in it's own section
>     to solve this?
> 
> 
> The problem is that *something* would need to reference the debug 
> sections otherwise they are stripped as well. But as soon as they're 
> referenced whatever code or data *they* reference is kept as well.
> One of the better solutions might be to write these references as weak 
> symbols (on systems that support this) so at least the data/function 
> isn't kept around.
> Or the section of the data/function would have to contain a reference to 
> its corresponding debug entry so that it is kept around as long as the 
> function/data is kept around...
> How does GCC do this?

Apperently GCC does the exact same thing as fpc does on Windows. Replace 
the addresses with 0, and mixup the function-names.

(The link between the CFI and actual code consists of local labels. They 
do not reference the global labels/sections. I guess that is why the 
code is removed, as it's global label is not referenced)

I can adapt fpc so that it does the same on Linux also. So I think I'll 
leave it this way.

Thanks for the help.

Joost.


More information about the fpc-devel mailing list