[GRASS-dev] GUI 64-bit issues

William Kyngesburye woklist at kyngchaos.com
Thu Sep 23 18:47:18 EDT 2010


On Sep 23, 2010, at 4:55 PM, Jeshua Lacock wrote:

> Is it possible to compile the tcltk gui in 32-bit, but the rest of GRASS in 64-bit? I tried enabling 32-bit using the with-macosx-archs configure flag, however, most of my dependencies were built for 64-bit only, so I get errors that a 32-bit version is not available. 
> 
> Note that I do not want a fat binary - I would like to keep my 32-bit and 64-bit builds separate.
> 
The GUI itself is not a binary, just Tcl scripts.  The binary stuff that needs tcltk is NVIZ (not the newer wx nviz).  NVIZ needs the GRASS libraries, so for a 32bit NVIZ, you need 32bit GRASS libraries.  So, you need at least fat GRASS libraries.

You could try a dual build - build fat and keep just the libraries and NVIZ.  Build 64bit and keep everything else.  This would require some manual moving of files around.  And a couple libraries are tied to tcltk (libform is one) so building the libraries 64bit-only still might not work.

Otherwise, yes you need a fat build for a 64bit GRASS.

> 2. I am getting a 32-bit error trying to launch wxPython GUI:
> 
> ERROR: wxGUI requires wxPython. /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode/wx/_core_.so: no appropriate 64-bit architecture (see "man python" for running in 32-bit mode)
> 
> 
> Is it possible to run a 64-bit version of GRASS using 32-bit version of wxPython?
> 
> Or does GRASS compiled for 64-bit not support any GUIs?
> 
Python on OSX Snow Leopard runs 64bit by default.  You need to force it to run in 32bit mode.  This is tricky since /usr/bin/python is actually a special Apple python executable that will switch to 32bit mode based on some environment variable (I forget the name, and I don't know how reliable it is, or it may have had problems in GRASS when/if I tried it), BUT DOES NOT respond to using the arch command to do so.

You need to run python with /usr/bin/python2.6, which is a symlink to the normal framework python executable, and responds to the arch command.  But, run commands in the GUI don't work with a multi-word program name (ie "arch -i386 /usr/bin/python2.6" instead of a simple "python").

This is taken care of in the Mac app build with a python wrapper.  The wrapper is seen as a single word, thus the GUI run commands are happy.  If you don't use the builtin Mac app build option, you won't get this wrapper (I thought about moving it into the general lib/init stuff so it's available to all Mac builds, but I either had a problem with that or got distracted).

> 
> Thanks,
> 
> Jeshua Lacock, Owner
> <http://OpenOSX.com>
> phone: 208.462.4171
> 
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"Oh, look, I seem to have fallen down a deep, dark hole.  Now what does that remind me of?  Ah, yes - life."

- Marvin




More information about the grass-dev mailing list