From 337acc4c377d087699ded953011850bca90b7d40 Mon Sep 17 00:00:00 2001 From: "LocalAI [bot]" <139863280+localai-bot@users.noreply.github.com> Date: Mon, 8 Jun 2026 11:15:32 +0200 Subject: [PATCH] chore: :arrow_up: Update antirez/ds4 to `c463029c205c2ec8d7ab6c0df4a3f52979091286` (#10189) * :arrow_up: Update antirez/ds4 Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(ds4): link ds4_ssd.o into the backend build Upstream antirez/ds4 splits the SSD expert-cache into its own ds4_ssd.c translation unit, whose symbols (ds4_ssd_memory_lock_acquire/release, ds4_ssd_cache_experts_for_byte_budget, ds4_ssd_auto_cache_plan) are referenced by ds4.c/ds4_cpu.o. The dependency-bump automation regenerated this branch from clean master and dropped the prior linkage fix, so the cpu-ds4 / cublas-ds4 backend builds fail again with undefined references. Re-apply the ds4_ssd.o linkage GPU-agnostically (mirroring ds4_distributed.o) in both the backend Makefile (DS4_OBJ_TARGET + the engine-object build rule for every GPU mode) and CMakeLists.txt (list(APPEND DS4_OBJS ds4_ssd.o)). Signed-off-by: Ettore Di Giacinto Assisted-by: Claude:opus-4.8 [Claude Code] --------- Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Signed-off-by: Ettore Di Giacinto Co-authored-by: mudler <2420543+mudler@users.noreply.github.com> Co-authored-by: Ettore Di Giacinto --- backend/cpp/ds4/CMakeLists.txt | 8 +++++--- backend/cpp/ds4/Makefile | 23 ++++++++++++----------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/backend/cpp/ds4/CMakeLists.txt b/backend/cpp/ds4/CMakeLists.txt index bb61dd0b2..666f369ed 100644 --- a/backend/cpp/ds4/CMakeLists.txt +++ b/backend/cpp/ds4/CMakeLists.txt @@ -60,10 +60,12 @@ elseif(DS4_GPU STREQUAL "cpu") set(DS4_OBJS "${DS4_DIR}/ds4_cpu.o") endif() -# ds4.c now references ds4_distributed.c (distributed inference was split into -# its own translation unit upstream). It is a single GPU-agnostic object shared -# by every GPU mode, so link it in regardless of DS4_GPU. +# ds4.c now references ds4_distributed.c (distributed inference) and ds4_ssd.c +# (SSD expert-cache), each split into its own translation unit upstream. Both +# are GPU-agnostic objects shared by every GPU mode, so link them in regardless +# of DS4_GPU. list(APPEND DS4_OBJS "${DS4_DIR}/ds4_distributed.o") +list(APPEND DS4_OBJS "${DS4_DIR}/ds4_ssd.o") add_executable(${TARGET} grpc-server.cpp diff --git a/backend/cpp/ds4/Makefile b/backend/cpp/ds4/Makefile index 9dd047bfd..38de6bfdb 100644 --- a/backend/cpp/ds4/Makefile +++ b/backend/cpp/ds4/Makefile @@ -1,10 +1,10 @@ # ds4 backend Makefile. # -# Upstream pin lives below as DS4_VERSION?=477c0e82e2699b35a65fd0a1ed6fe66b41087dfe +# Upstream pin lives below as DS4_VERSION?=c463029c205c2ec8d7ab6c0df4a3f52979091286 # (.github/bump_deps.sh) can find and update it - matches the # llama-cpp / ik-llama-cpp / turboquant convention. -DS4_VERSION?=477c0e82e2699b35a65fd0a1ed6fe66b41087dfe +DS4_VERSION?=c463029c205c2ec8d7ab6c0df4a3f52979091286 DS4_REPO?=https://github.com/antirez/ds4 CURRENT_MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) @@ -18,19 +18,20 @@ UNAME_S := $(shell uname -s) CMAKE_ARGS ?= -DCMAKE_BUILD_TYPE=Release -# ds4_distributed.o is a GPU-agnostic translation unit that ds4.c/ds4_cpu.o now -# reference (upstream split distributed inference into its own .c). The same -# object is shared by every GPU mode, so it is appended unconditionally below. +# ds4_distributed.o and ds4_ssd.o are GPU-agnostic translation units that +# ds4.c/ds4_cpu.o now reference (upstream split distributed inference and the +# SSD expert-cache into their own .c files). Both objects are shared by every +# GPU mode, so they are appended unconditionally below. ifeq ($(BUILD_TYPE),cublas) CMAKE_ARGS += -DDS4_GPU=cuda - DS4_OBJ_TARGET := ds4.o ds4_cuda.o ds4_distributed.o + DS4_OBJ_TARGET := ds4.o ds4_cuda.o ds4_distributed.o ds4_ssd.o else ifeq ($(UNAME_S),Darwin) CMAKE_ARGS += -DDS4_GPU=metal - DS4_OBJ_TARGET := ds4.o ds4_metal.o ds4_distributed.o + DS4_OBJ_TARGET := ds4.o ds4_metal.o ds4_distributed.o ds4_ssd.o else # CPU reference path (Linux only - macOS CPU path is broken by VM bug per ds4 README). CMAKE_ARGS += -DDS4_GPU=cpu - DS4_OBJ_TARGET := ds4_cpu.o ds4_distributed.o + DS4_OBJ_TARGET := ds4_cpu.o ds4_distributed.o ds4_ssd.o endif ifneq ($(NATIVE),true) @@ -55,11 +56,11 @@ ds4: # the right per-platform compile flags (Objective-C/Metal on Darwin, nvcc on Linux+CUDA). ds4/ds4.o: ds4 ifeq ($(BUILD_TYPE),cublas) - +$(MAKE) -C ds4 ds4.o ds4_cuda.o ds4_distributed.o + +$(MAKE) -C ds4 ds4.o ds4_cuda.o ds4_distributed.o ds4_ssd.o else ifeq ($(UNAME_S),Darwin) - +$(MAKE) -C ds4 ds4.o ds4_metal.o ds4_distributed.o + +$(MAKE) -C ds4 ds4.o ds4_metal.o ds4_distributed.o ds4_ssd.o else - +$(MAKE) -C ds4 ds4_cpu.o ds4_distributed.o + +$(MAKE) -C ds4 ds4_cpu.o ds4_distributed.o ds4_ssd.o endif grpc-server: ds4/ds4.o