Tutoriel 1 - Compilation de gcc 4.7.0 pour MinGW
Introduction
Actuellement, MinGW utilise gcc 4.6.2, alors que gcc 4.7.0 est sorti. Plusieurs étapes vont être nécessaires pour compiler gcc :
Installer MINGW et MSYS
Il s'agit de la phase la plus simple du tutoriel.
Il suffit de télécharger la dernière version de mingw-get-inst Une fois l'installeur lancé il faut bien préciser que nous voulons installer MSYS Basic System. Le processus d'installation prend un peu de temps. Créer un environnement pour compiler GCC
Afin de compiler gcc, il faut ajouter certaines bibliothèques et exécutables non présents dans la distribution de MinGW, ou obsolètes pour gcc 4.7.
En supposant que MinGW est installé sur c:\, vous devriez avoir l'arborescence suivante:
c:\ /span
Nous allons commencer par créer le dossier et l'environnement de compilation de gcc.|---folder_1 |---folder_2 |---MinGW ||---bin ||---doc ||---include ||---info ||---lib ||---libexec ||---mingw32 ||---msys |||---1.0 ||||---bin ||||---etc ||||---postinstall ||||--sbin ||||---share ||---share ||---var |---folder_n Dans l'environnement MSYS, créez un dossier de travail où vous placerez les sources et fichiers de compilation temporaires:
# cd /
Les lignes commençant avec un # sont les commandes à saisir dans MSYS.# mkdir gcc-work # cd gcc-work # mkdir {build,source}
Le premier exécutable dont vous allez avoir besoin par la suite est m4
Ensuite, il va falloir compiler 3 bibliothèques : GMP, MPFR et MPC
# cd /gcc-work/build
Puis on configure/compile/installe GMP en premier (MPFR ayant besoin de GMP et MPC ayant besoin de MPFR) :
# mkdir {gmp,mpfr,mpc}
# cd gmp
Ensuite on s'occupe de MPFR :
# ../../source/gmp-5.0.2/configure --prefix=/mingw --build=mingw32 --host=mingw32 --target=mingw32 --program-prefix="" --with-lib-path=/mingw/mingw32/lib:/mingw/lib:/usr/local/lib:/lib:/usr/lib --with-gcc --with-gnu-as --with-gnu-ld --disable-nls --disable-shared # make CFLAGS="-O2" LDFLAGS=-s # make install
# cd ../mpfr
Et enfin MPC :
# ../../source/mpfr-3.1.0/configure --prefix=/mingw --build=mingw32 --host=mingw32 --target=mingw32 --program-prefix="" --with-lib-path=/mingw/mingw32/lib:/mingw/lib:/usr/local/lib:/lib:/usr/lib --with-gcc --with-gnu-as --with-gnu-ld --disable-nls --disable-shared # make CFLAGS="-O2" LDFLAGS=-s # make install
#cd ../mpc
Chaque compilation peut prendre quelques dizaines de minutes (selon votre machine).
# ../../source/mpc-0.8.2/configure --prefix=/mingw --build=mingw32 --host=mingw32 --target=mingw32 --program-prefix="" --with-lib-path=/mingw/mingw32/lib:/mingw/lib:/usr/local/lib:/lib:/usr/lib --with-gcc --with-gnu-as --with-gnu-ld --disable-nls --disable-shared # make CFLAGS="-O2" LDFLAGS=-s # make install Compiler et installer GCC
Le moment tant attendu, la compilation de gcc, en fait rien de bien compliqué.
Tout d'abord il faut télécharger les sources de gcc Une fois téléchargées, déplacez l'archive dans le dossier source et décompressez-la. Retournez dans le dossier build et créez un dossier de compilation:
# cd ../build
Configurez, compilez et installez:
# mkdir gcc # cd gcc
# ../../source/gcc-4.7.0/configure --prefix=/mingw --build=mingw32 --host=mingw32 --target=mingw32 --enable-languages=c,c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-bootstrap
Le processus est loooong, Ca prend 1h ou 2...# make # make install Conclusion
Voili voilou, gcc est compilé et installé sur votre environnement MinGW.
# gcc -v
qui devrait retourner ceci (ou ressemblant):
Utilisation des specs internes.
COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.0/lto-wrapper.exe Target: mingw32 Configuré avec: ../../source/gcc-4.7.0/configure --prefix=/mingw --build=mingw32 --host=mingw32 --target=mingw32 --enable-languages=c,c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-bootstrap Modèle de thread: win32 gcc version 4.7.0 (GCC) Avec ce document, vous avez maintenant un appui vous permettant de compiler les versions modernes de gcc, ce à partir de la version 4.7.0. J'espère que ce tutoriel vous aura aidé. Bonne lecture, dragonjoker. |