[fpc-pascal] BUG: FPC must not expect main for shared library
Jonas Maebe
jonas.maebe at elis.ugent.be
Fri Nov 21 19:44:10 CET 2008
On 21 Nov 2008, at 19:34, KES wrote:
>
> JM> On 21 Nov 2008, at 18:04, KES wrote:
>
>>> I think FPC must not expect 'main' entry point
>
> JM> The "main" of an FPC shared library contains the code to run the
> JM> initialisation routines of all units used by the library. The
> label of
> JM> this code is however not called "main" (I can't remember that it
> ever
> JM> was), and the FreeBSD startup code for is indeed wrong in
> calling it.
>
> JM> For the FreeBSD maintainers: I guess you should use similar init/
> fini
> JM> code as what is used for Linux (compiler/t_linux.pas, search for
> JM> initname).
>
> fpc -Ss does not help ((
That switch is unrelated, it's about parsing TP-style object
constructors and destructors.
The problem you have needs to be fixed in the compiler, you cannot
change this behaviour using a command line switch. As far as I can
tell, the problem is simply that nobody ever added support for shared
libraries under FreeBSD. There is no startup code for them in the run
time library, and no special case for them in the target-specific
files of the compiler.
The reason you get that error, is because it always uses the startup
code for programs (and those do always have a main function).
Jonas
More information about the fpc-pascal
mailing list