Fragen? Antworten! Siehe auch: Alternativlos
Stellt sich raus: Die Program Header sind nicht mehr gemappt. Das Mappen macht der Kernel, aber der richtet sich nach den Werten im ELF-Header, und zwar genau den ELF Program Headers. Die aktuelle binutils-Version 2.31.1 trägt da aber den falschen Wert ein, und die ELF-Header werden dann vom Kernel nicht gemappt. Daraufhin stürzt das ab.
Ich habe einen Bug gefiled, und es stellt sich raus: War bekannt und ist im CVS behoben, aber gibt noch kein neues Release. Gut, habe ich mir also die aktuelle git-Version von binutils installiert. Damit kommen wieder lauffähige Binaries raus. Aber die sind doppelt so groß.
Das frisst mich ja jetzt doch mehr an, als es sollte. Ich hab hier Jahre damit verbracht, einzelne Bytes rauszuoptimieren, und dann kommt ein binutils und bloatet mir mal eben eine Verdoppelung der Dateigröße rein!?
Übrigens, falls ihr das nicht kennt: Unter Unix kann man size binary sagen, das funktioniert auch auf Shared Libraries, Object Files und sogar .a-Libraries. Der zeigt einem die Größe der Segmente in den ELF-Headern. Ich habe hier zufällig noch ein Binary vom Mai rumfliegen, mit früheren Versionen gebaut. Das ist 9k groß. Die neu gebaute Version ist 17k groß. Aber size zeigt, dass Code und Daten praktisch gleich groß sind. Das ist also alles irgendein Header-Bloat oder Alignment-Scheiß. Ich hoffe mal, dass man das wieder abschalten kann. Ich habe mal noch einen Bug aufgemacht.
Mich ödet das schon länger an, wenn Leute so "ach komm, RAM ist billig, Plattenspeicher kostet nichts mehr"-Dinge tun. Das ist eine Frage von Respekt sich selbst, dem Problem, anderer Leuten und der Maschine gegenüber, finde ich, dass man keinen unnötigen Bloat verteilt.