3 puntos por GN⁺ 2023-07-15 | 3 comentarios | Compartir por WhatsApp
  • Un ingeniero de software escribió un parche para GCC que simplifica la creación de ejecutables realmente portables usando Cosmopolitan Libc.
  • Con este parche, es posible compilar con Cosmopolitan Libc software popular como bash, curl, git y el propio gcc sin modificar el código fuente.
  • Los ejecutables compilados pueden ejecutarse en Linux, FreeBSD, MacOS, OpenBSD, NetBSD y, en algunos casos, Windows.
  • Este artículo ofrece instrucciones paso a paso sobre cómo portar tu propio software a Cosmopolitan Libc.
  • El parche resuelve problemas con sentencias switch e inicializaciones de estructuras que dependen de valores del sistema.
  • Al principio, el autor intentó automatizar la conversión usando sed y scripts de Python debido al preprocesador de C y a ifdef, pero no funcionó por completo.
  • Luego, el autor exploró el uso de un plugin de GCC y la posibilidad de parchear el propio GCC para resolver el problema.
  • Usar GCC parcheado permite compilar software con Cosmopolitan Libc, haciendo que el proceso de portabilidad sea más fácil y fluido.
  • El autor compiló con éxito lua e hizo cambios en python3.11 para acceder a un repositorio ZIP.
  • El autor tuvo dificultades al compilar busybox, que usa arreglos de cadenas como tablas de búsqueda.
  • También hubo desafíos con la inicialización de estructuras en ncurses debido a expresiones binarias.
  • El autor concluye que, en la mayoría de los casos, los cambios necesarios para portar software a Cosmopolitan Libc son mínimos.
  • El autor reconoce que el parche puede no ser perfecto y que podría tener algunas limitaciones.
  • El autor anima a los lectores a intentar compilar software en C con Cosmopolitan Libc.
  • El autor menciona la posibilidad de ejecutar los binarios en Windows, aunque no lo probó.
  • El autor proporciona información adicional y materiales de referencia.

3 comentarios

 
ryuheechul 2023-07-15

¿Ahora neo está yendo hacia un formato en el que los mensajes van envueltos en bloques de código? Tener que hacer desplazamiento horizontal y el color de texto en tonos rojos me deja un poco insatisfecho...

 
xguru 2023-07-16

Ah, es un bug que se envuelva en un bloque de código :(

 
GN⁺ 2023-07-15
Opiniones de Hacker News
  • El autor escribió una publicación sobre cómo parchear GCC para compilar ejecutables realmente portables.
  • Este parche permite compilar software como vim, emacs, ninja, bash, git y gcc con Cosmopolitan Libc.
  • Los ejecutables compilados deberían poder ejecutarse en Linux, FreeBSD, MacOS, OpenBSD, NetBSD y Windows.
  • El autor ofrece una lista del software que puede compilarse con esta técnica.
  • Hay un ticket en el repositorio de Go sobre este tema.
  • Un comentarista propone otro enfoque para compilar un nuevo objetivo de OS.
  • Otro comentarista sugiere publicar una lista del software compilado con éxito usando esta técnica.
  • Alguien cuestiona el propósito práctico de los ejecutables realmente portables.
  • Otro comentarista propone un enfoque distinto para manejar constantes en el código.
  • Hay una discusión sobre el uso de números de señal y errno.
  • Alguien cuestiona la biblioteca estándar de C++ y el uso de std::error_code.
  • Un comentarista considera este tema sorprendente.
  • Hay una discusión sobre la constante de tiempo de compilación EINVAL.