Kompilieren des GCCs



  • Du brauchst noch einen Shell-Aufruf (falls das auf dem Mac genauso geht wie unter Linux):

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:Pfad/zu/den/gmp/libs:Pfad/zu/den/mpfr/libs
    

    EDIT: Übrigens kannst du einstellen, dass nur Fortran kompiliert werden soll mit --enable-languages=fortran (vielleicht heißt es auch fort oder f oder was auch immer)



  • Danke erstmal für die Antworten.

    Habe ein export durchgeführt, hat an der Situtation nichts geändert, ich erhalte nach wie vor denselben Fehler. Ebenfalls, wenn ich --enable-language=fortran beim configure script mit angebe, dann erhalte ich wieder denselben Fehler.

    Kann man kontrollieren wohin die Dateien aus einem Finkpaket installiert werden? Ich möchte nämlich sämliche Binaries vom GCC gerne in einem bestimmten Ordner auf der Festplatte ablegen.

    Persönlich finde ich den Ansatz des selber kompilierens besser, weshalb ich lieber die Fehlermeldung verstehen würde und was man dagegen unternehmen kann.



  • Ich habe mir ein komplettes GCC-Buildscript unter Linux erstellt, vielleicht könntest du das ja gebrauchen. Ich muss mal schauen, wann ich mal wieder Linux boote 😉 .



  • HändyÄndy schrieb:

    Kann man kontrollieren wohin die Dateien aus einem Finkpaket installiert werden? Ich möchte nämlich sämliche Binaries vom GCC gerne in einem bestimmten Ordner auf der Festplatte ablegen.

    Ja. Aber es wäre sinnvoller, einfach Symlinks anzulegen, nachdem Du ohnehin alles in /sw liegen hast, ist Fink und der GCC ohnehin schön isoliert.

    Persönlich finde ich den Ansatz des selber kompilierens besser

    Mit Fink wird die GCC ja auch auf Deiner Box kompiliert. Nur dass Du eben eine vernünftige Paketverwaltung verwendest und nicht einfach wild irgendwelches Zeug unversioniert in der Weltgeschichte herumkopierst.



  • So, hier nun mein Linux-Linux Build-\1:
    Du solltest also einen Ordner mit den im Kommentar angegebenen Unterordnern, die die Sourcedateien der jeweiligen Programme/Libraries enthalten, anlegen und ihn dem Script übergeben.
    Da ist jetzt auch libelf für Link-Time-Optimization dabei, entferne sie einfach, da du ja GCC 4.3 verwendest.

    #!/bin/sh
    #Build with host=linux, target=linux:
    
    #Folders: binutils-src, gcc-src, gmp-src, mpfr-src, mpc-src, libelf-src
    
    export BUILDDIR=$1
    cd $BUILDDIR
    
    mkdir Linux
    cd Linux
    mkdir gmp-dest
    mkdir mpfr-dest
    mkdir mpc-dest
    mkdir libelf-dest
    cd ..
    mkdir gcc
    cd gcc
    mkdir binutils-ll-dest
    mkdir gcc-ll-dest
    cd ..
    
    cd gcc/binutils-ll-dest
    ../../binutils-src/configure --prefix=$BUILDDIR/gcc/ll-gcc --enable-shared --enable-multiarch --program-prefix=ll- --enable-nls  --enable-targets=all --disable-werror
    make -j 2 LDFLAGS=-ldl
    make -j 2 install
    cd ../..
    
    cd Linux/gmp-dest
    ../../gmp-src/configure --prefix=$BUILDDIR/Linux/gmp-install
    make -j 2
    make -j 2 install
    cd ../..
    
    cd Linux/mpfr-dest
    ../../mpfr-src/configure --with-gmp=$BUILDDIR/Linux/gmp-install --prefix=$BUILDDIR/Linux/mpfr-install
    make -j 2
    make -j 2 install
    cd ../..
    
    cd Linux/mpc-dest
    ../../mpc-src/configure --with-gmp=$BUILDDIR/Linux/gmp-install --with-mpfr=$BUILDDIR/Linux/mpfr-install --prefix=$BUILDDIR/Linux/mpc-install
    make -j 2
    make -j 2 install
    cd ../..
    
    cd Linux/libelf-dest
    ../../libelf-src/configure --prefix=$BUILDDIR/Linux/libelf-install
    make -j 2
    make -j 2 install
    cd ../..
    
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$BUILDDIR/Linux/gmp-install/lib:$BUILDDIR/Linux/mpfr-install/lib:$BUILDDIR/Linux/mpc-install/lib:$BUILDDIR/Linux/libelf-install/lib
    
    cd gcc/gcc-ll-dest
    ../../gcc-src/configure --enable-languages=c,c++ --prefix=$BUILDDIR/gcc/ll-gcc --enable-threads=posix --program-prefix=ll- --enable-nls --with-gmp=$BUILDDIR/Linux/gmp-install --with-mpfr=$BUILDDIR/Linux/mpfr-install --with-mpc=$BUILDDIR/Linux/mpc-install --with-libelf=$BUILDDIR/Linux/libelf-install --enable-lto
    make -j 2
    make -j 2 install
    cd ../..
    


  • Habe mir gerade fink installiert und leider gibt es dort keinen gcc-4.3.5.



  • Doch. Das Paket gcc43 ist genau die 4.3.5er-GCC.



  • Mmmmh

    apt-cache search gcc
    gcc4.0 - [virtual package representing the gcc 4.0.1 compiler]
    gcc4.2 - [virtual package representing the gcc 4.2.1 compiler]



  • Ja, sagte ich doch. Binärpaket gibt es da keines.

    Befolge doch bitte die verlinkte Anleitung, wenn Du fink install gcc43 machst, sollte das dann gehen.



  • Also bei mir kennt er das Paket nicht:

    sudo fink install gcc43
    Password:
    Scanning package description files..........
    Information about 310 packages read in 1 seconds.
    Failed: no package found for specification 'gcc43'!



  • Ansonsten gibt es bei den Macports ein gcc43 Paket: http://trac.macports.org/browser/trunk/dports/lang/gcc43/Portfile


Anmelden zum Antworten