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.
This commit is contained in:
2026-07-10 11:34:09 +03:00
parent 5acd4b4c23
commit b67697918e
2 changed files with 16 additions and 2 deletions
+11
View File
@@ -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
)
+5 -2
View File
@@ -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 $@