> If it is something for which there is no way to do an alternative > implementation I might just let it error. What is code using your > library going to do if it needs the functions? Maybe you provide a > test routine or table that lets the user know what is there so they > can abort if stuff they need is missing. (sorry, I missed your last paragraph and question) Ok, so application A is using cairo to output a PDF document, and application B to display stuff on screen via GDI. Two apps using two cairo API chunks which are optional to compile. Each app will break if the wrong cairo.dll is shipped with it, but I want both to work with the same cairo.lua file, so I don't think the argument "your app will break anyway" applies to middleware.