...this may sound a bit like deja-vu, but hear me out: It seems we need to change the s_loader.c stuff for OSX again!
...it all started recently when I was trying to compile pix_2pdp/gem2pdp/pdp2gem with my newly upgraded xcode 2.1 tools and osx 10.4.1...all of a sudden, there were old problems creeping up with undefined symbols, and after playing with it last night and browsing docs, I began to wonder if there was another way...
...so I decided to go back to the source: s_loader.c...in it, osx is using NSLoadModule()...looking this up in current documentation, ya get the following good news:
Object File Image Functions
These functions are for loading Mach-O bundle files. They are declared in /usr/include/mach-o/dyld.h. The use of these functions is discouraged. You should use the more efficient functions described in “Dynamic Loader Compatibility Functions”.
...then, you go to the recommended docs, and behold:
Dynamic Loader Compatibility Functions
These are the recommended functions to use to interact with the dynamic loader. These functions work in Mac OS X v10.3 and v10.4. However, in Mac OS X v10.4 they are more efficient that other image-loading functions. These functions are declared in /usr/include/dlfcn.h.
...these are the typical dlopen/dlclose/dlwhatever functions, so, it appears osx has caught up to linux :-)
...There are of course many questions that'll have to be addressed over the next few days: the most important would be "will currently compiled externals be loadable "as is" if we switch to the new dynamic loaders?", but I won't know until I go ahead and switch over the code and try, which'll I try when I get home tonight...
more l8r,
jamie
ps: any other views?