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 Definitions

⎇ 0a9622c7b055b93800c45afcac7b4774ed231bcc recipes/xxhash.toml TOML · 48 lines · 2.5 KB History raw

recetas: girara, xxhash y json-glib al corpus — la cadena de zathura, medida 058e3e920 · Sergio ·

1# xxHash 0.8.3 — hash no criptográfico extremadamente rápido. Entra como dep de `zathura`, que lo
2# usa para la caché de páginas renderizadas (`dependency('libxxhash')`).
3#
4# Un solo `.c`, Makefile con `DESTDIR`/`PREFIX` de manual y un `libxxhash.pc.in` que el propio
5# Makefile instancia. Pero SÍ trae una perilla que mira la máquina, y no está donde uno la buscaría:
6#
7# ══ `DISPATCH=0` — Y NO ES UNA PREFERENCIA, EL BUILD SE CAE SIN ESTO ═══════════════════════════
8# `Makefile:58-62` hace `$(CC) -dumpmachine | grep x86_64` y, si acierta, pone `DISPATCH ?= 1`. O
9# sea que el despacho vectorial en runtime **se enciende solo** por detección de arquitectura: es
10# exactamente la clase de perilla `auto` que hace depender el artefacto de dónde se construyó.
11# Con ella encendida se compila `xxh_x86dispatch.c`, y ahí muere:
12#
13#   error: always_inline function '_mm512_add_epi64' requires target feature 'evex512', but would
14#   be inlined into 'XXH3_accumulate_512_avx512' compiled without support for 'evex512'
15#   error: AVX vector argument of type '__m512i' without 'evex512' enabled changes the ABI
16#
17# El fichero pide AVX-512 con `-mavx512f` a secas, y el clang que trae zig ya exige además
18# `-mevex512` para los vectores de 512 bits. **No se arregla subiendo flags**: la variante AVX-512
19# de xxHash sólo la usa el despacho en runtime, y esta distro no quiere un binario que elija
20# implementación según el `cpuid` del que lo compiló. `DISPATCH=0` apaga las dos cosas de una.
21# `LIBXXH_DISPATCH` —el equivalente para la `.so`— no tiene default, así que ya venía apagado.
22#
23# El target por defecto (`lib xxhsum_and_links`) es justo lo que pide `install`: la `.a`, la `.so`,
24# el CLI `xxhsum` y sus cuatro symlinks (xxh32sum/xxh64sum/xxh128sum/xxh3sum). Se dejan: son 20 KB y
25# `xxhsum` es una herramienta de verdad, del mismo tamaño de utilidad que `sha256sum`.
26#
27# Fuente por commit git (ADR 0006): `v0.8.3` es un tag LIVIANO ⇒ éste es su commit.
28name    = "xxhash"
29version = "0.8.3"
30license = "BSD-2-Clause"
31
32[source]
33repo   = "https://github.com/Cyan4973/xxHash.git"
34commit = "e626a72bc2321cd320e953a0ccf1584cad60f363"
35
36[build]
37compiler = "zig-cc"
38target   = "x86_64-linux-musl"
39link     = "dynamic"
40flags    = []
41
42[build.phases]
43configure = "true"
44compile   = "make PREFIX=/usr CC=hammer-zig-cc DISPATCH=0"
45install   = "make install PREFIX=/usr DESTDIR=/out CC=hammer-zig-cc DISPATCH=0"
46
47[deps]
48build = ["make", "pkgconf"]