tawasuyu

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 1572Shell 203Rust 109Markdown 993728 Definitions

⎇ e0f4e6fd4c975b2c4df0eea872bde8561be31a1b recipes/cairo-ctime-r.patch 53 lines · 2.3 KB History raw

Etapa G (GUI): cairo — preserva cairo-script-interpreter.pc (fix de regresión) eae22122f · sergio ·

1cairo bajo zig-cc/musl: parches para construir la librería + su cairo-script-interpreter.pc en la granja.
2
3(1) meson.build — el loop `foreach name : check_funcs` corre `cc.has_function('ctime_r')` SIN prefix
4de header ⇒ prototipo desnudo que bajo zig-cc y gcc sobre musl choca con el builtin y el probe FALLA.
5Entonces cairo-ps-surface.c:105 (`#ifndef HAVE_CTIME_R`) define un fallback static que colisiona con
6<time.h> (presente por _GNU_SOURCE) ⇒ error duro. musl SIEMPRE provee ctime_r; forzamos el define.
7
8(2) util/meson.build — cairo-trace: sus ejecutables no linkean libpixman-1.a bajo la estrategia
9`no_fallback` de zig-cc; nada aguas abajo pide cairo-trace ⇒ se salta entero.
10
11(3) util/cairo-script/meson.build — el subdir cairo-script SÍ se construye (la librería libcairoscript
12y su `cairo-script-interpreter.pc` las piden los demos GTK), pero los EJECUTABLES csi-* fallan el mismo
13link de pixman ⇒ se envuelven en `if false`. Así queda la .pc sin los exe.
14
15diff -Naur a/meson.build b/meson.build
16--- a/meson.build
17+++ b/meson.build
18@@ -708,4 +708,9 @@
19   endif
20 endforeach
21
22+# hammer: has_function('ctime_r') sin prefix falla bajo zig/gcc+musl (prototipo desnudo choca
23+# con el builtin); musl SIEMPRE provee ctime_r => forzar y evitar el fallback static de
24+# cairo-ps-surface.c:105 que colisiona con la declaracion no-static de <time.h>.
25+conf.set('HAVE_CTIME_R', 1)
26+
27 conf.set('HAVE_STRNDUP', cc.has_function('strndup', prefix : '#include <string.h>'))
28diff -Naur a/util/meson.build b/util/meson.build
29--- a/util/meson.build
30+++ b/util/meson.build
31@@ -13,4 +13,4 @@
32 endif
33
34-if conf.get('CAIRO_HAS_TRACE', 0) == 1
35+if false  # hammer: saltar cairo-trace (sus exe no linkean pixman bajo zig; nada pide su .pc)
36   subdir('cairo-trace')
37diff -Naur a/util/cairo-script/meson.build b/util/cairo-script/meson.build
38--- a/util/cairo-script/meson.build
39+++ b/util/cairo-script/meson.build
40@@ -48,3 +48,6 @@
41 meson.override_dependency('cairo-script-interpreter', libcairoscript_dep)
42
43+# hammer: los ejecutables csi-* no linkean libpixman-1.a bajo zig no_fallback; la libreria
44+# libcairoscript y su cairo-script-interpreter.pc SI (los demos GTK las piden). Saltar solo los exe.
45+if false
46 csi_replay_exe = executable('csi-replay', csi_replay_sources,
47@@ -64,4 +64,5 @@
48   )
49 endif
50+endif
51
52 install_headers(cairoscript_interpreter_headers, subdir: 'cairo')
53</content>