From 1ff81c17bb663bca146013ee8ebc7d75dd5b448f Mon Sep 17 00:00:00 2001 From: sergio Date: Fri, 17 Jul 2026 13:52:09 -0400 Subject: [PATCH] =?UTF-8?q?pcre2:=20--disable-jit=20=E2=80=94=20el=20JIT?= =?UTF-8?q?=20romp=C3=ADa=20el=20enlace=20static-PIE=20de=20qtbase=20(land?= =?UTF-8?q?mine=20del=20modelo)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit qtbase falló al linkear: ld.lld 'relocation R_X86_64_64 cannot be used against local symbol' en libpcre2-16.a(pcre2_jit_compile.o). El JIT de PCRE2 emite relocaciones absolutas en .rodata (sus tablas de código generado) que son incompatibles con PIE — y TODO binario static musl de hammer se enlaza PIE. No es un problema de Qt: es un landmine para el modelo entero; cualquier binario PIE que linkee pcre2 con JIT lo pisa. Fix raíz: --disable-jit. El regex queda un pelo más lento y la API NO cambia (pcre2_jit_compile devuelve error si no hay JIT, los consumidores lo manejan). Rehashea pcre2 y sus dependientes, pero ya estaban en deuda (lo re-sellé este ciclo con el arreglo static). Destraba qtbase → la raíz del árbol KDE (↑117). Co-Authored-By: Claude Opus 4.8 --- recipes/pcre2.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes/pcre2.toml b/recipes/pcre2.toml index cf431efd..12d66f85 100644 --- a/recipes/pcre2.toml +++ b/recipes/pcre2.toml @@ -32,7 +32,12 @@ compile = ''' --prefix=/usr \ --disable-shared --enable-static \ --enable-pcre2-16 --enable-pcre2-32 \ - --enable-jit \ + --disable-jit \ + `# JIT DESACTIVADO (2026-07-17): pcre2_jit_compile.o emite R_X86_64_64 contra símbolos locales en` \ + `# .rodata (tablas del JIT). Al enlazar libpcre2-16.a en qtbase —PIE, como TODO binario static` \ + `# musl de hammer— ld.lld lo rechaza ("relocation cannot be used against local symbol"). El JIT es` \ + `# un landmine para el modelo static-PIE entero, no sólo Qt. Sin JIT el regex es un pelo más lento` \ + `# y la API no cambia (pcre2_jit_compile devuelve error si no hay JIT). Destraba qtbase → el árbol KDE.` \ --enable-pcre2grep-libz \ --disable-symvers make LDFLAGS="-all-static -no-pie" -j"$(nproc)"