Crosscompiler mit Crosstool erstellen (Bugfix)

Im Rahmen eines Projektes wo eine ausführbare Datei für eine AIX-Maschine (Powerpc Architektur) erstellt werden soll kam ich zu Crosstool von Dan Kegel. Dieses Script baut eine komplette Entwicklungsumgebung (gcc, glibc usw.) auf indem es die entsprechenden Pakete runterlädt und übersetzt.

Leider scheint crosstool nicht mehr weiterentwickelt zu werden weshalb es noch auf gcc-4.1.0 und, viel tragischer, glibc-2.3.6 verwendet. Beim erstellen dieser glibc kommt es zum Abbruch des Übersetzungs-vorgangs:

In file included from version.c:33:
/home/bjoern/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc/csu/version-info.h:2:1: missing terminating " character
/home/bjoern/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc/csu/version-info.h:3:1: missing terminating " character
make[2]: *** [/home/skorpio/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/build-glibc/csu/version.o] Error 1
make[2]: Leaving directory `/home/skorpio/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6/csu'
make[1]: *** [csu/subdir_lib] Error 2
make[1]: Leaving directory `/home/bjoern/crosstool-0.43/build/powerpc-405-linux-gnu/gcc-4.1.0-glibc-2.3.6/glibc-2.3.6'
make: *** [lib] Error 2

Um diesen Bug zu „umgehen“ kann man folgenden weg wählen. Man lässt crosstool einmal bis zu dieser Stelle laufen. Dann befindet sich im bei crosstool eingstellten Download Verzeichnis

glibc-2.3.6.tar.bz2

Diese muss nun entpackt werden

tar -xvjf glibc-2.3.6.tar.bz2

Nun muss in

glibc-2.3.6/csu/Makefile

die Zeile 244 geändert werden in

echo „\“Available extensions:\““; \

Jetzt wird das alte glibc Paket gelöscht und das neue, „gefixte“ geschnürt

rm glibc-2.3.6.tar.bz2
tar -cjf glibc-2.3.6.tar.bz2 glibc-2.3.6/

Das war’s. Jetzt sollte crosstool einwandfrei durchlaufen.