🥇Version de la distribution OpenMandriva Lx 4.1 | ProHoster

Après six mois de développement publiée publication de la bibliothèque système GNU C Library (glibc) 2.31, qui respecte entièrement les normes ISO C11 et POSIX.1-2008. La nouvelle version comprend des corrections apportées par 58 développeurs.

Parmi les fonctionnalités mises en œuvre dans Glibc 2.31 améliorations on peut noter :

  • Un nouveau macro _ISOC2X_SOURCE a été ajouté pour activer les fonctionnalités définies dans le brouillon de la future norme ISO C2X. Ces fonctionnalités sont également activées lors de l'utilisation du macro _GNU_SOURCE ou lors de la compilation avec gcc avec l'option « -std=gnu2x » ;
  • Pour certaines fonctions définies dans le fichier d'en-tête « math.h », qui arrondissent leurs résultats vers un type de plus petite taille, des macros de type générique correspondantes sont proposées dans le fichier « tgmath.h », comme le demandent les spécifications TS 18661-1:2014 et TS 18661-3:2015 ;
  • La fonction pthread_clockjoin_np() a été ajoutée, qui attend la finalisation d'un thread en tenant compte d'un timeout (si le timeout se produit avant la finalisation, la fonction renverra une erreur). Contrairement à pthread_timedjoin_np(), dans pthread_clockjoin_np(), il est permis de définir le type de minuterie pour calculer le timeout — CLOCK_MONOTONIC (qui prend en compte le temps passé par le système en mode veille) ou CLOCK_REALTIME ;
  • Le résolveur DNS prend en charge l'option trust-ad dans /etc/resolv.conf et le drapeau RES_TRUSTAD dans _res.options, qui, lorsqu'ils sont activés, incluent un drapeau DNSSEC dans les requêtes DNS AD (authenticated data). En mode doté de ce drapeau AD, il devient accessible aux applications appelant des fonctions similaires à res_search(). Par défaut, si les options proposées ne sont pas activées, glibc n'inclut pas le drapeau AD dans les requêtes et le nettoie automatiquement dans les réponses, ce qui indique qu'il n'y a pas de vérification DNSSEC ;
  • Pour construire des wrappers fonctionnels pour les appels système pour Glibc, il n'est plus nécessaire d'installer les fichiers d'en-tête du noyau Linux. La seule exception est l'architecture 64 bits RISC-V ;
  • Corrigé CVE-2020-10174 CVE-2019-19126, qui permet de contourner la protection
    ASLR dans les programmes avec le drapeau setuid et de déterminer la disposition des adresses dans les bibliothèques chargées par la manipulation de la variable d'environnement LD_PREFER_MAP_32BIT_EXEC.

Changements non compatibles :

  • Dans totalorder(), totalordermag() et d'autres fonctions pour les types à virgule flottante, celles-ci acceptent désormais comme argument des pointeurs pour éviter les avertissements sur la conversion de valeurs en état NaN, conformément aux recommandations de la TS 18661-1, proposées pour la future norme C2X.
    Les fichiers exécutables existants, dans lesquels les arguments à virgule flottante sont transmis directement, continueront à fonctionner sans changement ;
  • La fonction obsolète stime, longtemps annoncée, n'est plus disponible pour les fichiers binaires liés à glibc, et sa définition a été supprimée de time.h. Pour régler l'heure système, la fonction clock_settime doit être utilisée. À l'avenir, il est prévu de supprimer également la fonction ftime, marquée comme obsolète, ainsi que le fichier d'en-tête sys/timeb.h (il est conseillé d'utiliser gettimeofday ou clock_gettime à la place de ftime);
  • La fonction gettimeofday ne fournit plus d'informations sur le fuseau horaire système (cette possibilité était pertinente à l'époque de 4.2-BSD et a été déclarée obsolète depuis de nombreuses années). L'argument 'tzp' doit désormais recevoir un pointeur nul, et pour obtenir des informations sur le fuseau horaire par rapport à l'heure actuelle, il faut utiliser la fonction localtime(). Lorsqu'on appelle gettimeofday avec un argument 'tzp' non nul, les champs tz_minuteswest et tz_dsttime dans la structure timezone seront vides. La fonction gettimeofday est considérée comme obsolète dans POSIX (il est recommandé d'utiliser clock_gettime à la place), mais sa suppression de glibc n'est pas prévue;
  • Dans settimeofday, la prise en charge de la transmission simultanée des paramètres pour définir l'heure et les corrections de décalage horaire a été abandonnée. À présent, lors de l'appel de settimeofday, l'un des arguments (temps ou décalage) doit obligatoirement être défini sur null, sinon l'appel de la fonction échouera avec l'erreur EINVAL. Tout comme gettimeofday, la fonction settimeofday est considérée comme obsolète dans POSIX et il est recommandé d'utiliser la fonction clock_settime ou la famille de fonctions adjtime à la place;
  • La prise en charge de l'architecture SPARC ISA v7 a été arrêtée (la prise en charge de v8 est encore maintenue, mais uniquement pour les processeurs prenant en charge les instructions CAS, comme les processeurs LEON, mais pas les processeurs SuperSPARC).
  • En cas d'échec de liaison en mode «lazy», dans lequel le linker ne recherche pas les symboles de la fonction avant son premier appel, la fonction dlopen termine désormais le processus (auparavant, en cas d'échec, NULL était retourné);
  • Pour l'ABI MIPS hard-float, une pile exécutable est désormais utilisée, sauf si lors de la compilation, une restriction explicite d'utilisation du noyau Linux 4.8+ est définie par le paramètre « --enable-kernel=4.8.0 » (avec des noyaux jusqu'à 4.8, des échecs sont observés pour certaines configurations MIPS);
  • Les liaisons aux appels système liés à la manipulation du temps ont été traduites pour utiliser l'appel système time64, lorsqu'il est disponible (sur les systèmes 32 bits, glibc essaie d'abord d'utiliser les nouveaux appels système manipulant le type 64 bits pour le temps, et s'il n'est pas disponible, il revient aux anciens appels 32 bits).

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster