Hi @ck thank you for the advice. I’ll try the suggested approach.
P.S. what do you mean “I only added stuff on demand”? Do you meant - you can add a particulary C lib function, upon user request? If so, would it be possible that you might consider adding that function _byteswap_ulong (for windows), and __builtin_bswap32 (for Linux), to to island rtl?
Yes. I can add them, but to get past this we really need to have a list of them functions that are needed (and tested), if you can implement them that’d be great, you are in a better position than we are to test this as the semantics of these low level functions aren’t always 100% clear.
Should I reference Island or/and rtl? I thought they are implicitly referenced? Otherwise the Importer should complain memset/memcpy too, since they are also part of the RTL but the importer didn’t complain any missing symbols of them as part of the C inline functions being inported?
To add extra references, I need to edit the project file directly, right?
Hi marc - sorry I mis-informed. The IMPORT project indeed has Island.fx and rtl.fx referenced.
But still the question remains: why the IMPORTER can not see _byteswap_ulong, which is part of IslandRTL?
Yes - the importer no longer complains. But the imported C inline functions, does NOT seem to work.
For example the following C inline function (which calls another complex inline function TF_TString_ResizeUninitialized) - it does NOT work. See this test projectInlineImportTest.zip (101.1 KB)
I guess Island Importer has certain limit on the “levels of calling depths”, when importing C Inline functions while those inline functions are calling each other in a convoluted way?