From b67697918ef81b06a0ea24f4154b57cf2e3179c8 Mon Sep 17 00:00:00 2001 From: vasilito Date: Fri, 10 Jul 2026 11:34:09 +0300 Subject: [PATCH] build: fix fstools host compile path + bison spawn.h cross-compile fstools.mk: Use canonical local/sources/ paths for installer and redoxfs cargo install --path. The recipes/ symlink chain caused cargo to resolve path dependencies (../libredox, ../redoxfs, ../syscall) relative to the recipe directory instead of the canonical source location, breaking the host build. bison: Add cross-compilation cache variables for POSIX spawn support. Gnulib's configure couldn't detect the system spawn.h during cross-compile, causing generated lib/spawn.h to omit #include_next, leaving POSIX_SPAWN_* constants undefined. --- local/recipes/dev/bison/recipe.toml | 11 +++++++++++ mk/fstools.mk | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/local/recipes/dev/bison/recipe.toml b/local/recipes/dev/bison/recipe.toml index c77adafd97..80cde0bdd3 100644 --- a/local/recipes/dev/bison/recipe.toml +++ b/local/recipes/dev/bison/recipe.toml @@ -10,6 +10,17 @@ export ac_cv_func___fseterr=yes export ac_cv_type_sigset_t=yes export ac_cv_type_posix_spawnattr_t=yes export ac_cv_type_posix_spawn_file_actions_t=yes +export ac_cv_header_spawn_h=yes +export ac_cv_func_posix_spawn=yes +export ac_cv_func_posix_spawnp=yes +export gl_cv_header_spawn_h_self_contained=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_RESETIDS=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_SETPGROUP=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_SETSIGDEF=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_SETSIGMASK=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_SETSCHEDULER=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_SETSCHEDPARAM=yes +export gl_cv_header_spawn_h_POSIX_SPAWN_USEVFORK=yes COOKBOOK_CONFIGURE_FLAGS+=( --disable-nls ) diff --git a/mk/fstools.mk b/mk/fstools.mk index c4adbcd022..13b2037b9d 100644 --- a/mk/fstools.mk +++ b/mk/fstools.mk @@ -20,10 +20,13 @@ else $(MAKE) fstools_fetch PODMAN_BUILD=$(GOING_TO_PODMAN_AGAIN) # Compile installer and redoxfs for host (may be outside of podman container) + # Use canonical local fork paths so cargo resolves path dependencies correctly. + # When source is accessed via recipes/ symlinks, cargo resolves "../dep" paths + # from the symlink location, not the canonical location, breaking path deps. cd $@.partial && \ export CARGO_TARGET_DIR=../$@-target && \ - $(HOST_CARGO) install --root . --path recipes/core/installer/source --locked $(INSTALLER_FEATURES) && \ - $(HOST_CARGO) install --root . --path recipes/core/redoxfs/source --locked $(REDOXFS_FEATURES) + $(HOST_CARGO) install --root . --path local/sources/installer --locked $(INSTALLER_FEATURES) && \ + $(HOST_CARGO) install --root . --path local/sources/redoxfs --locked $(REDOXFS_FEATURES) mv $@.partial $@ touch $@