{"id":35694,"date":"2019-10-31T22:05:48","date_gmt":"2019-10-31T19:05:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\/"},"modified":"2019-10-31T22:05:48","modified_gmt":"2019-10-31T19:05:48","slug":"razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","title":{"rendered":"Les d\u00e9veloppeurs de Google ont propos\u00e9 de cr\u00e9er leur propre libc pour LLVM","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Un des d\u00e9veloppeurs de la soci\u00e9t\u00e9 Google <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133269.html\">a soulev\u00e9<\/a><\/noindex> dans la liste de diffusion LLVM le sujet du d\u00e9veloppement d'une biblioth\u00e8que standard en C multiplateforme (Libc) dans le cadre du projet LLVM. Pour plusieurs raisons, Google n'est pas satisfait des libc actuelles (glibc, musl) et l'entreprise est en route pour d\u00e9velopper une nouvelle impl\u00e9mentation, qui devrait \u00eatre d\u00e9velopp\u00e9e dans le cadre de LLVM.<\/p>\n<p> Les travaux sur LLVM ont r\u00e9cemment \u00e9t\u00e9 utilis\u00e9s comme base pour la construction d'outils de compilation pour Google. L'id\u00e9e principale est que si Google a d\u00e9j\u00e0 commenc\u00e9 \u00e0 d\u00e9velopper sa libc, pourquoi ne pas imm\u00e9diatement d\u00e9velopper son syst\u00e8me au sein de LLVM, qui propose d\u00e9j\u00e0 sa biblioth\u00e8que standard pour C++ (Libc++), mais n'a pas de biblioth\u00e8que standard \u00e9quivalente pour C (Libc).<\/p>\n<p>Le d\u00e9veloppement est pr\u00e9vu d'\u00eatre r\u00e9alis\u00e9 par \u00e9tapes, augmentant progressivement les fonctionnalit\u00e9s. Les premi\u00e8res versions devraient \u00eatre con\u00e7ues comme une couche entre l'application et la Libc syst\u00e8me, \u00e0 partir de laquelle seront emprunt\u00e9es des fonctionnalit\u00e9s qui ne sont pas encore mises en \u0153uvre. Apr\u00e8s avoir atteint un certain niveau de fonctionnalit\u00e9, la nouvelle Libc pourra \u00eatre utilis\u00e9e comme un remplacement complet de la Libc syst\u00e8me. Le d\u00e9marrage est pr\u00e9vu avec le support de l'architecture x86-64, Linux et le lien statique (le chargement dynamique, la liaison et d'autres architectures seront r\u00e9alis\u00e9s en second lieu). <\/p>\n<p>Le projet est encore \u00e0 ses d\u00e9buts, mais les objectifs de base ont d\u00e9j\u00e0 \u00e9t\u00e9 d\u00e9finis :<\/p>\n<ul>\n<li class=\"l\"> Modularit\u00e9 et d\u00e9veloppement en conformit\u00e9 avec la philosophie de fournir une biblioth\u00e8que granulaire, et non un ensemble monolithique ;\n<li class=\"l\"> Support du lien statique en modes avec <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Position-independent_code#PIE\">PIE<\/a><\/noindex> (ex\u00e9cutables position-ind\u00e9pendants) et sans PIE. Fourniture du CRT (runtime C) et du chargeur PIE pour les fichiers ex\u00e9cutables li\u00e9s statiquement ;\n<li class=\"l\"> Support de la plupart des fonctions de la biblioth\u00e8que standard en C avec des ajouts POSIX et certaines extensions sp\u00e9cifiques au syst\u00e8me requises dans les applications existantes ;\n<li class=\"l\"> Prudence vis-\u00e0-vis des extensions sp\u00e9cifiques aux fabricants et leur ajout uniquement si n\u00e9cessaire. En ce qui concerne le soutien des extensions tierces, il est propos\u00e9 d'appliquer l'approche des projets Clang et libc++;\n<li class=\"l\"> Utilisation des meilleures pratiques dans le d\u00e9veloppement avec les outils de LLVM, tels que l'application de sanitizer et de tests de fuzzing d\u00e8s le d\u00e9but.\n<\/ul>\n<p>Un des d\u00e9veloppeurs actifs de LLVM <noindex><a rel=\"nofollow\" href=\"https:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133282.html\">a indiqu\u00e9<\/a><\/noindex>, estime que l'inclusion de libc dans les outils LLVM a du sens, mais qu'en g\u00e9n\u00e9ral, dans ce genre de situation, la biblioth\u00e8que musl est utilis\u00e9e, qui est bien \u00e9crite, supporte diff\u00e9rentes architectures et fournit les fonctionnalit\u00e9s n\u00e9cessaires, y compris le support du lien dynamique. L'int\u00e9gration de musl dans LLVM et son d\u00e9veloppement en tant que fork synchronis\u00e9 avec le projet principal peuvent \u00eatre justifi\u00e9s.<\/p>\n<p>Son avis a \u00e9galement <noindex><a rel=\"nofollow\" href=\"http:\/\/lists.llvm.org\/pipermail\/llvm-dev\/2019-June\/133308.html\">\u00e9t\u00e9 exprim\u00e9<\/a><\/noindex> par l'auteur du projet Musl, qui a tent\u00e9 d'argumenter pourquoi la proposition de Google d'inclure libc dans la distribution de LLVM est une tr\u00e8s mauvaise id\u00e9e :<\/p>\n<ul>\n<li class=\"l\"> Le d\u00e9veloppement et le maintien d'une Libc correcte, compatible et de haute qualit\u00e9 est une t\u00e2che tr\u00e8s difficile. Le probl\u00e8me n'est pas dans le volume de code, mais dans la garantie d'un comportement correct et les difficult\u00e9s d'impl\u00e9mentation des interfaces, en tenant compte de l'\u00e9norme ensemble d'applications jamais \u00e9crites en C\/C++, ainsi que des applications dans d'autres langages dont l'ex\u00e9cution utilise Libc. Une approche directe sans prendre en compte les nuances ne fera que rendre de nombreuses programmes existants incompatibles avec Libc, ce qui rendra ce projet peu int\u00e9ressant pour les consommateurs.\n<li class=\"l\"> Le d\u00e9veloppement d'entreprise peut d\u00e9t\u00e9riorer Libc, mais mettre en avant son utilisation g\u00e9n\u00e9ralis\u00e9e, ce qui n\u00e9cessitera l'ajout de correctifs pour garantir la compatibilit\u00e9 dans les applications. Le d\u00e9veloppement sous l'\u00e9gide d'un projet open source d'entreprise favorisera les besoins et solutions de l'entreprise, au d\u00e9triment des int\u00e9r\u00eats de la communaut\u00e9. Par exemple, lorsqu'un probl\u00e8me survient en raison d'un bug dans un autre de leurs programmes, dans un environnement de d\u00e9veloppement contr\u00f4l\u00e9, il est plus facile de garantir la compatibilit\u00e9 de Libc avec ce bug plut\u00f4t que de corriger le bug lui-m\u00eame. Apple utilise pour ces fins un fork de BSD libc, tandis que Google appliquant dans Fuchsia un fork de musl. L'exp\u00e9rience du d\u00e9veloppeur de musl indique que la majorit\u00e9 des contacts ont \u00e9t\u00e9 \u00e9tablis par des avocats pour des questions de licences, mais qu'ils ne se sont jamais tourn\u00e9s vers lui pour clarifier des d\u00e9tails techniques avant d'apporter des modifications inutiles et perturbant le fonctionnement dans leurs branches.\n<li class=\"l\"> L'absence de monoculture dans le d\u00e9veloppement de libc et l'orientation vers des normes \u00e9labor\u00e9es sur la base du consensus, au lieu d'une gestion autoritaire, encouragent les d\u00e9veloppeurs d'applications \u00e0 adopter les normes, plut\u00f4t qu'\u00e0 s'attacher \u00e0 des impl\u00e9mentations sp\u00e9cifiques. C'est pourquoi l'auteur de musl s'oppose \u00e0 l'inclusion de sa biblioth\u00e8que dans LLVM, ainsi qu'au d\u00e9veloppement de libc dans le cadre de LLVM, car cela entra\u00eenerait la perte de la nature ind\u00e9pendante de libc et une certaine impl\u00e9mentation deviendrait une solution de premier ordre pour LLVM, tandis que toutes les autres seraient consid\u00e9r\u00e9es comme de second ordre.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50970\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0421\u0438-\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 (Libc) \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 LLVM. \u041f\u043e \u0440\u044f\u0434\u0443 \u043f\u0440\u0438\u0447\u0438\u043d Google \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e\u0442 \u0442\u0435\u043a\u0443\u0449\u0438\u0435 libc (glibc, musl) \u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043d\u043e\u0432\u043e\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c LLVM. \u041d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 LLVM \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0441\u043d\u043e\u0432\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35694","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437 Google \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u043e\u044e libc \u0434\u043b\u044f LLVM | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:05:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Les d\u00e9veloppeurs de Google ont propos\u00e9 de cr\u00e9er leur propre libc pour LLVM | ProHoster","description":"Un des d\u00e9veloppeurs de Google a soulev\u00e9 dans la liste de diffusion LLVM le sujet du d\u00e9veloppement multiplateforme.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0438\u0437 Google \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u0432\u043e\u044e libc \u0434\u043b\u044f LLVM | ProHoster","og:description":"\u041e\u0434\u0438\u043d \u0438\u0437 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Google \u043f\u043e\u0434\u043d\u044f\u043b \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 LLVM \u0442\u0435\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439.","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/razrabotchiki-iz-google-predlozhili-razrabotat-svoyu-libc-dlya-llvm","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:05:48+00:00","article:modified_time":"2019-10-31T19:05:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35694","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 00:24:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:57:46","updated":"2026-01-22 00:24:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=35694"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35694\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=35694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=35694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=35694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}