The reason for the SqueakPluginsBuiltInOrLocalOnly was to prevent the VM from looking in about 100 places for a plugin before deciding to use the one built into the VM this saved several 10 of ms in launch time. At the time there was also a transition period between PowerPC and Universal plugins, the historical algorithm would try to load powerpc plugins lying loose in a developer's various libraries, versus using the newly complied ones supplied by the VM.
So setting SqueakPluginsBuiltInOrLocalOnly to NO might lead to other interesting issues, versus for example doing a 'ln -s /usr/lib/ libc.dylib libc.dylib in the VM's resource folder.
I will look at changing sqMacUnixExternalPrims.c to allow absolute paths, and also consider the changes Ian made lately to reduce the amount of searching that the original UnixExternalPrims.c did.
On 2009-09-30, at 9:04 AM, Eliot Miranda wrote:
Craig Latta found a simple work-around which is to set the VM's Info.plist variable "SqueakPluginsBuiltInOrLocalOnly" to false, so that libraries are found on Snow Leopard. Up until now things have been being found through vagaries if the Mac OS X dlopen call which would, I think, search the paths in an executable used to find dlls. i.e. prior to Snow Leopard if you tried to run something in libSystem.B.dylib and you traced the logic in sqMacUnixExternalPrims.c you'd find that dlopen was "finding" libSystem.B.dylib in VM.app/Contents/Resources, even though it is not there.
Personally I think that sqMacUnixExternalPrims.c is ripe for a rewrite. It is torturously complex. But Craig's workaround works for us and takes the pressure off.
P.S. I'm not on the Pharo list. Can someone forward this for me?
-- = = = ======================================================================== John M. McIntosh johnmci@smalltalkconsulting.com Twitter: squeaker68882 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com = = = ========================================================================