[fpc-pascal] dlmopen on MacOS

Adriaan van Os adriaan at adriaan.biz
Wed Nov 20 14:59:31 CET 2024


I have a shared library on MacOS written in FPC. It needs to be loaded multiple times, that is each 
time with its own set of global (dylib) variables. On Linux I would use dlmopen with LM_ID_NEWLM, 
but MacOS doesn't have dlmopen and dlopen doesn't have LM_ID_NEWLM. I can create a copy of the 
dylib on the fly and load the copy. But then the OS will complain about ObjC/ObjPascal namespace 
collisions, even when loading with RTLD_LOCAL.

One wonders how operating systems can be designed that brainlessly.

Of course, I could write my own Mach-O loader, but I have other things to do.

Another idea is to prevent all use of global variables in the dylib. Before I do that, my question 
is if implicit compiler global variables (for the dylib code, not for the FPC runtime lib) would 
spoil that idea ?

Regards,

Adriaan van Os





More information about the fpc-pascal mailing list