From ebae1463d5521f2d08641ba1c52fece29a317a9c Mon Sep 17 00:00:00 2001 From: eunhhu Date: Mon, 28 Sep 2026 00:37:31 +0100 Subject: Build the node's surface again when Pure's headers change vega-surface.so is compiled against Pure's app and module layout, which a node checks when it maps the surface (sizeof PureApp and PureModule): a surface left from before a change of those headers was refused, and the node showed no frame. It now depends on Pure's core headers and serve/surface.h, as the vega command already depends on libpure.a. --- Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index b99d26c..e00385c 100644 --- a/Makefile +++ b/Makefile @@ -29,8 +29,11 @@ $(BUILD)/vega: $(SURFACES) surfaces/vega.h symbols/symbols.c symbols/symbols.h $ # The same host as a surface a Pure node maps (pure-serve --surface, Pure's # serve/surface.h): the node's display. It calls the app model pure-serve # exports, so it links no libpure.a of its own; it exports pure_surface_run -# alone, and what only the vega command uses is left out. -$(BUILD)/vega-surface.so: $(SURFACES) surfaces/vega.h symbols/symbols.c symbols/symbols.h | $(BUILD) +# alone, and what only the vega command uses is left out. It is built again +# when Pure's headers change: a node refuses a surface built for another +# layout of its app and module. +PURE_HEADERS = $(wildcard $(PURE)/core/*.h) $(PURE)/serve/surface.h +$(BUILD)/vega-surface.so: $(SURFACES) surfaces/vega.h symbols/symbols.c symbols/symbols.h $(PURE_HEADERS) | $(BUILD) $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused-function -fPIC -shared -fvisibility=hidden -ffunction-sections \ -fdata-sections -DVEGA_SURFACE -I$(PURE)/core -I$(PURE)/serve -Isymbols $(SURFACES) symbols/symbols.c \ $(LDFLAGS) -Wl,--gc-sections -lm $(LDLIBS) -o $@ -- cgit v1.2.3