Upgrading to Snow Leopard Part 6: 64bit vs. 32bit


OK, probably my last post on upgrading as everything has actually gone surprisingly smooth. I may actually start upgrading some of my other machines now. I honestly think this upgrade has been my smoothest upgrade of an OS. (Which considering how big the under the hood changes were is quite surprising)

What I want to discuss today is moving between 32 bit and 64 bit versions.

First I mentioned yesterday the problems with Python. That’s partially fixable by Apple keeping old versions of utilities around. Also, if you did what I did and backed up your full disk, consider copying Leopard versions of needed utilities back over. I don’t think I need to do that, but it is an option.

An other alternative (thanks to WcW at Ars) is to use the arch command. So to run say Python as 32 bit rather than 64 bit do:

arch -arch i386 /usr/bin/python

If you really need a 32 bit version consider using lipo. Of course all of us that develop are familiar with lipo for building fat binaries. But you can use it for thinning binaries as well.

lipo program_path -thin x86_64 -output program_path

Next up is the continuing debate about 64 bit kernel. I’m amazed this debate is still raging since most programs simply don’t spend much time in the kernel. However some people are showing slightly better performance with certain applications and there are a few claims of better battery life. Personally since there are no 64 bit clean mouse drivers yet I think most people won’t want to run the 64 bit kernel. Plus it’s clear Apple hasn’t yet finished writing drivers for machines capable of running the 64 bit kernel. Come on guys, hold on a few months.

The bigger improvement is to track down your PPC only apps. (Either by that script or by opening Activity Monitor and sorting by kind) Surprisingly when I did the later I found a PPC only daemon that launchd was running. I don’t recall ever installing it but I suspect it was installed by an eSATA card I have. It was a Raid 5 daemon. I quickly removed it from launchd. Other than that all I have left is the eFAX software. I can’t wait until that can go away.

Related posts:

  1. 64bit vs. 32bit Kernel in Snow Leopard
  2. Upgrading to Snow Leopard Part 7: One Month Later
  3. Upgrading to Snow Leopard Part 2: Minor Tips
  4. Upgrading to Snow Leopard Part 5: The Python Gripes
  5. Upgrading to Snow Leopard Part 3: MacPorts
  6. Upgrading to Snow Leopard Part 4: MySQL
  7. Upgrading to Snow Leopard Part 1: Python
  8. Live Mesh for Snow Leopard
  1. #1 by Jack on 2009/12/22 - 5:18 pm

    Thanks for sharing some of the dirty work! I’m having a problem that’s related to 32 bit / 64 bit Python, I think (I’m rather new at this) . . . could I direct my question to you or is there an appropriate forum somewhere?

  2. #2 by clark on 2009/12/22 - 5:22 pm

    Feel free to ask. I’ve not played around with the 32bit/64bit issues much the past couple of months just because I’m so busy. I was just happy to get things working in my workflow!

  3. #3 by Jack on 2009/12/22 - 5:32 pm

    I am making an XCode project and linking Python.framework to it. On compile (Debug | x86_64), XCode tells me that “In /Developer/… , missing required architecture x86_64 in file”. In Debug | i386 mode instead, build finishes, then Xcode tells me that it can’t find the source file moduleobject.c. I found the header file moduleobject.h in the python framework’s include directory, but no source files in that tree.

    I have a feeling that the error stems from my installation of the Enthought Python Distribution, since the version number of the Python framework specified by the path that Xcode gives is 4.3.0. I’m thinking about uninstalling Enthought to try to return to Snow Leopard’s original state, would this be my best bet?

  4. #4 by clark on 2009/12/22 - 5:44 pm

    If you are using a custom Python build that might be the problem. I suspect this will be an inherent problem – but I’ve not tried anything like this.

(will not be published)