[Split] GCC bootstrappen auf klassischen Plattformen (oreissigs Odyssee)

  • meinen ersten GCC bootstrappen, Komponenten:

    • SGI Indigo²
    • IRIX 5.3
    • gcc 3.4.6 (die 3er GCCs brauchen keinen riesen shitload an abhängigkeiten)
    • oreissig


    mal schaun, was das noch wird :)

    die grundherangehensweise ist wie bei unixprogrammen ähnlich

    Code
    $ ./configure
    $ make [b]bootstrap[/b]
    $ sudo make install

    EDIT: siehe auch https://www.winhistory-forum.net/142664-post1403.html

    EDIT2: langsam werden die ausgaben neckiger

    Spoiler anzeigen

    (leider kommts hier nich ganz so gut. bei mir im Terminal ist jede einzelne Zeile davon mehr als Bildschirmfüllend :))

    Einmal editiert, zuletzt von oreissig (9. Mai 2010 um 23:47)

  • gcc eben
    falls das tatsächlich klappen sollte, dann werd ich mich mal an mehr software probieren. der MIPS C-Compiler von IRIX kann z.B. keine bash über 3.2(.0) bauen, ich hoffe dass ich mit gcc allg. etwas weiter komme

    btw hat jemand ne grobe abschätzung, wie lange nen standard gcc 3.4-bootstrap auf ner 200mhz-maschine (192mb ram) brauchen könnte? :D

    EDIT: und weiter gehts

    Spoiler anzeigen


    grml...redeclaration klingt nach headerfile von hand editieren (quick&dirty oh yeah), na mal schaun wo das ist

    Einmal editiert, zuletzt von oreissig (9. Mai 2010 um 01:05)

  • Zitat von Blue-Fox

    oreissig: Auf einem Intel Atom ca. 2h.
    Also gut >14h...
    BTW: Mess dann mal die Zeit, kann IRIX schon den Befehl time?


    auf welche gcc-version war deine zeitangabe bezogen?

    time gibts, ist aber nicht aussagekräftig, weils make dauernd unterbrochen wird wegen fehlern, die ich fixen muss :D
    eben: zeilen 4297-4308 in gcc/cp/cp-tree.h auskommentieren :fresse:

  • Zitat von Blue-Fox

    kP, TAL hat mal irgendwas mit gentoo geschrieben von 2h.

    Zitat

    Sun Feb 14 23:51:37 2010 >>> sys-devel/gcc-4.4.3
    merge time: 1 hour, 7 minutes and 28 seconds.

    Is aber lang her, auf dem aktuelle gentoo hab ich nur ein 4er und der kompiliert schon einiges fixer als die vorherigen Versionen (bezogen auf Version 4) (durch ccache sind das auch teilweise bessere Ergebnisse)

  • sitz immer noch (nagut, wieder, hab inzwischen schon mal geschlafen :D) am gcc
    hab jetz stage1 durchcompiliert. musste optimierung ausschalten, ansonsten hat der erzeugte stage1-gcc nich funktioniert. das rächt sich jetz gerade megamäßig in der compile time von stage2 :D

    1. keine Software (>50 Zeilen) ist fehlerfrei
    2. das was da angezeigt wird sind nur warnings, die in den meisten fällen keine auswirkungen haben (aber eben schon geprüft und wenn möglich behoben werden sollten)
    3. in dem falle lag der fehler wohl an der ungewöhnlichen plattform, wo ein warning eben doch mal zu nem fehlerhaften endprogramm führt. IRIX 5.3 mit MIPS cc ist jetz nix, wofür man seinen code gern hintrimmen möchte...vermutlich würde nen linux mit gcc dann mehr warnings werfen, wenn man versucht warnings unter dem cc von irix wegzubekommen. das ist eben nen tradeoff, und nen sehr arbeitsintensiver noch dazu
  • Es ist vollbracht :)

    Code
    make[5]: Leaving directory `/usr/people/oreissig/gcc-3.4.6/objdir/gcc'
    make[4]: Leaving directory `/usr/people/oreissig/gcc-3.4.6/objdir/gcc'
    echo timestamp > stage3_build
    echo stage3_build > stage_last
    make[3]: Leaving directory `/usr/people/oreissig/gcc-3.4.6/objdir/gcc'
    make[2]: Leaving directory `/usr/people/oreissig/gcc-3.4.6/objdir/gcc'
    make[1]: Leaving directory `/usr/people/oreissig/gcc-3.4.6/objdir'


    Musste x-mal neu anfangen und irgendwas patchen und bla, sehr ugly, hier ist meine Liste was zu tun war:

    Spoiler anzeigen

    gcc/cp:
    cp cp-tree.h cp-tree2.h
    vi cp-tree2.h <= zeilen 4297-4308 auskommentieren
    vi mangle.c <= #include auf tree2 umgebogen

    gcc/rtl.h
    zeile 88 auskommentieren

    ln -s /usr/local/include/libintl.h gcc


    CFLAGS="-Wf,-XNg1500 -I/usr/local/include"
    CONFIG_SHELL=/bin/ksh
    export CONFIG_SHELL CFLAGS

    mkdir objdir
    cd objdir

    ../configure --enable-shared --enable-languages=c

    make bootstrap


    Das Ergebnis: GCC 3.4.6 auf SGI IRIX 5.3 =)

    Spoiler anzeigen

    Nächstes Ziel: IRIX 4 und GCC 3.1.1 :)
    wird aber wohl erst in 2 wochen oder so...ist irgendwie zeitaufwändiger als erwartet :D

    EDIT: für größere Sachen ists echt sauhilfreich, ein separates objdir anzulegen und dort drin getrennt vom source zu compilieren. ich hab mir mehrmals meinen source-tree kaputt gemacht (z.B. einmal make distclean gemacht, danach ist der build aber mangels bison und flex abgebrochen) und der gcc-sourcetree ist groß genug, dass es (in verbindung mit nem langsamen Dateisystem wie EFS) gleich mal 20min dauert den zu löschen und die tar.gz neu zu entpacken :b2:

    Einmal editiert, zuletzt von oreissig (9. Mai 2010 um 23:51)

  • hmm...
    (20:14:04) oreissig: jemand ne ahnung, wie man am besten patches macht? also nen diff von verzeichnisbäumen?

    der verzeichnisbaum mit meinem objdir ist 460mb groß, das objdir allein 280, tar.gz ist 108 und tar.bz2 80mb...das ist mir eigentlich alles zu viel dafür, dass ich nur 10 zeilen auskommentiert und eine geändert hab :D

    (achja: wenn möglich mit spartanischen bordmitteln, fremdprogs auf irix 5.3 zum compilieren zu bekommen macht u.U. ne soo viel spaß (wie man hier sieht))

  • Zitat von DosAmp

    diff -re verzeichnis1 verzeichnis2 (-r = rekursiv Verzeichnisbäume durchgehen, -e Skript für ed anlegen)?

    Yay, rockt!
    brauch netmal GNU-Tools dafür, System V-diff kanns auch =)

    EDIT: ich nehms zurück...weiß jetz nich obs daran liegt, dass ich kein GNU diff hab, aber bei mir kommt da nix raus, was ich einfach in ed tun kann und der transformiert das dann wie gewünscht
    so siehts im Moment aus:

    C
    Only in gcc-3.4.6-my/gcc/cp: cp-tree2.h
    diff -re gcc-3.4.6/gcc/cp/mangle.c gcc-3.4.6-my/gcc/cp/mangle.c
    56c
    #include "cp-tree2.h"
    .
    Only in gcc-3.4.6-my/gcc: libintl.h
    diff -re gcc-3.4.6/gcc/rtl.h gcc-3.4.6-my/gcc/rtl.h
    88c
      /*unsigned : 2;*/
    .

    Einmal editiert, zuletzt von oreissig (10. Mai 2010 um 21:22)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!