Skip to content

Releases: danupsher/tiger-ppc-builds

PPC Tiger Cross-Compiler v1.3 — G3-safe runtime libraries

05 Mar 14:06

Choose a tag to compare

v1.3 — G3-safe runtime libraries (archive format fix)

Fixed GNU ar vs Mach-O ar archive format issue. The GCC build system's libtool was using system ar instead of cctools ar, producing GNU-format archives that ld64 couldn't properly search for symbols. This caused missing symbol errors at runtime.

What was fixed

  • Root cause: libtool in the libstdc++ build dir had AR="ar" hardcoded, overriding AR_FOR_TARGET. Fixed to use /mnt/media/claude_cross/toolchain/bin/powerpc-apple-darwin8-ar.
  • Rebuilt libstdc++.a from GCC 15.2.0 with -mcpu=G3 — now produces proper BSD/Mach-O archive directly
  • All Makefiles + libtool in libstdc++ build tree updated to use cctools ar/ranlib
  • Added -fpermissive to c++20/format.lo build rule (Tiger iconv const char** mismatch)
  • Zero G5 instructions across all 316 objects in 5 runtime libraries

Libraries verified clean

Library Objects G5 instructions
libgcc.a 109 0
libstdc++.a 191 0
libtiger_runtime.a 11 0
libef_ppc.a 3 0
libemutls_w.a 2 0

PPC Tiger Cross-Compiler (GCC 15.2.0 + ld64) v1.2

05 Mar 00:25

Choose a tag to compare

Standalone GCC 15 Cross-Compiler for Tiger PPC — v1.2

Fully self-contained cross-compilation toolchain. Runs entirely on x86_64 Linux — no Mac needed, no SSH.

What's New (v1.2)

  • -force_cpusubtype_ALL on ld64 link step: Output binaries now have CPU_SUBTYPE_POWERPC_ALL instead of ppc_970. Fixes not compatible with System type errors on G3/G4 Macs.

What's New (v1.1)

  • expandlibs .list file support for large project builds (Mozilla)
  • tiger-compat.h updates: CGGradient stubs, NSTrackingArea stubs, NSWindowCollectionBehavior, MOZ_CAN_DRAW_IN_TITLEBAR undef
  • fix_exc_ld64.py: Fixed RTTI weak definition handling
  • All paths are now relative — no hardcoded paths in wrapper scripts

Quick Start

tar xf ppc-tiger-gcc15-xcompiler.tar.gz
export PATH="$PWD/ppc-tiger-xcompiler/bin:$PATH"

# C
ppc-ld64-gcc -O2 hello.c -o hello

# C++ with exceptions and STL
ppc-ld64-g++ -std=c++17 -O2 program.cpp -o program

Copy the output binary to your Tiger PPC Mac and run it.

Pipeline

  1. GCC 15.2.0 cc1/cc1plus — C/C++ to PPC assembly (native x86_64)
  2. fix_exc_ld64.py — exception handling fixup
  3. ppc-darwin-fixup.py — Darwin PPC assembly patches
  4. cctools assembler — Mach-O object files
  5. ld64-97.17 — Apple's linker, built for Linux

Features

  • C11/C17, C++11/14/17/20/23
  • Full C++ exception handling
  • Complete STL
  • Static linking (no runtime deps beyond Tiger system libs)
  • -mcpu=G3 default — runs on any PPC Mac (G3/G4/G5)
  • Mac OS X 10.4u SDK included
  • Mozilla/large project build support (expandlibs .list files)
  • tiger-compat.h: comprehensive 10.5+ API shims for Tiger SDK

Requirements

  • x86_64 Linux, Python 3, ~250 MB disk space

Tested

137/137 compiler tests passing. Successfully builds a full Mozilla-based browser (Basilisk/UXP) from source.

Contents (66 MB)

ppc-tiger-xcompiler/
  bin/       cc1, cc1plus, ld64, assembler, wrapper scripts
  lib/       libgcc.a, libstdc++.a, runtime libs
  include/   GCC headers, C++ STL, tiger-compat.h
  scripts/   fix_exc_ld64.py, ppc-darwin-fixup.py
  sdk/       Mac OS X 10.4u SDK

Python 3.13.12 (GCC 15 / ld64)

02 Mar 08:59

Choose a tag to compare

Python 3.13.12 for Mac OS X Tiger PPC

