Estoy jugando con entornos chroot, y me gustaría tener un compilador de C portátil para poder configurar fácilmente algunas herramientas de compilación básicas en cada entorno sin tener que mover demasiadas bibliotecas.
Gcc parece bastante hinchado por lo que quiero hacer, pero si es razonablemente fácil construir un gcc estático, no me importaría unas pocas docenas de megabytes.
También estoy mirando el compilador Tiny C, que es más pequeño pero aún parece que tiene un conjunto de características impresionantes. Sin embargo, ejecutar ./configure --help en el directorio fuente no enumera ninguna opción para construir tcc estáticamente, y no estoy seguro de cómo podría hacerse de otra manera.
c
gcc
compiler
static-linking
math4tots
fuente
fuente
Respuestas:
Construir un binario estático debería ser tan simple como ejecutar gcc con -static, o si se llama a ld directamente, use -Bstatic. Tratar
después de correr
configure
. Si falla, los resultados serán obvios, por ejemplo, balsas de referencias indefinidas en el momento del enlace.fuente
make CFLAGS=-static
un momento. Haga impresiones sobre alguna advertenciadlopen
, luego, cuando intento ejecutar el ejecutable en el entorno chroot,/usr/lib/crt1.o .. crti,o .. crtn.o
no encuentro errores. ¿Es eso lo que quisiste decir con "referencias indefinidas en el momento del enlace"?También puede recuperar una versión precompilada con static-get
fuente