¿Hay una distribución de Linux compilada con clang / llvm ? Parece que a fines de 2010 el kernel estaba funcionando. Si no, ¿sería más probable que se tratara de un problema técnico o de licencia?
¿Hay una distribución de Linux compilada con clang / llvm ? Parece que a fines de 2010 el kernel estaba funcionando. Si no, ¿sería más probable que se tratara de un problema técnico o de licencia?
Respuestas:
Como respuesta tardía a esta pregunta, lo que @jmtd dijo es exactamente lo que sucede periódicamente en el archivo de Debian.
Los paquetes se vuelven a compilar con cadenas de herramientas más nuevas (compiladores, enlazadores, etc.) y, cuando falla la compilación, los errores en los paquetes que no se pudieron compilar se archivan con la indicación de FTBFS ("error al compilar desde la fuente").
Tales errores son generalmente una indicación de que algo malo está sucediendo y, por lo general, se clasifican con gran gravedad y se les da el estado de errores de "liberación crítica", lo que significa que no se puede hacer una nueva versión con esos errores sin resolver.
En particular, Lucas Nussbaum ha estado compilando todo el archivo del Proyecto Debian en una cuadrícula como medio de alguna Evaluación de Calidad.
Recientemente, sin embargo, Sylvestre Ledru y algunos otros desarrolladores de Debian han tutelado los estudiantes en verano del Código de 2012 de Google para permitir la sustitución de ambos GCC y Sonido metálico libstdc++
(biblioteca de soporte de GCC para C ++) por libc++
(la contraparte de Clang / LLVM).
Hay un sitio donde se publicaron los resultados de la compilación de toda la colección de paquetes de Debian y LWN documentó más informes y el programa para desacoplar el proceso de compilación de Debian de GCC se concluyó con éxito .
Por lo tanto, pronto podremos ver una versión de Debian compilada con clang / llvm, dependiendo de cuánto soporte puedan obtener estos resultados exitosos.
A partir de esta actualización (2016-08-16), hay una nueva versión de una distribución tradicional de Linux compilada con clang y llvm, OpenMandriva Lx 3.0 , ahora en su versión final. Según sus notas, se compila, tanto como sea posible, no solo con clang y llvm, sino también con niveles de optimización altos "regulares" y también con Link Time Optimization (LTO) .
Si bien el tema principal de la pregunta y de esta respuesta es llvm / clang, para ser justos, debe tenerse en cuenta que GCC también presenta LTO (más antecedentes sobre LTO ).
En teoría, LTO, como se ve en los nuevos clang / llvm y GCC, tiene el potencial de hacer no solo los binarios resultantes más rápidos, sino también tener requisitos de memoria más pequeños para la sección de texto de los programas (y el kernel de Linux es un beneficiario potencial de LTO ).
No he leído cuánto OpenMandriva Lx 3.0 usa LTO en todos los programas, pero estoy emocionado de que use clang / llvm + LTO y me encantaría ver a las personas haciendo múltiples puntos de referencia independientes que comparen y contrasten con base en GCC "regular", distribuciones no optimizadas para LTO a OpenMandriva Lx 3.0.
Aún no. De acuerdo con este informe de error actualmente abierto , parece que incluso el núcleo no puede compilarse.
Si bien los archivos binarios del usuario final no están construidos con clang / llvm, la mayoría del archivo de Debian ha sido construido (y reconstruido) con clang / llvm (y binutils-gold y otras partes y piezas) por personas que desean exponer errores de portabilidad en el paquete de software (y los compiladores mismos).
Recientemente, OpenSuse - Lanzamiento rodante de Tumbleweed es configurar LTO en gcc9 para sus compilaciones. http://hubicka.blogspot.com/2019/05/gcc-9-link-time-and-inter-procedural.html