
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é.

Source : liste de diffusion GNU
Vous avez lu gratuitement 16 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.