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.