gioser

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…

TOML 188Rust 55Shell 30Markdown 281211 Sutichaykuna

rust: `lld = true` — el compilador que no podía enlazar ahora trae su enlazador

Muro 8, cerrado por la vía (a): el toolchain se construye su propio `rust-lld` en vez de depender de
un `cc` que en una caja takana no existe.

Lo que lo destraba es una línea del log que parece informativa: `skipping llvm-tools (…): external
LLVM`. Al usar un LLVM externo —que es lo que queremos, porque `llvm21` es del corpus— x.py se salta
las herramientas de LLVM, y `rust-lld` es una de ellas. El prebuilt oficial sí la trae, y por eso el
escalón 1 enlazaba y el 2 no.

Comprobado ANTES de encolar dos horas de build, leyendo el bootstrap y midiendo los artefactos:
· el paso `Lld` compila desde `src/llvm-project/lld`, que YA VIENE en el tarball (1,1 G de fuente);
· usa el `llvm-config`/cmake del LLVM EXTERNO y NO dispara un build de LLVM entero;
· `llvm21` publica `lib/cmake/llvm/LLVMConfig.cmake`, que es justo lo que ese paso necesita;
· `dist.rs` copia `rust-lld` al sysroot SÓLO `if builder.config.lld_enabled`;
· y `llvm21` no servía de repuesto: sobre sus 1,6 G no publica NINGÚN `lld`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

b7f70f37a8f8d510d780582fa8ff113add002982 · ruwaq Sergio · (1 killa ñawpaq) · tayta 1eff89d87 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

1 qillqakuna · +15 −0

diff --git a/recipes/rust.toml b/recipes/rust.toml
index 4b0fc559..c0584d88 100644
--- a/recipes/rust.toml
+++ b/recipes/rust.toml
@@ -100,6 +100,21 @@ channel = "stable"
 codegen-tests = false
 deny-warnings = false
 musl-root = "/usr"
+# ⚠ SIN ESTO EL COMPILADOR NO PUEDE ENLAZAR, y el primer sellado lo demostró: `rustc hola.rs` en una
+# caja sin `cc` daba «linker `lld` not found», y con el `ld` de binutils «cannot find -lgcc». La
+# causa estaba en una línea del log que parece informativa —`skipping llvm-tools (…): external
+# LLVM`—: al usar un LLVM externo, que es lo que queremos porque `llvm21` es del corpus, x.py se
+# salta las herramientas de LLVM y `rust-lld` es una de ellas. El prebuilt oficial sí la trae, y por
+# eso el escalón 1 enlazaba y el 2 no.
+#
+# `lld = true` construye LLD desde el `src/llvm-project/lld` que YA VIENE en el tarball (1,1 G de
+# fuente) contra el cmake del LLVM externo — comprobado que `llvm21` publica su
+# `lib/cmake/llvm/LLVMConfig.cmake`, que es lo que ese paso necesita, y que NO dispara un build de
+# LLVM entero (el paso `Lld` reusa el `llvm-config` externo). Después, `dist.rs` lo copia al sysroot
+# como `rust-lld` sólo `if builder.config.lld_enabled`.
+#
+# ⚠ `llvm21` no servía de repuesto: medido sobre sus 1,6 G, **no publica ningún `lld`**.
+lld = true
 
 [target.x86_64-alpine-linux-musl]
 llvm-config = "/usr/bin/llvm-config"