Chapitre 17. Compilateurs et outils de développement


Ce chapitre répertorie les changements les plus notables apportés aux compilateurs et aux outils de développement entre RHEL 8 et RHEL 9.

17.1. Changements notables glibc

Toutes les API de threading sont désormais fusionnées dans libc.so.6

Dans RHEL 8, la bibliothèque de threading du système, libpthread.so, était une bibliothèque distincte. Dans RHEL 9, toutes les API de threading ont été fusionnées dans la bibliothèque C principale libc.so.6. L'intégration du threading dans la bibliothèque C principale permet à cette dernière de prendre en charge les threads par défaut. Avec un seul fichier, le processus de mise à niveau en place est également plus fluide puisque les API de threads et les API Core C, POSIX et BSD sont toutes mises à jour en même temps (il n'y a pas de bibliothèques distinctes).

Les développeurs peuvent continuer à utiliser l'option -lpthread lorsqu'ils lient des applications threadées, mais ce n'est plus nécessaire.

Historiquement, les bibliothèques utilisaient une référence faible à pthread_create ou pthread_cancel pour détecter si les processus pouvaient être multithreadés. Étant donné que cette vérification réussit toujours, parce que libpthread.so se trouve maintenant dans la bibliothèque C principale, les bibliothèques devraient utiliser le symbole __libc_single_threaded à la place.

La bibliothèque libdl est désormais fusionnée avec libc.so.6

Dans RHEL 8, la bibliothèque libdl était une bibliothèque distincte. Dans RHEL 9, la bibliothèque libdl a été fusionnée avec la bibliothèque C principale libc.so.6. Cela signifie qu'il est désormais beaucoup plus difficile d'interposer la fonction dlsym. Les applications qui doivent contrôler la manière dont la résolution des symboles fonctionne doivent passer aux interfaces de l'auditeur (LD_AUDIT).

Service de noms Les plugins de service de changement de nom pour dns et files ont été fusionnés en libc.so.6

Dans RHEL 8, les services Name Service Switch (NSS) pour files et dns, qui fournissent des données aux API de gestion des identités des utilisateurs et des groupes, constituaient un plugin distinct. Dans RHEL 9, les plugins ont été fusionnés dans la bibliothèque C principale libc.so.6. Le déplacement des fournisseurs de services files et dns garantit que les applications qui doivent franchir la limite d'un espace de noms mount (par exemple, entrer dans un conteneur) peuvent le faire en sachant que les services d'accès NSS files et dns sont toujours chargés au démarrage du processus.

Lors de l'appel d'API d'utilisateurs et de groupes, lorsque ces API dépendent d'un site nsswitch.conf qui fait référence à files ou dns, les développeurs peuvent s'attendre à ce que ces services soient toujours présents et fournissent les données du service sous-jacent.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.