Ich versuche seit gestern Abend auf einem Server eine neuere
glibc Version zu installieren. Das das Teil ein paar neue Programme (
binutils und
GCC) vorraussetzt war ja noch ok.. binutils war auch schnell installiert.. dann kam GCC. Jede Menge Versionen, jeder empfiehlt was anderes.. Klasse. Ich hab dann irgendeine genommen. Die ließ sich auch fast problemlos installieren - mal abgesehen von der Tatsache, daß das Ding 1.5 Stunden lang kompiliert hat.
Dann habe ich mich wieder zurück zum eigentlichen Projekt bewegt: glibc updaten. Als nächstes meckerte
configure, daß es lpthreads braucht, da das ansonsten inkompatibel zu fast allen anderen sachen unter Linux wäre. Nungut, denkt man sich, wenn das so wichtig ist, wirds wohl dabei sein - denkste. Keine Option dafür gefunden, also mal Google befragt. Da stand dann, daß es nen spezielles Addon namens "linuxthreads" gibt - bezeichnenderweise im selben Verzeichnis wie der Tarball der glibc selber auch.. Allerdings muss man darauf auch erstmal kommen. Eine Installationsanleitung sucht man - genau wie bei fast allen diesen Standardlibraries, die man als Otto-Normalo nie anfasst - leider vergebens, also ein wenig rumgeforscht. Wie vermutet muß das Ganze direkt in das Sourceverzeichnis der glibc entpackt werden.. gesagt, getan.
configure lief dann auch problemlos durch.. Hoffnungsvoll tippe ich also
make.. Und erwarte schon, daß das ewig dauert, da der Tarball so gigantisch groß war.. Dauerts auch.. Und nach 45 Minuten bricht
make dann ab..
irgendwas im elf Verzeichnis schmeckt ihm nicht. Toll.
Nochmal
configure gemacht, diesmal
--with-elf weggelassen.. Nochmal
make.. Klappt wieder nicht - elf, dachte mich mir im Vorfeld auch schon fast, wird wohl benötigt. Also wieder das allwissende Google befragt. Da habe ich dann nen
Haufen (!) Patches für den Source gefunden. Für zig verschiedene Systemarchitekturen, Installationen, usw usw.. Zum Glück habe ich
dafür auch einen Mailinglisteneintrag gefunden, der erklärt hat, wann man was braucht (bei mir:
fixup.patch,
glibc-2.3.2-allow-gcc-3.4-nounit.patch,
glibc-linuxthreads-2.3.2-allow-3.4.patch). Leider waren die Patches für eine Vorversion vor der, die ich kompilieren wollte.. Also durfte ich die Hälfte der Hunks von Hand nachvollziehen.. Aber das ging alles noch.
Wieder
configure, wieder
make, wieder ein Error nach 'ner knappen Stunde. Also, dachte ich mir, bevor ich noch die Ganze Nacht da sitze.. Ins Bett gehen, morgen nochmal angucken.
So geschehen. Heute gucke ich wieder rein, finde ich (wer lesen kann ist klar im Vorteil) noch 'n Haufen Patches für dieses Linuxthreads. Die auch angewandt.. Nochmal
configure,
make und siehe da, es klappt!
In der Annahme, daß bei einem simplen
make install ja nichts mehr schief gehen kann, habe ich das dann auch gemacht. Aber denkste.. Erst wieder stundenlang zig Bildschirmseiten durchgescrollt (und vermutlich das System schon halb zerlegt) alles ok, dann ein Error. Da stand ich sollte erst noch
libiconv updaten, dann
gettext neu installieren und dann nochmal probieren. Also libiconv installiert.. Dann gettext versucht.. Mosert das Ding rum ich sollte
pnet installieren. Da das einzige was ich zu pnet gefunden habe, aber
mit Versionsnummer 0.6 eine Betaversion war, war mir dann doch zu suspekt. Wieder Google zu der Fehlermeldung befragt. Da stand man könnte mit
--disable-csharp oder so gettext ohne pnet kompilieren - Das funktionierte sogar auch. Leider kam dann beim Kompilieren der nächste Fehler.. und zu dem weiß selbst Google keinen Rat.
Da dachte ich mir: Jetzt reichts. Jetzt kompiliere ich die Vorversion für die die Patches waren. Da bin ich gerade bei.. Und das läuft seit ich begonnen habe diesen Text zu schreiben.. Sieht auch ganz ok aus - bis jetzt. Wer weiß was noch folgt.
Update 1: Just während ich eben die Verlinkungen für mein Geschreibsel zusammengesucht habe, habe ich gesehen, daß von der
Patchzusammenstellung auch noch eine
neuere Ausgabe existiert, die auch für die neuste glibc Version angepasste Patches hat.. Das werde ich dann mal ausprobieren, falls der Build der gerade läuft, auch nicht klappt.
Update 2: Projekt "glibc update" beerdigt. Ich habe Version 2.3.3, 2.3.2 und 2.2.5 jeweils pur und mit verschiedenen Patches ausprobiert, es hat alles nichts gebracht. Die glibc will einfach zum verrecken nicht kompilieren.
geschrieben am 22. Januar 2005, 19:01 in
geeky