Full Python 3.13 installation with SSL, sqlite3, threading, compression, and more.

What's New (vs previous releases)

  • Compiled with GCC 15.2.0 (previous releases used GCC 7.5.0)
  • Built with fully local ld64 pipeline on Linux — no Mac needed for compilation
  • 309/309 validation tests passing

Features

  • 105 tests verified: core language, 48+ stdlib modules, file I/O, subprocess, threading, sqlite3, zlib/gzip/bz2, ssl/HTTPS, ctypes
  • Match statements, walrus operator, dataclasses, f-strings, all Python 3.13 features

Installation

cd / && sudo tar xzf python-3.13.12-ld64.tar.gz

Installs to /usr/local/bin/python3.13 with libraries in /usr/local/lib/python3.13/.

Environment Setup

export PYTHONHOME=/usr/local
export SSL_CERT_FILE=/usr/local/etc/ssl/cert.pem

Target

  • PowerPC Mac OS X 10.4 Tiger (G3/G4/G5 compatible, -mcpu=G3)

Note

For GCC 7.5 builds, see python-3.13.12 (G5) and python-3.13.12-g3 releases.

OpenSSL 3.6.1 (GCC 15 / ld64)

02 Mar 08:58

Choose a tag to compare

OpenSSL 3.6.1 for Mac OS X Tiger PPC

Static libraries (libcrypto.a + libssl.a) and headers for Tiger PPC development.

What's New (vs previous releases)

  • Compiled with GCC 15.2.0 (previous releases used GCC 7.5.0)
  • Built with fully local ld64 pipeline on Linux — no Mac needed for compilation
  • 309/309 validation tests passing

Contents

  • libcrypto.a — static crypto library
  • libssl.a — static SSL/TLS library
  • include/openssl/ — development headers

Target

  • PowerPC Mac OS X 10.4 Tiger (G3/G4/G5 compatible, -mcpu=G3)

Note

For GCC 7.5 builds, see openssl-3.6.1 (G5) and openssl-3.6.1-g3 releases.

git 2.48.1 (GCC 15 / ld64)

02 Mar 08:59

Choose a tag to compare

git 2.48.1 for Mac OS X Tiger PPC

Full git installation with HTTPS support (via curl + OpenSSL 3.6.1).

What's New (vs previous releases)

  • Compiled with GCC 15.2.0 (previous releases used GCC 7.5.0)
  • Built with fully local ld64 pipeline on Linux — no Mac needed for compilation
  • 309/309 validation tests passing

Features

  • All core git operations (init, add, commit, branch, merge, rebase, stash, etc.)
  • HTTPS clone/push/pull via curl
  • Archive (tar/zip), blame, cherry-pick, format-patch

Installation

cd / && sudo tar xzf git-2.48.1-ld64.tar.gz

Installs to /usr/local/bin/git and /usr/local/libexec/git-core/.

Environment Setup

export GIT_EXEC_PATH=/usr/local/libexec/git-core
export SSL_CERT_FILE=/usr/local/etc/ssl/cert.pem

Target

  • PowerPC Mac OS X 10.4 Tiger (G3/G4/G5 compatible, -mcpu=G3)

Note

For GCC 7.5 builds, see git-2.48.1 (G5) and git-2.48.1-g3 releases.

PPC Tiger Cross-Compiler (GCC 15.2.0 + ld64)

02 Mar 09:08

Choose a tag to compare

Standalone GCC 15 Cross-Compiler for Tiger PPC

Fully self-contained cross-compilation toolchain. Runs entirely on x86_64 Linux — no Mac needed, no SSH.

Quick Start

tar xf ppc-tiger-gcc15-xcompiler.tar.gz
export PATH="$PWD/ppc-tiger-xcompiler/bin:$PATH"

# C
ppc-ld64-gcc -O2 hello.c -o hello

# C++ with exceptions and STL
ppc-ld64-g++ -std=c++17 -O2 program.cpp -o program

Copy the output binary to your Tiger PPC Mac and run it.

Pipeline

  1. GCC 15.2.0 cc1/cc1plus — C/C++ to PPC assembly (native x86_64)
  2. fix_exc_ld64.py — exception handling fixup (handles both zPL and zPLR assembly formats)
  3. ppc-darwin-fixup.py — Darwin PPC assembly patches
  4. cctools assembler — Mach-O object files
  5. ld64-97.17 — Apple's linker, built for Linux

