Figure out how best to handle 32-bit-only plugins
Reported by Christopher Stawarz | April 20th, 2010 @ 05:57 PM
The latest ITC-18 SDK does not include 64-bit binaries, so the ITC-18 plugin is 32-bit-only, meaning MWServer must run as a 32-bit process in order to use it. Also, if a user has 32-bit MATLAB, then MWClient must run in 32-bit mode in order to use the MATLAB window. (At least, I assume that's the case.) Currently, the user's only option for dealing with this is to do "Get Info" on the relevant app in the Finder and check "Open in 32-bit mode". It'd be nice if we could handle this automatically.
Maybe the client and server could monitor plugin load failures and offer to restart in 32-bit mode if needed? Alternatively, application launch could be handled by a shell script that checks plugin architectures and then launches the appropriate binary.
This Apple support document is relevant. Although Solution 2 seems preferrable to Solution 3, the former didn't work for me.
Also, this blog post could be useful.
Comments and changes to this ticket
-
Christopher Stawarz April 27th, 2010 @ 07:22 PM
- State changed from new to open
Another solution might be to follow the route taken by WebKit/Safari and run 32-bit-only plugin code in a separate, 32-bit process (a la WebKitPluginAgent)
-
Christopher Stawarz July 14th, 2010 @ 12:40 PM
- Milestone order changed from 0 to 0
Although Solution 2 seems preferrable to Solution 3, the former didn't work for me.
I haven't verified this, but I'm guessing it didn't work because I was modifying the installed Info.plist file. From experimentation, I've determined that some settings in Info.plist (e.g. environment variables) get baked into the application (somehow) during compilation, and you have to recompile in order for changes to take effect.
-
Christopher Stawarz July 16th, 2010 @ 05:01 PM
From experimentation, I've determined that some settings in Info.plist (e.g. environment variables) get baked into the application (somehow) during compilation, and you have to recompile in order for changes to take effect.
I take that back. The changes don't take effect immediately because Launch Services caches Info.plist contents. You can force it to update its database like so:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /Applications/MWServer.app
-
Christopher Stawarz July 16th, 2010 @ 05:02 PM
Another solution might be to follow the route taken by WebKit/Safari and run 32-bit-only plugin code in a separate, 32-bit process
Here's a potentially useful guide to this approach.
-
Christopher Stawarz May 16th, 2014 @ 11:00 AM
- State changed from open to invalid
This issue is no longer relevant. The ITC-18 framework is now a universal binary, and MATLAB has been 64-bit only for several years.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
DiCarlo Lab plugins for the MWorks core framework and client application