Vorschlag: Verbesserte Version der Binutils



  • Die Idee dieses Threads enstand aus der Loesung fuer mein Problem.

    Bisher wurden ja die Binutils nur mit dem i586-elf-Target gebaut, welches den Anspruechen von PrettyOS genuegte. Der i586-elf-ld, der im aktuellen Crosscompiler-Paket zur Verfuegung gestellt wird, kann keine PE-Files erzeugen und auch nicht mit PE/Microsoft-COFF-Binaries umgehen.
    An sich ist das kein Nachteil, da der Microsoft-Compiler nicht als Zieplattfrom fuer PrettyOS vorgesehen ist. Allerdings wuerde sich mit der Erweiterung der Formatbandbreite von ld die Moeglichkeit bieten, PE-Dateien, die ja von PrettyOS unterstuetzt werden, komfortabel durch Linker-Scripts erzeugen. Ausserdem koennte man mit einer unter Linux kompilierten Version des Crosscompilers dann ebenfalls PEs erzeugen.
    Ich hab einen Testbuild mit den veraenderten Tools gemacht, und dieser verlief erfolgreich. Nur i586-elf-ar hat in meiner Version Probleme gemacht, vonwegen assert.o sei zu gross, weshalb ich da die alte Datei wiederherstellen musste. Ob das jetzt ein Fehler in den Binutils 2.23.1 allgemein ist, oder obs daran lag, dass ich die Cross-Bintools wiederum auf Linux fuer Windows crosscompiliert habe, weiss ich nicht. Koennte ich gerne nochmal unter MSYS und/oder mit den Binutils 2.23 sowie 2.23.2 probieren, wenn der Vorschlag denn angenommen werden sollte.

    Die Veraenderung am Script fuer den Crosscompiler waere minimal.
    Statt

    configure --prefix=%PREFIX% --target=i586-elf --disable-nls
    

    waere es dann

    configure --prefix=%PREFIX% --target=i586-elf --enable-targets=i586-mingw32msvc-mingw32 --disable-nls
    

    (wobei ich bei mir wegen des Crosscompilierens noch --host mit angeben musste; unter MSYS/Windows sollte das nicht noetig sein).

    Was haltet ihr davon?


  • Mod

    Prinzipiell erscheint mir die Idee verfolgenswert. MrX kennt sich da besser aus mit den Tools, warten wir noch seine Antwort ab.



  • Ich hatte schon im IRC mal gesagt, dass ich die Idee für sinnvoll halte.


Log in to reply