[fpc-devel] LinkLib Issues In Lazarus and in FPC-2.0.2

Daniël Mantione daniel.mantione at freepascal.org
Mon Jul 17 14:03:35 CEST 2006



Op Mon, 17 Jul 2006, schreef Jonas Maebe:

> There's nothing C-specific about libraries, nor about the *config scripts=
. At
> most it would be linker-specific.

There is, those scripts mainly exist because a C compiler cannot determine =

the dependencies of a library. I.e. if you like libgtk you must also link =

libglib.

We don't need this in Pascal, the compiler can perfectly determine the =

dependencies by checking the used units. So the primary reason for this =

cruft is void in Pascal.

> > There simply should be no reason
> > why you want such complexity. A library has a name, you link to it by
> > name, basta.
> =

> A library also exist in at least multiple locations, versions (both
> ABI-compatible and -incompatible with previous versions) and implementati=
ons
> (e.g. a native Mac OS X GTK and an X-based one).

I don't see how *_config guards you against this:
* In case of a version change it will simply return the new version. The =

  .so symlink does this as well. If the new version is incompatible with =

  the old one, bad luck.
* It doesn't guard you against ABI changes, because that it determined =

  at the compiler level. I.e. there is no way to make cdecl code using a =

  register calling convention by using a linker option.

It helps for locations, but we already have a well adequate solution for =

that: Putting the location in fpc.cfg.

Dani=EBl


More information about the fpc-devel mailing list