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 1472Shell 176Rust 106Markdown 953592 Definiciones

⎇ a6a9d59e4f0d354cf2c9066538c6fa7016fc6721 recipes/incoming-cosmic/gmp.toml TOML · 45 líneas · 2.1 KB Historia crudo

cosmic: libqalculate + gmp + mpfr — qalc anda, y el plugin del lanzador igual no lo puede usar 03ec0e682 · sergio ·

1# gmp — aritmética de precisión arbitraria. Entra al corpus por abajo del lanzador: el plugin de la
2# calculadora de pop-launcher llama al binario `qalc`, `qalc` es libqalculate, y libqalculate corta el
3# configure con «libgmp not found» si no está. O sea que la cadena de una tecla del escritorio baja
4# hasta la aritmética de enteros grandes — y ese es justo el tipo de dep que no se ve venir mirando
5# el paquete de arriba.
6#
7# ── `--disable-assembly` NO ES PEREZA ───────────────────────────────────────────────────────────
8# GMP trae rutinas en ensamblador por microarquitectura y su `configfsf.guess` elige una mirando la
9# CPU de QUIEN COMPILA. Eso es exactamente lo que este lab no puede permitir: hornearía la ISA del
10# laptop en el artefacto y el hash dejaría de significar lo mismo en la granja (el mismo modo de
11# falla que `-mcpu=baseline` corrige en el wrapper de zig). Con `--disable-assembly` GMP usa su
12# implementación en C portable: más lenta, y a nadie le importa — acá la usa una calculadora de
13# escritorio, no un criptosistema.
14# Además zig/clang no digiere varias de esas rutinas (`.align` y sintaxis de gas antigua), así que
15# la alternativa realista tampoco era «assembly sí».
16name    = "gmp"
17version = "6.3.0"
18
19[source]
20tarball = "https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz"
21sha256  = "a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898"
22
23[build]
24compiler = "zig-cc"
25target   = "x86_64-linux-musl"
26link     = "static"
27flags    = []
28
29[build.phases]
30# `--enable-cxx` va APAGADO: libqalculate usa la API C de GMP (`__gmpz_init` es lo que su configure
31# busca), y `libgmpxx` arrastraría el runtime de C++ a un paquete que no lo necesita — justo la deuda
32# que la campaña «matar gcc» viene pagando en el resto del árbol.
33configure = '''
34./configure \
35	--build=$CBUILD --host=$CHOST \
36	--prefix=/usr \
37	--disable-shared --enable-static \
38	--disable-assembly \
39	--enable-fat=no
40'''
41compile = 'make -j"$(nproc)"'
42install = 'make DESTDIR=/out install'
43
44[deps]
45build = ["make", "m4"]