Cctools 6.5 -

Cctools 6.5 -

Suppose you have two binaries: app_x86_64 and app_arm64. With Cctools 6.5:

lipo -create -output app_universal app_x86_64 app_arm64
lipo -info app_universal

Output: Architectures in the fat file: app_universal are: x86_64 arm64

A major focus of version 6.5 was cleaning up the autotools build system. It now compiles cleanly on: Cctools 6.5


cctools is the critical linker and assembler suite used by Apple for macOS and iOS development. While often overshadowed by the high-level LLVM Clang compiler, cctools provides the low-level utilities required to generate Mach-O binaries.

Version 6.5 represents a historical but foundational release of these tools. It was widely distributed with early Xcode 3.x releases (circa 2007–2008) and was the standard toolchain for the iPhone OS SDK (initial versions). For the retro-computing community and developers maintaining legacy codebases, cctools 6.5 is the specific version often required to build toolchains for iPhone OS 2.x and early Mac OS X 10.5 (Leopard) binaries. Suppose you have two binaries: app_x86_64 and app_arm64


Before diving into version 6.5, a quick primer. Apple's cctools are the open-source derivatives of the traditional Unix binutils (like ld, as, ar), but tailored specifically for Mach-O (Mach Object) binaries—the executable format for macOS, iOS, watchOS, and tvOS.

While the average SwiftUI developer never touches otool directly, the following groups rely on cctools daily: Output: Architectures in the fat file: app_universal are:

Even today, developers may encounter cctools 6.5 when: