Le 29 janv. 2010 à 16:58, Richard Penwell a écrit :

> Dear list,
> 
> I've been toying around with some problems in the world of dynamic code 
> loading... (a vast and mythical place).  I understand that there is a 
> fundamental difference between Mach-O executables and Mach-O dynamic 
> libraries (beyond the obvious Mach-O filetype header).  I assume it has to do 
> with a concept I've read about known as Position Independent Code, in that 
> Dynamic Libraries are PIC and executables (assuming that they are the first 
> object to load and therefore could not have to content for a VM address 
> range) are not.  The question goes something like this:
> 
> Given I have a Mach-O executable file that contains a symbol that I wish to 
> be able to call is there any way to use dlopen or NSBundle load to bring 
> those symbols into another executable?
> 
> I have attempted the following two methods:
> 
> NSBundle *applicationBundle = [[NSBundle alloc] 
> initWithFile:@"path/to/mach-o/executable"];
> [applicationBundle load]
> 
> The above results in:
> 2010-01-29 10:07:41.812 LoadPagesDynamically[93324:a0f] Attempt to load 
> executable of a type that cannot be dynamically loaded for CFBundle 
> 0x1001161b0 <path/to/mach-o/executable> (executable, not loaded)
> 
> Also:
> 
> void* pages_application = dlopen("path/to/mach-o/executable", RTLD_NOW);
> 
> The above results in pages_application == NULL with no errors being reported.
> 
> If it is not possible (I suspect not), is it possible to convert executable 
> object code to a PIC representation to be dynamically loaded?
> 
> I imagine that there may be something that I don't know given Apple's history 
> of binary magic (fat binaries, rosetta etc).
> 
> It seems that this is a dark corner of the DYLD system that isn't well 
> documented as to the technical aspects of why this isn't done.
> 
> I've tried to be as detailed as possible, but if you would like more 
> information as to what I've tried, please let me know.
> 
> Thanks,
> Richard


If you have a dylib question, ask on the darwin-...@lists.apple.com . This is 
where dylib specialists are.


-- Jean-Daniel




_______________________________________________

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

Reply via email to