From 80c42135017071b600f84ab871a98f66db5634a5 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 7 Apr 2026 03:12:21 +0300 Subject: [PATCH] LibC: Make errno macro directly access uthread This allows inlining errno usages This breaks libc ABI and requires toolchain rebuild --- userspace/libraries/LibC/CMakeLists.txt | 1 - userspace/libraries/LibC/errno.cpp | 7 ------- userspace/libraries/LibC/include/errno.h | 8 ++++---- 3 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 userspace/libraries/LibC/errno.cpp diff --git a/userspace/libraries/LibC/CMakeLists.txt b/userspace/libraries/LibC/CMakeLists.txt index 0798cd40..ec8e6bf2 100644 --- a/userspace/libraries/LibC/CMakeLists.txt +++ b/userspace/libraries/LibC/CMakeLists.txt @@ -7,7 +7,6 @@ set(LIBC_SOURCES dlfcn.cpp endian.cpp environ.cpp - errno.cpp fcntl.cpp fenv.cpp fnmatch.cpp diff --git a/userspace/libraries/LibC/errno.cpp b/userspace/libraries/LibC/errno.cpp deleted file mode 100644 index 707732c9..00000000 --- a/userspace/libraries/LibC/errno.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include -#include - -int* __errno_location() -{ - return &_get_uthread()->errno_; -} diff --git a/userspace/libraries/LibC/include/errno.h b/userspace/libraries/LibC/include/errno.h index 973cdbf3..6da5d87d 100644 --- a/userspace/libraries/LibC/include/errno.h +++ b/userspace/libraries/LibC/include/errno.h @@ -7,6 +7,10 @@ __BEGIN_DECLS +#include + +#define errno (_get_uthread()->errno_) + #define E2BIG 1 #define EACCES 2 #define EADDRINUSE 3 @@ -94,10 +98,6 @@ __BEGIN_DECLS #define ERESTART 0xFE /* internal errno for SA_RESTART */ #define EUNKNOWN 0xFF -#define errno (*__errno_location()) - -int* __errno_location(void); - __END_DECLS #endif