ELF Toolchain für Mac OS X

Ich habe mir unter Mac OS X 10.4 eine PowerPC ELF Toolchain aus binutils 2.16.1 und gcc 4.0.2 gebaut. Die Quelltexte für beide Pakete bekommen Sie auf dem GNU FTP-Server. Als erstes müssen dann die binutils gebaut und installiert werden, da die Kompilierung des gcc bereits Teile der binutils verwendet. Für die Kompilierung der binutils habe ich den gcc 4.0 genommen, der mit den Apple Developer Tools installiert wird.

Wählen Sie als erstes ein Verzeichnis aus in dem die binutils und der gcc installiert werden sollen. Ich bezeichne dieses Verzeichnis für den Rest dieser Anleitung mit $(INSTALLDIR).

binutils 2.16.1

  1. Entpacken Sie das Archiv mit den Quellen der binutils.
  2. Wechseln Sie in das entpackte Verzeichnis.
  3. Jetzt müssen Sie die binutils so konfigurieren, dass sie den PowerPC unterstützen und in ihr gewähltes Verzeichnis installiert werden:
    ./configure --prefix=$(INSTALLDIR) --target=powerpc-elf
  4. Führen Sie dann das Kommando make aus.
  5. Mit make install installieren Sie die binutils in das gewünschte Verzeichnis.

gcc 4.0.2

  1. Entpacken Sie die gcc Quellen.
  2. Erstellen Sie ein Verzeichnis in dem der gcc kompiliert werden soll und wechseln Sie dort hin.
  3. Von dort aus konfigurieren Sie den gcc, so dass er den PowerPC unterstützt
    $(GCC_SOURCE_DIR)/configure --target=powerpc-elf --enable-languages="c,c++,objc" --with-gnu-as --with-gnu-ld --prefix=$(INSTALLDIR)
  4. Anschließend müssen Sie das Makefile etwas modifizieren:
    fügen Sie den Schalter -no-cpp-precomp zu den CFLAGS hinzu
    löschen Sie alle Subverzeichnisse aus der TARGET_CONFIGDIRS Regel
    schalten Sie die install-info Regel aus (z.B. durch umbennen)
  5. Fügen Sie den Pfad $(INSTALLDIR)/bin zu ihrer PATH Umgebungsvariable hinzu, damit der Kompilierungsprozess bereits Teile der neuen binutils verwenden kann.
  6. Mit dem Kommando make starten Sie die Kompilierung.
  7. Mit make install wird der gcc installiert.

Anmerkungen

Der gcc Buildprozess lief bei mir nicht ohne Fehler durch. Bei der Regel configure-target-libstdc++-v3 brach der Prozess mit dem Fehler "No support for this host/target combination." ab. Ob das für später relevant ist, kann ich momentan nicht sagen.