nuttx/sched/task
Marco Casaroli 9b787d42b2 sched/arch/libc: make task_fork() optional
task_fork() is a NuttX extension, not POSIX, and a configuration that does
not call it has no reason to carry it.  Add CONFIG_TASK_FORK to leave it out.

It depends on ARCH_HAVE_TASK_FORK and defaults to y, so it is enabled exactly
where fork() existed before the split and no configuration loses the primitive
by upgrading.  ARCH_HAVE_TASK_FORK keeps its meaning -- the architecture *can*
clone the calling task -- and the new symbol says whether this build wants it.
Everything that provides task_fork() moves to the new symbol:  the declaration
in sched.h, up_task_fork() in arch.h, the two .csv entries that generate the
system call stub and proxy, the syscall_lookup.h table entry, the architecture
entry points, and the build rules for the files that hold them.

FORK_IS_TASK_FORK now depends on TASK_FORK rather than ARCH_HAVE_TASK_FORK.
Aliasing fork() to a task_fork() that was not built would not link.

vfork() and fork() are untouched; each is still selected on its own, and
task_fork.c, lib_fork.c and the architecture's fork file are still built when
any one of the three is present.

Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-30 11:45:24 +02:00
..
CMakeLists.txt sched/arch/libc: make task_fork() optional 2026-07-30 11:45:24 +02:00
exit.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
Make.defs sched/arch/libc: make task_fork() optional 2026-07-30 11:45:24 +02:00
spawn.h sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
task.h sched:use tcb_s inside of task_tcb_s , remove all cast 2025-12-22 17:55:45 +08:00
task_activate.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_argvstr.c sched/tls: fix uninitialized argv pointer in task info 2026-01-15 16:10:11 -03:00
task_cancelpt.c sched/cancelpt: Fix MISRA C 2012 Rule 10.4 violations 2026-02-02 21:09:40 +08:00
task_create.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_delete.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
task_execve.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_exit.c sched/arch/libc: give fork(), vfork() and task_fork() separate semantics 2026-07-29 16:39:07 +02:00
task_exithook.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
task_fork.c sched/arch/libc: make task_fork() optional 2026-07-30 11:45:24 +02:00
task_getgroup.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
task_getpid.c task_getpid.c:coverity HIS_metric_violation: RETURN 2026-01-21 20:31:35 +08:00
task_getppid.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
task_gettid.c sched/gettid: Move thread ID to TLS 2025-04-08 22:53:10 +08:00
task_init.c sched/pthread: move pthread mutex from syscall to user-space 2026-01-22 12:40:49 -03:00
task_join.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_posixspawn.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_prctl.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_recover.c pthread: move pthread_cond to userspace 2026-01-26 16:26:39 +08:00
task_reparent.c sched: migrate to SPDX identifier 2024-09-12 01:10:14 +08:00
task_restart.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
task_setup.c arch, sched/signal: Fix compilation with ENABLE_PARTIAL_SIGNALS=y 2026-06-16 17:07:32 +08:00
task_spawn.c spawn: allow zero stacksize/priority to use binary loader defaults 2026-07-15 12:24:44 -03:00
task_spawnparms.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_start.c include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
task_terminate.c sched: Remove unnecessary affinity restriction & restoration over smp calls 2025-08-20 10:16:43 +08:00