On Mon, Oct 4, 2010 at 11:11 AM, Greg Parker <gpar...@apple.com> wrote: > On Oct 2, 2010, at 6:54 PM, Kyle Sluder wrote: > > Maybe weak linking can help here. If you weak link the Python library and > call dlopen early on in your program's lifetime with the appropriate path, I > think dyld will populate all the weak linked functions it finds. > > No, weak linking doesn't do that. > You want deferred binding: if the symbol you want is not present at load > time but appears later, resolve to that one at that time. dlopen+dlsym is > the only way to get that on Mac OS. > Normal linking is required and not deferred: if the symbol you want is not > present at load time, your process halts. > Weak linking is optional, but still not deferred: if the symbol you want is > not present at load time, then your references resolve to NULL. You don't > get a chance to try again later.
Okay, I was confused by this statement in the manpage for dlopen(3): RTLD_NOW All external function references are bound immediately during the call to dlopen(). I suppose that applies to external function references in the library being loaded, not the one doing the loading. --Kyle Sluder _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com