[libc-commits] [libc] [libc] Add sys/ucontext.h header (PR #194329)
Jeff Bailey via libc-commits
libc-commits at lists.llvm.org
Mon Apr 27 02:58:02 PDT 2026
https://github.com/kaladron updated https://github.com/llvm/llvm-project/pull/194329
>From 846098d79dbe3c2866bb6837e18b3b35353855d9 Mon Sep 17 00:00:00 2001
From: Jeff Bailey <jbailey at raspberryginger.com>
Date: Mon, 20 Apr 2026 10:37:38 +0100
Subject: [PATCH 1/2] [libc] Add sys/ucontext.h header
POSIX historically provided <sys/ucontext.h> as an alias for
<ucontext.h>. Some software still includes the sys/ path. Added
the header as a simple wrapper that includes <ucontext.h>, gated
to x86_64 alongside the existing ucontext support.
---
libc/config/linux/x86_64/headers.txt | 1 +
libc/include/CMakeLists.txt | 8 ++++++++
libc/include/sys/ucontext.h | 14 ++++++++++++++
3 files changed, 23 insertions(+)
create mode 100644 libc/include/sys/ucontext.h
diff --git a/libc/config/linux/x86_64/headers.txt b/libc/config/linux/x86_64/headers.txt
index 2b93c84b13b5f..fb461444b43d8 100644
--- a/libc/config/linux/x86_64/headers.txt
+++ b/libc/config/linux/x86_64/headers.txt
@@ -53,6 +53,7 @@ set(TARGET_PUBLIC_HEADERS
libc.include.sys_syscall
libc.include.sys_time
libc.include.sys_types
+ libc.include.sys_ucontext
libc.include.sys_un
libc.include.sys_utsname
libc.include.sys_wait
diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index 6c5ecac302dc8..5bcd69a01afce 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -476,6 +476,14 @@ if(LIBC_TARGET_ARCHITECTURE STREQUAL "x86_64")
.llvm-libc-types.sigset_t
.llvm-libc-types.stack_t
)
+
+ add_header(
+ sys_ucontext
+ HDR
+ sys/ucontext.h
+ DEPENDS
+ .ucontext
+ )
endif()
add_header_macro(
diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h
new file mode 100644
index 0000000000000..9fd3557088336
--- /dev/null
+++ b/libc/include/sys/ucontext.h
@@ -0,0 +1,14 @@
+//===-- POSIX header sys/ucontext.h ---------------------------------------===//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef SYS_UCONTEXT_H
+#define SYS_UCONTEXT_H
+
+#include <ucontext.h>
+
+#endif // SYS_UCONTEXT_H
>From 758e9835d33549e3cf107d87f99e3ab3b8a4804e Mon Sep 17 00:00:00 2001
From: Jeff Bailey <jbailey at raspberryginger.com>
Date: Mon, 27 Apr 2026 10:57:47 +0100
Subject: [PATCH 2/2] [libc][NFC] Fix include guard in sys/ucontext.h
Use LLVM_LIBC_SYS_UCONTEXT_H to match the convention used by other
sys/ headers.
---
libc/include/sys/ucontext.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h
index 9fd3557088336..7f0b830434475 100644
--- a/libc/include/sys/ucontext.h
+++ b/libc/include/sys/ucontext.h
@@ -6,9 +6,9 @@
//
//===----------------------------------------------------------------------===//
-#ifndef SYS_UCONTEXT_H
-#define SYS_UCONTEXT_H
+#ifndef LLVM_LIBC_SYS_UCONTEXT_H
+#define LLVM_LIBC_SYS_UCONTEXT_H
#include <ucontext.h>
-#endif // SYS_UCONTEXT_H
+#endif // LLVM_LIBC_SYS_UCONTEXT_H
More information about the libc-commits
mailing list