Els desenvolupadors de Google volen desenvolupar el seu propi libc per LLVM

LLVM_Logo

Un dels desenvolupadors de Google va presentar a la llista de correu de LLVM el tema de el desenvolupament de una biblioteca C estàndard multiplataforma (Libc) dins el marc de el projecte LLVM.

Per diverses raons, Google no està satisfet amb el libc actual (Glibc, musl) i la companyia està en camí de desenvolupar una nova implementació, Que es proposa desenvolupar com a part de LLVM. Els desenvolupaments de LLVM s'han utilitzat recentment com la base per construir eines de Google.

El desenvolupament està planejat per a ser gradual, augmentant gradualment la funcionalitat. Es proposa que les primeres opcions tinguin la forma d'una capa intermèdia entre l'aplicació i el sistema libc, d'on es prendran prestades les característiques no realitzades.

Després d'arribar a un cert nivell de funcionalitat, el nou Libc es pot usar com un reemplaçament complet de sistema Libc.

Es planeja començar amb el suport de l'arquitectura x86-64, Linux i l'enllaç estàtic (la càrrega dinàmica, l'empaquetat i les arquitectures addicionals s'implementaran en segon lloc).

El projecte encara es troba en l'etapa inicial de desenvolupament, però els objectius bàsics ja s'han definit:

  • La modularitat i el desenvolupament d'acord amb la filosofia de subministrar una biblioteca granular, En lloc d'un conjunt monolític.
  • Suport d'enllaç estàtic en maneres amb PEU (Executables independents de la posició) i sense PEU. Proporcionar CRT (temps d'execució de C) i carregador de PEU per a arxius executables enllaçats estàticament.
  • Admet la majoria de les funcions de la biblioteca C estàndard amb els complements POSIX i algunes extensions específiques de sistema que es demanen en les aplicacions existents.
  • Actitud acurada cap a les extensions específiques de l'proveïdor i només agregant quan sigui necessari. Per al suport d'extensions de tercers, es proposa utilitzar l'enfocament de projectes Clang i libc ++.
  • Ús de pràctiques exemplars en el desenvolupament utilitzant eines de LLVM, Com l'aplicació de desinfectants i l'eliminació de proves des del principi.

Un dels desenvolupadors actius de LLVM va indicar que el lliurament de libc com a part de el conjunt d'eines de LLVM no manca de significat, però generalment amb tal necessitat utilitzen la biblioteca musl, que està ben escrita, admet diverses arquitectures i proporciona la funcionalitat necessària, inclosa la vinculació dinàmica.

Es pot justificar la incorporació de Musl en LLVM i el seu desenvolupament com un fork sincronitzat amb el projecte principal.

La seva opinió també va ser expressada per l'autor de el projecte Musl, que va tractar d'argumentar per què la proposta de Google i la inclusió de Libc en el lliurament de LLVM són molt males idees:

Desenvolupar i mantenir el libc correcte, compatible i d'alta qualitat és una tasca molt difícil. El problema no està en la quantitat de codi, sinó en proporcionar el comportament correcte.

I les dificultats amb la implementació d'interfícies, tenint en compte l'enorme dipòsit d'aplicacions escrites en C / C ++, així com les aplicacions en altres idiomes el temps d'execució és utilitzat per Libc.

L'acostament al front sense tenir en compte els matisos només portarà a el fet que molts programes existents no podran treballar amb Libc, però tal projecte no serà d'interès per als consumidors.

El desenvolupament corporatiu pot arruïnar a la Libc, Però impulsar l'ús generalitzat, el resultat serà la necessitat d'afegir hacks per garantir la compatibilitat en les aplicacions.

El desenvolupament sota els auspicis d'un projecte obert corporatiu portarà la cobertura cap a les necessitats i decisions de l'empresa, en detriment dels interessos de la comunitat.

Per exemple, en el cas d'identificar un problema causat per un error en un altre programa propi, en el desenvolupament sota control, és més fàcil garantir la compatibilitat de Libc amb aquest error de corregir l'error en si.

Per la seva banda Apple fa servir la bifurcació BSD libc per a aquests propòsits i Google fa servir la bifurcació a Fuchsia. L'experiència de l'desenvolupador de Musl suggereix que els advocats ho van contactar principalment per aclarir els problemes de llicència.

font: http://lists.llvm.org


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.