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 1471Shell 173Rust 105Markdown 943545 Definiciones

matar-gcc: riesgo GUI VERIFICADO — el ABI de las libs migradas es idéntico

Debí evaluar esto ANTES de migrar, no después: las 29 tienen 36 consumidores,
incl. toda la cadena GUI (cairo/gtk4/pango/harfbuzz/fontconfig/libadwaita) +
mesa/mirada. 6 migradas son deps de ese stack, que por regla no se rebuildea en
el laptop.

No se pudo construir la GUI completa en ninguna máquina (laptop: python3 no
construye — gotcha conocido, verificado que es PREEXISTENTE revirtiendo mis deps;
worker golden: busybox no construye — store parcial). Así que se verificó lo que
decide el link: el ABI.

  freetype 90 · expat 12 · libpng/libpng16 385 · libffi 68 símbolos globales
  → IDÉNTICOS entre gcc y zig ⇒ la GUI linkea igual.

Dos falsos positivos cazados al medir: . comparaba libpng.a contra
libpng16.a (libs distintas), y  cuenta símbolos INTERNOS de los
.o que difieren entre compiladores sin tocar el ABI (294 'diferencias' espurias).
Lo correcto: mismo fichero + --extern-only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

2d8514555ca600b77cc12550507c2ec92ae48395 · por sergio · (hace 3 meses) · padre 2b7c7015e · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +24 −0

diff --git a/tandas/needs-review-harkaq/migracion-zig.md b/tandas/needs-review-harkaq/migracion-zig.md
index 3bb02a44..d124464d 100644
--- a/tandas/needs-review-harkaq/migracion-zig.md
+++ b/tandas/needs-review-harkaq/migracion-zig.md
@@ -31,3 +31,27 @@ Los `compiler=gcc` bajaron de 47 a 18. matar-gcc pasó de invisible a **medido,
 mayoría, y con el residuo justificado**.
 
 **Rollout: las 29 re-hashean (índice firmado 748) ⇒ re-firma en el próximo packaging.**
+
+## Riesgo sobre la cadena GUI: VERIFICADO (ABI idéntico) — 2026-07-16
+
+Las 29 migradas tienen **36 consumidores**, incluidos cairo, gtk4, pango, harfbuzz, fontconfig,
+libadwaita, mesa y mirada. 6 de ellas (expat, freetype, libpng, libffi, pcre2, zstd) son deps de
+ese stack, y la regla del proyecto prohíbe rebuildear la GUI en el laptop.
+
+**No se pudo construir la cadena GUI completa en ninguna máquina** (el laptop no construye
+`python3` — gotcha conocido; el worker golden no construye `busybox` — store parcial). Así que se
+verificó lo que de verdad decide el link: **el ABI de las libs migradas**.
+
+| lib | símbolos globales | gcc vs zig |
+|---|---|---|
+| freetype | 90 | idénticos |
+| expat | 12 | idénticos |
+| libpng / libpng16 | 385 | idénticos |
+| libffi | 68 | idénticos |
+
+⇒ **La GUI linkea igual.** El cambio gcc→zig no altera la superficie que consumen sus consumidores.
+
+**Ojo al comparar** (dos falsos positivos en el intento): `find | head -1` puede tomar libs
+distintas de cada artefacto (`libpng.a` vs `libpng16.a`), y `nm --defined-only` incluye símbolos
+**internos** de los `.o` — que difieren entre compiladores sin tocar el ABI (294 "diferencias"
+espurias en libpng). Comparar **el mismo fichero** y con **`--extern-only`**.