[libc-commits] [libc] [libc] Implement system function (PR #211672)

Jeff Bailey via libc-commits libc-commits at lists.llvm.org
Fri Jul 24 07:54:09 PDT 2026


================
@@ -0,0 +1,41 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// Implementation header for fork.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_LIBC_SRC___SUPPORT_OSUTIL_SYSCALL_WRAPPERS_FORK_H
+#define LLVM_LIBC_SRC___SUPPORT_OSUTIL_SYSCALL_WRAPPERS_FORK_H
+
+#include "hdr/signal_macros.h"
+#include "hdr/types/pid_t.h"
+#include "src/__support/OSUtil/linux/syscall.h" // For syscall_checked
+#include "src/__support/common.h"
+#include "src/__support/error_or.h"
+#include "src/__support/macros/config.h"
+#include <sys/syscall.h> // For syscall numbers
+
+namespace LIBC_NAMESPACE_DECL {
+namespace linux_syscalls {
+
+LIBC_INLINE ErrorOr<pid_t> fork() {
+#ifdef SYS_fork
----------------
kaladron wrote:

If memory serves, the clone syscall should be preferred to fork.  It looks like clone came out in Linux 2.0, so we dont' need the fallback.

That said, Linux 5.3 added clone3 which looks to be a significant cleanup.

https://github.com/llvm/llvm-project/pull/211672


More information about the libc-commits mailing list