Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

GCC 5.1 est disponible
Avec le support complet des standards C++11 et C++14 et ajoute de nombreuses optimisations

Le , par LittleWhite

0PARTAGES

11  2 
La collection d'outils de compilation GCC est disponible en version 5.1. Avec cette version, nous quittons donc la branche 4.X (dont la dernière version majeure était la 4.9), marquant ainsi des changements importants dans le compilateur.
En effet, on peut citer les grandes lignes suivantes :
  • support complet du C++11 et C++14 (notamment grâce au passage à la Dual ABI) ;
  • la compilation C adopte l'utilisation du C11 et des extensions GNU, par défaut ;
  • nombreuses optimisations (optimisations interprocédurales, nouvelle passe pour les codes identiques, améliorations à l'édition des liens, ...) ;
  • support partiel de OpenACC et support complet de OpenMP ;
  • le nommage des versions a changé.


Dual ABI

La bibliothèque standard C++ apporte une nouvelle ABI, incluant les implémentations de std::string et std::list. Cela a été nécessaire pour intégrer pleinement le standard C++11. Pour des raisons de compatibilité, le nommage de la bibliothèque n'a pas été modifié et les deux implémentations (ancienne et nouvelle) sont supportées en parallèle. Cela est possible grâce à un nouveau namespace std::__cxx11::. La macro _GLIBCXX_USE_CXX11_ABI détermine quelle ABI utiliser. Pour utiliser l'ancienne, il suffit de définir la macro à 0, avant l'inclusion des en-têtes. Il est possible que certaines distributions définissent cette macro à 0, par défaut et il faudra donc mettre à 1 pour utiliser la nouvelle ABI.

À cause des différences d'ABI, il est possible d'avoir des erreurs à l'édition de liens, notamment si vous utilisez une bibliothèque tierce ayant recours à une autre ABI que celle de votre programme. Les solutions sont :
  • recompiler la bibliothèque tierce avec GCC 5.1 ;
  • recompiler votre programme en désactivant la nouvelle ABI.


Activation du C11 par défaut

Le C11 change, entre autres, le comportement du mot clé inline. Comme les répercussions sont visibles et impactent le développeur, l'équipe de GCC a écrit un guide de migration vers GCC 5. Si vous ne voulez pas de C11, vous pouvez toujours utiliser gnu89 avec l'option de compilation -std=gnu89.
De plus, pour faciliter la migration, GCC propose deux options d'avertisseurs : -Wc90-c99-compat et -Wc99-c11-compat.

Nommage des versions

Le nommage des versions change. La prochaine version majeure sera 6.1 et est prévue pour la fin de l'année. La prochaine version mineure sera appelée 5.2 et est prévue pour juin/juillet. On remarque ainsi que GCC perd un indicateur dans les versions (passage d'une numérotation X.Y contre X.Y.Z).

Compilateur JIT

GCC peut être compilé comme une bibliothèque partagée et peut donc être intégré dans une application pour servir de compilateur JIT. Cela est possible pour le C et le C++, mais aussi pour le D et le Python. La bibliothèque appelée libgccjit est sous licence GPLv3. Pour le moment, la bibliothèque n'est qu'au stade expérimental.

Pour connaître la totalité des changements, je vous invite à consulter cette page officielle.

Vous pouvez dès à présent télécharger GCC 5.1 sur le site officiel ou attendre son intégration dans les paquets de votre distribution préférée.

Source

Site officiel de GCC

Votre opinion

Allez-vous passer directement à GCC 5 ? Quels sont les avantages que vous pouvez en tirer ?

Utilisez-vous toujours GCC ou êtes-vous passé à LLVM ? Pourquoi ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 23/04/2015 à 21:25
L'intérêt est assez dur à voir, je l'avoue. Il faudrait fouiller les mailing list pour retrouver les raisons.
On peut voir que c'est la mode, notamment Firefox et bien d'autres (le kernel Linux).
Après, c'est possiblement simplement juste pratique : "Eh, tu as bien GCC 5 ?" au lieu de dire : "Tu as bien GCC 4.8 ou 4.9 je sais plus trop ".
2  0 
Avatar de Nairolf21
Membre du Club https://www.developpez.com
Le 23/04/2015 à 21:12
Petite question, quel peut-être l'intérêt de passer d'un nommage de version du type X.Y.Z à X.Y ?

Je pensais que le nommage avec 3 paramètres donnaient davantage d'information.
1  0 
Avatar de CodeurPlusPlus
En attente de confirmation mail https://www.developpez.com
Le 23/04/2015 à 21:47
Est-ce que GG 5.1 sera capable de compiler SDL 1.2 sous Cygwin ?

(oui, je suis complètement con, je sais)
1  0 
Avatar de chouetz
Futur Membre du Club https://www.developpez.com
Le 30/04/2015 à 13:54
dans ma boite (cense etre une grande boite d'IT) la version officielle c'est gcc version 4.2.1, voire 3.4.5, donc on n'est pas pret de passer a 5.1....

Je me demande si c'est pareil partout...
0  0 
Avatar de quicky2000
Membre habitué https://www.developpez.com
Le 30/04/2015 à 16:40
Citation Envoyé par chouetz Voir le message
dans ma boite (cense etre une grande boite d'IT) la version officielle c'est gcc version 4.2.1, voire 3.4.5, donc on n'est pas pret de passer a 5.1....

Je me demande si c'est pareil partout...
Dans le domaine de la micro-electronique chez les CAD Vendor les deux versions officielles actuelles sont a peu gcc 4.1.2 et gcc 4.4 alors qu en interne de mon equipe on test en 4.9.0 pour les softs non dependant des librairies des CAD vendors
0  0 
Avatar de dclink
Membre habitué https://www.developpez.com
Le 02/05/2015 à 7:47
Citation Envoyé par chouetz Voir le message
dans ma boite (cense etre une grande boite d'IT) la version officielle c'est gcc version 4.2.1, voire 3.4.5, donc on n'est pas pret de passer a 5.1....

Je me demande si c'est pareil partout...
Cela peut être une question de license (i.e GPL2 => GPL3 après gcc 4.2 si je me souviens bien), bon après je peux me tromper ...
0  0 
Avatar de born to code
Nouveau membre du Club https://www.developpez.com
Le 07/12/2015 à 11:06
Qu'est-ce qui le differe de clang, pour que visual c++ soit tres utilisE?
0  0