[fpc-devel] Dynamically Loading Libraries

Marco van de Voort marcov at stack.nl
Wed Nov 11 11:25:08 CET 2009

In our previous episode, Jeppe Johansen said:
> >
> > -Ivo Steinmann
> > <http://www.dict.cc/englisch-deutsch/criticism.html>
> >   
> What about saying that
>     procedure proc; external 'libname' name 'proc';
> denotes a function that's dynamically loaded implicitly, while
>     procedure proc; external name 'proc';
> denotes a static linked function.

This syntax is not possible. The external 'xxx' name 'proc' is there for a reason,
for systems with multiple linker namespaces. Moreover there is already an
enormous codebase that uses this.
> In my opinion that seems like the only logical solution. Explicit 
> dynamic loading will ofcourse still be possible, but you wouldn't need 
> tools or lots of ifdefs

You still need to define which functions must be there to start. 
> I'm not aware of how well it would work on Mac platforms, but I'm mostly 
> certain most GNU/Linux and BSD's, and Windows has support for implicit 
> dynamic linking in the executable formats
> This is ofcourse a solution that would require modification of the 
> compiler, but I think in the long run that it'll make alot of things 
> more comprehensible

I don't. I think this dynamically loading of headers has already gone to
far. It is a good workaround for a few headers that are versionwise a
disaster, like MySQL, but universally, it doesn't solve problems.

More information about the fpc-devel mailing list