Skip to content

build: List lib/posix/spawn.c in kaem.run and for the Hurd - #5

Merged
aoinoikaz merged 2 commits into
windows-pe32-ntcallfrom
linux-mes-m2-spawn
Nov 4, 2026
Merged

aoinoikaz merged 2 commits into
windows-pe32-ntcallfrom
linux-mes-m2-spawn

Conversation

@aoinoikaz

Copy link
Copy Markdown

src/posix.c's core:spawn calls spawn, which lib/posix/spawn.c defines from fork, execve and waitpid. kaem.run, the M2-Planet build of mes-m2 for Linux, did not compile that file, so M2-Planet stopped with src/posix.c:482:spawn is not a defined symbol. The libc list for mes_kernel=gnu lacked it too; the Linux list already has it.

  • kaem.run compiles lib/posix/spawn.c after waitpid.c, the last of the calls it makes.
  • The Hurd list names it after lib/stub/fork.c. Regenerated, libc, libc+tcc and libc+gnu for gnu each gain that one file; linux and windows are unchanged.
  • A Linux workflow builds stage0-posix Release_1.9.1's x86 chain from its hex0 seed, the release nixpkgs' minimal-bootstrap builds Mes 0.27.1 with, then mes-m2 from kaem.run on a PATH of those tools alone. kaem.run runs mes-m2 once it is linked.

Not covered: nothing builds the Hurd list. simple.sh, simple.make and a --with-system-libc build also compile src/posix.c without lib/posix/spawn.c, and the system-libc builds have no declaration either (include/unistd.h declares spawn only without SYSTEM_LIBC).

Closes Novavero-AI/nova-nix#367.

src/posix.c's core:spawn calls spawn, which lib/posix/spawn.c defines
with fork, execve and waitpid, and lib/windows/spawn.c defines for
Windows.  kaem.run, the M2-Planet build of mes-m2 for Linux, did not
compile lib/posix/spawn.c, so M2-Planet stopped at src/posix.c with
"spawn is not a defined symbol" and built no mes-m2.  The libc list for
mes_kernel=gnu lacked it too, so the Hurd's libc had no spawn for
src/posix.c, which mes_SOURCES compiles for every kernel.  The Linux
libc list already has it.  simple.sh, simple.make and a
--with-system-libc build lack it too, and are not changed here.

* kaem.run: Compile lib/posix/spawn.c, after the fork, execve and
waitpid it calls.
* build-aux/configure-lib.sh (libc_SOURCES) [gnu]: Add
lib/posix/spawn.c.
kaem.run names every file of mes-m2 by hand, and no run built it, so a
file src/ came to need could be missing from it unseen.  On
ubuntu-latest this builds stage0-posix 1.9.1's x86 chain from its hex0
seed, the release nixpkgs' minimal-bootstrap builds GNU Mes 0.27.1's
mes-m2 with (nixpkgs 510ce503d505), and then mes-m2 with kaem.run on a
PATH of those tools alone.  kaem.run runs mes-m2 once it is linked, so
the job also fails if it does not boot.

* .github/workflows/linux.yml: New file.
@aoinoikaz
aoinoikaz merged commit 14e201b into windows-pe32-ntcall Nov 4, 2026
3 checks passed
@aoinoikaz
aoinoikaz deleted the linux-mes-m2-spawn branch November 4, 2026 01:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant