diff --git a/Documentation/reference/user/01_task_control.rst b/Documentation/reference/user/01_task_control.rst index 60d22a0288d..e673d712776 100644 --- a/Documentation/reference/user/01_task_control.rst +++ b/Documentation/reference/user/01_task_control.rst @@ -358,7 +358,9 @@ Functions NOTE: ``vfork()`` is not an independent NuttX feature, but is implemented in architecture-specific logic (using only helper functions from the NuttX core logic). As a result, ``vfork()`` may - not be available on all architectures. + not be available on all architectures. The current implementation in + NuttX arm64 only guarantees that ``vfork()`` works when + CONFIG_BUILD_FLAT=y. :return: Upon successful completion, ``vfork()`` returns 0 to the child process and returns the process ID of the child process to the diff --git a/arch/Kconfig b/arch/Kconfig index e54b8a128a4..0ddcdb50c40 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -29,7 +29,7 @@ config ARCH_ARM64 select ARCH_64BIT select ARCH_HAVE_BACKTRACE select ARCH_HAVE_INTERRUPTSTACK - select ARCH_HAVE_FORK if !BUILD_KERNEL + select ARCH_HAVE_FORK if !BUILD_KERNEL && !BUILD_PROTECTED select ARCH_HAVE_STACKCHECK select ARCH_HAVE_CUSTOMOPT select ARCH_HAVE_STDARG_H