lib: c: add fallback errno storage for single-threaded programs

This commit is contained in:
2026-03-22 19:11:25 +00:00
parent a792bbe5db
commit 7b89a038a2
2 changed files with 14 additions and 0 deletions

View File

@@ -1,6 +1,15 @@
#include <errno.h>
#include <mango/log.h>
#include <mango/status.h>
static int __errno = 32;
int __attribute__((weak)) * __errno_location(void)
{
kern_log("using builtin errno");
return &__errno;
}
#if defined(BUILD_STATIC)
int __set_errno(int err)
{
@@ -12,6 +21,7 @@ int __set_errno(int err)
int __set_errno(int err)
{
/* TODO */
*__errno_location() = err;
return -1;
}
#endif

View File

@@ -1,6 +1,8 @@
#ifndef ERRNO_H_
#define ERRNO_H_
#define errno (*__errno_location())
#define SUCCESS 0 /* Success */
#define EPERM 1 /* Operation not permitted */
#define ENOENT 2 /* No such file or directory */
@@ -142,4 +144,6 @@
extern int __set_errno(int err);
extern int __errno_from_kern_status(unsigned int err);
extern int __attribute__((weak)) * __errno_location(void);
#endif