We need to hook up build/unix/components-mapfile, components-version-script, or an equivalent for mach-o. This may improve startup performance a bit. Unlike ELF systems, it doesn't sound like it will help at runtime, because symbol references (even for exported symbols) are resolved at link time.
So, the mach-o linker gives an error if any of the symbols listed in the export list don't exist in the library. Most of our components only define NSGetModule. I don't believe NSRegisterSelf and NSUnregisterSelf are used any more in any of our components. We have one factory (liveconnect) which uses NSGetFactory. If we converted that to NSModule, then we could just use an exported symbol list containing only NSGetModule.
Actually, I don't think we need to change liveconnect. There's no way the NSGetFactory entry point is going to be used; the library isn't a component.
Comment on attachment 110676 [details] [diff] [review] patch r=cls
i had to back out the configure change. the exported_symbols_list linker flag was just added in the december 2002 developer tools, which is not currently a build requirement. i'll come up with a new patch to do the same thing by postprocessing the library with nmedit.
Created attachment 110743 [details] [diff] [review] patch using nmedit
Created attachment 110749 [details] [diff] [review] one more try fixed a problem linking libxpcom
Comment on attachment 110749 [details] [diff] [review] one more try r=cls
it's in for real now.