sergio/takana
> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…
la cadena rehecha: llvm21 arreglado, lld enlaza, rust reconstruido — los seis controles pasan
1# Config del SITIO para cargo/rustc — SDD 31.
2#
3# ⚠ Sin esto, `cargo build` en una caja takana falla con `linker `cc` not found`: la distro NO TIENE
4# compilador de C, y no hace falta que lo tenga. Lo que hace falta es decirle a rustc que el
5# enlazador es el `ld` de binutils y que el modo es estático, que es el natural de musl.
6#
7# Por qué CADA flag, todos medidos el 2026-09-16 contra el rustc que construimos:
8# · `linker-flavor=ld.lld` + `linker=/usr/bin/ld.lld` — el `lld` del corpus (`recipes/lld21.toml`).
9# Hasta el 2026-09-16 acá decía el `ld` de binutils, porque el `lld` heredaba `LLVM_ENABLE_ZLIB=0`
10# de `llvm21` y no podía leer las secciones de depuración COMPRIMIDAS de la libc del lab. Con
11# `llvm21` reconstruido con zlib, lld enlaza y es más rápido. El `ld` de binutils sigue
12# funcionando como alternativa: `-C linker-flavor=ld -C linker=/usr/bin/ld`.
13# · `target-feature=+crt-static` — sin esto rustc pide `-lgcc`/`-lgcc_s` para el desenrollado y el
14# enlace muere en `cannot find -lgcc`: la distro se construye con zig, que trae compiler-rt y no
15# libgcc. Estático es además el modo natural de musl.
16# · `link-self-contained=yes` — usa los `crt*.o` y la `libc.a` que el propio toolchain trae.
17[target.x86_64-alpine-linux-musl]
18linker = "/usr/bin/ld.lld"
19rustflags = ["-C", "linker-flavor=ld.lld", "-C", "target-feature=+crt-static", "-C", "link-self-contained=yes"]