[fpc-pascal] Smartlinking public functions

dmitry boyarintsev skalogryz.lists at gmail.com
Sat Mar 6 22:05:52 CET 2010


Hello Developers

The system expects an application to implement (export) some functions
that are to be linked statically.

I'm using [public] modifier:
function someFunc: Integer cdecl; [public]; alias: '_someFunc';

The linker catches up the function and statically links it with the
system library.

The problem comes with using smartlinking -XX switch.
Since someFunc is not used by my code, the compiler considers it
useless and throws away.
The linker fails to find the symbol name and so a system routing, that
uses the exported functions, simply fails.

I can insert the usage code, like

initialization
  if @someFunc = nil then Halt(255);

This would prevent the smartlinking, but is there more beautiful way
to prevent a function from being smartlinked?

thanks,
dmitry



More information about the fpc-pascal mailing list