[fpc-pascal] Bindings for FLTK - testers needed
Dibo
dibo20 at wp.pl
Thu Jun 25 08:10:16 CEST 2026
>
> FPC does not really support linking to C++ libraries. The usual
> mechanism is
> to write a C library that sits between FPC/C++, which handles
> initialization.
>
> Probably there will be other initialization routines that must be called,
> you will likely discover them one by one, whenever a new widget is
> used that
> needs one.
>
> Michael.
Yes, and that is how it works now. FPC call libcfltk (flatten C - the
base for all bindings in other languages) which then call libfltk (C++).
The difference is that when linking *.a libs, method
"__init_array_start" is not called but it is called in case of *.dll. I
worked with this with Claude AI which finally found solution by
analyzing binary ELF and how linkers work in other languages. A lot of
low level technic speach which I don't understand but in short, he found
differences between gcc and rust and FPC linkers. FPC linking is just a
proxy which generate linkXXXX.res map where ".init_array" is not filled
and this array is later called by "_start" from "__libc_start_main". I'm
porting now some app on PasFLTK and I don't see any other errors after
made this patch, seems like only this stage of init globals was missing
and later C is initializing C++ constructors fine
More information about the fpc-pascal
mailing list