Features

  • C11/C17, C++11/14/17, C++20, C++23
  • Full C++ exception handling (throw/catch/rethrow, class exceptions, deep unwind, multi-catch, RAII cleanup)
  • Complete STL (vector, map, unordered_map, string, iostream, algorithm, optional, variant, any, regex, chrono, etc.)
  • C++20: concepts, spaceship operator, ranges, span, consteval/constinit, coroutines (compile), source_location
  • C++23: deducing this, if consteval, static operator(), std::optional monadic ops, std::print (compile)
  • Static linking (no runtime deps beyond Tiger system libs)
  • -mcpu=G3 default — binaries run on any PPC Mac (G3/G4/G5)
  • Mac OS X 10.4u SDK included
  • Bundle mode support (-bundle)
  • Framework linking (-framework CoreFoundation, etc.)
  • Old C++11 ABI compatibility (g++ wrapper passes -D_GLIBCXX_USE_CXX11_ABI=0)

Requirements

  • x86_64 Linux (tested on Ubuntu 24.04)
  • Python 3 (for assembly post-processing)
  • ~250 MB disk space

Tested

137/137 comprehensive tests passing on a real iMac G5 running Mac OS X 10.4 Tiger:

  • 17 C language tests (C11 features, I/O, recursion, VLA, etc.)
  • 23 C++ basics (C++11/14/17: auto, lambdas, templates, STL containers, smart pointers)
  • 10 exception tests (throw/catch all types, deep unwind, multi-catch, RAII cleanup)
  • 22 C++20 tests (concepts, spaceship, consteval, span, coroutines, etc.)
  • 11 C++23 tests (deducing this, if consteval, static operator(), etc.)
  • 8 optimization level tests (-O0 through -Os, G3/G4/G5 targeting)
  • 3 multi-file + linking tests (static archives, C/C++ mixed)
  • 10 STL container + algorithm tests (vector, set, deque, priority_queue, regex, etc.)
  • 11 advanced feature tests (CRTP, type erasure, SFINAE, perfect forwarding, etc.)
  • 4 preprocessor + diagnostic tests
  • 8 compiler flag tests (-mcpu=native, -Wall, -fPIC, etc.)
  • 5 real-world pattern tests (JSON parser, builder/observer patterns, state machine)

All 5 packages on this repo (Python 3.13, curl, git, ffmpeg, OpenSSL) were built with this toolchain and pass 309/309 tests.

Contents (68 MB)

ppc-tiger-xcompiler/
  bin/       cc1, cc1plus, ld64, assembler, ar, ranlib, wrapper scripts
  lib/       libgcc.a, libstdc++.a, libemutls_w.a, libef_ppc.a
  include/   GCC built-in headers + C++ STL headers (GCC 15)
  scripts/   fix_exc_ld64.py, ppc-darwin-fixup.py
  sdk/       Mac OS X 10.4u SDK

Changes (2026-03-02)

  • fix_exc_ld64.py: dual format support (zPL + zPLR), fixed .isra.0 clone regex, local_defs exclusion
  • g++ wrapper: -D_GLIBCXX_USE_CXX11_ABI=0 (old ABI compatibility with bundled libstdc++.a)
  • __throw_bad_array_new_length stub in libgcc.a (new headers + old library compatibility)
  • ppc-darwin-fixup.py: .align 2 after __textcoal_nt section switch
  • DEFAULT_CFLAGS ordering fix (caller flags now override defaults)

Note

For the GCC 7.5 SSH-based cross-compiler, see cross-compiler-1.0.

GCC 15.2.0 (G3/G4/G5)

02 Mar 17:20

Choose a tag to compare

GCC 15.2.0 for Tiger PPC — G3/G4/G5

Native GCC 15 C/C++ compiler that runs on any PowerPC Mac — G3, G4, and G5.

Built with the ld64 cross-compiler pipeline, CPU subtype patched to ALL.

Install

tar xzf gcc-15.2.0-tiger-ppc-all.tar.gz -C /

Installs to /usr/local/bin/gcc, /usr/local/bin/g++, with cc1/cc1plus in /usr/local/libexec/gcc/.

