diff --git a/recipes/incoming/qdrant.toml b/recipes/incoming/qdrant.toml index d90a144e..66673b3b 100644 --- a/recipes/incoming/qdrant.toml +++ b/recipes/incoming/qdrant.toml @@ -27,6 +27,30 @@ # razonable era «qdrant = rocksdb = C++ + libclang», que es media tarde de trabajo que no hacía # falta. # +# ⚠ **`compiler = "gcc"`: EL NOMBRE DEL WRAPPER DEL LAB ES UNA TRAMPA PARA EL CRATE `autotools`.** +# Primer intento (con `zig-cc`), tras 408 crates compilados y ~1,5 h en el worker: +# +# "/src/vendor/protobuf-src/protobuf/configure" … "--host=/src/.hammer-zig" +# Invalid configuration `/src/.hammer-zig': machine `/src/.hammer-unknown' not recognized +# +# La cadena es: qdrant → `raft-proto` (tikv/raft-rs) → `protobuf-build` → **`protobuf-src`**, que +# compila protobuf 21.5 DESDE FUENTE con el crate `autotools` (o sea que ni siquiera usa el `protoc` +# del corpus). Y `autotools` adivina el triple `--host` **recortándole el sufijo al nombre del +# compilador** (`vendor/autotools/src/lib.rs`, leído en el árbol de post-mortem del worker): +# +# let host = cc_path.strip_suffix("-cc").or_else(|| cc_path.strip_suffix("-gcc")); +# if let Some(host) = host { args.push(format!("--host={}", host)); } +# +# El lab exporta `CC="$PWD/.hammer-zig-cc"` ⇒ recortar `-cc` deja `/src/.hammer-zig`, que se pasa +# como triple y `config.sub` rechaza. Con `compiler = "gcc"` el lab exporta `CC="gcc"`, al que NO se +# le puede recortar `-cc` ni `-gcc` ⇒ el crate **no añade `--host`** y configure corre nativo, que +# es lo correcto. (El propio crate ya trae un caso especial `cc_path != "musl-gcc"`, señal de que la +# heurística es frágil y upstream lo sabe.) +# +# **NO se arregla renombrando el wrapper del lab**, aunque sea tentador: ese nombre está dentro de la +# cadena de la fase `compile`, que entra en `hash_inputs` ⇒ tocarlo re-hashea las **234 recetas +# Rust** del corpus. Eso es una campaña, no un arreglo de paso. La palanca por receta es la correcta. +# # `link = "static"` es la apuesta por defecto del corpus para binarios Rust. Si jemalloc sobre musl # estático se resiste, la salida conocida es la perilla `MALLOC`/feature, no bajar a dinámico de # entrada — pero eso se decide con el log del worker delante, no acá. @@ -39,7 +63,7 @@ tarball = "https://github.com/qdrant/qdrant/archive/refs/tags/v1.19.1.tar.gz" sha256 = "ca9f0cb5a6954d253b51f249161cb63e2c3fee2a3bf360056cf01f0e70b2b878" [build] -compiler = "zig-cc" +compiler = "gcc" target = "x86_64-linux-musl" link = "static" flags = ["--bin", "qdrant"]