This document describes the 64-bit features that are available in Mac OS X v10.4 and v10.5. You should read it to help you determine which of these features to use and how to use them.
What Is 64-Bit Computing?
Who Should Read This Document?
Organization of This Document
See Also
For the purposes of this document, 64-bit computing is defined as support for a 64-bit address space—that is, support for concurrent use of more than 4 GB of memory by a single executable program—no more, no less.
Beginning with version 10.4, Mac OS X supports command-line 64-bit executables on G5-based Macintosh computers and 64-bit-capable Intel Macintosh computers.
Beginning with version 10.5, Mac OS X supports full-featured 64-bit applications on G5-based and 64-bit-capable Intel Macintosh computers.
Mac OS X application developers should, at a minimum, read the chapter “Should You Recompile Your Application as a 64-Bit Executable?.” That chapter will help you determine whether it makes sense for your application to take advantage of 64-bit application support in Mac OS X v10.5.
If you are not planning to update your application to include a 64-bit executable, the 64-bit changes in Mac OS X v10.5 will probably have no impact on you. The advantages and disadvantages of compiling your code as a 64-bit executable are discussed in more detail in the chapter “Should You Recompile Your Application as a 64-Bit Executable?.”
Because 64-bit applications will be supported using a 32-bit kernel, this 64-bit support will have minimal impact on most writers of device drivers or kernel extensions. However, there are exceptions, as explained in “Device Driver Changes.”
This document is organized into the following chapters:
“Should You Recompile Your Application as a 64-Bit Executable?”—provides helpful guidance about whether you should recompile your application as a 64-bit executable.
“Major 64-Bit Changes”—describes the high-level architectural changes between a 32-bit and 64-bit environment.
“Making Code 64-Bit Clean”—explains the general changes needed to make an application 64-bit clean.
“Compiling 64-Bit Code”—explains how to compile your application as a 64-bit executable.
“High-Level 64-Bit API Support”—summarizes changes to higher level APIs such as Carbon, Cocoa, and QuickTime and includes pointers to more detailed documentation on these changes.
“Cross-Architecture Plug-in Support”—describes ways to support legacy plug-ins across architecture boundaries using helper hosts.
“Simulating a 64-Bit Address Space with mmap and munmap ”—describes a technique for emulating a 64-bit address space in a 32-bit application.
For additional information, see the following documents:
Getting Started with Tools includes pointers to documentation that may help you solve 64-bit-related tools issues.
64-Bit Transition Guide for Cocoa and 64-Bit Guide for Carbon Developers provide information about Apple’s 64-bit application APIs.
Universal Binary Programming Guidelines, Second Edition provides information about the Intel transition. You should read this document and add native Intel support to your application first, since many of the Intel changes also apply to a 64-bit port.
Mac OS X ABI Mach-O File Format Reference provides 64-bit ABI information that is useful if you are writing assembly language code.
Xcode User Guide provides information about using Xcode. You should be familiar with Xcode before you port your application to 64-bit.
The gcc(1), ld(1), and lipo(1) man pages may also be relevant to you.
Last updated: 2008-04-08