From 69e6fe89fa9baafeca3e3515bb50897cd8ee7c35 Mon Sep 17 00:00:00 2001 From: Kacper Date: Mon, 15 Dec 2025 18:24:54 +0100 Subject: Add getauxval and cleanup libc startup --- lib/libc/include/__thread.h | 2 +- lib/libc/include/features.h | 6 ------ lib/libc/include/internal/io_uring.h | 6 ++++++ lib/libc/include/libc.h | 17 +++++++++-------- 4 files changed, 16 insertions(+), 15 deletions(-) delete mode 100644 lib/libc/include/features.h create mode 100644 lib/libc/include/internal/io_uring.h (limited to 'lib/libc/include') diff --git a/lib/libc/include/__thread.h b/lib/libc/include/__thread.h index 662f1dc1..f978d018 100644 --- a/lib/libc/include/__thread.h +++ b/lib/libc/include/__thread.h @@ -3,7 +3,7 @@ struct __thread_self { int tid; - int _errno; + int terrno; }; #endif diff --git a/lib/libc/include/features.h b/lib/libc/include/features.h deleted file mode 100644 index 8f7fa940..00000000 --- a/lib/libc/include/features.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __LIBC_FEATURES_H -#define __LIBC_FEATURES_H - -#define __weak extern __attribute__((weak)) - -#endif diff --git a/lib/libc/include/internal/io_uring.h b/lib/libc/include/internal/io_uring.h new file mode 100644 index 00000000..e7369146 --- /dev/null +++ b/lib/libc/include/internal/io_uring.h @@ -0,0 +1,6 @@ +#ifndef __INTERNAL_IO_URING_H +#define __INTERNAL_IO_URING_H + +void __io_uring_init(void); + +#endif diff --git a/lib/libc/include/libc.h b/lib/libc/include/libc.h index 6f233d35..87d4e88f 100644 --- a/lib/libc/include/libc.h +++ b/lib/libc/include/libc.h @@ -1,24 +1,25 @@ #ifndef __LIBC_LIBC_H #define __LIBC_LIBC_H +#include #include -#define likely(x) __builtin_expect(!!(x), 1) -#define unlikely(x) __builtin_expect(!!(x), 0) -#define __unused __attribute__((unused)) -#define aligned(type) __attribute__((aligned(__alignof__(type)))) -#define weak_reference(old, new) \ - extern __typeof(old)((new)) __attribute__((__weak__, __alias__(#old))) +#define weak_reference(old, new) extern __typeof(old)((new)) __attribute__((__weak__, __alias__(#old))) + +struct libc { + size_t auxv[32]; -static struct libc { enum { LIBC_ENVP_TOUCHED = 1 << 0, } flags; + struct { volatile atomic_flag abort; volatile atomic_flag malloc; volatile atomic_flag environ; } lock; -} libc = { .lock = { ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT, ATOMIC_FLAG_INIT } }; +}; + +extern struct libc __libc; #endif -- cgit v1.2.3