64bits & Leopard Prep

I’m starting think about Leopard. Not much I can do with the builds yet – I only have the free developer membership, so I can’t get any Leopard prerelease developer software. Working on ideas and and 64bit stuff I can do in Tiger.

This is my rough plan.

  • Drop Panther compatibility (very probable) – between patches, library incompatibilities, and extra features in Tiger, building for Panther compatibility is a hassle. Sure, Leopard/Tiger compatibility may have similar issues, but the fewer the better.
  • Revert to system libraries where possible – part of the Panther compatibility required building some libraries that were available in the system myself. These include curl, bzip2, readline and sqlite3. Since I do Sqlite as a framework, I will probably keep doing that.
  • 64 bit builds.

I did some initial work on 64bit builds in Tiger. Tiger supports 64bit compilation (a separate thing from 64bit file sizes, which is supported back to at least Panther). BUT, only in the system library. This means mainly number-crunching stuff that runs from the command line – no networking, no GUI, no devices…

I was able to build 64bit Tiger for UnixImageIO (except the Xpm library which needs a 64bit X11 library), GEOS, PROJ and FreeType.

Xerces needs Carbon frameworks for some Mac services (file IO and char encoding features), instead of using similar unix-level services. That eliminates a 64bit Tiger GDAL right there. Python will definitely need Leopard, with all the stuff it covers (especially wxPyhon), so not even GDAL python tools will be possible, if the minor Xerces issue is ignored.

Of course, all the applications (GRASS, Qgis, …) and server apps (Postgres, MapServer) will not be possible 64bit on Tiger.

This leaves a split build for the future. Looks like I will do Tiger-only 32bit universal builds and Leopard-only 64bit builds. It’s likely that the 32bit Tiger builds will also work on Leopard, to allow compatibility for old software on Leopard that doesn’t get rebuilt for 64bit Leopard (at all, or in a timely fasion), so I could make the installers quad-arch universal, and just strip out the 64bit parts when installed on Tiger.