[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