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…
build: zig_version por-receta — 5 víctimas C dropean gcc (zig 0.13)
1# flex 2.6.4 — build-dep del kernel (frente kernel-from-source).
2#
3# El kbuild del kernel usa flex (analizador léxico) para generar el parser de kconfig (scripts/kconfig)
4# y otros lexers. No está en el toolchain Alpine base ⇒ se construye desde fuente. Herramienta de
5# build-time, no input del 4/4: build vainilla, sin patches.
6#
7# Tarball release (configure ya generado ⇒ AutoconfReady). Estático musl con zig cc.
8
9name = "flex"
10version = "2.6.4"
11
12[source]
13tarball = "https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz"
14sha256 = "e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995"
15
16[build]
17compiler = "zig-cc"
18target = "x86_64-linux-musl"
19link = "dynamic"
20# zig 0.13.0 en vez del 0.16 por defecto: flex se auto-construye (un `stage1flex` procesa su propio
21# scan.l → stage1scan.c) y con zig 0.14+ ese stage1flex sale miscompilado → "unrecognized rule". El
22# bug es una REGRESIÓN introducida en zig 0.14 (bisect: 0.13.0 compila flex LIMPIO, 0.14/0.15/0.16
23# fallan), específica del path musl DINÁMICO. Antes esto se esquivaba con `CC=gcc`; ahora con el zig
24# bueno por-receta ⇒ gcc deja de hacer falta (toolchain 100% zig). No es input del 4/4. SDD 11 §7.2b.
25zig_version = "0.13.0"
26
27[build.phases]
28configure = "./configure --prefix=/usr --disable-nls --disable-shared"
29compile = "make -j\"$(nproc)\""
30install = "make install DESTDIR=/out PREFIX=/usr"