Features

  • C11/C17, C++11/14/17, C++20, C++23
  • Full C++ exception handling (throw/catch, deep unwind, multi-catch, RAII cleanup)
  • Complete STL (vector, map, unordered_map, string, regex, chrono, optional, variant, any, etc.)
  • C++20: concepts, spaceship operator, span, consteval/constinit, source_location, coroutines (compile)
  • C++23: deducing this, if consteval, static operator(), std::optional monadic ops
  • Assembly fixup script (fix_exc.py) handles both zPL and zPLR eh_frame formats
  • g++ wrapper: -D_GLIBCXX_USE_CXX11_ABI=0 for old ABI compatibility
  • GCC 15 libstdc++ headers (856 files, full C++20/23 support)
  • __throw_bad_array_new_length stub in libgcc.a

Requirements

  • Mac OS X 10.4 Tiger, PowerPC (G3/G4/G5)
  • Apple Developer Tools (system assembler and linker at /usr/bin/as and /usr/bin/ld)
  • Python 3 at /usr/local/bin/python3 (for fix_exc.py)
  • Important: /usr/bin/ld must be the original cctools ld, not ld64

Tested

137/137 comprehensive tests passing on iMac G5 Tiger (480 seconds):

  • 17 C, 23 C++ basics, 10 exceptions, 22 C++20, 11 C++23
  • 8 optimization levels, 3 multi-file/linking, 10 STL, 11 advanced
  • 4 preprocessor, 8 compiler flags, 5 real-world patterns

Note

For the older G5-only build, see gcc-15.2.0. For the Linux cross-compiler, see gcc15-xcompiler-1.0.

ffmpeg 7.1.1 (GCC 15 / ld64)

02 Mar 08:59

Choose a tag to compare

ffmpeg 7.1.1 for Mac OS X Tiger PPC

ffmpeg and ffprobe binaries with audio/video codec support.

What's New (vs previous releases)

  • Compiled with GCC 15.2.0 (previous releases used GCC 7.5.0)
  • Built with fully local ld64 pipeline on Linux — no Mac needed for compilation
  • Includes ffprobe (previous releases had ffmpeg only)
  • 309/309 validation tests passing

Features

  • Audio: WAV, FLAC, AAC, PCM (s16/s32/f32/u8), AIFF, AU, CAF
  • Video: rawvideo, mpeg4, AVI, MKV, MOV, MPEGTS
  • Filters: volume, lowpass, highpass, fade, concat, trim

Installation

sudo cp ffmpeg ffprobe /usr/local/bin/

Target

  • PowerPC Mac OS X 10.4 Tiger (G3/G4/G5 compatible, -mcpu=G3)

Note

For GCC 7.5 builds, see ffmpeg-7.1.1 (G5) and ffmpeg-7.1.1-g3 releases.

curl 8.12.1 (GCC 15 / ld64)

02 Mar 08:58

Choose a tag to compare

curl 8.12.1 for Mac OS X Tiger PPC

Statically linked curl with HTTPS support.

What's New (vs previous releases)

  • Compiled with GCC 15.2.0 (previous releases used GCC 7.5.0)
  • Built with fully local ld64 pipeline on Linux — no Mac needed for compilation
  • 309/309 validation tests passing

Features

  • HTTP/HTTPS with OpenSSL 3.6.1 (TLS 1.3)
  • All standard protocols

Installation

sudo cp curl /usr/local/bin/curl

SSL Certificate Setup

Set SSL_CERT_FILE=/usr/local/etc/ssl/cert.pem in your shell profile.

Target

  • PowerPC Mac OS X 10.4 Tiger (G3/G4/G5 compatible, -mcpu=G3)

Note

For GCC 7.5 builds, see curl-8.12.1 (G5) and curl-8.12.1-g3 releases.

Python 3.13.12 (G3/G4/G5)

01 Mar 22:04

Choose a tag to compare

Python 3.13.12 for Mac OS X Tiger PPC (G3/G4/G5)

Statically linked Python 3.13.12 for any PowerPC Mac running Mac OS X 10.4 Tiger.
Compiled with -mcpu=G3 for universal PPC compatibility (G3, G4, G5).

Features

  • Full standard library including ssl, sqlite3, hashlib, json, subprocess
  • OpenSSL 3.6.1 support (TLS 1.3)

Installation

# Extract to /usr/local
sudo tar xzf python-3.13.12-tiger-ppc-g3.tar.gz -C /usr/local

Setup

Set PYTHONHOME=/usr/local in your shell profile.

Note

For G5-only builds, see the python-3.13.12 release.