IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Glibc, la bibliothèque GNU C, passe en version 2.25


Sujet :

C

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 455
    Points : 197 818
    Points
    197 818
    Par défaut Glibc, la bibliothèque GNU C, passe en version 2.25
    Glibc, la bibliothèque GNU C, passe en version 2.25
    et apporte de nombreuses nouveautés fonctionnelles

    Siddhesh Poyarekar a annoncé la disponibilité de la version 2.25 de la bibliothèque GNU C. Il a rappelé qu’elle est utilisée comme LA bibliothèque C sur les systèmes GNU, GNU/Linux ainsi que d’autres systèmes qui se servent de Linux comme noyau.

    Parmi les nouveautés qui accompagnent cette version, Poyarekar a noté :

    Le support de la macro __STDC_WANT_LIB_EXT2__, de ISO / IEC TR 24731-2: 2010, pour permettre des déclarations de fonctions depuis ce TR. Notez que toutes les fonctions de ce TR ne sont pas prises en charge par la bibliothèque GNU C.

    Le support de la macro __STDC_WANT_IEC_60559_BFP_EXT__, de l'ISO / CEI TS 18661-1: 2014, pour permettre des déclarations de fonctions et de macros de cette TS. Notez que toutes les fonctionnalités de cette TS ne sont pas prises en charge par la bibliothèque GNU C.

    Les sélections de macros _REENTRANT et _THREAD_SAFE sont désormais traitées comme des synonymes de compatibilité pour _POSIX_C_SOURCE = 199506L. Étant donné que la bibliothèque GNU C utilise par défaut une version beaucoup plus récente de POSIX, cela ne touchera que les programmes qui demandent spécifiquement un ancien mode de conformité. Par exemple, un programme compilé avec -std = c89 -D_REENTRANT verra un changement dans les déclarations visibles, mais un programme compilé uniquement avec -D_REENTRANT ou -std = c99 -D_POSIX_C_SOURCE = 200809L -D_REENTRANT, ne le sera pas.

    L'inclusion de <sys / sysmacros.h> par <sys / types.h> est obsolète. Cela signifie que dans une future version, les macros "majeur", "mineur" et "Makedev" ne seront disponibles que depuis <sys / sysmacros.h>.

    De nouvelles fonctionnalités <fenv.h> de TS 18661-1: 2014 sont ajoutées à libm : les fonctions fesetexs ept, fetestexceptflag, fegetmode et fesetmode, le type femode_t et les macros FE_DFL_MODE et FE_SNANS_ALWAYS_SIGNAL.

    Les macros de type entier de TS 18661-1: 2014 sont ajoutés à <limits.h> : notamment CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_esIDTH, ULLONG_WIDTH; Et à <stdint.h>: INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, WINT_WIDTH.

    Sur x86_64, lors de la compilation avec -mfpmath = 387 ou -mfpmath = sse + 387, les types float_t et double_t sont maintenant définis à long double au lieu de float et double. Ces options ne sont pas les valeurs par défaut et n’affectent pas l'ABI de toutes les bibliothèques qui font partie de la bibliothèque GNU C, mais elle peut affecter l'ABI des autres bibliothèques qui utilisent ces types dans leurs interfaces si elles sont compilées ou utilisées avec ces options.

    Les fonctions malloc_get_state et malloc_set_state ont été supprimées. Les binaires déjà existants qui se lient dynamiquement à ces fonctions vont obtenir une implémentation cachée dans laquelle malloc_get_state va figurer. Selon Poyarekar, ces fonctions sont utilisées uniquement par GNU Emacs et ce changement ne va pas affecter négativement les exécutables Emacs déjà conçus.

    Des améliorations ont aussi été apportées du côté de la sécurité.

    télécharger glibc 2.25

    Source : liste de diffusion GNU
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  3. #3
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Je pense que les points suivants relèguent l'implémentation de cette interface dans la glibc à la saint glin-glin :

    • threads.h et pthreads c'est bonnet blanc et blanc-bonnet sans compter qu'à peu près partout où la glibc est disponible, pthreads l'est aussi ;
    • threads.h est optionnel au sein de la norme.


    Il est également possible d'opter pour musl, qui elle implémente cette interface (ça ne doit pas être le point décisif, c'est un plus).

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 671
    Points
    10 671
    Billets dans le blog
    3
    Par défaut
    Apparemment ils ont pas pu intégrer dans cette version une optimisation de malloc assez significative (20% de gain grâce à un cache au niveau de chaque thread):
    https://sourceware.org/ml/libc-alpha.../msg00524.html

    Ca sera pour la 2.26 à priori...

    Si c'est important pour toi, tu peux démarrer une contribution en ce sens !

  5. #5
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Tu peux passer à musl musl C11 conformance.
    gcc la supporte depuis la série 6 : GCC 6 Changes (Linux).

  6. #6
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    @Matt_Houston, threads.h et pthread ce n'est pas blanc bonnet et bonnet blanc, pthread est l'implémentation Posix (qui fonctionne très bien sous Linux mais pas forcément ailleurs), threads.h est l'interface standard C. Pour avoir fait du GCC (MinGW) sous Windows, toutes les fonctionnalités ne sont pas implémentés (ex: inet_pton).

    @Aurelien.Regat-Barrel, en effet, je pourrais (j'ai déjà une librairie crossplatform qui part en cet état d'esprit sens pour les sockets). Mais bon comme cela a été dit plus haut, musl et Pelles l'ont fait, donc je ne vois pas pourquoi GCC ne l'a pas toujours fait en 2017.

    @picodev, je pense que cela fait référence à C++11 (qui lui implémente déjà une interface standardisé pour les threads).
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  7. #7
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Citation Envoyé par Gugelhupf Voir le message
    ….

    @picodev, je pense que cela fait référence à C++11 (qui lui implémente déjà une interface standardisé pour les threads).
    Non, il s'agit bien de C11 et non C++11. musl est une inplémentation de libc et non de libstdc++.

  8. #8
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 741
    Points
    3 741
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Je me suis amusé à implémenter la lib C11 threads pour les environnements Unix et Windows (lien repo github).
    Voici le post de contribution à la communauté GCC GNU : https://gcc.gnu.org/ml/gcc/2017-02/msg00082.html

    A+
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

Discussions similaires

  1. LibGDX, la bibliothèque de jeux en Java passe à la version 1.2
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 6
    Dernier message: 11/01/2016, 17h49
  2. La bibliothèque de jeux Torque 2D passe en version 3.1
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 16/08/2014, 22h17
  3. libgdx, la bibliothèque de jeux en Java passe à la version 1.0.0
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 9
    Dernier message: 25/04/2014, 10h52
  4. Guava, la bibliothèque d'utilitaires de Google, passe en version 17.
    Par thierryler dans le forum Général Java
    Réponses: 2
    Dernier message: 14/04/2014, 22h33
  5. libgdx, la bibliothèque de jeux en Java passe à la version 0.9.8
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 31/01/2014, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo